ドリーム8のバックアップとリカバリ
15373 ワード
DM 8物理バックアップとリカバリ
目次
DM 8物理バックアップとリカバリ
1、オンライン完全バックアップとリカバリ
2、オフライン完全バックアップとリカバリ
3、オンライン増分バックアップと回復
物理バックアップ:データベース・ファイルを直接スキャンし、割り当てられ、使用されているデータ・ページを特定し、バックアップ・セットにコピーして保存します.物理バックアップの過程で、データページの具体的な内容が何なのか、データページがどのテーブルに属しているのかにも関心がなく、データベースファイルシステムの説明に基づいて、有効なデータページを選ぶだけです.
物理バックアップは、データベース・サービスのステータスに応じて、オンライン・バックアップ(ホット・スペア)、オフライン・バックアップ(コールド・スペア)に分けられます.
バックアップポリシーによって、フルバックアップとインクリメンタルバックアップに分けられます.
≪オンライン・バックアップ|Online Backup|emdw≫:データベース・サービスが実行されている場合にバックアップを行います.
オフラインバックアップ:データベース・サービスが停止している場合にバックアップを行います.
≪フル・バックアップ|Full Backup|emdw≫:フル・バックアップを実行すると、バックアップ・プログラムはデータ・ファイルをスキャンし、割り当てられ、使用されているすべてのデータ・ページをコピーし、バックアップ・シート・ファイルに書き込むライブラリ・バックアップはデータベース全体のすべてのデータ・ファイルをスキャンします.
≪インクリメンタル・バックアップ|Incremental Backup|emdw≫:特定のバックアップ・セットに基づいて、データベースで新しく変更されたデータ・ページを収集してバックアップします.これにより、バックアップ・セットのスペースを削減し、バックアップ速度を向上させることができます.
個人総括:オンラインバックアップでもオフラインバックアップでも、ライブラリレベルの物理バックアップであれば、リカバリ時にオフラインで行う必要があります.
完全バックアップには1つの文しか必要ありません.オフラインでは3つの曲に分けられ、restore->recover-->recover(次の実験で3つのステップが示されています).
インクリメンタル・バックアップは、他のバックアップ・セットに基づいたバックアップであり、リカバリ時にも他のバックアップ・セットがリカバリされた後にリカバリを行います.インクリメンタル・バックアップのリカバリ文と完全バックアップのリカバリ構文は完全に一致しています.
1、オンライン完全バックアップとリカバリ
手順:「アーカイブの開始」>「オンライン・バックアップ」>「データの削除」>「データベース・サービスの停止」>「データ・リカバリの3つの文の実行」>「データベース・サービスを開始してデータが正しいかどうかを検証」
1、アーカイブモードを開く:
アップロード中…再アップロードキャンセル
1)データベースがアーカイブされているかどうかを確認する(Nは非アーカイブ、Yはアーカイブ)
SQL> select arch_mode from v$database;
LINEID ARCH_MODE
---------- ---------
1 N
used time: 10.513(ms). Execute id is 52.
2)データベースを構成状態に変更する
SQL> alter database mount;
executed successfully
used time: 00:00:01.769. Execute id is 0.
3)アーカイブタイプとディレクトリを追加してアーカイブを開く
SQL> alter database add archivelog 'DEST=/dm8/arch,type=local';
executed successfully
used time: 36.225(ms). Execute id is 0.
SQL> alter database archivelog;
executed successfully
used time: 5.734(ms). Execute id is 0.
4)オープン状態でデータベースを変更
SQL> alter database open;
executed successfully
used time: 00:00:01.799. Execute id is 0.
SQL> select arch_mode from v$database;
LINEID ARCH_MODE
---------- ---------
1 Y
used time: 1.047(ms). Execute id is 53.
2、バックアップの開始
1)初期データ:
SQL> select * from test1;
LINEID ID
---------- -----------
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
10 rows got
used time: 2.101(ms). Execute id is 54.
2)オンラインバックアップの開始:バックアップセットパスを指定:/dm 8/data/full_bak
SQL> BACKUP DATABASE BACKUPSET '/dm8/data/full_bak';
executed successfully
used time: 00:00:02.112. Execute id is 55.
3)バックアップ成功、テーブル削除:
SQL> drop table test1;
executed successfully
used time: 128.207(ms). Execute id is 56.
SQL> commit;
executed successfully
used time: 0.490(ms). Execute id is 57.
4)データベース・サービス・リカバリ・データをオフにする(オンライン・バックアップでもオフライン・バックアップでも、リカバリ時にオフライン・リカバリが必要)
[dmdba@localhost bin]$ ./DmServiceDMSERVER stop
Stopping DmServiceDMSERVER: [ OK ]
5)データの復旧を開始する:
≪データベースのリストア|Restore Database|emdw≫:データベースのリストアには、データベース・プロファイルのリストアとデータ・ファイルのリストアが含まれます.RESTOREコマンドでリストアしたデータベースは使用できません.RECOVERコマンドをさらに実行して、バックアップの終了時の状態にデータベースをリカバリする必要があります.
[dmdba@localhost bin]$ ./dmrman
dmrman V8
RMAN> restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/data/full_bak/';
restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/data/full_bak/';
file dm.key not found, use default license!
RESTORE DATABASE CHECK......
RESTORE DATABASE,data collect......
RESTORE DATABASE,database refresh ......
RESTORE BACKUPSET [/dm8/data/full_bak] START......
total 5 packages processed...
total 6 packages processed...
RESTORE DATABASE,UPDATE ctl file......
RESTORE DATABASE,REBUILD key file......
RESTORE DATABASE,CHECK db info......
RESTORE DATABASE,UPDATE db info......
total 6 packages processed...
total 6 packages processed!
CMD END.CODE:[0]
restore successfully.
time used: 00:00:01.195
6)データベースのリカバリ
RMAN> recover database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/data/full_bak/';
recover database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/data/full_bak/';
Database mode = 0, oguid = 0
EP[0]'s cur_lsn[43462]
RESTORE RLOG CHECK......
RESTORE RLOG, gen tmp file......
RESTORE RLOG FROM BACKUPSET [/dm8/data/full_bak] START......
total 2 packages processed...
total 2 packages processed...
total 2 packages processed!
CMD END.CODE:[0]
EP:0 total 1 pkgs applied, percent: 50%
EP:0 total 2 pkgs applied, percent: 100%
Recover from archive log finished, time used:0.017s.
recover successfully!
time used: 275.419(ms)
7)データベースの更新
データベース更新とは、データベースのDB_を更新することです.MAGICは、データベースを正常に動作するように調整します.データベースの更新は、REDO REDOログがデータベースをリカバリした後、またはターゲット・ライブラリがREDOログが一貫した状態である必要がない場合に発生します.
RMAN> recover database '/dm8/data/DAMENG/dm.ini' UPDATE DB_MAGIC;
recover database '/dm8/data/DAMENG/dm.ini' UPDATE DB_MAGIC;
Database mode = 0, oguid = 0
EP[0]'s cur_lsn[43466]
EP[0]'s apply_lsn[43466] >= end_lsn[43466]
recover successfully!
time used: 00:00:01.009
8)リカバリ中にエラーは報告されず、データベースサービスを開始し、データの照会にエラーはない.
[dmdba@localhost bin]$ ./DmServiceDMSERVER start
Starting DmServiceDMSERVER: [ OK ]
[dmdba@localhost bin]$ ./disql
disql V8
username:
password:
Server[LOCALHOST:5236]:mode is normal, state is open
login used time: 7.544(ms)
SQL> select * from test1;
LINEID ID
---------- -----------
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
10 rows got
used time: 12.037(ms). Execute id is 4.
2、オフライン完全バックアップとリカバリ
データベース・サービスを停止する場合は、rmanツール(rmanツールはデータベースに付属するツール)を使用してバックアップします.
手順:データベース・サービスを停止-->オフライン・バックアップ-->データベース・サービスを開始し、データを削除します(新しい初期化されたインスタンスで直接リカバリすることもできます)-->データベース・サービスを停止-->3つのリカバリ文を実行-->サービスを開始し、リカバリに成功したかどうかを確認します.
前のオンラインバックアップ・リカバリと同様に、バックアップしてからデータを削除し、正常かどうかを確認します.
1)データベース・サービスを停止し、データベース・インストール・ディレクトリのbinディレクトリのrmanツールを使用して完全なバックアップを行います.
[dmdba@localhost bin]$ ./DmServiceDMSERVER stop
Stopping DmServiceDMSERVER: [ OK ]
[dmdba@localhost bin]$ ./dmrman CTLSTMT="BACKUP DATABASE '/dm8/data/DAMENG/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/dm8/data/BACKUP_FILE_01'"
dmrman V8
BACKUP DATABASE '/dm8/data/DAMENG/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/dm8/data/BACKUP_FILE_01'
file dm.key not found, use default license!
Database mode = 0, oguid = 0
EP[0]'s cur_lsn[46019]
BACKUP DATABASE [DAMENG],execute......
CMD CHECK LSN......
BACKUP DATABASE [DAMENG],collect dbf......
CMD CHECK ......
DBF BACKUP SUBS......
total 1 packages processed...
total 2 packages processed...
total 3 packages processed...
total 4 packages processed...
total 5 packages processed...
DBF BACKUP MAIN......
BACKUPSET [/dm8/data/BACKUP_FILE_01] END, CODE [0]......
META GENERATING......
total 6 packages processed...
total 6 packages processed...
total 6 packages processed!
CMD END.CODE:[0]
backup successfully!
time used: 00:00:01.311
2)データを削除し、上のオンラインバックアップ操作と同様にここでは省略する.
3)データベースrestoreのリストア(オンラインバックアップと同様)
[dmdba@localhost bin]$ ./dmrman CTLSTMT="RESTORE DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/data/BACKUP_FILE_01'"
dmrman V8
RESTORE DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/data/BACKUP_FILE_01'
file dm.key not found, use default license!
RESTORE DATABASE CHECK......
RESTORE DATABASE,data collect......
RESTORE DATABASE,database refresh ......
RESTORE BACKUPSET [/dm8/data/BACKUP_FILE_01] START......
total 5 packages processed...
total 6 packages processed...
RESTORE DATABASE,UPDATE ctl file......
RESTORE DATABASE,REBUILD key file......
RESTORE DATABASE,CHECK db info......
RESTORE DATABASE,UPDATE db info......
total 6 packages processed...
total 6 packages processed!
CMD END.CODE:[0]
restore successfully.
time used: 971.740(ms)
4)データベースのリカバリ(recover)
[dmdba@localhost bin]$ ./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/data/BACKUP_FILE_01'"
dmrman V8
RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/data/BACKUP_FILE_01'
file dm.key not found, use default license!
Database mode = 0, oguid = 0
EP[0]'s cur_lsn[46019]
RESTORE RLOG CHECK......
CMD END.CODE:[603],DESC:[no log generates while the backupset [/dm8/data/BACKUP_FILE_01] created]
no log generates while the backupset [/dm8/data/BACKUP_FILE_01] created
recover successfully!
time used: 250.328(ms)
5)データベースの更新(UPDATE DB_MAGIC)
[dmdba@localhost bin]$ ./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' UPDATE DB_MAGIC"
dmrman V8
RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' UPDATE DB_MAGIC
file dm.key not found, use default license!
Database mode = 0, oguid = 0
EP[0]'s cur_lsn[46019]
EP[0]'s apply_lsn[46019] >= end_lsn[46019]
recover successfully!
time used: 00:00:01.009
3、オンライン増分バックアップと回復
インクリメンタル・バックアップは、特定のバックアップ・セットに基づいて、データベースで新しく変更されたデータ・ページを収集してバックアップを行い、バックアップ・セットのスペースの消費量を効果的に削減し、バックアップ速度を向上させることができます.
フル・バックアップと同様に、インクリメンタル・バックアップはオフラインでもオンラインでも可能です.オンライン・バックアップを例にとります.
手順:「フル・スペア」>「データの追加または削除」>「インクリメンタル・バックアップ」>「すべてのデータを削除」(または新しい初期化されたインスタンスでバックアップ)データベース・サービスを停止-->「フル・バックアップ・リカバリ」>「インクリメンタル・バックアップ・リカバリ」>「データベース・サービス検証データの起動」
1)フル・スペアの実行
SQL> BACKUP DATABASE BACKUPSET '/dm8/data/full_bak';
executed successfully
used time: 00:00:01.451. Execute id is 13.
2)データベースのデータを変更する:
SQL> create table test3 as select * from test1 where id<5;
executed successfully
used time: 12.606(ms). Execute id is 14.
3)増備を実行する:
SQL> BACKUP DATABASE INCREMENT WITH BACKUPDIR '/dm8/data/full_bak' BACKUPSET '/dm8/data/full_bak/db_increment_bak_02';
executed successfully
used time: 856.383(ms). Execute id is 16.
4)データベースのtest 1とtest 3テーブルを削除してからリカバリする.
5)フル・バックアップを先にリカバリする(リカバリ方法は、前のオンライン・バックアップ・リカバリ方法と同様であり、ここでは各ステップについて詳しく説明しない)
[dmdba@localhost bin]$ ./dmrman
dmrman V8
RMAN> restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/data/full_bak/';
restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/data/full_bak/';
file dm.key not found, use default license!
RESTORE DATABASE CHECK......
RESTORE DATABASE,data collect......
RESTORE DATABASE,database refresh ......
RESTORE BACKUPSET [/dm8/data/full_bak] START......
total 5 packages processed...
total 6 packages processed...
RESTORE DATABASE,UPDATE ctl file......
RESTORE DATABASE,REBUILD key file......
RESTORE DATABASE,CHECK db info......
RESTORE DATABASE,UPDATE db info......
total 6 packages processed...
total 6 packages processed!
CMD END.CODE:[0]
restore successfully.
time used: 00:00:01.193
RMAN> recover database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/data/full_bak/';
recover database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/data/full_bak/';
Database mode = 0, oguid = 0
EP[0]'s cur_lsn[47313]
RESTORE RLOG CHECK......
RESTORE RLOG, gen tmp file......
RESTORE RLOG FROM BACKUPSET [/dm8/data/full_bak] START......
total 2 packages processed...
total 2 packages processed...
total 2 packages processed!
CMD END.CODE:[0]
EP:0 total 1 pkgs applied, percent: 14%
EP:0 total 2 pkgs applied, percent: 28%
EP:0 total 3 pkgs applied, percent: 42%
EP:0 total 4 pkgs applied, percent: 57%
EP:0 total 5 pkgs applied, percent: 71%
EP:0 total 6 pkgs applied, percent: 85%
EP:0 total 7 pkgs applied, percent: 100%
Recover from archive log finished, time used:0.010s.
recover successfully!
time used: 280.686(ms)
RMAN> recover database '/dm8/data/DAMENG/dm.ini' UPDATE DB_MAGIC;
recover database '/dm8/data/DAMENG/dm.ini' UPDATE DB_MAGIC;
Database mode = 0, oguid = 0
EP[0]'s cur_lsn[47331]
EP[0]'s apply_lsn[47331] >= end_lsn[47331]
recover successfully!
time used: 00:00:01.008
6)フル・バックアップ・リカバリに加えてインクリメンタル・リカバリ(つまり、前のリカバリと同じ操作をもう一度行い、他に特別な操作はありません)
RMAN> restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/data/full_bak/db_increment_bak_02';
restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/data/full_bak/db_increment_bak_02';
RESTORE DATABASE CHECK......
RESTORE DATABASE,data collect......
RESTORE DATABASE,database refresh ......
RESTORE BACKUPSET [/dm8/data/full_bak] START......
total 5 packages processed...
total 6 packages processed...
RESTORE BACKUPSET [/dm8/data/full_bak/db_increment_bak_02] START......
total 11 packages processed...
total 12 packages processed...
RESTORE DATABASE,UPDATE ctl file......
RESTORE DATABASE,REBUILD key file......
RESTORE DATABASE,CHECK db info......
RESTORE DATABASE,UPDATE db info......
total 12 packages processed...
total 12 packages processed!
CMD END.CODE:[0]
restore successfully.
time used: 00:00:01.165
RMAN> recover database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/data/full_bak/db_increment_bak_02';
recover database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/data/full_bak/db_increment_bak_02';
Database mode = 0, oguid = 0
EP[0]'s cur_lsn[47364]
RESTORE RLOG CHECK......
RESTORE RLOG, gen tmp file......
RESTORE RLOG FROM BACKUPSET [/dm8/data/full_bak/db_increment_bak_02] START......
total 2 packages processed...
total 2 packages processed...
total 2 packages processed!
CMD END.CODE:[0]
EP:0 total 1 pkgs applied, percent: 50%
EP:0 total 2 pkgs applied, percent: 100%
Recover from archive log finished, time used:0.005s.
recover successfully!
time used: 269.534(ms)
RMAN> recover database '/dm8/data/DAMENG/dm.ini' UPDATE DB_MAGIC;
recover database '/dm8/data/DAMENG/dm.ini' UPDATE DB_MAGIC;
Database mode = 0, oguid = 0
EP[0]'s cur_lsn[47367]
EP[0]'s apply_lsn[47367] >= end_lsn[47367]
recover successfully!
time used: 995.346(ms)
初めてのブログですが、足りないところはよろしくお愿いします.