2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PDBのクローンを試す(Oracle Database 18c)

Last updated at Posted at 2019-04-18

Oracle Database 18cではPDBのローカル・クローンにDatabase Configuration Assistant(DBCA)を使うことができるようになりました。この記事ではローカル・クローン方法を3種類試しました。検証ではCDBは基本的にストレージ構成にOMFを使っているので、ファイル名のコンバート等の指定を省略しています。

DBCAを使ったクローン

DBCAを起動し、「Manage Pluggable databases」を選択します。
DBCA Manage Pluggable databases

Pluggable Databaseの管理画面から「Create a Pluggable database」を選択します。
Create a pluggable database

CDBの接続先インスタンスとを指定し、ユーザー名、パスワードを入力します。

Select a container

「Create a new Pluggable database from another PDB」を選択し、クローン元PDBを選択します。

Create a new Pluggable Database from another PDB

新しい名前とオプションを指定します。

Pluggable database name

データファイルの保存先を指定します。

Storage option

最後に確認画面が表示されるので、「Finish」ボタンをクリックします。

Summary

SQL文をつかったクローン

PDBの作成は従来通りCDBに接続してCREATE PLUGGABLE DATABASE文でクローン元を指定するだけです。

$ sqlplus / as sysdba

SQL*Plus: Release 18.0.0.0.0 - Production on Fri Apr 19 14:02:22 2019
Version 18.3.0.0.0

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


Connected to:
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.3.0.0.0

SQL> CREATE PLUGGABLE DATABASE pdb2 FROM pdb1;

Pluggable database created.

RMANを使ったクローン

RMANを使ってもPDBのクローニングを行うことができます。基本的にはコピー先とコピー元のCDBに接続してDUPLICATE文を実行することになります。しかし、ローカル・クローンを行う方法がマニュアルに無いので試行錯誤してみました。
targetとauxiliaryを同じCDB接続にしてDUPLICATE PLUGGABLE DATABASE文を実行します。

ローカル接続

まずtargetとauxiliaryをローカル接続してみます。DUPLICATE PLUGGABLE DATABASE文を実行すると、
ターゲットがネットワーク接続ではない(RMAN-05603)が発生します。

$ rman target / auxiliary /

Recovery Manager: Release 18.0.0.0.0 - Production on Fri Apr 19 13:07:40 2019
Version 18.3.0.0.0

Copyright (c) 1982, 2018, Oracle and/or its affiliates.  All rights reserved.

connected to target database: O18P (DBID=677639375)
connected to auxiliary database: O18P (DBID=677639375)

RMAN> DUPLICATE PLUGGABLE DATABASE pdb1 AS pdb2 FROM ACTIVE DATABASE;

Starting Duplicate PDB at 19-APR-19
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate PDB command at 04/19/2019 13:08:05
RMAN-05501: aborting duplication of target database
RMAN-05603: not connected to target database with a net service name

RMAN>

ターゲットをネット接続

target接続をネットワーク経由にしてみました。まず、初期化パラメーターREMOTE_RECOVERY_FILE_DESTが設定されていない(RMAN-05655)というエラーが発生したため設定を行いました。次にこの初期化パラメーターを設定してから再実行すると、やはりリモート・インスタンスに接続できない(ORA-17629)エラーが発生しました。


$ rman target SYS/password@O18P auxiliary /

Recovery Manager: Release 18.0.0.0.0 - Production on Fri Apr 19 13:08:26 2019
Version 18.3.0.0.0

Copyright (c) 1982, 2018, Oracle and/or its affiliates.  All rights reserved.

connected to target database: O18P (DBID=677639375)
connected to auxiliary database: O18P (DBID=677639375)

RMAN> DUPLICATE PLUGGABLE DATABASE pdb1 AS pdb2 FROM ACTIVE DATABASE;

Starting Duplicate PDB at 19-APR-19
using channel ORA_AUX_DISK_1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate PDB command at 04/19/2019 13:12:16
RMAN-05501: aborting duplication of target database
RMAN-05655: specified REMOTE_RECOVERY_FILE_DEST parameter is NULL

RMAN> DUPLICATE PLUGGABLE DATABASE pdb1 AS pdb2 FROM ACTIVE DATABASE;

Starting Duplicate PDB at 19-APR-19
using channel ORA_AUX_DISK_1
current log archived
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate PDB command at 04/19/2019 13:13:17
RMAN-05501: aborting duplication of target database
RMAN-06136: Oracle error from auxiliary database: ORA-17627:
ORA-17629: Cannot connect to the remote database server

両方のインスタンスをネットワーク経由で接続

targetとauxiliaryを同一インスタンスにネットワーク経由で接続し、DUPLICATE PLUGGABLE DATABASE文を実行します。無事にRMANを使ってローカル・クローンが実行できました。

$ rman target SYS/password@O18P auxiliary SYS/password@O18P

Recovery Manager: Release 18.0.0.0.0 - Production on Fri Apr 19 13:13:54 2019
Version 18.3.0.0.0

Copyright (c) 1982, 2018, Oracle and/or its affiliates.  All rights reserved.

connected to target database: O18P (DBID=677639375)
connected to auxiliary database: O18P (DBID=677639375)

RMAN> DUPLICATE PLUGGABLE DATABASE pdb1 AS pdb2 FROM ACTIVE DATABASE;

Starting Duplicate PDB at 19-APR-19
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=397 device type=DISK
current log archived

contents of Memory Script:
{
   set newname for clone datafile  8 to new;
   set newname for clone datafile  9 to new;
   set newname for clone datafile  10 to new;
   set newname for clone datafile  11 to new;
   restore
   from  nonsparse   clone foreign pluggable database
    "PDB1"
   from service  'O18P'   ;
}
<< 途中省略 >>
current log archived

contents of Memory Script:
{
   set archivelog destination to  '/u01/app/oracle/remote_recovery_area';
   restore clone force from service  'O18P'
           foreign archivelog from scn  880962;
}
executing Memory Script

executing command: SET ARCHIVELOG DESTINATION

Starting restore at 19-APR-19
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting archived log restore to user-specified destination
archived log destination=/u01/app/oracle/remote_recovery_area
channel ORA_AUX_DISK_1: using network backup set from service O18P
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=15
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:06
channel ORA_AUX_DISK_1: starting archived log restore to user-specified destination
archived log destination=/u01/app/oracle/remote_recovery_area
channel ORA_AUX_DISK_1: using network backup set from service O18P
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=16
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:06
Finished restore at 19-APR-19

Performing import of metadata...
Finished Duplicate PDB at 19-APR-19

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?