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

克隆常规 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领域脱颖而出。

本文由mdnice多平台发布


逼格高的汤圆
10 声望2 粉丝