参考文档:
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