相互に接続されておらず、別々のネットワークにある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に変更は加えられませんでした。
私は質問したい:
私が達成しようとしていること(直接接続のないアクティブなデータガード、時々手動でのアーカイブの移動、およびアーカイブの自動適用)は可能ですか?
データベースの復元またはオープンが失敗する理由
そうするためのより簡単な方法はありますか? (つまり、本番環境/スタンバイアーキテクチャを設定せずに手動でバックアップ/復元しますが、ソースのアーカイブをコピーに適用します)。
返信ありがとうございます。
まず、コピーしたデータベースがスタンバイデータベースであることを確認する必要があります。あなたの場合はそうではありません。これを行うには、複製を使用するのが最も簡単な方法です。
接続されていないデータベースを使用することは可能ですか?はい、しかしなぜですか?適切な接続がなければ、私にとってそれはお金の無駄のように見えます。
コピーデータベースはPRIMARYの役割を持っていると感じているため、復元/開くことができませんでした。 (select database_role from v$database;
チェックする)
これを行うには、rman duplicateを使用するよりも簡単な方法はほとんどありません。これはバックアップを使用して行うことができ、まったく問題ありません。多分本当のdbaを雇うことはあなたに多くの時間、お金、そして最終的には災害を救うことができます。