pdb跨cdb迁移数据库
目录结构 c#
1、迁移说明session
2、迁移图示oracle
3、进行迁移动做的先决条件ide
4、远程cdb迁移一个pdb到本地cdb测试
1、 迁移说明spa
一、While the PDB is being relocated, current DML and DDL operations will pause while they are redirected to the PDB’s new location Queries continue to run with no pauseblog
二、You must use a database link to relocate the PDB. The database link must be created in the CDB that will contain the relocated PDBci
三、When you issue the CREATE PLUGGABLE Creating a PDB by Relocating It DATABASE statement from the root of the CDB that will contain the relocated PDB, you must specify a database link to the remote CDB that contains the PDB being relocated in the FROM clauserem
四、The database link must connect to the root of the remote CDB
五、To redirect connections from the old location of the PDB to the new location, specify the AVAILABILITY MAX clause
2、迁移图示
2.一、迁移图示
2.二、实验环境简介
本地 192.168.5.40:1521 mycdb pdb:mypdb一、mypdb2 数据文件路径 /opt/oracle/oradata/mycdb/
远程 192.168.5.41:1521 youcdb pdb:youpdb 数据文件路径 /opt/oracle/oradata/youcdb/
3、进行迁移动做的先决条件
一、当前操做用户必须在包含待迁移 pdb 的 cdb 中具备 create pluggable database 系统权限
二、pdb 必须具备 local undo mode 权限
三、若 cdb 不是归档模式则 pdb 必须打开为只读模式,不然迁移过去pdb打开会要求恢复。数据不一致。
四、关于数据库链接必须知足条件
数据库链接必须链接到 cdb 的 root 容器
数据库链接用户必须具备create pluggable database系统权限和sysoper管理员权限
数据库链接用户必须是一个公共用户
五、源cdb平台和目标cdb平台的字节顺序必须兼容
4、远程cdb迁移一个pdb到本地cdb
4.一、在远程 cdb 中建立公共用户
create user c##useradmin identified by Passw0rd;
grant CREATE PLUGGABLE DATABASE to c##useradmin container=all;
grant connect,resource,dba,sysoper to c##useradmin container=all;
4.二、在迁移的pdb中查询是否存在建立的公共用户
SELECT A.CON_ID,A.PDB_NAME,B.USERNAME FROM CDB_PDBS A ,CDB_USERS B WHERE A.CON_ID=B.CON_ID AND USERNAME='C##USERADMIN';
CON_ID PDB_NAME USERNAME
---------- -------------------- --------------------------------------------------
3 YOUPDB C##USERADMIN
4.三、在本地cdb建立指向远程cdb的数据库链接
一、create public database link relocpdb connect to c##useradmin identified by Passw0rd using '192.168.5.41:1521/youcdb';
Database link created.
二、数据库连接的测试
SQL> select sysdate from dual@relocpdb;
SYSDATE 二、数据库连接的测试
SQL> select sysdate from dual@relocpdb;
SYSDATE
---------
23-MAY-20
4.四、执行迁移(注意这里迁移库指定pdb名字应该和原来保持一致)
一、迁移源
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 YOUPDB READ WRITE NO
二、目标库
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 MYPDB1 READ WRITE NO
4 MYPDB2 READ WRITE NO
三、执行以下迁移语句
CREATE PLUGGABLE DATABASE youpdb FROM youpdb@relocpdb RELOCATE AVAILABILITY MAX file_name_convert=('/opt/oracle/oradata/youcdb/youpdb/','/opt/oracle/oradata/mycdb/youpdb/');
Pluggable database created.
四、迁移后,迁移pdb在目标库mycdb打开后,源pdb状态变化以下
SQL> alter pluggable database youpdb open;
Pluggable database altered.
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 MYPDB1 READ WRITE NO
4 MYPDB2 READ WRITE NO
5 YOUPDB READ WRITE NO
SQL> alter session set container=youpdb;
Session altered.
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/opt/oracle/oradata/mycdb/youpdb/system01.dbf
/opt/oracle/oradata/mycdb/youpdb/sysaux01.dbf
/opt/oracle/oradata/mycdb/youpdb/undotbs01.dbf
/opt/oracle/oradata/mycdb/youpdb/users01.dbf
迁移后源pdb自动mounted状态
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 YOUPDB MOUNTED