Oracle RMANには、バックアップファイルを使用せずにソースデータベースから直接ネットワーク経由で複製する「アクティブデータベース複製(Active Duplicate)」機能があります。この記事では、Oracle Database 19c 環境でアクティブデータベース複製を行う手順を、初心者にもわかりやすく、実務に役立つ形で徹底解説します。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
■ アクティブデータベース複製とは?
アクティブデータベース複製は、RMANがソースDBに接続し、バックアップセットを使用せずに必要なデータをターゲットに直接コピーする方式です。
🔍 特徴
- バックアップファイルが不要(事前のバックアップ取得が不要)
- ネットワーク経由でソースDBから直接転送
- 時点を指定しての複製も可能(
set until) - 物理ファイルの配置変更も可能(
file_name_convert) - 複製処理中はソースDBにアクセスするため、ネットワークとリソースの影響に注意が必要
✅ 利用シーン
- テスト・開発環境の構築
- 本番環境の検証コピーの作成
- スタンバイDB構築の下準備
■ 環境構成の例
[ソースDB]
SID : v19
ホスト : 192.168.56.10
[ターゲットDB(複製先)]
SID : orcl
ホスト : 192.168.56.20
■ 準備手順(ターゲットDB側)
1. 初期化パラメータファイル(PFILE)作成
$ vi /var/tmp/init.ora
DB_NAME=orcl
2. 環境変数とパスワードファイルの設定
$ export ORACLE_SID=orcl
$ orapwd file=$ORACLE_HOME/dbs/orapworcl password=oracle entries=10 format=12
3. listener.ora(静的登録)
$ vi $ORACLE_HOME/network/admin/listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.20)(PORT = 1521))))
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1)))
4. tnsnames.ora 設定(ターゲット・ソース両方に必要)
$ vi $ORACLE_HOME/network/admin/tnsnames.ora
V19 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.10)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = v19)))
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.20)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)))
5. ターゲットインスタンスの起動(nomount)
$ sqlplus / as sysdba
SQL> startup nomount pfile=/var/tmp/init.ora
■ アクティブデータベース複製の実行手順(実行例付き)
$ export ORACLE_SID=orcl
$ rman target sys/oracle@v19
RMAN> connect auxiliary sys/oracle@orcl;
RMAN> duplicate target database to orcl
from active database
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;
💡
parameter_value_convertやfile_name_convertの指定で、ソース→ターゲットの構成変更が柔軟に行えます。
■ 図で理解するアクティブ複製の流れ
┌────────────┐
│ ソースDB │
│ (v19) │
└────┬───────┘
│ ネットワーク経由
▼
┌────────────┐
│ ターゲットDB│
│ (orcl) │
└────────────┘
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
■ 複製完了後の確認
SQL> select instance_name, status from v$instance;
INSTANCE_NAME STATUS
------------- -------
orcl OPEN
[oracle@v19single ~]$ vi /var/tmp/init.ora ★補助インスタンス用のpfileを作成
[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.20 )(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 02-4月 -2025 15:01:39
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.19)(PORT=1521)))
リスニングしています: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.20)(PORT=1521)))に接続中
リスナーのステータス
------------------------
別名 LISTENER
バージョン TNSLSNR for Linux: Version 19.0.0.0.0 - Production
開始日 02-4月 -2025 15:01:40
稼働時間 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.20)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
サービスのサマリー...
サービス"orcl"には、1件のインスタンスがあります。
インスタンス"orcl"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります...
コマンドは正常に終了しました。
[oracle@v19single ~]$ vi $ORACLE_HOME/network/admin/tnsnames.ora
[oracle@v19single ~]$ cat $ORACLE_HOME/network/admin/tnsnames.ora
V19 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.10)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = v19)))
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.20)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)))
[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 水 4月 2 15:02:18 2025
Version 19.21.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
アイドル・インスタンスに接続しました。
SQL> startup nomount pfile=/var/tmp/init.ora ★補助インスタンスをnomountで起動
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 target sys/oracle@v19 ★複製元データベースに接続
Recovery Manager: Release 19.0.0.0.0 - Production on 水 4月 2 15:45:22 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> from active database
3> spfile
4> parameter_value_convert 'V19','ORCL'
5> set db_file_name_convert='/u01/app/oracle/oradata/V19','/u01/app/oracle/oradata/ORCL'
6> set log_file_name_convert='/u01/app/oracle/oradata/V19','/u01/app/oracle/oradata/ORCL'
7> set control_files='/u01/app/oracle/oradata/ORCL/control01.ctl'
8> nofilenamecheck;
Duplicate Dbを25-04-02で開始しています
リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
チャネル: ORA_AUX_DISK_1が割り当てられました
チャネルORA_AUX_DISK_1: SID=38 デバイス・タイプ=DISK
現在のログがアーカイブされました。
メモリー・スクリプトの内容:
{
restore clone from service 'v19' 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''";
}
メモリー・スクリプトを実行しています
restoreを25-04-02で開始しています
チャネルORA_AUX_DISK_1の使用
チャネルORA_AUX_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_AUX_DISK_1: サービスv19のネットワーク・バックアップ・セットを使用しています
チャネルORA_AUX_DISK_1: SPFILEをリストアしています
出力ファイル名=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/spfileorcl.ora
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:01
restoreを25-04-02で終了しました
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 from service 'v19' 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-04-02で開始しています
チャネル: ORA_AUX_DISK_1が割り当てられました
チャネルORA_AUX_DISK_1: SID=424 デバイス・タイプ=DISK
チャネルORA_AUX_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_AUX_DISK_1: サービスv19のネットワーク・バックアップ・セットを使用しています
チャネルORA_AUX_DISK_1: 制御ファイルをリストア中です
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:02
出力ファイル名=/u01/app/oracle/oradata/ORCL/control01.ctl
restoreを25-04-02で終了しました
データベースがマウントされました。
メモリー・スクリプトの内容:
{
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
from nonsparse from service
'v19' clone database
;
sql 'alter system archive log current';
}
メモリー・スクリプトを実行しています
実行コマンド: SET NEWNAME
実行コマンド: SET NEWNAME
実行コマンド: SET NEWNAME
実行コマンド: SET NEWNAME
restoreを25-04-02で開始しています
チャネルORA_AUX_DISK_1の使用
チャネルORA_AUX_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_AUX_DISK_1: サービスv19のネットワーク・バックアップ・セットを使用しています
チャネルORA_AUX_DISK_1: バックアップ・セットからリストアするデータファイルを指定しています
チャネルORA_AUX_DISK_1: データファイル00001を/u01/app/oracle/oradata/ORCL/system01.dbfにリストアしています
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:26
チャネルORA_AUX_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_AUX_DISK_1: サービスv19のネットワーク・バックアップ・セットを使用しています
チャネルORA_AUX_DISK_1: バックアップ・セットからリストアするデータファイルを指定しています
チャネルORA_AUX_DISK_1: データファイル00003を/u01/app/oracle/oradata/ORCL/sysaux01.dbfにリストアしています
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:07
チャネルORA_AUX_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_AUX_DISK_1: サービスv19のネットワーク・バックアップ・セットを使用しています
チャネルORA_AUX_DISK_1: バックアップ・セットからリストアするデータファイルを指定しています
チャネルORA_AUX_DISK_1: データファイル00004を/u01/app/oracle/oradata/ORCL/undotbs01.dbfにリストアしています
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:07
チャネルORA_AUX_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_AUX_DISK_1: サービスv19のネットワーク・バックアップ・セットを使用しています
チャネルORA_AUX_DISK_1: バックアップ・セットからリストアするデータファイルを指定しています
チャネルORA_AUX_DISK_1: データファイル00007を/u01/app/oracle/oradata/ORCL/users01.dbfにリストアしています
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:01
restoreを25-04-02で終了しました
SQL文: alter system archive log current
現在のログがアーカイブされました。
メモリー・スクリプトの内容:
{
restore clone force from service 'v19'
archivelog from scn 2278893;
switch clone datafile all;
}
メモリー・スクリプトを実行しています
restoreを25-04-02で開始しています
チャネルORA_AUX_DISK_1の使用
チャネルORA_AUX_DISK_1: デフォルトの宛先へのアーカイブ・ログのリストアを開始しています
チャネルORA_AUX_DISK_1: サービスv19のネットワーク・バックアップ・セットを使用しています
チャネルORA_AUX_DISK_1: アーカイブ・ログをリストアしています
アーカイブ・ログ・スレッド=1 順序=16
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:01
チャネルORA_AUX_DISK_1: デフォルトの宛先へのアーカイブ・ログのリストアを開始しています
チャネルORA_AUX_DISK_1: サービスv19のネットワーク・バックアップ・セットを使用しています
チャネルORA_AUX_DISK_1: アーカイブ・ログをリストアしています
アーカイブ・ログ・スレッド=1 順序=17
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:02
restoreを25-04-02で終了しました
データファイル1はデータファイル・コピーに切り替えられました
入力データファイル・コピー レコードID=5 スタンプ=1197388101 ファイル名=/u01/app/oracle/oradata/ORCL/system01.dbf
データファイル3はデータファイル・コピーに切り替えられました
入力データファイル・コピー レコードID=6 スタンプ=1197388101 ファイル名=/u01/app/oracle/oradata/ORCL/sysaux01.dbf
データファイル4はデータファイル・コピーに切り替えられました
入力データファイル・コピー レコードID=7 スタンプ=1197388101 ファイル名=/u01/app/oracle/oradata/ORCL/undotbs01.dbf
データファイル7はデータファイル・コピーに切り替えられました
入力データファイル・コピー レコードID=8 スタンプ=1197388101 ファイル名=/u01/app/oracle/oradata/ORCL/users01.dbf
メモリー・スクリプトの内容:
{
set until scn 2279056;
recover
clone database
delete archivelog
;
}
メモリー・スクリプトを実行しています
実行コマンド: SET until clause
recoverを25-04-02で開始しています
チャネルORA_AUX_DISK_1の使用
メディア・リカバリを開始しています
スレッド1 (順序16)のアーカイブ・ログは、ファイル/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_16_1153872185.dbfとしてディスクにすでに存在します
スレッド1 (順序17)のアーカイブ・ログは、ファイル/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_17_1153872185.dbfとしてディスクにすでに存在します
アーカイブ・ログ・ファイル名=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_16_1153872185.dbf スレッド=1 順序=16
アーカイブ・ログ・ファイル名=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_17_1153872185.dbf スレッド=1 順序=17
メディア・リカバリが完了しました。経過時間: 00:00:01
recoverを25-04-02で終了しました
メモリー・スクリプトの内容:
{
delete clone force archivelog all;
}
メモリー・スクリプトを実行しています
チャネル: ORA_AUX_DISK_1がリリースされました
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=464 デバイス・タイプ=DISK
アーカイブ・ログを削除しました
アーカイブ・ログ・ファイル名=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_16_1153872185.dbf レコードID=1 スタンプ=1197388098
アーカイブ・ログを削除しました
アーカイブ・ログ・ファイル名=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch1_17_1153872185.dbf レコードID=2 スタンプ=1197388100
2オブジェクトを削除しました
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 スタンプ=1197388131
データファイル・コピーがカタログに入りました
データファイル・コピーのファイル名=/u01/app/oracle/oradata/ORCL/undotbs01.dbf レコードID=2 スタンプ=1197388131
データファイル・コピーがカタログに入りました
データファイル・コピーのファイル名=/u01/app/oracle/oradata/ORCL/users01.dbf レコードID=3 スタンプ=1197388131
データファイル3はデータファイル・コピーに切り替えられました
入力データファイル・コピー レコードID=1 スタンプ=1197388131 ファイル名=/u01/app/oracle/oradata/ORCL/sysaux01.dbf
データファイル4はデータファイル・コピーに切り替えられました
入力データファイル・コピー レコードID=2 スタンプ=1197388131 ファイル名=/u01/app/oracle/oradata/ORCL/undotbs01.dbf
データファイル7はデータファイル・コピーに切り替えられました
入力データファイル・コピー レコードID=3 スタンプ=1197388131 ファイル名=/u01/app/oracle/oradata/ORCL/users01.dbf
メモリー・スクリプトの内容:
{
Alter clone database open resetlogs;
}
メモリー・スクリプトを実行しています
データベースがオープンしました。
Duplicate Dbを25-04-02で終了しました
RMAN> exit
Recovery Managerが完了しました。
[oracle@v19single ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on 水 4月 2 15:50:13 2025
Version 19.21.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.21.0.0.0
に接続されました。
SQL> set linesize 1000 pagesize 1000
SQL> select instance_name,status from v$instance;
INSTANCE_NAME STATUS
---------------------------------------- ------------------------------------
orcl OPEN
■ トラブル時のヒント
| 症状 | 原因 | 解決策 |
|---|---|---|
ORA-12514 で接続エラー | listener.ora または tnsnames.oraの不備 | listener再起動と設定確認 |
RMAN duplicate が途中で失敗 | リソース不足やspfileの記述ミス | alertログやRMANログで詳細確認 |
| ターゲットDBが起動しない | 初期化パラメータに不備あり | pfileの記述とspfile変換の見直し |
■ まとめ
アクティブデータベース複製は、事前のバックアップ作業不要で、ネットワーク経由でソースDBからターゲットDBを作成できる強力な機能です。
テスト環境や検証環境を迅速に用意したいときに大活躍します。一度手順を整備しておけば、再構築も容易になります。
✅
from active databaseを活用して、効率的なDBコピーを実現しましょう!
ぜひあなたの環境でも実践してみてください!
[参考]
データベースの複製




コメント