需求与环境
被克隆的环境 55.34.4.153 RAC 架构,PDB:HKUATBK
克隆目的地:55.14.64.79 单节点
操作步骤
1. 目的库创建到克隆源的tns串
LINK2CD = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 55.34.4.153)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORA19RAC) ) ) |
注意:服务名是CDB层面的服务名 |
2. 目的库创建dblink链接
create public database link LINK2CD connect to SYSTEM identified by SYSTEM using 'LINK2CD'; /* 验证DBLINK*/ select name from v$containers@LINK2CD; |
3. 目的库用户SYSTEM赋予权限
grant create session, create pluggable database to SYSTEM container=all; 注意: 授权时,保证被克隆的PDB处于read write状态,这样,上述语句修改所有PDB(因为是公共用户) |
4. 克隆
create pluggable database HKUATBK from HKUATBK@LINK2CD file_name_convert=('+DATADG','+DATADG');
命令解析:
HKUATBK:目的端需要创建的PDB(可以与源PDB不同名);
HKUATBK@LINK2CD :克隆源端的PDB和指向源端的DB LINK;
file_name_convert:克隆时进行文件名转换;
报错解决
上述报错分析与解决方案:
分析:RAC 下使用OMF,PDB的DATAFILE和TEMPFILE存放在不同的目录,所以TEMPFILE的目录需要单独创建,file_name_convert只转换类DATAFILE
解决方案:目的库相应目录创建对应的TEMPFILE目录;
其他说明:
官方的操作步骤可能还涉及:
1. 数据库兼容性检查;
2. 操作系统大小端检查;
等,由于笔者是两个相同的OS,相同的数据库版本间克隆,所以应该不会有上述问题,直接忽略了。