XTTS数据迁移方案

2024-04-18 1170阅读
  • 前置条件检查

    XTTS使用限制较多,V3版本按照本节逐项检查

      1. 目标库操作系统不能是windows

    源库:redhut 7.9

    目标库:redhut 7.9

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

    SQL> select dbtimezone from dual;

    XTTS数据迁移方案

    检查结果两边都一致

      1. 检查数据库时间

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

    XTTS数据迁移方案

    检查结果两边都一致

      1. 检查数据库字符集

    SQL> set linesize 120

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

    XTTS数据迁移方案

    检查结果两边都一致

      1. 检查目标端补丁情况

     select 'opatch',comments from dba_registry_history;

    XTTS数据迁移方案

    目标库需要比源库补丁高

      1. 检查两边组件安装

     SQL> Select comp_name from dba_registry;

    XTTS数据迁移方案

    如果两边安装了不一样的组件,请注意。

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

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

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

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

    XTTS数据迁移方案

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

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

    SQL> show parameter compatible;

    XTTS数据迁移方案

    如果目标端数据库版本是 19.0.0 或更低。那么需要在目标端装 19.0.0以上版本 并创建实例,然后用来进行备份集转换。如果 19.0.0以上版本 中转实例使用 ASM。那么 ASM 版本也必须是 19.0.0以上版本,否则报错 ORA-15295

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

    SQL> show parameter recyclebin;

    XTTS数据迁移方案

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

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

    XTTS数据迁移方案

      1. 数据文件状态检查

    SQL> Select distinct status from v$datafile;

    XTTS数据迁移方案

    正常返回应为:ONLINE、SYSTEM

      1. 查看v$transportable_platform检查平台信息

    SQL> col PLATFORM_NAME format a50

    SQL> select * from v$transportable_platform;

    XTTS数据迁移方案

      1. 测试数据构建

    可以查看《oracle数据库验证数据构造方案》

    • 数据迁移
      1. 创建源端和目标端用于存放备份数据文件夹

       pwd

      XTTS数据迁移方案

      mkdir xtts

      ls

      cd xtts/

      ll

      XTTS数据迁移方案

      mkdir source_back

      mkdir source_incr_back

      mkdir target_data

      mkdir target_back

      mkdir target_incr_back

      XTTS数据迁移方案

        1. 下载并解压rman_xttconvert_v3工具

      unzip rman_xttconvert_v3.zip

      XTTS数据迁移方案

      [oracle@source xtts]$ ls

      XTTS数据迁移方案

      su

      chmod -R 775 xtts/

      ll

      XTTS数据迁移方案

        1. 编辑和配置xtt.properties文件

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

      platformid=13    # 表示源OS平台ID

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

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

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

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

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

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

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

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

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

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

      scp -rp /u01/app/oracle/xtts/ root@192.168.238.21:/u01/app/oracle/xtts

      XTTS数据迁移方案

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

      su - oracle

      vi .bash_profile

      export TMPDIR=/u01/app/oracle/xtts

      source .bash_profile

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

      SQL> archive log list

      XTTS数据迁移方案

      XTTS数据迁移方案

      目标端修改为归档模式

      SQL> alter system switch logfile;

      XTTS数据迁移方案

      SQL> archive log list

      XTTS数据迁移方案

      XTTS数据迁移方案

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

      cd /u01/app/oracle/xtts/

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

      XTTS数据迁移方案

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

      [oracle@oramig source_back]$  scp -p /u01/app/oracle/xtts/source_back/*  root@192.168.238.21:/u01/app/oracle/xtts/target_back、

      XTTS数据迁移方案

      目标端给权限

      XTTS数据迁移方案

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

      scp -p rmanconvert.cmd root@192.168.238.21:/u01/app/oracle/xtts/

      XTTS数据迁移方案

        1. 目标端执行如下命令

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

      XTTS数据迁移方案

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

      XTTS数据迁移方案

        1. 开始增量同步

      SQL> alter tablespace MYTBS read only;

      XTTS数据迁移方案

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

      Pwd

      XTTS数据迁移方案

      $ORACLE_HOME/perl/bin/perl /u01/app/oracle/xtts/xttdriver.pl -iXTTS数据迁移方案

      cd source_incr_back/

      Ls

      XTTS数据迁移方案

      scp -p 0f2ntcso_1_1 root@192.168.238.21:/u01/app/oracle/xtts/target_back

      XTTS数据迁移方案

      XTTS数据迁移方案

      cd ..

      scp -p xttplan.txt tsbkupmap.txt root@192.168.238.21:/u01/app/oracle/xtts

      XTTS数据迁移方案

      目标端修改权限

        1. 目标端应用增备

      $ORACLE_HOME/perl/bin/perl /u01/app/oracle/xtts/xttdriver.pl -rXTTS数据迁移方案

        1. 源端导出元数据

      mkdir -p /u01/app/oracle/data

      SQL> create directory source_dbdata as '/u01/app/oracle/data';

      SQL> grant read,write on directory source_dbdata to system;XTTS数据迁移方案

      SQL> select * from dba_directories;

      XTTS数据迁移方案

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

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

       

      XTTS数据迁移方案

      SQL> SELECT * FROM TRANSPORT_SET_VIOLATIONS;

      XTTS数据迁移方案

        1. 源端导出元数据

      cd //u01/app/oracle/data

      expdp system/123456 directory=source_dbdata dumpfile=MYTBS.dmp transport_tablespaces=MYTBS transport_full_check=y

      XTTS数据迁移方案

      ls

      XTTS数据迁移方案

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

      scp -p /u01/app/oracle/data/MYTBS.dmp root@192.168.238.21:/u01/app/oracle/dataXTTS数据迁移方案

        1. 目标端导入元数据

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

      SQL> create user zgc identified by 123456;

      XTTS数据迁移方案

      SQL> grant dba to zgc;

      XTTS数据迁移方案

      SQL> create directory t_dbdata as '/u01/app/oracle/data';

      XTTS数据迁移方案

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

      SQL> grant exp_full_database,imp_full_database to zgc;

      XTTS数据迁移方案

      目标端导入元数据

      pwd

      XTTS数据迁移方案

      impdp zgc/123456 DUMPFILE=MYTBS.dmp DIRECTORY=t_dbdata TRANSPORT_DATAFILES=/u01/app/oracle/xtts/target_data/MYTBS_8.dbf ,/u01/app/oracle/xtts/target_data/MYTBS_9.dbf 、

      XTTS数据迁移方案

        1. 目标端更改zgc默认表空间

      SQL> alter user zgc default tablespace MYTBS;

      XTTS数据迁移方案

      更改表空间zgc状态为读写

      SQL> ALTER TABLESPACE MYTBS read write;

      XTTS数据迁移方案

        1. 源端目标端数据比较

      源端

      XTTS数据迁移方案

      目标端

      XTTS数据迁移方案

      • 问题分析
        1. 问题一
        2. XTTS数据迁移方案

        system 用户没设置密码 设置一下就行了

          1. 问题二

        目标端创建zgc用户时

        SELECT DEFAULT_TABLESPACE FROM USER_TABLESPACES WHERE USERNAME = ‘zgc’;

        说无效的用户名

        解决方法:

        ALTER SESSION SET "_oracle_script"=true;XTTS数据迁移方案

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]