LoginSignup
1
0

More than 5 years have passed since last update.

Active Database Duplication の制限を確認する(Oracle Database 12c-)

Posted at

Oracle Database に付属する Recovery Manager (RMAN) はデータベースのバックアップ、リストア、リカバリを行う標準ツールですが、 DUPLICATE コマンドを使うと手軽にデータベースのコピーを行うことができます。ここでは、稼働中の Oracle Database のコピーを作成する Active Database Duplication を試し、制限事項を確認します。
本記事はこちら で書かれている内容を参考にしました。

DUPLICATE コマンド実行の準備

DUPLICATE コマンドを実行するためには、コピー元となるデータベース・インスタンスと、コピー先となるデータベース・インスタンス双方に RMAN が接続する必要があります。
コピー元となるデータベース・インスタンスをターゲット・インスタンス(target)、コピー先データベース・インスタンスを補助インスタンス(auxiliary) と呼びます。

双方に SYSDBA 権限で接続が必要です。このためコピー先データベース・インスタンス向けにパスワード・ファイルを作成します。コピー元データベースからコピーするか、orapwd コマンドで作成します。ファイル名は ORACLE_HOME/dbs/orapw{ORACLE_SID} です。

次に初期化パラメーターファイルを用意し、NOMOUNT モードでコピー先インスタンスを起動します。下記の例ではコピー元データベース名を O18A 、コピー先データベース名を O18B としています。

$ export ORACLE_SID=O18B
$ sqlplus / as sysdba

SQL*Plus: Release 18.0.0.0.0 - Production on Thu Sep 13 17:05:32 2018
Version 18.3.0.0.0

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

Connected to an idle instance.

SQL> STARTUP NOMOUNT
ORACLE instance started.

Total System Global Area 2516580184 bytes
Fixed Size                  8660824 bytes
Variable Size             671088640 bytes
Database Buffers         1828716544 bytes
Redo Buffers                8114176 bytes

次にコピー先ホストで RMAN コマンドを実行し、ターゲット・インスタンスと補助インスタンスの接続を行います。この時、Oracle Databse 11g までは、リスナーに静的なデータベースの登録が必要でしたが、Oracle Database 12c からは不要になりました。

バックアップおよびリカバリ・リファレンス・マニュアル には以下のように記述されています。

補助インスタンスと同じホストでRMANを実行している場合、ユーザー名とパスワードを使用して接続し、DUPLICATEコマンドにPASSWORD FILE句が含まれていないときは、ネット・サービス名なしでローカルに接続できます。接続するユーザーは、SYSDBAまたはSYSBACKUP権限が必要です。

下記の例では、コピー元データベース・インスタンス O18A に対してネットワーク接続を行い、補助インスタンス(コピー先)に対してはローカル接続を行っています。

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

Recovery Manager: Release 18.0.0.0.0 - Production on Thu Sep 13 17:06:40 2018
Version 18.3.0.0.0

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

connected to target database: O18A (DBID=4103976400)
connected to auxiliary database: O18B (not mounted)

DUPLICATE コマンドの実行

両インスタンスに接続が確認できたら DUPLICATE コマンドを実行します。 OPEN 状態のターゲット・データベースからコピーを行うために FROM ACTIVE DATABASE 句を指定しています。

RMAN> DUPLICATE TARGET DATABASE TO O18B FROM ACTIVE DATABASE NOFILENAMECHECK;

Starting Duplicate Db at 13-SEP-18
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=261 device type=DISK
current log archived

contents of Memory Script:
{
   sql clone "create spfile from memory";
}
executing Memory Script

... 途中省略 ...
contents of Memory Script:
{
   Alter clone database open resetlogs;
}
executing Memory Script

database opened
Cannot remove created server parameter file
Finished Duplicate Db at 13-SEP-18

コピーが完了しました。

Data Guard のスタンバイとしてコピー

DUPLICATE コマンドは、Data Guard のスタンバイ・データベースの作成にも使えます(こちらの用途の方が多いかもしれません)。
手順は同じで、DUPLICATE コマンドに FOR STANDBY 句を付けるだけです。同じように実行してみるとエラーになります。

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

Recovery Manager: Release 18.0.0.0.0 - Production on Thu Sep 13 17:18:42 2018
Version 18.3.0.0.0

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

connected to target database: O18A (DBID=4103976400)
connected to auxiliary database: O18B (not mounted)

RMAN> DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE;

Starting Duplicate Db at 13-SEP-18
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 09/13/2018 17:19:54
RMAN-05501: aborting duplication of target database
RMAN-06217: not connected to auxiliary database with a net service name

どうやら FOR STANDBY を指定すると、auxiliary がローカル接続では実行できないようです。マニュアルのどこかに制限が書かれているかもしれませんが、見つかっていません。

英語版マニュアル一覧: https://docs.oracle.com/en/database/oracle/oracle-database/18/books.html
日本語版マニュアル一覧: https://docs.oracle.com/cd/E96517_01/books.html

1
0
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
1
0