バックアップベースでデータベースを複製する方法(duplicate database)

Oracle Master Gold

Oracleデータベースの複製(duplicate)は、開発・検証・テスト用途に非常に有用な機能です。この記事では、RMAN(Recovery Manager)を使用して、ソースDBのバックアップからターゲットDBを複製する手順を、実践的かつ丁寧に解説します。接続にはtnsnames.oraを用いた接続識別子方式を採用しています。

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?


■ この記事の対象読者

  • Oracle初心者の方
  • テスト環境を構築したいDB管理者
  • duplicate databaseの全体像を把握したい方

■ RMAN複製のメリットとは?

RMANによるデータベース複製は、以下のような場面で非常に役立ちます:

  • 開発・テスト環境の構築
  • トラブル調査や不具合の再現検証
  • 教育・研修用の環境準備
  • 本番データの一部マスキング後の提供

duplicateコマンドを使用すると、データファイル、制御ファイル、アーカイブログを含む、完全な状態のクローンを別SIDで作成可能です。


■ 環境構成

[ソースデータベース]
  SID        : v19

[ターゲット(複製先)データベース]
  SID        : orcl

■ ソース側:バックアップの取得

まず、複製に必要なバックアップを取得します。アーカイブログモードが有効であることを確認しましょう。

$ export ORACLE_SID=v19
$ rman target /

RMAN> backup database plus archivelog;

このコマンドで、フルバックアップアーカイブログが取得され、複製処理に必要なリソースが準備されます。


■ ターゲット側:環境準備手順

1. 初期化パラメータファイル(PFILE)作成

$ vi /var/tmp/init.ora
DB_NAME=orcl

2. 環境変数の設定

$ export ORACLE_SID=orcl

3. パスワードファイル作成

$ orapwd file=$ORACLE_HOME/dbs/orapworcl password=oracle entries=10 format=12

4. listener.oraの静的構成

$ vi $ORACLE_HOME/network/admin/listener.ora

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.50 )(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))))

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = orcl)
      (ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1)))

5. リスナー起動

$ lsnrctl start

6. tnsnames.ora設定(接続識別子の定義)

$ vi $ORACLE_HOME/network/admin/tnsnames.ora

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.19)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)))

7. インスタンス起動(nomount)

$ sqlplus / as sysdba
SQL> startup nomount pfile=/var/tmp/init.ora
[oracle@v19single ~]$ vi /var/tmp/init.ora
[oracle@v19single ~]$ cat /var/tmp/init.ora
DB_NAME=orcl
[oracle@v19single ~]$ export ORACLE_SID=orcl
[oracle@v19single ~]$ echo $ORACLE_SID
orcl
[oracle@v19single ~]$ vi $ORACLE_HOME/network/admin/listener.ora
[oracle@v19single ~]$ cat $ORACLE_HOME/network/admin/listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.50 )(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))))

SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=orcl)
(ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1)))
[oracle@v19single ~]$ lsnrctl start

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 30-3月 -2025 11:01:42

Copyright (c) 1991, 2023, Oracle. All rights reserved.

/u01/app/oracle/product/19.0.0/dbhome_1/bin/tnslsnrを起動しています。お待ちください...

TNSLSNR for Linux: Version 19.0.0.0.0 - Production
システム・パラメータ・ファイルは/u01/app/oracle/product/19.0.0/dbhome_1/network/admin/listener.oraです。
ログ・メッセージを/u01/app/oracle/diag/tnslsnr/v19single/listener/alert/log.xmlに書き込みました。
リスニングしています: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.50)(PORT=1521)))
リスニングしています: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.50)(PORT=1521)))に接続中
リスナーのステータス
------------------------
別名 LISTENER
バージョン TNSLSNR for Linux: Version 19.0.0.0.0 - Production
開始日 30-3月 -2025 11:01:42
稼働時間 0 日 0 時間 0 分 0 秒
トレース・レベル off
セキュリティ ON: Local OS Authentication
SNMP OFF
パラメータ・ファイル /u01/app/oracle/product/19.0.0/dbhome_1/network/admin/listener.ora
ログ・ファイル /u01/app/oracle/diag/tnslsnr/v19single/listener/alert/log.xml
リスニング・エンドポイントのサマリー...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.50)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
サービスのサマリー...
サービス"orcl"には、1件のインスタンスがあります。
インスタンス"orcl"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります...
コマンドは正常に終了しました。
[oracle@v19single ~]$ orapwd file=$ORACLE_HOME/dbs/orapworcl password=oracle entries=10 format=12
[oracle@v19single ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on 日 3月 30 11:39:42 2025
Version 19.21.0.0.0

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

アイドル・インスタンスに接続しました。

SQL> startup nomount pfile=/var/tmp/init.ora
ORACLEインスタンスが起動しました。

Total System Global Area 218102080 bytes
Fixed Size 8923456 bytes
Variable Size 188743680 bytes
Database Buffers 16777216 bytes
Redo Buffers 3657728 bytes
SQL> exit
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.21.0.0.0との接続が切断されました。
[oracle@v19single ~]$

■ RMANで複製を実行する手順

1. RMAN起動とソースDB接続

$ export ORACLE_SID=v19
$ rman target /

2. ターゲットDB(補助)に接続(接続識別子を使用)

RMAN> connect auxiliary sys/oracle@ORCL

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?

3. duplicateコマンド実行

RMAN> duplicate target database to orcl
  spfile
    parameter_value_convert 'V19','ORCL'
    set db_file_name_convert='/u01/app/oracle/oradata/V19','/u01/app/oracle/oradata/ORCL'
    set log_file_name_convert='/u01/app/oracle/oradata/V19','/u01/app/oracle/oradata/ORCL'
    set control_files='/u01/app/oracle/oradata/ORCL/control01.ctl'
  nofilenamecheck;

💡 nofilenamecheckは、ソースとターゲットのファイルパスが重複していても強制的に実行するオプションです。

[oracle@v19single ~]$ echo $ORACLE_SID
v19
[oracle@v19single ~]$ vi $ORACLE_HOME/network/admin/tnsnames.ora
[oracle@v19single ~]$ cat $ORACLE_HOME/network/admin/tnsnames.ora
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.50 )(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl )
)
)
[oracle@v19single ~]$ rman target /

Recovery Manager: Release 19.0.0.0.0 - Production on 日 3月 30 12:00:56 2025
Version 19.21.0.0.0

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

ターゲット・データベース: V19 (DBID=2957249400)に接続されました

RMAN> connect auxiliary sys/oracle@orcl

補助データベース: ORCLに接続されました(マウントされていません)

RMAN> duplicate target database to orcl
2> spfile
3> parameter_value_convert 'V19','ORCL'
4> set db_file_name_convert='/u01/app/oracle/oradata/V19','/u01/app/oracle/oradata/ORCL'
5> set log_file_name_convert='/u01/app/oracle/oradata/V19','/u01/app/oracle/oradata/ORCL'
6> set control_files='/u01/app/oracle/oradata/ORCL/control01.ctl'
7> nofilenamecheck;

Duplicate Dbを25-03-30で開始しています
リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
チャネル: ORA_AUX_DISK_1が割り当てられました
チャネルORA_AUX_DISK_1: SID=37 デバイス・タイプ=DISK
現在のログがアーカイブされました。

メモリー・スクリプトの内容:
{
set until scn 2286124;
restore clone spfile to '/u01/app/oracle/product/19.0.0/dbhome_1/dbs/spfileorcl.ora';
sql clone "alter system set spfile= ''/u01/app/oracle/product/19.0.0/dbhome_1/dbs/spfileorcl.ora''";
}
メモリー・スクリプトを実行しています

実行コマンド: SET until clause

restoreを25-03-30で開始しています
チャネルORA_AUX_DISK_1の使用

WARNING: A restore time was estimated based on the supplied UNTIL SCN
チャネルORA_AUX_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_AUX_DISK_1: SPFILEをリストアしています
出力ファイル名=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/spfileorcl.ora
チャネルORA_AUX_DISK_1: バックアップ・ピース/u01/app/oracle/product/19.0.0/dbhome_1/dbs/c-2957249400-20250330-02から読取り中です
チャネルORA_AUX_DISK_1: ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/c-2957249400-20250330-02 タグ=TAG20250330T114216
チャネルORA_AUX_DISK_1: バックアップ・ピース1がリストアされました
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:01
restoreを25-03-30で終了しました

SQL文: alter system set spfile= ''/u01/app/oracle/product/19.0.0/dbhome_1/dbs/spfileorcl.ora''

メモリー・スクリプトの内容:
{
sql clone "alter system set db_name =
''ORCL'' comment=
''duplicate'' scope=spfile";
sql clone "alter system set db_file_name_convert =
''/u01/app/oracle/oradata/V19'', ''/u01/app/oracle/oradata/ORCL'' comment=
'''' scope=spfile";
sql clone "alter system set log_file_name_convert =
''/u01/app/oracle/oradata/V19'', ''/u01/app/oracle/oradata/ORCL'' comment=
'''' scope=spfile";
sql clone "alter system set control_files =
''/u01/app/oracle/oradata/ORCL/control01.ctl'' comment=
'''' scope=spfile";
shutdown clone immediate;
startup clone nomount;
}
メモリー・スクリプトを実行しています

SQL文: alter system set db_name = ''ORCL'' comment= ''duplicate'' scope=spfile

SQL文: alter system set db_file_name_convert = ''/u01/app/oracle/oradata/V19'', ''/u01/app/oracle/oradata/ORCL'' comment= '''' scope=spfile

SQL文: alter system set log_file_name_convert = ''/u01/app/oracle/oradata/V19'', ''/u01/app/oracle/oradata/ORCL'' comment= '''' scope=spfile

SQL文: alter system set control_files = ''/u01/app/oracle/oradata/ORCL/control01.ctl'' comment= '''' scope=spfile

Oracleインスタンスがシャットダウンしました

補助データベースに接続されました(開始されていません)
Oracleインスタンスが起動しました

システム・グローバル領域の合計は、 255851248バイトです。

Fixed Size 8923888バイト
Variable Size 226492416バイト
Database Buffers 16777216バイト
Redo Buffers 3657728バイト

メモリー・スクリプトの内容:
{
sql clone "alter system set db_name =
''V19'' comment=
''Modified by RMAN duplicate'' scope=spfile";
sql clone "alter system set db_unique_name =
''ORCL'' comment=
''Modified by RMAN duplicate'' scope=spfile";
shutdown clone immediate;
startup clone force nomount
restore clone primary controlfile;
alter clone database mount;
}
メモリー・スクリプトを実行しています

SQL文: alter system set db_name = ''V19'' comment= ''Modified by RMAN duplicate'' scope=spfile

SQL文: alter system set db_unique_name = ''ORCL'' comment= ''Modified by RMAN duplicate'' scope=spfile

Oracleインスタンスがシャットダウンしました

Oracleインスタンスが起動しました

システム・グローバル領域の合計は、 255851248バイトです。

Fixed Size 8923888バイト
Variable Size 226492416バイト
Database Buffers 16777216バイト
Redo Buffers 3657728バイト

restoreを25-03-30で開始しています
チャネル: ORA_AUX_DISK_1が割り当てられました
チャネルORA_AUX_DISK_1: SID=423 デバイス・タイプ=DISK

チャネルORA_AUX_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_AUX_DISK_1: 制御ファイルをリストア中です
チャネルORA_AUX_DISK_1: バックアップ・ピース/u01/app/oracle/product/19.0.0/dbhome_1/dbs/c-2957249400-20250330-02から読取り中です
チャネルORA_AUX_DISK_1: ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/c-2957249400-20250330-02 タグ=TAG20250330T114216
チャネルORA_AUX_DISK_1: バックアップ・ピース1がリストアされました
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:01
出力ファイル名=/u01/app/oracle/oradata/ORCL/control01.ctl
restoreを25-03-30で終了しました

データベースがマウントされました。

メモリー・スクリプトの内容:
{
set until scn 2286124;
set newname for datafile 1 to
"/u01/app/oracle/oradata/ORCL/system01.dbf";
set newname for datafile 3 to
"/u01/app/oracle/oradata/ORCL/sysaux01.dbf";
set newname for datafile 4 to
"/u01/app/oracle/oradata/ORCL/undotbs01.dbf";
set newname for datafile 7 to
"/u01/app/oracle/oradata/ORCL/users01.dbf";
restore
clone database
;
}
メモリー・スクリプトを実行しています

実行コマンド: SET until clause

実行コマンド: SET NEWNAME

実行コマンド: SET NEWNAME

実行コマンド: SET NEWNAME

実行コマンド: SET NEWNAME

restoreを25-03-30で開始しています
チャネルORA_AUX_DISK_1の使用

チャネルORA_AUX_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_AUX_DISK_1: バックアップ・セットからリストアするデータファイルを指定しています
チャネルORA_AUX_DISK_1: データファイル00001を/u01/app/oracle/oradata/ORCL/system01.dbfにリストアしています
チャネルORA_AUX_DISK_1: データファイル00003を/u01/app/oracle/oradata/ORCL/sysaux01.dbfにリストアしています
チャネルORA_AUX_DISK_1: データファイル00004を/u01/app/oracle/oradata/ORCL/undotbs01.dbfにリストアしています
チャネルORA_AUX_DISK_1: データファイル00007を/u01/app/oracle/oradata/ORCL/users01.dbfにリストアしています
チャネルORA_AUX_DISK_1: バックアップ・ピース/u01/app/oracle/product/19.0.0/dbhome_1/dbs/043ll0o9_4_1_1から読取り中です
チャネルORA_AUX_DISK_1: ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/043ll0o9_4_1_1 タグ=TAG20250330T114201
チャネルORA_AUX_DISK_1: バックアップ・ピース1がリストアされました
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:07
restoreを25-03-30で終了しました

メモリー・スクリプトの内容:
{
switch clone datafile all;
}
メモリー・スクリプトを実行しています

データファイル1はデータファイル・コピーに切り替えられました
入力データファイル・コピー レコードID=5 スタンプ=1197115367 ファイル名=/u01/app/oracle/oradata/ORCL/system01.dbf
データファイル3はデータファイル・コピーに切り替えられました
入力データファイル・コピー レコードID=6 スタンプ=1197115367 ファイル名=/u01/app/oracle/oradata/ORCL/sysaux01.dbf
データファイル4はデータファイル・コピーに切り替えられました
入力データファイル・コピー レコードID=7 スタンプ=1197115367 ファイル名=/u01/app/oracle/oradata/ORCL/undotbs01.dbf
データファイル7はデータファイル・コピーに切り替えられました
入力データファイル・コピー レコードID=8 スタンプ=1197115367 ファイル名=/u01/app/oracle/oradata/ORCL/users01.dbf

メモリー・スクリプトの内容:
{
set until scn 2286124;
recover
clone database
delete archivelog
;
}
メモリー・スクリプトを実行しています

実行コマンド: SET until clause

recoverを25-03-30で開始しています
チャネルORA_AUX_DISK_1の使用

実行中: alter database datafile 5 offline
メディア・リカバリを開始しています

スレッド1 (順序18)のアーカイブ・ログは、ファイル/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_18_1153872185.dbfとしてディスクにすでに存在します
スレッド1 (順序19)のアーカイブ・ログは、ファイル/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_19_1153872185.dbfとしてディスクにすでに存在します
スレッド1 (順序20)のアーカイブ・ログは、ファイル/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_20_1153872185.dbfとしてディスクにすでに存在します
スレッド1 (順序21)のアーカイブ・ログは、ファイル/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_21_1153872185.dbfとしてディスクにすでに存在します
アーカイブ・ログ・ファイル名=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_18_1153872185.dbf スレッド=1 順序=18
アーカイブ・ログ・ファイル名=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_19_1153872185.dbf スレッド=1 順序=19
アーカイブ・ログ・ファイル名=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_20_1153872185.dbf スレッド=1 順序=20
アーカイブ・ログ・ファイル名=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_21_1153872185.dbf スレッド=1 順序=21
メディア・リカバリが完了しました。経過時間: 00:00:00
recoverを25-03-30で終了しました
Oracleインスタンスが起動しました

システム・グローバル領域の合計は、 255851248バイトです。

Fixed Size 8923888バイト
Variable Size 226492416バイト
Database Buffers 16777216バイト
Redo Buffers 3657728バイト

メモリー・スクリプトの内容:
{
sql clone "alter system set db_name =
''ORCL'' comment=
''Reset to original value by RMAN'' scope=spfile";
sql clone "alter system reset db_unique_name scope=spfile";
}
メモリー・スクリプトを実行しています

SQL文: alter system set db_name = ''ORCL'' comment= ''Reset to original value by RMAN'' scope=spfile

SQL文: alter system reset db_unique_name scope=spfile
Oracleインスタンスが起動しました

システム・グローバル領域の合計は、 255851248バイトです。

Fixed Size 8923888バイト
Variable Size 226492416バイト
Database Buffers 16777216バイト
Redo Buffers 3657728バイト
SQL文: CREATE CONTROLFILE REUSE SET DATABASE "ORCL" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 ( '/u01/app/oracle/oradata/ORCL/redo01.log' ) SIZE 200 M REUSE,
GROUP 2 ( '/u01/app/oracle/oradata/ORCL/redo02.log' ) SIZE 200 M REUSE,
GROUP 3 ( '/u01/app/oracle/oradata/ORCL/redo03.log' ) SIZE 200 M REUSE
DATAFILE
'/u01/app/oracle/oradata/ORCL/system01.dbf'
CHARACTER SET AL32UTF8


メモリー・スクリプトの内容:
{
set newname for tempfile 1 to
"/u01/app/oracle/oradata/ORCL/temp01.dbf";
switch clone tempfile all;
catalog clone datafilecopy "/u01/app/oracle/oradata/ORCL/sysaux01.dbf",
"/u01/app/oracle/oradata/ORCL/undotbs01.dbf",
"/u01/app/oracle/oradata/ORCL/users01.dbf";
switch clone datafile all;
}
メモリー・スクリプトを実行しています

実行コマンド: SET NEWNAME

制御ファイルで一時ファイル1の名前を/u01/app/oracle/oradata/ORCL/temp01.dbfに変更しました

データファイル・コピーがカタログに入りました
データファイル・コピーのファイル名=/u01/app/oracle/oradata/ORCL/sysaux01.dbf レコードID=1 スタンプ=1197115389
データファイル・コピーがカタログに入りました
データファイル・コピーのファイル名=/u01/app/oracle/oradata/ORCL/undotbs01.dbf レコードID=2 スタンプ=1197115389
データファイル・コピーがカタログに入りました
データファイル・コピーのファイル名=/u01/app/oracle/oradata/ORCL/users01.dbf レコードID=3 スタンプ=1197115389

データファイル3はデータファイル・コピーに切り替えられました
入力データファイル・コピー レコードID=1 スタンプ=1197115389 ファイル名=/u01/app/oracle/oradata/ORCL/sysaux01.dbf
データファイル4はデータファイル・コピーに切り替えられました
入力データファイル・コピー レコードID=2 スタンプ=1197115389 ファイル名=/u01/app/oracle/oradata/ORCL/undotbs01.dbf
データファイル7はデータファイル・コピーに切り替えられました
入力データファイル・コピー レコードID=3 スタンプ=1197115389 ファイル名=/u01/app/oracle/oradata/ORCL/users01.dbf

メモリー・スクリプトの内容:
{
Alter clone database open resetlogs;
}
メモリー・スクリプトを実行しています

データベースがオープンしました。
Duplicate Dbを25-03-30で終了しました

RMAN>

■ 複製処理の主な流れ(図解付き)

┌────────────┐
│ ソースDB    │
│   (v19)     │
└────┬───────┘
     │ target /
     ▼
┌────────────┐
│   RMAN      │
└────┬───────┘
     │ connect auxiliary sys/oracle@ORCL
     ▼
┌────────────┐
│ ターゲットDB│
│   (orcl)    │
└────────────┘
  1. SPFILEリストアと初期パラメータの調整
  2. nomount起動
  3. 制御ファイルのリストアとマウント
  4. データファイルのリストア
  5. アーカイブログ適用によるリカバリ
  6. リセットログによるオープン

■ 複製完了後の確認

$ sqlplus / as sysdba
SQL> select instance_name, status from v$instance;

INSTANCE_NAME STATUS
------------- -------
orcl          OPEN

■ よくあるトラブルと対策

症状原因対処法
ORA-12514リスナーがサービス名を認識していないlistener.oraとtnsnames.oraの見直し & listener再起動
duplicate が途中で失敗バックアップ不足、アーカイブログ欠損再度backup database plus archivelogを実施
SPFILEのリストアに失敗pfileのみでnomount起動したSPFILEのリストア先パスを確認

■ まとめ

RMANのduplicate機能は、バックアップを元に別SIDで完全なコピーDBを作成できる強力なツールです。今回紹介した手順は、最小限の構成で動作する基本パターンですが、運用環境ではcatalog使用やstandby databaseの作成にも応用可能です。

接続識別子(tnsnames.ora)を使用することで、ネットワーク越しの複製や別ホストへの展開も容易になります。

🔁 本記事の手順を一度試しておくことで、トラブル時にも迅速にクローン環境を構築できる力が身につきます。

ぜひ、あなたの環境でも試してみてください!

[参考]
データベースの複製

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?

コメント

タイトルとURLをコピーしました