web-dev-qa-db-ja.com

相互に接続されていないときにアーカイブログを使用してOracle DBを同期する

相互に接続されておらず、別々のネットワークにある2つのdbを同期しようとしています。

'copy db'(別名:スタンバイ)は読み取り専用ですが、まだアクティブである必要があります。

私の直感(正しいかどうかはわかりません)は、RMAN backup/restoreを使用して両方を同期し、アーカイブファイルをソース(本番)からコピー(スタンバイ)に移動し、コピー(スタンバイ)を開くことができると教えています)read onlyモードで、開いているときに変更を適用します(アクティブなデータガードと同様)。

私がしたことは次のとおりです( このマニュアルによると ):マニュアルに従ってデータガードを構成しました。リンクを参照してください。

ソース(本番):

$ rman target=/
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;

スタンバイとして構成した後、ファイルを移動してコピーに復元しました。

$ rman target=/
RMAN> STARTUP MOUNT;
RMAN> RESTORE DATABASE;

で完了した復元を取得しました

今度は(マニュアルのすべての設定の後)コピーで、dbを開こうとしました:

SQL> shutdown immediate;
...
Oracle instance shut down.
SQL> startup mount;
Oracle instance started
...
Database mounted.
SQL> alter database open read only;
alter database open read only
* 
ERROR at line 1:
ORA-10458: standby database requires recovery
ORA-01152: file 1 was not restored from a sufficiently old backup
ORA-01110: data file 1: 'C:\PATH\TO\FILE\SYSTEM01.DBF'

私はWindowsでOracle 11g DBを使用していますが、Linuxでも試しましたが、同じ結果が得られました。

両方のマシンが新しく、両方にOracle 11g SWがインストールされており(サンプルスキームを使用)、DBが復元前にコピーで削除されました。

dBがドロップされた後にファイルがコピーされ、マニュアルによる構成を除いてソースDBに変更は加えられませんでした。

私は質問したい:

  • 私が達成しようとしていること(直接接続のないアクティブなデータガード、時々手動でのアーカイブの移動、およびアーカイブの自動適用)は可能ですか?

  • データベースの復元またはオープンが失敗する理由

  • そうするためのより簡単な方法はありますか? (つまり、本番環境/スタンバイアーキテクチャを設定せずに手動でバックアップ/復元しますが、ソースのアーカイブをコピーに適用します)。

返信ありがとうございます。

2
SHR

まず、コピーしたデータベースがスタンバイデータベースであることを確認する必要があります。あなたの場合はそうではありません。これを行うには、複製を使用するのが最も簡単な方法です。

接続されていないデータベースを使用することは可能ですか?はい、しかしなぜですか?適切な接続がなければ、私にとってそれはお金の無駄のように見えます。

コピーデータベースはPRIMARYの役割を持っていると感じているため、復元/開くことができませんでした。 (select database_role from v$database; チェックする)

これを行うには、rman duplicateを使用するよりも簡単な方法はほとんどありません。これはバックアップを使用して行うことができ、まったく問題ありません。多分本当のdbaを雇うことはあなたに多くの時間、お金、そして最終的には災害を救うことができます。

1
ik_zelf