データベースの複製 - gend007/Oracle-DB GitHub Wiki

概要

バックアップベースのデータベース複製手順を記載する
なお、当手順は、同ホストへのデータベース複製を前提とした手順となる。

※複製元のデータベースのバックアップがリカバリカタログに存在すること


手順

①複製先のディレクトリを作成

※今回は/DATA02配下に作成する想定



②補助インスタンス生成

oracle # cd $ORACLE_HOME/dbs
oracle # vi initorcl2.ora
※以下のパラメータを記載(sidはorcl2)
DB_NAME='orcl2'
db_domain=''



③補助インスタンスをNOMOUNTモードで起動

oracle # export ORACLE_SID=orcl2
oracle # sqlplus / as sysdba
SQL> startup nomount
SQL> quit
ORACLEインスタンスが起動しました。

Total System Global Area  268435456 bytes
Fixed Size                  8619496 bytes
Variable Size             201329176 bytes
Database Buffers           50331648 bytes
Redo Buffers                8155136 bytes



④パスワードファイルの配置

※複製元のDBのパスワードファイルをコピーする
oracle # cp -p $ORACLE_HOME/dbs/orapworcl $ORACLE_HOME/dbs/orapworcl2



⑤listener.oraの作成(静的サービス登録)

oracle # cd $ORACLE_HOME/network/admin
oracle # vi listener.ora
※以下の内容を記載
LISTENER =
   (DESCRIPTION=
     (ADDRESS_LIST=
       (ADDRESS=(PROTOCOL=tcp)(HOST=gend-node01)(PORT=1521))))

SID_LIST_LISTENER=
  (SID_LIST=
       (SID_DESC=
         (GLOBAL_DBNAME=orcl2)
         (SID_NAME=orcl2)
         (ORACLE_HOME=/u01/app/oracle/product/12.2.0/db_1)
       )
  )



⑥リスナーの起動

oracle # lisnrctl start
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 07-1月 -2019 05:34:26

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

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

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

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=gend-node01)(PORT=1521)))に接続中
リスナーのステータス
------------------------
別名                      LISTENER
バージョン                TNSLSNR for Linux: Version 12.2.0.1.0 - Production
開始日                    07-1月 -2019 05:34:26
稼働時間                  0 日 0 時間 0 分 0 秒
トレース・レベル          off
セキュリティ              ON: Local OS Authentication
SNMP                      OFF
パラメータ・ファイル      /u01/app/oracle/product/12.2.0/db_1/network/admin/listener.ora
ログ・ファイル            /u01/app/oracle/diag/tnslsnr/gend-node01/listener/alert/log.xml
リスニング・エンドポイントのサマリー...
 (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=gend-node01)(PORT=1521)))
サービスのサマリー...
サービス"orcl2"には、1件のインスタンスがあります。
 インスタンス"orcl2"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります...
コマンドは正常に終了しました。



⑦RMANを起動

※複製元のリカバリカタログへログイン
oracle # export ORACLE_SID=orcl
oracle # rman target sys/Kamemiya007 catalog rco/catalogdb@catadb
※複製元のDBが起動していない場合は起動すること
Recovery Manager: Release 12.2.0.1.0 - Production on 月 1月 7 06:26:03 2019

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

ターゲット・データベースに接続しました(起動していません)。
リカバリ・カタログ・データベースに接続されました。



⑧複製先のDBへログインする

RMAN> CONNECT AUXILIARY sys/Kamemiya007@orcl2
補助データベース: ORCL2に接続されました(マウントされていません)



⑨データベース複製を実行

※同ホストへ複製する場合はPARAMETER_VALUE_CONVERT、db_file_name_convert、log_file_name_convertの指定は必須
RMAN> DUPLICATE DATABASE orcl TO orcl2
NOFILENAMECHECK
SPFILE PARAMETER_VALUE_CONVERT='/DATA01/orcl','/DATA02/orcl2' 
SET db_file_name_convert='/DATA01/orcl','/DATA02/orcl2' 
SET log_file_name_convert='/DATA01/orcl','/DATA02/orcl2';
中略
データベースがオープンしました。
補助データベースの制御ファイル・オプションを再度有効にします
実行中: alter database flashback on
Duplicate Dbを19-01-07で終了しました
⚠️ **GitHub.com Fallback** ⚠️