xtts v4for oracle 11g&12c(文档ID 2471245.1) | ||||
序号 | 主机 | 操作项目 | 操作内容 | 备注: |
阶段一:初始阶段
|
||||
1.1 | 源端 | 环境验证 | migrate_check_xtts.sql是否实用XTTX | 检查验见传输表空间先决条件V4 |
1.2 | 源端 | 确认表空间和用户 | 例罗需要传输的表空间 和 用户 | |
1.3 | 目标端 | 安装数据库软件和实例 | 11.2.0.4 以上版本 | |
目标端 | 提前创建好用户 | 根据通用XTTS要求,确保目标数据库中存在表空间传输所需的用户。 | ||
1.4 | 源端 | 安装xttconvert脚本 | [oracle@source]$ pwd /home/oracle/xtt [oracle@source]$ unzip rman_xttconvert_VER4.zip |
|
1.5 | 源端 | 配置xtt.properties | 使用特定于站点的配置编辑源系统上的xtt.properties文件。以下是必须参数 tablespaces platformid src_scratch_location dest_scratch_location dest_datafile_location (if using 12c) -- usermantransport=1 |
|
1.6 | 源/目标端 | 创建目录 | 源端: 由xtt.properties文件中的src_scratch_location参数定义的备份位置。 目标端:1.由xtt.properties文件中的dest_scratch_location参数定义的备份位置。 2.数据文件在目标上的位置,由xtt.properties文件中的dest_datafile_location参数定义。 |
|
1.7 | 目标端 | 将脚本和文件 传到目标端 |
由于oracle软件所有者将所有xttconvert脚本和修改后的xtt.properties文件复制到目标系统 scp -r /home/oracle/xttdest:/home/oracle/xtt |
|
1.8 | 源/目标端 | 设置TMPDIR | 在源系统和目标系统上的shell环境中,将环境变量TMPDIR设置为支持脚本所在的位置。 [oracle@source]$ export TMPDIR=/home/oracle/xtt [oracle@dest]$ export TMPDIR=/home/oracle/xtt |
|
阶段二:准备阶段 注意:对于大量文件,如果您希望使用dbms_file_transfer,则无法使用V4,您必须使用11G - 使用跨平台增量备份减少可传输表空间停机时间(注释1389592.1)。 |
||||
2.1 | 源端 | 在源系统上运行备份 | 在源系统上,以具有指向源数据库的环境(ORACLE_HOME和ORACLE_SID环境变量)的oracle用户身份登录,运行准备步骤,如下所示: [oracle@source]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --backup |
|
2.2 | 源端 | 执行文件传输 | 从源src_scratch_location创建的备份目标dest_scratch_location 源$TMPDIR到目标$TMPDIR的res.txt文件: 在下面的示例中, scp 用于将上一步创建的level = 0备份从源系统传输到目标系统。 [oracle@source]$ scp /src_scratch/* oracle@dest:/dest_scratch [oracle@source]$ scp res.txt oracle@dest:/home/oracle/xtt |
|
2.3 | 目标端 | 恢复数据文件 | 在目标系统上,以具有指向目标 数据库的环境(ORACLE_HOME和ORACLE_SID环境变量)的oracle用户身份登录,运行还原(数据文件将放置在定义的存储器中的目标系统上),如下所示: [oracle@dest]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --restore 数据文件将放置在定义的dest_datafile_location中的目标系统上。 |
|
阶段三:前滚阶段 : 注意:可以对源执行多个备份,而不将其应用于目标。必须先复制备份文件和res.txt,然后才能在目标位置执行“--restore”。 |
||||
3.1 | 源端 | 创建表空间的增量备份 | [oracle@source]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --backup |
|
3.2 | 源端 | 将增量备份传输到目标系统 | 将增量备份(在src_scratch_location和dest_scratch_location之间)和res.txt(在$ TMPDIR之间)从源传输到目标。可以在源系统上的incrbackups.txt文件中 找到当前备份的增量备份文件列表。 [oracle@source]$ scp `cat incrbackups.txt` |
|
3.3 | 目标端 | 转换增量备份并应用 | [oracle@dest]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --restore |
|
3.4 | 源/目标端 | 重复前滚阶段 | 重复前滚阶段3(3.1 - 3.3)或进入阶段4,最终增量备份 |
|
阶段四: 最终增量备份 - 如果运行12c,则可以在Note 2005729.1 即V3中的第4阶段替换此步骤: 在此阶段,源数据只读,并且通过创建和应用最终增量备份使目标数据文件与源数据库保持一致。在使目标数据文件保持一致之后,执行正常的可传输表空间步骤以从源数据库导出对象元数据并将其导入目标数据库。传输的数据只能在READ ONLY模式下访问,直到此阶段结束。 |
||||
4.1 | 源端 | 使源表空间只在源数据库中读取 | alter tablespace xxx read only ; |
|
4.2 | 源端 | 最后一次增量 | $ORACLE_HOME/perl/bin/perl xttdriver.pl --backup |
注意:由于表空间处于READ ONLY模式,可以忽略以下警告: ############################### |
4.3 | 源端 | 将增量备份和res.txt传输到目标系统 | [oracle@source]$ scp 'cat incrbackups.txt' oracle@dest:/dest_scratch_location [oracle@source]$ scp res.txt oracle@dest:/home/oracle/xtt |
|
4.4 | 目标端 | 最后一次增量应用 | [oracle@dest]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --restore 此步骤将最后一次增量备份应用于目标上的数据文件。 |
|
阶段五:传输阶段:将对象元数据导入目标数据库 注意:如果您运行12c并选择在Note 2005729.1中使用“Phase 4”,则会跳过此选项。 |
||||
5A.1 | 源端 | 在源数据库上运行 datapump导出: |
通过在源数据库上运行可传输模式Data Pump导出来执行表空间传输,以将传输的对象元数据导出到转储文件中。例: [oracle@source]$ cat exp.par dumpfile=xttdump.dmp [oracle@source]$ expdp system/manager parfile=exp.par |
|
5A.2 | 源端 | 将导出文件 传输到目标端面 |
要使用此命令执行表空间传输,则必须编辑导入命令文件xttplugin.txt(在步骤4.3中生成)并将导入参数DIRECTORY替换为特定于站点的值。 例: [oracle@dest]$ impdp system/<password> directory=dpump_tts \ > logfile=tts_imp.log \ > dumpfile=impdp3925_641.dmp \ > transport_datafiles='/u01/oradata/DESTDB/o1_mf_ts1_bngv18vm_.dbf','/u01/oradata/DESTDB/o1_mf_ts2_bngv229g_.dbf' |
|
5A.3 | 目标端 | 使用的目标目录 | 在目标上运行datapump import以插入表空间。例如: [oracle@dest]$ cat manual_imp.par dumpfile= xttdump.dmp directory=DATAPUMP transport_datafiles='/dest_datafile_location/TS1.dbf','/dest_datafile_location/TS2.dbf' [oracle@dest]$ impdp system/oracle parfile=manual_imp.par |
|
5B.1 | 目标端 | 创建directory 目录 | SYS@DESTDB> create directory dpump_tts as '/home/oracle/destination/convert'; SYS@DESTDB> GRANT READ, WRITE ON DIRECTORY dpump_tts TO system; |
|
5B.2 | 目标端 | 生成新的xttplugin.txt | [oracle@dest]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl -e 这将在文件xttplugin.txt中生成示例Data Pump network_link transportable import命令,并正确设置可传输表空间参数TRANSPORT_TABLESPACES和TRANSPORT_DATAFILES。此外,还将创建数据泵导出文件。 |
注意:此命令将覆盖Step5A所需的先前xttplugin.txt。 |
5B.3 | 目标端 | 创建dblink | SQL@dest> create public database link ttslink connect to system identified by <password> using '<tns_to_source>'; SQL@dest> select name from v$database@ttslink; |
|
5B.4 | 目标端 | 修改并执行Impdp命令: | 不需要单独的导出或转储文件。要使用此命令执行表空间传输,则必须编辑导入命令文件xttplugin.txt(在步骤5B.1中生成)并将导入参数DIRECTORY,LOGFILE和NETWORK_LINK替换为特定于站点的值。 例: [oracle@dest]$ impdp directory=DATA_PUMP_DIR logfile=tts_imp.log network_link=ttslink \ transport_full_check=no \ transport_tablespaces=TS1,TS2 \ transport_datafiles='+DATA/prod/datafile/ts1.285.771686721', \ '+DATA/prod/datafile/ts2.286.771686723', \ '+DATA/prod/datafile/ts2.287.771686743' |
|
阶段六:验证传输的数据 | ||||
6.1 | 目标端 | 检查表空间是否损坏 | 运行RMAN以通过运行VALIDATE TABLESPACE来检查物理和逻辑块损坏,如下所示: RMAN> validate tablespace TS1, TS2 check logical; |
|
6.2 | 目标端 | 更改表空间为读写 | system@dest/prod SQL> alter tablespace TS1 read write; system@dest/prod SQL> alter tablespace TS2 read write; |
|
阶段七:清理 | ||||
7.1 | 目标端 | 清理 | 如果为迁移创建了单独的增量转换主目录和实例,则可能会关闭实例并删除软件。 此过程创建的文件不再需要,现在可以删除。它们包括以下内容: 源系统上的backupformat位置 目的地系统上的stageondest位置 源系统和目标系统中的$ TMPDIR位置 |
|
7.2 | 目标端 | 其它注意事项 | a.dblink 时建议单独配置 端口,以防止影响网络 b.数据增量期间,建议禁止添加数据文件 c.如用RMAN 方式,要预估转储空间 d.迁移完成后,注意检查监听,服务 |
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">