Oracle 数据库配置:从克隆到迁移,全面掌握 PDB 技术

在这里插入图片描述

配置新可插拔数据库的详细步骤

克隆常规 PDB
  1. 定义数据文件位置:

    SET DB_CREATE_FILE_DEST='PDB3dir';
    SET PDB_FILE_NAME_CONVERT='PDB1dir', 'PDB3dir';
    
  2. 连接到 CDB 根目录并关闭 PDB1:

    ALTER PLUGGABLE DATABASE pdb1 CLOSE;
    
  3. 从 PDB1 克隆 PDB3:

    CREATE PLUGGABLE DATABASE pdb3 FROM pdb1
    CREATE_FILE_DEST='PDB3dir';
    
  4. 以读写模式打开 PDB3:

    ALTER PLUGGABLE DATABASE pdb3 OPEN;
    
迁移数据从非 CDB 到 CDB
  1. 使用 Data Pump 插入数据:

    IMPDP sys/*****@CDB1 FULL=Y DIRECTORY=dpump_dir1 DUMPFILE=expdat.dmp LOGFILE=impschema.log
    
  2. 使用 DBMS_PDB 插入 XML 文件定义的非 CDB:

    EXEC DBMS_PDB.DESCRIBE('/tmp/ORCL.xml');
    CREATE PLUGGABLE DATABASE PDB2 USING '/tmp/ORCL.xml';
    
  3. 克隆非 CDB 到 PDB:

    CREATE PLUGGABLE DATABASE pdb2 FROM NON$CDB@link_orcl
    CREATE_FILE_DEST='/new/PDB2';
    
  4. 使用复制技术:

    -- 配置 Oracle GoldenGate 环境
    GGSCI> ADD REPLICAT rep1, EXTTRAIL ./dirdat/aa
    GGSCI> START REPLICAT rep1
    
插入非 CDB 到 CDB 使用 DBMS_PDB
  1. 以只读模式打开 ORCL:

    ALTER DATABASE ORCL OPEN READ ONLY;
    EXEC DBMS_PDB.DESCRIBE('/tmp/ORCL.xml');
    
  2. 在目标 CDB 中创建 PDB2:

    CREATE PLUGGABLE DATABASE PDB2 USING '/tmp/ORCL.xml';
    
  3. 运行 noncdb_to_pdb.sql 脚本:

    @${ORACLE_HOME}/rdbms/admin/noncdb_to_pdb.sql
    
  4. 打开 PDB2:

    ALTER PLUGGABLE DATABASE PDB2 OPEN;
    
克隆非 CDB 或远程 PDB
  1. 以只读模式设置 ORCL:

    ALTER DATABASE ORCL OPEN READ ONLY;
    
  2. 在 CDB 中创建数据库链接:

    CREATE DATABASE LINK link_orcl CONNECT TO system IDENTIFIED BY *** USING 'orcl';
    
  3. 克隆非 CDB:

    CREATE PLUGGABLE DATABASE pdb_orcl FROM NON$CDB@link_orcl
    CREATE_FILE_DEST='/new/PDB_orcl';
    
  4. 运行 noncdb_to_pdb.sql 脚本:

    @${ORACLE_HOME}/rdbms/admin/noncdb_to_pdb.sql
    
  5. 以读写模式打开 PDB:

    ALTER PLUGGABLE DATABASE pdb_orcl OPEN;
    
使用 DBCA 克隆远程 PDB
  1. 创建具有远程 CDB 权限的普通用户:

    CREATE USER remote_user IDENTIFIED BY password;
    GRANT CONNECT, CREATE PLUGGABLE DATABASE TO remote_user;
    
  2. 使用 DBCA 克隆远程 PDB1 到本地 CDB2 的 PDB2:

    dbca -silent -createPluggableDatabase -createFromRemotePDB -remotePDBName PDB1 -remoteDBConnString CDB1 -sysDBAUserName sys -sysDBAPassword password -remoteDBSYSDBAUserName SYS -remoteDBSYSDBAPassword password -dbLinkUsername c##remote_user -dbLinkUserPassword password -sourceDB CDB2 -pdbName PDB2
    
插入已断开的常规 PDB 到 CDB
  1. 从 CDB1 中断开 PDB1:

    ALTER PLUGGABLE DATABASE pdb1 UNPLUG INTO 'xmlfile1';
    DROP PLUGGABLE DATABASE pdb1 KEEP DATAFILES;
    
  2. 将 PDB1 插入到 CDB2:

    CREATE PLUGGABLE DATABASE pdb1 USING 'xmlfile1' NOCOPY;
    ALTER PLUGGABLE DATABASE pdb1 OPEN;
    
使用归档文件插入 PDB
  1. 断开 PDB 到单个归档文件:

    ALTER PLUGGABLE DATABASE pdb1 UNPLUG INTO '/tmp/pdb1.pdb';
    
  2. 插入 PDB 到新 CDB:

    CREATE PLUGGABLE DATABASE pdb_new USING '/tmp/pdb1.pdb';
    
热模式克隆远程 PDB
  1. 连接到目标 CDB2 并创建数据库链接到 CDB1:

    CREATE DATABASE LINK link_cdb1 CONNECT TO system IDENTIFIED BY *** USING 'cdb1';
    
  2. 切换共享 UNDO 模式到本地 UNDO 模式:

    ALTER SYSTEM SET UNDO_MANAGEMENT='LOCAL' SCOPE=BOTH;
    
  3. 克隆远程 PDB1 到 PDB3:

    CREATE PLUGGABLE DATABASE pdb3 FROM pdb1@link_cdb1;
    
  4. 以读/写模式打开 PDB3:

    ALTER PLUGGABLE DATABASE pdb3 OPEN;
    

非常感谢您读到这里!如果您觉得这篇文章对您有帮助,可以关注一下博主。关注后,您将第一时间获得最新的AI、云计算、运维(Linux、数据库,容器等)技术,以及更多实用的技能干货。

提供丰富的学习资源和实践经验,让你快速掌握AI技能;提供最新的行业动态和应用案例,帮助你在AI领域脱颖而出。

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值