一、环境检查与配置 1.版本与模式验证 确认源端与目标端数据库版本 ≥12.2 检查字符集和字节序一致性
SELECT USERENV('LANGUAGE') FROM DUAL;
SELECT PLATFORM_ID, PLATFORM_NAME FROM V$DATABASE;
2.用户与权限配置 在目标端 CDB 创建同步用户并授权
CREATE USER c##sync_user IDENTIFIED BY password CONTAINER=ALL; GRANT CREATE SESSION, CREATE PLUGGABLE DATABASE, SYSDBA TO c##sync_user;
3.网络与存储配置 配置 TNS 连接,确保源端与目标端网络互通。 若使用非 OMF 存储,设置PDB_FILE_NAME_CONVERT?参数以转换文件路径:
ALTER SYSTEM SET PDB_FILE_NAME_CONVERT='+DATA/SOURCE','+DATA/TARGET' SCOPE=SPFILE;
二、初始化同步准备 1.创建可刷新 PDB,在目标端执行以下命令建立同步链路:
CREATE PLUGGABLE DATABASE target_pdb FROM source_pdb@source_dblink
REFRESH MODE MANUAL
FILE_NAME_CONVERT=('+DATA/SOURCE','+DATA/TARGET');
source_dblink需指向源端 CDB 2.第一次全量同步,打开目标端 PDB 并执行初始数据同步
ALTER PLUGGABLE DATABASE target_pdb OPEN; ALTER PLUGGABLE DATABASE target_pdb REFRESH;
此操作将完整复制源端 PDB 数据至目标端 3.前置修复脚本执行 使用pre-upgrade工具检查并修复兼容性问题
源端执行检查 @preupgrd.sql 根据报告修复问题 @preupgrade_fixups.sql
确保组件状态为:VALID 三、数据一致性验证 1.基础对象校验,对比源端与目标端表空间及对象数量
SELECT TABLESPACE_NAME FROM CDB_TABLESPACES WHERE CON_ID=PDB_ID; SELECT COUNT(*) FROM DBA_OBJECTS;
2.增量同步验证,手动触发增量刷新并监控进度:
ALTER PLUGGABLE DATABASE target_pdb REFRESH;
3.查看刷新进度
SELECT * FROM V$SESSION_LONGOPS WHERE OPNAME LIKE '%refresh%';
4.正式割接与数据验证 最后一次增量同步,停止源端 PDB 写入:
ALTER PLUGGABLE DATABASE source_pdb CLOSE IMMEDIATE; ALTER PLUGGABLE DATABASE source_pdb OPEN READ ONLY;
在目标端执行最终刷新:
ALTER PLUGGABLE DATABASE target_pdb REFRESH PARALLEL 4;
切换为读写模式,关闭刷新功能并激活目标 PDB
ALTER PLUGGABLE DATABASE target_pdb CLOSE; ALTER PLUGGABLE DATABASE target_pdb OPEN READ WRITE;
5.数据一致性验证 检查表空间与对象数量:
SELECT TABLESPACE_NAME FROM CDB_TABLESPACES WHERE CON_ID=PDB_ID; SELECT COUNT(*) FROM DBA_OBJECTS;
使用DBMS_COMPARISON包对比关键表数据差异
