XTTS数据迁移方案

  • 前置条件检查

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

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

源库:redhut 7.9

目标库:redhut 7.9

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

SQL> select dbtimezone from dual;

检查结果两边都一致

    1. 检查数据库时间

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

检查结果两边都一致

    1. 检查数据库字符集

SQL> set linesize 120

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

检查结果两边都一致

    1. 检查目标端补丁情况

 select 'opatch',comments from dba_registry_history;

目标库需要比源库补丁高

    1. 检查两边组件安装

 SQL> Select comp_name from dba_registry;

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

    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');

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

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

SQL> show parameter compatible;

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

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

SQL> show parameter recyclebin;

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

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

    1. 数据文件状态检查

SQL> Select distinct status from v$datafile;

正常返回应为:ONLINE、SYSTEM

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

SQL> col PLATFORM_NAME format a50

SQL> select * from v$transportable_platform;

    1. 测试数据构建

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

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

 pwd

mkdir xtts

ls

cd xtts/

ll

mkdir source_back

mkdir source_incr_back

mkdir target_data

mkdir target_back

mkdir target_incr_back

    1. 下载并解压rman_xttconvert_v3工具

unzip rman_xttconvert_v3.zip

[oracle@source xtts]$ ls

su

chmod -R 775 xtts/

ll

    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

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

su - oracle

vi .bash_profile

export TMPDIR=/u01/app/oracle/xtts

source .bash_profile

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

SQL> archive log list

目标端修改为归档模式

SQL> alter system switch logfile;

SQL> archive log list

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

cd /u01/app/oracle/xtts/

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

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

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

目标端给权限

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

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

    1. 目标端执行如下命令

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

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

    1. 开始增量同步

SQL> alter tablespace MYTBS read only;

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

Pwd

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

cd source_incr_back/

Ls

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

cd ..

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

目标端修改权限

    1. 目标端应用增备

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

    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;

SQL> select * from dba_directories;

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

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

 

SQL> SELECT * FROM TRANSPORT_SET_VIOLATIONS;

    1. 源端导出元数据

cd //u01/app/oracle/data

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

ls

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

scp -p /u01/app/oracle/data/MYTBS.dmp root@192.168.238.21:/u01/app/oracle/data

    1. 目标端导入元数据

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

SQL> create user zgc identified by 123456;

SQL> grant dba to zgc;

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

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

SQL> grant exp_full_database,imp_full_database to zgc;

目标端导入元数据

pwd

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

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

SQL> alter user zgc default tablespace MYTBS;

更改表空间zgc状态为读写

SQL> ALTER TABLESPACE MYTBS read write;

    1. 源端目标端数据比较

源端

目标端

  • 问题分析
    1. 问题一

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

    1. 问题二

目标端创建zgc用户时

SELECT DEFAULT_TABLESPACE FROM USER_TABLESPACES WHERE USERNAME = ‘zgc’;

说无效的用户名

解决方法:

ALTER SESSION SET "_oracle_script"=true;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/816232.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

系统架构设计与优化的几个关键点

1. 业务理解与需求分析 业务场景梳理:深入理解业务流程、业务规则、用户行为模式等,明确系统需要支持的核心功能和应用场景。非功能性需求识别:关注性能指标(如响应时间、并发处理能力、数据吞吐量等)、可用性要求&am…

机器学习和深度学习--李宏毅 (笔记与个人理解)Day 16

Day 16 deep Learning – 鱼与熊掌兼得 最近在减重, 昨天跑了个一公里,然后今天上午又打了个篮球,真是老胳膊老腿了,运动完给我困得不行 Review 见前面的笔记 这里说dl 会提供一个足够大的模型, 来使得Dall loss 足够小…

创业之路:从市场洞察到产品实现的全方位指南

创业是一项挑战性的旅程,需要综合考虑市场、产品、技术、团队等多个方面。在这篇文章中,我们将深入探讨如何更好地进行创业,从市场分析到产品实现的各个环节。 深入市场洞察 在创业之前,深入了解目标市场是至关重要的。我们需要…

Unity类银河恶魔城学习记录12-14 p136 Merge Skill Tree with Sword skill源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili CharacterStats.cs using System.Collections; using System.Collections.…

如何在CentOS中开放指定端口

本文将介绍在CentOS中如何通过firewalld和iptables开放指定端口。 一. firewalld 在CentOS系统中,firewalld是一个动态管理防火墙的守护进程,它提供了一个更加灵活和强大的防火墙管理工具。 以下是在CentOS 7和CentOS 8中使用firewalld开放指定端口的…

【Ubuntu】在 Windows 和 Ubuntu 之间传输文件

在 Ubuntu 上安装 Samba: sudo apt-get update sudo apt-get install samba在 Ubuntu 上创建一个共享文件夹并设置权限: mkdir /home/your_username/shared sudo chown nobody:nogroup /home/your_username/shared sudo chmod 0777 /home/your_username/…

【氮化镓】GaN HEMTs结温和热阻测试方法

文章《Temperature rise detection in GaN high-electron-mobility transistors via gate-drain Schottky junction forward-conduction voltages》,由Xiujuan Huang, Chunsheng Guo, Qian Wen, Shiwei Feng, 和 Yamin Zhang撰写,发表在《Microelectroni…

绿联HDMI延长器40265使用AG7120芯片放大器方案

HDMI延长器和放大器 延长器:主要用于HDMI线的延长,有HDMI对接头方式延长,或HDMI公头加HDMI母头的HDMI线进行延长,或通过网线方式延长,早期为双网线,目前已发展为单网线,需要注意的是&#xff0…

NLP_知识图谱_图谱问答实战

文章目录 图谱问答NERac自动机实体链接实体消歧 多跳问答neo4j_graph执行流程结构图![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/1577c1d9c9e342b3acbf79824aae980f.png)company_data![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/20f567d877c743b…

前后端AES对称加密 前端TS 后端Go

注意点 前后端的秘钥和偏移量IV都必须是16/24/32字节,且需要保持一致。 后端 func (receiver *basicUtils) AesDecrypt(str string) string {// 将加密字符串转换为字节数组encryptedData, _ : base64.StdEncoding.DecodeString(str)// 创建一个新的AES解密器key…

【core analyzer】core analyzer的介绍和安装详情

目录 🌞1. core和core analyzer的基本概念 🌼1.1 coredump文件 🌼1.2 core analyzer 🌞2. core analyzer的安装详细过程 🌼2.1 方式一 简单但不推荐 🌼2.2 方式二 推荐 🌻2.2.1 安装遇到…

TCP/IP 协议栈在 Linux 内核中的 运行时序分析

1、Linux内核概述 1.1 Linux内核结构 一个完整的Linux内核一般由5部分组成,它们分别是内存管理、进程管理、进程间通信、bai虚拟文件系统和网络接口。 1、内存管理 内存管理主要完成的是如何合理有效地管理整个系统的物理内存,同时快速响应内核各个子…

数据可视化基础与应用-04-seaborn库人口普查分析--如何做人口年龄层结构金字塔

总结 本系列是数据可视化基础与应用的第04篇seaborn,是seaborn从入门到精通系列第3篇。本系列主要介绍基于seaborn实现数据可视化。 参考 参考:我分享了一个项目给你《seaborn篇人口普查分析–如何做人口年龄层结构金字塔》,快来看看吧 数据集地址 h…

B3647 【模板】Floyd

【模板】Floyd 题目描述 给出一张由 n n n 个点 m m m 条边组成的无向图。 求出所有点对 ( i , j ) (i,j) (i,j) 之间的最短路径。 输入格式 第一行为两个整数 n , m n,m n,m,分别代表点的个数和边的条数。 接下来 m m m 行,每行三个整数 u …

dalle2介绍

dalle2是一个基于强化学习的图像生成模型,是dalle模型的改进版本。它由OpenAI团队开发,旨在生成高质量的、多样化的图像。 dalle2的核心思想是利用强化学习将图像生成过程转化为一个马尔可夫决策过程。它采用了一个称为"敌对生成网络"&#x…

7 种实现 CSS 三角形的原理与方法 以及 三角形在网页设计中的作用

三角形在网页设计中不仅是图形设计的基本元素,更是实现视觉引导、空间构建、情绪传达、品牌塑造、性能优化以及创新表达的重要工具。其广泛应用和多功能性使其成为设计师手中不可或缺的设计语言组成部分。本文介绍了7种CSS实现三角形的方法。 CSS实现三角形主要有以…

Gin中间件函数原理

在Gin框架中,Context.Next() 方法是中间件处理的核心,它控制着请求处理链(HandlersChain)中的执行流。下面是对这个函数及相关概念的详细解释: func (c *Context) Next() 这个方法定义在 Context 结构体上&#xff0c…

MYSQL执行过程和顺序详解

一、前言 1.1、说明 就MySQL在执行过程、sql执行顺序,以及一些相关关键字的注意点方面的学习分享内容。 在参考文章的基础上,会增加自己的理解、看法,希望本文章能够在您的学习中提供帮助。 如有错误的地方,欢迎指出纠错&…

AdaBoost 算法

目录 什么是 AdaBoost 算法? Adaboost 的 7 个优缺点 集成学习:人多力量大: Bagging:民主。Boosting :挑选精英。长短期记忆网络:引入遗忘机制 生成对抗网络 :物竞天择适者生存 首先,了解一下集成学习及 Boosting 算法 集成学习归属于机器学习,他是一种「训练思路…

Project Euler_Problem 159_Digital Root Sums of Factorisations

原题目&#xff1a; 解题思路&#xff1a; 代码&#xff1a; void solve() {ll i, j,k,x,y,z,p,q,u,v;N 1000000, NN 1024;//N 20;double a, b, c,d;M.NT.get_prime_Euler(2000000);for (i 2; i < N; i) {x (i-1)%91;for (j 2; j<sqrt(i); j) {if (i % j 0) {x …