xtts数据迁移过程,嘎嘎详细

前置条件检查

目标库操作系统不能是windows

源库:redhut 7.9

目标库:redhut 7.9

检查数据库时区(两边都需要)

SQL> select dbtimezone from dual;

检查结果两边都一致

检查数据库时间

SQL> select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') from dual;

检查结果两边都一致

检查数据库字符集

SQL> set linesize 120

SQL> select * from nls_database_parameters where parameter like '%CHARACTERSET%';

检查结果两边都一致

检查目标端补丁情况

 select 'opatch',comments from dba_registry_history;

检查结果两边都一致

检查两边组件安装

 SQL> select comp_name from dba_registry;

检查结果两边都一致

检查是否使用了 Key Compression 的索引组织表

 select index_name,table_name from dba_indexes where compression='ENABLED';

检查sys和system用户在业务表空间上是否创建对象

SQL> select table_name, owner, tablespace_name from dba_tables where tablespace_name not in('SYSTEM','SYSAUX') and owner in ('SYS','SYSTEM');

如果数据库用户 SYS、SYSTEM 在业务表空间上创建有对象,则这些对象不能通过 XTTS 迁移,需要在目标库手工创建。

检查sys和system用户在业务表空间上是否创建对象

SQL> show parameter compatible;

确认生产库的recyclebin功能是关闭,并手工清空回收站

SQL> show parameter recyclebin;

如果数据库这个功能没有关闭,我们需要去关闭

SQL> alter system set recyclebin='off' scope=spfile;

重启数据库再查看

数据文件状态检查

SQL> select distinct status from v$datafile;

查看v$transportable_platform检查平台信息

SQL> col PLATFORM_NAME format a30

SQL> select * from v$transportable_platform;

数据迁移

源端创建用于存放备份数据文件夹

在Oracle用户下创建

mkdir xtts

上传xtts工具

cd xtts

mkdir source_back

mkdir source_incr_back

mkdir target_data

mkdir target_back

mkdir target_incr_back

下载并解压rman_xttconvert_v3工具

unzip rman_xttconvert_v3.zip

su - root

cd /home/oracle

chmod -R 775 xtts/

编辑和配置xtt.properties文件

su - oracle

cd xtts

vim xtt.properties

修改以下内容

tablespaces=HJLQY      # 表示需要迁移的表空间

platformid=13    # 表示源OS平台ID

#srclink=TTSLINK   #表示从目标库指向源库的db_link,由于这里采用的是rman方式,所以不需要db_link

dfcopydir=/home/oracle/xtts/source_back #表示源库备份文件存放目录

backupformat=/home/oracle/xtts/source_incr_back #表示源库增备文件存放目录

stageondest=/home/oracle/xtts/target_back #表示目标库备份文件存放目录

storageondest=/home/oracle/xtts/target_data  #表示目标库正式文件存放目录

backupondest=/home/oracle/xtts/target_incr_back #表示目标库增备文件存放目录

parallel=3  #表示备份转化并行度::

rollparallel=2 #表示增备的并行度

getfileparallel=4  #表示使用 dbms_file_transfer 方式的并行度

将源端xtts目录拷贝到目标端

scp -rp /home/oracle/xtts/ 192.168.145.153:/home/oracle/xtts

传过入后再给xtts目录赋权一下

设置源端和目标端的TMPDIR环境变量

su - oracle

vim .bash_profile

export TMPDIR=/home/oracle/xtts

source .bash_profile

源端和目标端开启归档模式并且换日志

SQL> archive log list

源:

目标:

SQL> alter system switch logfile;

SQL> archive log list

源:

目标:

源端执行如下命令开始初始备份

cd xtts

$ORACLE_HOME/perl/bin/perl /home/oracle/xtts/xttdriver.pl -p

源端查看备份文件,并将备份文件传到目标端

cd source_back/

ll

 scp -p * oracle@192.168.145.153:/home/oracle/xtts/target_back

将源端生成的rmanconvert.cmd文件传到目标端,并执行文件转换命令

scp -p rmanconvert.cmd oracle@192.168.145.153:/home/oracle/xtts/

目标端执行如下命令

$ORACLE_HOME/perl/bin/perl /home/oracle/xtts/xttdriver.pl -c

转换成功之后会生成 xttnewdatafiles.txt文件。

开始增量同步

SQL> alter tablespace HJLQY read only;

源端开始做最后一次增量备份

$ORACLE_HOME/perl/bin/perl /home/oracle/xtts/xttdriver.pl -i

将最后的增备文件传到目标端

cd source_incr_back/

ll

scp -p 032nrce5_1_1 oracle@192.168.145.153:/home/oracle/xtts/target_back

cd ..

scp -p xttplan.txt tsbkupmap.txt 192.168.145.153:/home/oracle/xtts

目标端应用增备

$ORACLE_HOME/perl/bin/perl /home/oracle/xtts/xttdriver.pl -r

源端导出元数据

源端和目标端创建相关的目录并授权

mkdir -p /home/oracle/data

SQL> create directory s_dbdata as '/home/oracle/data';

SQL> grant read,write on directory s_dbdata to system;

SQL> grant exp_full_database,imp_full_database to system;

SQL> select * from dba_directories;

源端检查表空间的自包含性

SQL> EXECUTE DBMS_TTS.TRANSPORT_SET_CHECK('HJLQY', TRUE);

SQL> SELECT * FROM TRANSPORT_SET_VIOLATIONS;

源端导出元数据

expdp system/0000 directory=s_dbdata dumpfile=hjlqy.dmp transport_tablespaces=HJLQY transport_full_check=y

cd data/

ls

将导出的数据拷贝到目标端

scp hjlqy.dmp oracle@192.168.145.153:/home/oracle/data

目标端导入元数据

创建hjl用户,但是不要创建表空间

SQL> create user hjl identified by 1234567890;

SQL> grant dba to hjl;

SQL> create directory t_dbdata as '/home/oracle/data';

SQL> grant read,write on directory t_dbdata to hjl;

SQL> grant exp_full_database,imp_full_database to hjl;

目标端导入元数据

impdp hjl/1234567890 DUMPFILE=hjlqy.dmp DIRECTORY=t_dbdata TRANSPORT_DATAFILES=/home/oracle/xtts/target_data/HJLQY_5.dbf 

目标端更改hjl默认表空间

SQL> alter user hjl default tablespace HJLQY;

更改表空间hjl状态为读写

SQL> ALTER TABLESPACE HJLQY read write;

源端目标端数据比较

源端:

目标端:

数据比对无误,数据迁移完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值