ORACLE 19C 使用DBCA 实现PDB的热克隆

DBCA平时使用图形界面比较多,但有时在云上,不太方便使用图形界面,这个时候,静默模式,就是一个不错的选择,而且,使用DBCA去进行克隆,不需要手工去建立DBLINK,以及克隆后,都不需要手工去打开克隆的PDB,还是很方便的。

目标:
      使用DBCA 克隆PDB1 到 cdb2,并名为PDB2

环境:
      源:cdb1
      目的:CDB2
      复制的PDB:PDB1
   

前提条件:
     1.两个CDB开启归档
     2.两个CDB使用LOCAL UNDO 
     3.DBLINK连接用户,需要CREATE PLUGGABLE DATABASE 权限
     4.目的端使用OMF

   

 
步骤:


1.开启归档

1.1 CDB1 开启归档
SYS@cdb1 >! mkdir /u01/app/oracle/fast_recovery_area

SYS@cdb1 >alter system set db_recovery_file_dest='/u01/app/oracle/fast_recovery_area';

System altered.

SYS@cdb1 >archive log list;
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     34
Current log sequence           36
SYS@cdb1 >shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SYS@cdb1 >startup mount;
ORACLE instance started.

Total System Global Area 1258287360 bytes
Fixed Size                  9163008 bytes
Variable Size             637534208 bytes
Database Buffers          603979776 bytes
Redo Buffers                7610368 bytes
Database mounted.
SYS@cdb1 >alter database archivelog;

Database altered.

SYS@cdb1 >alter database open;

Database altered.
   
1.2 CDB2开启归档

[oracle@dbserver ~]$ sqlplus /nolog

SQL*Plus: Release 19.0.0.0.0 - Production on Sun Oct 22 11:58:52 2023
Version 19.20.0.0.0

Copyright (c) 1982, 2022, Oracle.  All rights reserved.

@ >conn / as sysdba
Connected.
SYS@cdb2 >archive log list;
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            /u01/app/oracle/product/19.20.0/db_1/dbs/arch
Oldest online log sequence     15
Current log sequence           17
SYS@cdb2 >show parameter recover

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string
db_recovery_file_dest_size           big integer 0
db_unrecoverable_scn_tracking        boolean     TRUE
recovery_parallelism                 integer     0
remote_recovery_file_dest            string
SYS@cdb2 >alter system set db_recovery_file_dest_size=20g;

System altered.

SYS@cdb2 >alter system set db_recovery_file_dest='/u01/app/oracle/fast_recovery_area';

System altered.

SYS@cdb2 >shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SYS@cdb2 >startup mount;
ORACLE instance started.

Total System Global Area 2415918584 bytes
Fixed Size                  9166328 bytes
Variable Size             520093696 bytes
Database Buffers         1879048192 bytes
Redo Buffers                7610368 bytes
Database mounted.
SYS@cdb2 >alter database archivelog;

Database altered.

SYS@cdb2 >alter database open;

Database altered.

2.CDB2 设置OMF

SYS@cdb2 >show parameter db_create

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest                  string
db_create_online_log_dest_1          string
db_create_online_log_dest_2          string
db_create_online_log_dest_3          string
db_create_online_log_dest_4          string
db_create_online_log_dest_5          string
SYS@cdb2 >alter system set db_create_file_dest='/u01/app/oracle/oradata/';

System altered.

3. PDB1 保持打开状态 

SYS@cdb1 >show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           MOUNTED
         4 PDB3                           MOUNTED
         6 PDB_ORCL                       MOUNTED

SYS@cdb1 >alter pluggable database pdb1 open;

Pluggable database altered.

SYS@cdb1 >show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           READ WRITE NO
         4 PDB3                           MOUNTED
         6 PDB_ORCL                       MOUNTED
SYS@cdb1 >


4. 创建DBLINK连接用户


     在 cdb1 中创建DBLINK连接用户,并授予 create pluggable database  权限
     
   SYS@cdb1 >create user c##remote_user
    2         identified by oracle_4U;

   SYS@cdb1 >grant create session,create pluggable database 
    2         to c##remote_user
    3        container=all;

   Grant succeeded.


5.使用 dbca 去进行PDB克隆


[oracle@dbserver ~]$ dbca -silent -createpluggabledatabase -createFromRemotePDB -remotePDBName PDB1  \
>     -remoteDBConnString 192.168.133.120:1521/cdb1  \
>     -remoteDBSYSDBAUserName SYS  \
>     -remoteDBSYSDBAUserPassword oracle_4U  \
>     -sysDBAUserName sys  \
>     -sysDBAPassword oracle_4U  \
>     -dbLinkUsername c##remote_user  \
>     -dbLinkUserPassword oracle_4U  \
>     -sourceDB CDB2 -pdbName PDB2

Prepare for db operation
50% complete
Create pluggable database using remote clone operation
100% complete
Pluggable database "PDB2" plugged successfully.
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/cdb2/PDB2/cdb2.log" for further details.
[oracle@dbserver ~]$ 


6.确认PDB2 状态

[oracle@dbserver ~]$ sqlplus /nolog

SQL*Plus: Release 19.0.0.0.0 - Production on Sun Oct 22 12:02:49 2023
Version 19.20.0.0.0

Copyright (c) 1982, 2022, Oracle.  All rights reserved.

@ >conn / as sysdba
Connected.
SYS@cdb2 >show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB2                           READ WRITE NO
SYS@cdb2 >


7.附录 报错信息


   
  7.1 克隆使用脚本:
 
  dbca -silent -createpluggabledatabase -createFromRemotePDB -remotePDBName PDB1  \
    -remoteDBConnString 192.168.133.120:1521/cdb1  \
    -remoteDBSYSDBAUserName SYS  \
    -remoteDBSYSDBAUserPassword oracle_4U  \
    -sysDBAUserName sys  \
    -sysDBAPassword oracle_4U  \
    -dbLinkUsername c##remote_user  \
    -dbLinkUserPassword oracle_4U  \
    -sourceDB CDB2 -pdbName PDB2
   7.2 报错信息

[oracle@dbserver ~]$ dbca -silent -createpluggabledatabase -createFromRemotePDB -remotePDBName PDB1  \
>     -remoteDBConnString 192.168.133.120:1521/cdb1  \
>     -remoteDBSYSDBAUserName SYS  \
>     -remoteDBSYSDBAUserPassword oracle_4U  \
>     -sysDBAUserName sys  \
>     -sysDBAPassword oracle_4U  \
>     -dbLinkUsername c##remote_user  \
>     -dbLinkUserPassword oracle_4U  \
>     -sourceDB CDB2 -pdbName PDB2
[FATAL] [DBT-08101] The selected PDB (PDB1) is not open.
   CAUSE: PDB has to be open in READ WRITE mode to perform the configuration.


[oracle@dbserver ~]$ dbca -silent -createpluggabledatabase -createFromRemotePDB -remotePDBName PDB1  \
>     -remoteDBConnString 192.168.133.120:1521/cdb1  \
>     -remoteDBSYSDBAUserName SYS  \
>     -remoteDBSYSDBAUserPassword oracle_4U  \
>     -sysDBAUserName sys  \
>     -sysDBAPassword oracle_4U  \
>     -dbLinkUsername c##remote_user  \
>     -dbLinkUserPassword oracle_4U  \
>     -sourceDB CDB2 -pdbName PDB2
[FATAL] [DBT-19401] Archive log mode is not enabled in the (cdb1) database.
   CAUSE: (cdb1) database should be configured with archive log mode to perform the operation.


[oracle@dbserver ~]$ dbca -silent -createpluggabledatabase -createFromRemotePDB -remotePDBName PDB1 \
               -remoteDBConnString 192.168.133.120:1521/cdb1      \
               -remoteDBSYSDBAUserName SYS      \
               -remoteDBSYSDBAUserPassword oracle_4U      \
               -sysDBAUserName sys      \
               -sysDBAPassword oracle_4U      \
               -dbLinkUsername c##remote_user      \
               -dbLinkUserPassword oracle_4U      \
               -sourceDB CDB2 \
               -pdbName PDB2
[FATAL] [DBT-19408] Incompatible location type for PDB operation. Pluggable database operation cannot be performed.
   CAUSE: Remote CDB(cdb1) is configured with Oracle Managed Files (OMF) option. Local CDB(CDB2) is not configured with OMF option.


[oracle@dbserver ~]$ dbca -silent -createpluggabledatabase -createFromRemotePDB -remotePDBName PDB1  \
>     -remoteDBConnString 192.168.133.120:1521/cdb1  \
>     -remoteDBSYSDBAUserName SYS  \
>     -remoteDBSYSDBAUserPassword oracle_4U  \
>     -sysDBAUserName sys  \
>     -sysDBAPassword oracle_4U  \
>     -dbLinkUsername c##remote_user  \
>     -dbLinkUserPassword oracle_4U  \
>     -sourceDB CDB2 -pdbName PDB2
[FATAL] [DBT-19401] Archive log mode is not enabled in the (CDB2) database.
   CAUSE: (CDB2) database should be configured with archive log mode to perform the operation.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值