oracle xtts 解决跨平台迁移之一 Recovery Manager (RMAN)

os: centos 7.4.1708
db: oracle 11.2.0.4

xtts 是 tts 的加强版,主要用在表空间迁移上,限制是源端和目标端的数据库版本必须一致.

V4 Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup (Doc ID 2471245.1)
已经明确指出 DBMS_FILE_TRANSFER 已经不再支持。

The Cross Platform Incremental Backup core functionality was delivered in Oracle Database 11.2.0.4 and later. Some of the features in the prior versions (such as using DBMS_FILE_TRANSFER) are not available in this Version 4. If you need such functionality, use the standard procedure for 11g outlined in Note 1389592.1. The procedures outlined in this note applies to both Oracle 11.2.0.4 , 12c and later. See the Requirements and Recommendations section for details. In addition, a set of supporting scripts in the file rman_xttconvert_VER4.zip is attached to this document that are used to manage the procedure required to perform XTTS with Cross Platform Incremental Backup using Version 4.

规划

source target
os centos 7.4 centos 7.4
ip 192.168.56.220 192.168.56.201
db 11.2.0.4 11.2.0.4
sid orcl orcl

版本

# cat /etc/centos-release
CentOS Linux release 7.4.1708 (Core)
#
# su - oracle
$ sqlplus / as sysdba;

SQL> set lines 200;
set pages 200;
SQL>
SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE11.2.0.4.0Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production

Phase 1 - Initial setup

目标端安装 RDBMS 软件,创建数据库

这个就没啥好啰嗦了


源端设置 rman_xttconvert_VER4.zip

# su - oracle
$ mkdir xtts
$ cd xtts
$ rz
$ unzip rman_xttconvert_VER4.3.zip

源端配置 src_scratch_location 目录

源端创建数据文件的目录

# su - oracle
$ mkdir xtts_rman_sour

目标端配置 dest_scratch_location、dest_datafile_location 目录

# su - oracle
$ mkdir xtts;mkdir xtts_rman_dest;

源端配置 xtt.properties

源端创建数据文件的目录

# su - oracle
$ cd xtts_rman_sour
$ vi xtt.properties

tablespaces=XTTS_TBS
platformid=13
src_scratch_location=/home/oracle/xtts_rman_sour
dest_datafile_location=/u01/app/oracle/oradata/orcl
dest_scratch_location=/home/oracle/xtts_rman_dest
parallel=2
rollparallel=2
getfileparallel=4

查询平台代码

SQL> select * from v$transportable_platform order by platform_id;

源端复制 xttconvert scripts and xtt.properties 到目标端

# su - oracle
$ cd xtts
$ scp ./* 192.168.56.201:/home/oracle/xtts

源端设置 TMPDIR

$ export TMPDIR=/home/oracle/xtts

Phase 2 - Prepare phase

源端基础备份

# su - oracle
$ cd xtts
$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --backup

源端传输基础备份到目标端

# su - oracle
$ cd xtts
$ scp /home/oracle/xtts_rman_sour/* 192.168.56.201:/home/oracle/xtts_rman_dest/
$ scp res.txt 192.168.56.201:/home/oracle/xtts

目标端还原文件

# su - oracle
$ cd xtts
$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --restore

Phase 3 - Roll Forward Phase

源端增量备份

# su - oracle
$ cd xtts
$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --backup

源端传输增量备份到目标端

# su - oracle
$ cd xtts
$ scp `cat incrbackups.txt` 192.168.56.201:/home/oracle/xtts_rman_dest/
$ scp res.txt 192.168.56.201:/home/oracle/xtts

目标端还原文件

# su - oracle
$ cd xtts
$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --restore

可以重复 Phase 3 - Roll Forward Phase 步骤以减少后面的停机时间。

Phase 4 - Final Incremental Backup

源端设置表空间为只读

SQL> alter tablespace XTTS_TBS read only;

源端最后增量备份

# su - oracle
$ cd xtts
$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --backup

表空间设置为 read only 后,如下的错误可以忽略

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

源端传输最后增量备份到目标端

# su - oracle
$ cd xtts
$ scp `cat incrbackups.txt` 192.168.56.201:/home/oracle/xtts_rman_dest/
$ scp res.txt 192.168.56.201:/home/oracle/xtts

目标端还原文件

# su - oracle
$ cd xtts
$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --restore

Phase 5 - Transport Phase: Import Object Metadata into Destination Database

There are two options, running manually or running across sqlnet:
本次选择手动运行 expdp/impdp

源端执行 expdp

# su - oracle
$ mkdir expdp
$ vi exp.par

dumpfile=xttdump.dmp
directory=DATA_PUMP_DIR
statistics=NONE
transport_tablespaces=XTTS_TBS
transport_full_check=y
logfile=tts_export.log
cluster=n

$ expdp system/oracle parfile=exp.par

源端传输 datapump 文件到目标端

$ scp /u01/app/oracle/product/11.2.0/db_1/rdbms/log/xttdump.dmp 192.168.56.201:/u01/app/oracle/product/11.2.0/db_1/rdbms/log/

目标端执行 impdp

# su - oracle
$ mkdir impdp
$ vi manual_imp.par
dumpfile= xttdump.dmp
directory=DATA_PUMP_DIR
transport_datafiles='/u01/app/oracle/oradata/orcl/XTTS_TBS_7.dbf'

$ impdp system/oracle parfile=manual_imp.par 

Phase 6 - Validate the Transported Data

目标端检查表空间是否存在错误

# su - oracle
$ rman target /

RMAN> validate tablespace XTTS_TBS check logical;

目标端表空间置位 read write

# su - oracle
$ sqlplus / as sysdba

SQL> alter tablespace XTTS_TBS read write;

Phase 7 - Cleanup

src_scratch location on the source system
dest_scratch location on the destination system
$TMPDIR location in both source and destination systems

参考:
V4 Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup (Doc ID 2471245.1)

11G - Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup (Doc ID 1389592.1)
Known Issues for Cross Platform Transportable Tablespaces XTTS (Doc ID 2311677.1)

https://www.oracle.com/technetwork/database/features/availability/maa-wp-11g-platformmigrationtts-129269.pdf

(0)

相关推荐