0

私は、いくつかのリモート インスタンス用に Oracle 11g のバックアップ/復元戦略を開発する任務を負っています。私の目標は、インスタンスをバックアップする 1 つのスクリプトを用意することです。これを既存のインスタンス (おそらく同じサーバー上) で使用したり、まったく新しいインスタンスを作成したりできます。

a と の 2 つのインスタンスがあるsourceとしdestinationます。

source結果としてのインスタンス構成RMAN> show all:

using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name SOURCE are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default

以下に示すバックアップスクリプトを作成しました。

#!/bin/bash
export ORACLE_SID=SOURCE
rman target / <<EOF
CONFIGURE CONTROLFILE AUTOBACKUP ON;
SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backup/%F';
SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE to '/backup/%F';    
DELETE NOPROMPT BACKUP;
BACKUP CURRENT CONTROLFILE;
BACKUP AS BACKUPSET CHECK LOGICAL DATABASE PLUS ARCHIVELOG DELETE INPUT;
QUIT;
EOF

/backupなどのいくつかのファイルが表示されます。また、前者のファイルはデータベース/アーカイブ ログのバックアップであり、後者は制御ファイルであると思います。backup_4noqqute_151_1backup_4noqqute_152_1c-454077755-20131206-07

バックアップを別のインスタンスに復元するために、次のコマンドを実行しますDESTINATION

export ORACLE_SID=DESTINATION
rman target /
RMAN> SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backup/%F';
RMAN> RESTORE CONTROLFILE FROM '/backup/c-454077755-20131206-07';
RMAN> ALTER DATABASE MOUNT;

次のエラー メッセージが表示されます。

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of alter db command at 12/06/2013 10:44:51
ORA-01103: database name 'SOURCE' in control file is not 'DESTINATION'

この問題を解決するにはどうすればよいですか? 同じサーバー上でそのまま名前DESTINATIONを変更できず、まだ実行中です。この投稿SOURCEで同様の問題を見ましたが、説明が不完全でわかりません。多くの情報を提供したので、誰かがこの問題を解決する方法を適切に説明してくれることを願っています。

ありがとう。

4

2 に答える 2

1

RESTORE は、要件を満たす最も便利なコマンドではありません (この場合、一時的に新しいインスタンスの db_name= パラメータを既存のデータベースと同一になるように設定し、すべてのファイルを別の名前に復元してから、次の手順を実行する必要があります)。データベース名と ID を変更するのは非常に難しい作業です)。

11g では、この状況で使用するための適切なコマンドは DUPLICATE DATABASE です。DUPLICATE が使用するソースは、バックアップ (RESTORE とまったく同じ) または FROM ACTIVE DATABASE のいずれかです。

于 2013-12-06T19:39:39.403 に答える
0
set init.ora
db_name=source
db_unique_name=destination

そして復元

于 2014-10-18T18:14:01.763 に答える