【测试】使用xtts V4迁移数据

参考文档:
V4 Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup (Doc ID 2471245.1)
12c – 使用跨平台增量备份来减少传输表空间的停机时间 (Doc ID 2102859.1)

源端: 
rdbms12.2.0.1 + asm + linux X86 64bit
目标端:
rdbms19.8.0.1 + solaris  Operating System x86 64  字节序一样
XTTS版本 : rman_xttconvert_VER4.3.zip


-- 查看各个平台字节序,solaris的x86平台和linux平台下的字节序是一样的。

col platform_name for a30
col endian_format for a10
select platform_id,platform_name,endian_format from v$transportable_platform where platform_name like 'Solaris%' or platform_name like 'Linux%'

SYS@test>/

PLATFORM_ID PLATFORM_NAME                  ENDIAN_FOR
----------- ------------------------------ ----------
          1 Solaris[tm] OE (32-bit)        Big
          2 Solaris[tm] OE (64-bit)        Big
         10 Linux IA (32-bit)              Little
         11 Linux IA (64-bit)              Little
         13 Linux x86 64-bit               Little
         17 Solaris Operating System (x86) Little
         20 Solaris Operating System (x86- Little
            64)


7 rows selected.

SYS@test>

-- 在源端开启块跟踪

alter database enable block change tracking using file '/home/oracle/block_change_tracking.f';

phase 1 initial setup  (1.1 - 1.7)
step 1.1 在目标端安装数据库软件,创建数据库 (略)


step 1.2 确认要传输的表空间xtts 
-- 在源端创建测试用表空间, 创建用户和测试数据  
 

create tablespace xtts datafile '+DATA/TEST/DATAFILE/xtts01.dbf' size 100M autoextend on;
create user u_xtts identified by oracle;
grant connect,resource to u_xtts;
grant dba to u_xtts;
alter user u_xtts default tablespace xtts;
conn u_xtts/oracle
alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';
create table t (x date);
insert into t values(sysdate);   -- 插入5条数据,第二天,再插入5条数据,做增量。
commit;

step 1.3 在源端安装xttconvert脚本 

cd /home/oracle/xtt 
unzip rman_xttconvert_VER4.zip  -- 例子中,解压到了/home/oracle/xtt目录下
[root@asm12c xtt]# unzip rman_xttconvert_VER4.3.zip 
Archive:  rman_xttconvert_VER4.3.zip
  inflating: xtt.newproperties       
  inflating: xtt.properties          
  inflating: xttcnvrtbkupdest.sql    
  inflating: xttdbopen.sql           
  inflating: xttdriver.pl            
  inflating: xttprep.tmpl            
 extracting: xttstartupnomount.sql   
[root@asm12c xtt]#

step1.4 创建必须的文件夹 
1 源端
根据xtt.properties文件中src_scratch_location参数定义的备份位置
2 目标端 
备份位置由xtt.properties文件中的dest_scratch_location参数定义。
数据文件在目标上的位置,由xtt.properties文件中的dest_datafile_location参数定义。

step 1.5 在源端配置xtt.properties  
强制的几个参数

tablespaces
platformid
src_scratch_location
dest_scratch_location
dest_datafile_location
usermantransport=1  --如果源数据库运行的是12c或更高版本,则建议设置此设置。 设置此参数后,这将导致使用新的12c(及更高版本)功能

-- 要设置asm,否则备份不到数据

asm_home=/u01/app/12.2.0/grid/
asm_sid=+ASM

--在源端安装rman_xttconvert_v4.zip ,编辑xtt.properties文件 

tablespaces=xtts   -- 源端的表空间 ,注意要写成大写 ,否则无法备份。
platformid=13    -- 源端的platform id  
src_scratch_location=/src_backups/   -- 存放备份的目录
dest_scratch_location=/dest_backups/   -- 目标端存放备份的位置 
dest_datafile_location=/u01/app/oracle/oradata/TEST/   -- 目标端存放数据文件的位置 ,如果使用了ASM,则写asm磁盘组名称
usermantransport=1    -- 强制性的 

step1.6 复制xttconvert脚本到目标端(用oracle用户) 

[oracle@source]$ scp -r /home/oracle/xtt oracle@dest:/home/oracle/xtt
scp -r /home/oracle/xtt oracle@192.168.2.77:/export/home/oracle/xtt
[oracle@asm12c ~]$ scp -r /home/oracle/xtt oracle@192.168.2.77:/export/home/oracle/xtt
The authenticity of host '192.168.2.77 (192.168.2.77)' can't be established.
ED25519 key fingerprint is SHA256:ZulrbRqwzV6kV53lQJUftrTGeYAmBKI3cc4qt/h9hmE.
ED25519 key fingerprint is MD5:6e:5c:9c:02:aa:f9:ae:22:04:33:63:e5:14:0c:8a:35.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.2.77' (ED25519) to the list of known hosts.
Password: 
Password: 
Password: 
rman_xttconvert_VER4.3.zip                                                                          100%   41KB  15.6MB/s   00:00    
xtt.newproperties                                                                                   100% 5169     3.2MB/s   00:00    
xttcnvrtbkupdest.sql                                                                                100% 1390     1.3MB/s   00:00    
xttdbopen.sql                                                                                       100%   71    59.7KB/s   00:00    
xttdriver.pl                                                                                        100%  176KB  36.3MB/s   00:00    
xttprep.tmpl                                                                                        100%   11KB   6.9MB/s   00:00    
xttstartupnomount.sql                                                                               100%   52    40.0KB/s   00:00    
xtt.properties                                                                                      100% 5180     3.8MB/s   00:00    
[oracle@asm12c ~]$ 

step 1.7 设置TMPDIR环境变量 (在源端和目标端设置,如果没有设置,则可能生成的文件会到/tmp下)

[oracle@source]$ export TMPDIR=/home/oracle/xtt
[oracle@dest]$ export TMPDIR=/export/home/oracle/xtt

[oracle@asm12c ~]$ export TMPDIR=/home/oracle/xtt
[oracle@asm12c ~]$ 
-bash-4.4$ export TMPDIR=/export/home/oracle/xtt
-bash-4.4$ 

phase 2 prepare phase (2.1 - 2.3)

step 2.1 在源端运行backup     ,(没有备份结果,是因为表空间的名字,要写成大写,报错有详细的日志看的,看完删除掉那个failed文件,继续执行即可 )

[oracle@source]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --backup
[oracle@asm12c xtt]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --backup
============================================================
trace file is /home/oracle/xtt/backup_Mar23_Tue_16_45_39_399//Mar23_Tue_16_45_39_399_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Starting backup phase
--------------------------------------------------------------------

Prepare source for Tablespaces:
                  'xtts'  /dest_backups/
xttpreparesrc.sql for 'xtts' started at Tue Mar 23 16:45:39 2021
xttpreparesrc.sql for  ended at Tue Mar 23 16:45:39 2021

--------------------------------------------------------------------
No backups were formed
--------------------------------------------------------------------

Prepare source for Tablespaces:
                  ''''  /dest_backups/
xttpreparesrc.sql for '''' started at Tue Mar 23 16:45:40 2021
xttpreparesrc.sql for  ended at Tue Mar 23 16:45:40 2021

--------------------------------------------------------------------
No backups were formed
--------------------------------------------------------------------


--------------------------------------------------------------------
Done with backup phase
--------------------------------------------------------------------

Prepare newscn for Tablespaces: 'xtts'
Prepare newscn for Tablespaces: ''''
New /home/oracle/xtt/xttplan.txt with FROM SCN's generated
scalar(or1
XXX: adding here for 1, 0, xtts
[oracle@asm12c xtt]$ 
[oracle@asm12c xtt]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --backup
============================================================
trace file is /home/oracle/xtt/backup_Mar23_Tue_16_55_25_715//Mar23_Tue_16_55_25_715_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Backup incremental
--------------------------------------------------------------------

scalar(or1
XXX: adding here for 1, 0, XTTS
============================================================
2 1 new datafiles added
=============================================================
============================================================
Running backup cmd for new files XTTS_2.tf
=============================================================
Adding file to transfer:XTTS_2_08vqfmfv_1_1.bkp

--------------------------------------------------------------------
checkAddDFilesBackup12C: End
--------------------------------------------------------------------

Prepare newscn for Tablespaces: 'XTTS'
Prepare newscn for Tablespaces: ''''

--------------------------------------------------------------------
Starting incremental backup
--------------------------------------------------------------------


--------------------------------------------------------------------
Done backing up incrementals
--------------------------------------------------------------------

Prepare newscn for Tablespaces: 'XTTS'
Prepare newscn for Tablespaces: ''''
New /home/oracle/xtt/xttplan.txt with FROM SCN's generated
[oracle@asm12c xtt]$ 

step 2.2 传输以下文件到目标端  
src_scratch_location 创建的备份到目标端的dest_scratch_location  
res.txt文件从源端$TMPDIR到目标端$TMPDIR

[oracle@source]$ scp /src_scratch/* oracle@dest:/dest_scratch
[oracle@source]$ scp res.txt oracle@dest:/home/oracle/xtt

scp /src_backups/* oracle@192.168.2.77:/dest_backups/
scp res.txt oracle@192.168.2.77:/export/home/oracle/xtt

[oracle@asm12c xtt]$ scp /src_backups/* oracle@192.168.2.77:/dest_backups/
Password: 
09vqfmg3_1_1                                                                                        100%   48KB  15.3MB/s   00:00    
XTTS_2_08vqfmfv_1_1.bkp                                                                             100% 1144KB  40.1MB/s   00:00    
[oracle@asm12c xtt]$ 
[oracle@asm12c xtt]$ more res.txt 
#0:::2,13,XTTS_2_08vqfmfv_1_1.bkp,0,8952101,0,0,0,XTTS,XTTS_2.dbf
#1:::2,13,09vqfmg3_1_1,8952101,8953417,0,0,0,XTTS_2.dbf,XTTS_2.dbf
[oracle@asm12c xtt]$ scp res.txt oracle@192.168.2.77:/export/home/oracle/xtt
Password: 
res.txt                                                                                             100%  133    94.7KB/s   00:00    
[oracle@asm12c xtt]$ 

step 2.3 在目标端还原数据文件 (数据文件将放置在目标系统上已定义的dest_datafile_location中)

[oracle@dest]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --restore

-bash-4.4$  $ORACLE_HOME/perl/bin/perl xttdriver.pl --restore
============================================================
trace file is /export/home/oracle/xtt/restore_Mar24_Wed_01_08_07_942//Mar24_Wed_01_08_07_942_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Start restore/recover
--------------------------------------------------------------------


--------------------------------------------------------------------
End of restore/recover phase
--------------------------------------------------------------------


--------------------------------------------------------------------
Start restore/recover
--------------------------------------------------------------------


--------------------------------------------------------------------
End of restore/recover phase
--------------------------------------------------------------------

-bash-4.4$ 

phase 3 Roll Forward Phase (3.1 - 3.4 )    
多次备份后, res.txt文件和备份文件要多次传输到目标端
在备份前,制造增量数据,表中插入5条数据 ,这样表中,就有10条数据,数据记录显示的日期不一样。(略)

step 3.1 在源端创建表空间的增量备份 (该动作会对xtt.properties中定义的表空间做增量备份)

[oracle@source]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --backup
export TMPDIR=/home/oracle/xtt
[oracle@asm12c xtt]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --backup
============================================================
trace file is /home/oracle/xtt/backup_Mar24_Wed_10_20_32_728//Mar24_Wed_10_20_32_728_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Backup incremental
--------------------------------------------------------------------

scalar(or1
XXX: adding here for 1, 0, XTTS
Prepare newscn for Tablespaces: 'XTTS'
Prepare newscn for Tablespaces: ''''

--------------------------------------------------------------------
Starting incremental backup
--------------------------------------------------------------------


--------------------------------------------------------------------
Done backing up incrementals
--------------------------------------------------------------------

Prepare newscn for Tablespaces: 'XTTS'
Prepare newscn for Tablespaces: ''''
New /home/oracle/xtt/xttplan.txt with FROM SCN's generated
[oracle@asm12c xtt]$ 

step 3.2 传输增量备份和res.txt文件到目标端   
(从源端备份位置src_scratch_location 到目标端备份位置 dest_scratch_location;res.txt从源端$TMPDIR到目标端$TMPDIR)
(增量备份的文件,存放在incrbackups.txt中 ,如果是NFS,这些文件就不需要传了,但是res.txt文件还是需要的)

[oracle@source]$ scp `cat incrbackups.txt` oracle@dest:/dest_scratch_location  
[oracle@source]$ scp res.txt oracle@dest:/home/oracle/xtt
scp `cat incrbackups.txt` oracle@192.168.2.77:/dest_backups/
scp res.txt oracle@192.168.2.77:/export/home/oracle/xtt/

[oracle@asm12c xtt]$ scp `cat incrbackups.txt` oracle@192.168.2.77:/dest_backups/
Password: 
0avqhjnk_1_1                                                                                        100%   56KB  14.1MB/s   00:00    
[oracle@asm12c xtt]$ 

[oracle@asm12c xtt]$ scp res.txt oracle@192.168.2.77:/export/home/oracle/xtt/
Password: 
res.txt                                                                                             100%  200    99.1KB/s   00:00    
[oracle@asm12c xtt]$ 

step 3.3 将增量备份,应用到目标端的数据文件中  

[oracle@dest]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --restore

-bash-4.4$ export TMPDIR=/export/home/oracle/xtt
-bash-4.4$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --restore
============================================================
trace file is /export/home/oracle/xtt/restore_Mar24_Wed_01_47_09_338//Mar24_Wed_01_47_09_338_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Start restore/recover
--------------------------------------------------------------------


--------------------------------------------------------------------
End of restore/recover phase
--------------------------------------------------------------------

-bash-4.4$ 

step 3.4 重复3.1 - 3.3 (也就是不断增量)

phase 4 ,如果使用了12c及以上版本,则使用2005729.1的方法  (step 4.1 - 4.3 )
Final Incremental Backup  -- If you are running 12c or higher, this step can be replaced by Phase 4 in Note 2005729.1:

step 4.1 在源端将表空间设置为 read only

system@source/prod SQL> alter tablespace TS1 read only;
U_XTTS@test>alter tablespace xtts read only;    

Tablespace altered.

U_XTTS@test>

step 4.2 创建最后一次增量备份,并发送相关文件到目标端   
最后的增量备份是使用参数"--bkpexport"创建的,之后传送这些文件到目标系统:

[oracle@source]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --bkpexport
[oracle@source]$ scp `cat incrbackups.txt` oracle@dest:/stageondest
[oracle@source]$ scp xttplan.txt oracle@dest:home/oracle/xtt
[oracle@source]$ scp tsbkupmap.txt oracle@dest:home/oracle/xtt
[oracle@source]$ scp incrbackups.txt oracle@dest:home/oracle/xtt
$ORACLE_HOME/perl/bin/perl xttdriver.pl --bkpexport
[oracle@asm12c xtt]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --bkpexport
============================================================
trace file is /home/oracle/xtt/bkpexport_Mar24_Wed_10_49_32_244//Mar24_Wed_10_49_32_244_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Backup incremental
--------------------------------------------------------------------

scalar(or1
XXX: adding here for 1, 0, XTTS
Prepare newscn for Tablespaces: 'XTTS'
Prepare newscn for Tablespaces: ''''

--------------------------------------------------------------------
Starting incremental backup
--------------------------------------------------------------------


--------------------------------------------------------------------
Done backing up incrementals
--------------------------------------------------------------------

Prepare newscn for Tablespaces: 'XTTS'
DECLARE*
ERROR at line 1:
ORA-20001: TABLESPACE(S) IS READONLY OR,
OFFLINE JUST CONVERT, COPY
ORA-06512: at line 284

####################################################################
Warning:
------
Warnings found in executing /home/oracle/xtt/bkpexport_Mar24_Wed_10_49_32_244//xttpreparenextiter.sql
####################################################################
Prepare newscn for Tablespaces: ''''
New /home/oracle/xtt/xttplan.txt with FROM SCN's generated
[oracle@asm12c xtt]$ 

--MOS上提示,上面的告警可以忽略 

NOTE:  As the tablespaces are in READ ONLY mode, the following warning received can be ignored:

####################################################################
Warning:
------
Warnings found in executing /home/oracle/convert_source/backup_Nov9_Fri_09_08_26_213//xttpreparenextiter.sql
####################################################################
Prepare newscn for Tablespaces: 'SECOND'
DECLARE*
ERROR at line 1:
ORA-20001: TABLESPACE(S) IS READONLY OR,
OFFLINE JUST CONVERT, COPY
ORA-06512: at line 284 
scp `cat incrbackups.txt` oracle@192.168.2.77:/dest_backups/
scp xttplan.txt oracle@192.168.2.77:/export/home/oracle/xtt/
scp tsbkupmap.txt oracle@192.168.2.77:/export/home/oracle/xtt/
scp incrbackups.txt oracle@192.168.2.77:/export/home/oracle/xtt/

[oracle@asm12c xtt]$ scp `cat incrbackups.txt` oracle@192.168.2.77:/dest_backups/
Password: 
0dvqhlgo_1_1                                                                                        100%  192KB  19.0MB/s   00:00    
0cvqhlgm_1_1                                                                                        100%   56KB  14.5MB/s   00:00    
[oracle@asm12c xtt]$ scp xttplan.txt oracle@192.168.2.77:/export/home/oracle/xtt/
Password: 
xttplan.txt                                                                                         100%   20    13.1KB/s   00:00    
[oracle@asm12c xtt]$ scp tsbkupmap.txt oracle@192.168.2.77:/export/home/oracle/xtt/
Password: 
tsbkupmap.txt                                                                                       100%   42    22.8KB/s   00:00    
[oracle@asm12c xtt]$ scp incrbackups.txt oracle@192.168.2.77:/export/home/oracle/xtt/
Password: 
incrbackups.txt                                                                                     100%   55    53.1KB/s   00:00    
[oracle@asm12c xtt]$ 

step 4.3 应用最后的增量备份到目标系统
最后的增量备份必须使用"--resincrdmp"来应用到目标数据文件

[oracle@dest]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --resincrdmp 

-bash-4.4$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --resincrdmp 
============================================================
trace file is /export/home/oracle/xtt/resincrdmp_Mar24_Wed_02_25_37_854//Mar24_Wed_02_25_37_854_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Start restore/recover
--------------------------------------------------------------------


--------------------------------------------------------------------
End of restore/recover phase
--------------------------------------------------------------------


--------------------------------------------------------------------
Start creating dumpfile
--------------------------------------------------------------------


--------------------------------------------------------------------
End of creating dumpfile
--------------------------------------------------------------------


--------------------------------------------------------------------
Generating plugin
--------------------------------------------------------------------


--------------------------------------------------------------------
Done generating plugin file /export/home/oracle/xtt/xttplugin.txt
--------------------------------------------------------------------

Phase 5 Transport Phase ,导入元数据到目标端
手动导入,也可以通过dblink导入,这里选择手动导入 

step 5.1 在源端运行数据泵

[oracle@source]$ cat exp.par

dumpfile=xttdump.dmp
directory=DATA_PUMP_DIR
statistics=NONE
transport_tablespaces=TS1,TS2
transport_full_check=y
logfile=tts_export.log 

[oracle@source]$ expdp system/manager parfile=exp.par

expdp system/oracle dumpfile=xttdump.dmp directory=DATA_PUMP_DIR statistics=NONE transport_tablespaces=XTTS transport_full_check=y logfile=tts_export.log 
[oracle@asm12c ~]$ expdp system/oracle dumpfile=xttdump.dmp directory=DATA_PUMP_DIR statistics=NONE transport_tablespaces=XTTS transport_full_check=y logfile=tts_export.log

Export: Release 12.2.0.1.0 - Production on Wed Mar 24 11:06:56 2021

Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
Legacy Mode Active due to the following parameters:
Legacy Mode Parameter: "statistics=NONE" Location: Command Line, ignored.
Legacy Mode has set reuse_dumpfiles=true parameter.
Starting "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01":  system/******** dumpfile=xttdump.dmp directory=DATA_PUMP_DIR transport_tablespaces=XTTS transport_full_check=y logfile=tts_export.log reuse_dumpfiles=true 
Processing object type TRANSPORTABLE_EXPORT/TABLE_STATISTICS
Processing object type TRANSPORTABLE_EXPORT/STATISTICS/MARKER
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
Master table "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SYSTEM.SYS_EXPORT_TRANSPORTABLE_01 is:
  /u01/app/oracle/admin/test/dpdump/xttdump.dmp
******************************************************************************
Datafiles required for transportable tablespace XTTS:
  +DATA/TEST/DATAFILE/xtts01.dbf
Job "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01" successfully completed at Wed Mar 24 11:07:55 2021 elapsed 0 00:00:53

[oracle@asm12c ~]$ 

step 5.2 传输数据泵导出的元数据到目标端(略)

[oracle@asm12c ~]$ cd /u01/app/oracle/admin/test/dpdump/
[oracle@asm12c dpdump]$ ls
dp.log  tts_export.log  xttdump.dmp
[oracle@asm12c dpdump]$ scp xttdump.dmp oracle@192.168.2.77:/u01/app/oracle/admin/test/dpdump/
Password: 
xttdump.dmp                                                                                         100%  164KB  24.9MB/s   00:00    
[oracle@asm12c dpdump]$ 

step 5.3 在目标端运行数据泵导入数据 

[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 

impdp system/oracle dumpfile= xttdump.dmp directory=DATA_PUMP_DIR  transport_datafiles='/u01/app/oracle/oradata/TEST/XTTS_2.dbf' 
impdp "'/ as sysdba'" dumpfile= xttdump.dmp directory=TMP_DMP transport_datafiles='/u01/app/oracle/oradata/TEST/XTTS_2.dbf' 

--导入的时候,出现ORA-39006错误,主要原因是之前打PSU的时候,数据泵的worker对应的package为invalid状态,修复后,还是出问题,原因是字符集

-bash-4.4$ impdp "'/ as sysdba'" dumpfile= xttdump.dmp directory=TMP_DMP transport_datafiles='/u01/app/oracle/oradata/TEST/XTTS_2.dbf'
 
Import: Release 19.0.0.0.0 - Production on Wed Mar 24 03:35:43 2021
Version 19.8.1.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
ORA-39006: internal error
-bash-4.4$ impdp "'/ as sysdba'" dumpfile= xttdump.dmp directory=TMP_DMP transport_datafiles='/u01/app/oracle/oradata/TEST/XTTS_2.dbf'
 
Import: Release 19.0.0.0.0 - Production on Wed Mar 24 04:02:20 2021
Version 19.8.1.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Master table "SYS"."SYS_IMPORT_TRANSPORTABLE_01" successfully loaded/unloaded
import done in US7ASCII character set and UTF8 NCHAR character set
export done in AL32UTF8 character set and UTF8 NCHAR character set
Warning: possible data loss in character set conversions
Starting "SYS"."SYS_IMPORT_TRANSPORTABLE_01":  "/******** AS SYSDBA" dumpfile=xttdump.dmp directory=TMP_DMP transport_datafiles=/u01/app/oracle/oradata/TEST/XTTS_2.dbf 
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
ORA-39123: Data Pump transportable tablespace job aborted
ORA-29345: cannot plug a tablespace into a database using an incompatible character set

Job "SYS"."SYS_IMPORT_TRANSPORTABLE_01" stopped due to fatal error at Wed Mar 24 04:02:34 2021 elapsed 0 00:00:09

-bash-4.4$   

-- 重新建立一个数据库,字符集一样。尝试导入成功(因为这个时候,增量已经完成)

oracle@sun11-oracle19c:/export$ impdp "'/ as sysdba'" dumpfile= xttdump.dmp directory=TMP_DMP transport_datafiles='/u01/app/oracle/oradata/TEST/XTTS_2.dbf'

Import: Release 19.0.0.0.0 - Production on Wed Mar 24 04:57:32 2021
Version 19.8.1.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Master table "SYS"."SYS_IMPORT_TRANSPORTABLE_01" successfully loaded/unloaded
Starting "SYS"."SYS_IMPORT_TRANSPORTABLE_01":  "/******** AS SYSDBA" dumpfile=xttdump.dmp directory=TMP_DMP transport_datafiles=/u01/app/oracle/oradata/TEST/XTTS_2.dbf 
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
Processing object type TRANSPORTABLE_EXPORT/TABLE_STATISTICS
Processing object type TRANSPORTABLE_EXPORT/STATISTICS/MARKER
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
Job "SYS"."SYS_IMPORT_TRANSPORTABLE_01" successfully completed at Wed Mar 24 04:58:56 2021 elapsed 0 00:01:20

oracle@sun11-oracle19c:/export$ 

-- 验证数据,10条数据,正常

U_XTTS@xtts>alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';

Session altered.

U_XTTS@xtts>select * from t;

X
-------------------
2021-03-23 15:20:02
2021-03-23 15:20:21
2021-03-23 15:20:28
2021-03-23 15:20:38
2021-03-23 15:20:46
2021-03-24 10:16:35
2021-03-24 10:16:44
2021-03-24 10:16:50
2021-03-24 10:17:26
2021-03-24 10:17:34

10 rows selected.

U_XTTS@xtts>

step 6 Validate the transported data  (略)
step 6.1 检验表空间是否有坏块

RMAN> validate tablespace TS1, TS2 check logical;

step 6.2 将表空间更新为读写

system@dest/prod SQL> alter tablespace TS1 read write;

phase 7 清理  (略)
清理内容:
源端的 src_scratch  
目标端的 dest_scratch
源端和目标端的$TMPDIR  

END

适用于: Oracle Database Cloud Schema Service - 版本 N/A 和更高版本 Oracle Database Exadata Cloud Machine - 版本 N/A 和更高版本 Oracle Cloud Infrastructure - Database Service - 版本 N/A 和更高版本 Oracle Database Exadata Express Cloud Service - 版本 N/A 和更高版本 Oracle Database Backup Service - 版本 N/A 和更高版本 Linux x86-64 用途 注意: 考虑使用新release的版本V4的过程。 这个版本极大地简化了相关步骤。 请参考文档:V4 Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup Note 2471245.1 本文档覆盖了在 12c 及更高版本上,使用跨平台传输表空间(XTTS)以及 RMAN 增量备份,以最小的应用停机时间,在不 同 endian 格式的系统间迁移数据的步骤。 第一步是从源系统拷贝一份 full backup 到目标系统。之后,使用一系列的增量备份(每一份都比前一份要小),这样在停 机前可以做到目标系统的数据和源系统“几乎”一致。需要停机的步骤只有最终的增量备份及元数据导出/导入。 这个文档描述了在 12c 下使用跨平台增量备份的步骤,关于 11g 下的步骤,请您参考 Note:1389592.1。 跨平台增量备份特性并不能减少 XTTS 的其它步骤花费的时间,比如元数据导出/导入。因此,如果数据库内有很多元数据 (DDL),比如 Oracle E-Business Suite 和其它打包程序,那么跨平台增量备份特性并不能带来很多好处;对于这样的 环境,迁移花的大部分时间是花在处理元数据上,而不是数据文件的转换及传输。 只有被迁移表空间里物理存储的数据库对象才会被拷贝至目标系统;如果要迁移存储在其它表空间的其它类型的对象 (比如存储在 SYSTEM 表空间内的 pl/sql 对象,sequences 等),你可以使用数据泵来拷贝这些对象至目标系统。 注意: 考虑使用新release的版本V4的过程。 这个版本极大地简化了相关步骤。 请参考文档:V4 Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup Note 2471245.1 跨平台增量备份的主要步骤有: 1. 初始化设置 2. 准备阶段(源库数据仍然在线) 1. 备份要传输的表空间(0级备份) 2020/1/5 Document 2102859.1 https://myaccess.oraclevpn.com/+CSCO+1075676763663A2F2F7A6266727A632E68662E62656E7079722E70627A++/epmos/faces/Document… 3/14 2. 把备份及其它必须的文件发送到目标系统 3. 在目标系统恢复数据文件至目标端的 endian 格式 3. 前滚阶段(源库数据仍然在线 – 要重复这个阶段足够多次,使得目标数据文件拷贝和源库越相近越好) 1. 在源库创建增量备份 2. 把增量备份及其它必须的文件发送到目标系统 3. 把增量备份转换成目标系统的 endian 格式并且把增量备份应用至目标数据文件 4. 为下次增量备份确定 next_scn 5. 重复这些步骤直到已经准备好了操作传输表空间 NOTE: 在版本3,如果一个数据文件被加入到一个表空间或者一个新的表空间名字被加入到xtt.properties文件,会出现 一个Warning并且需要额外的处置 1. 传输阶段(此时源库数据需要置于 READ ONLY 模式) 1. 在源库端把表空间置为 READ ONLY 2. 最后一次执行前滚阶段的步骤 这个步骤会让目标系统的数据文件拷贝和源库数据文件完全一致并且产生必要导出文件。 在数据量非常大的情况下,这个步骤所花费的时间要显著的少于传统的 XTTS 方式,因为增量备份会很 小。 3. 使用数据泵把这个表空间的元数据导入至目标数据库 4. 把目标数据库的相关表空间置为 READ WRITE
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值