オラクル

ORACLE 無償版 単純リカバリ

オラクル

こんにちは! 健史です。

OracleXE-21C環境で、データベースのリカバリを実施しました。

今回の記事は、データファイルを壊すことなく、バックアップしたデータにフォワードリカバリを行うものです。

本ケースでは、設定ファイルをPFILEにしています。

また、記事中に記載している起動・停止バッチ、Pfileについては以下の記事を参照願います。

ORACLE 無償版 XE-21c SPFILEからPFILEへの変更
こんにちは! 健史です。 OracleXE-21C環境で、初期化パラメータファイルをSPFILLEからPFILEへ変更してみました。 OracleXE-21C以外のバージョンもいくつかインストールしたことがありますが、インストール直後はすべ...
スポンサーリンク

手順概要

・Archive-logを採取する設定
・データのバックアップ
・データベース更新
・バックアップしたデータの戻し
・リカバリ

Archive-logを採取する設定

設定ファイルなどへの設定追加

1).Pfileへの設定追加
Archive-logファイルを採取する設定を追加します。

*.log_archive_dest_1='location=C:\oracle\oradata\XE\ARCHIVE'
*.LOG_ARCHIVE_FORMAT = arch_%t_%s_%r.arc

2).Shutdownするバッチファイルから呼び出すSQLへの設定追加
Archive-logファイルを採取する設定です。

以下1行を追加します。

alter system archive log current;

Archive-log-swをオン

オラクルのサービスを手動起動

3つのサービスを以下の順番で起動します。
①.OracleOraDB21Home1TNSListener
②.OracleServiceXE
③.OracleOraDB21Home1MTSRecoveryService

OracleOraDB21Home1MTSRecoveryServiceのサービスは不要ですが、起動するバッチと同様にしています。

Archive-log-swの確認と変更

コマンドプロンプトを起動し、以下の順番に実行していきます。
最初[sqlplus /nolog]と最後[exit]はWindowsのプロンプトから、それ以外はSQLのプロンプトによる実行です。

sqlplus /nolog
connect sys/oraadmin as sysdba
startup mount PFILE='C:\oracle\oradata\XE\PFILE01.ora'
select log_mode from v$database;
alter database archivelog;
select log_mode from v$database;
shutdown immediate
exit

Pfileへの設定追加では「Archive-logをどこにどのようなファイル名で採取する」であり、採取する指示はコマンドで行います

確認コマンド[select log_mode from v$database;]で「ARCHIVELOG」になっている場合には、[alter database archivelog;]を実行する必要はありません。

データファイルのバックアップ

この記事では念のため2つのフォルダに同じものをバックアップします。

<バックアップ元>

中身です。

<バックアップ先>

データベース更新

1).バッチファイルで起動

既にサービスは起動しているのでエラーがでます。

2).SqlDeveloperでデータベース更新
すでに作成しているテーブル[TEST1]の時刻を更新します。

更新後に[Ctrl]+[R]でリフレッシュし、更新後のデータを確認します。

バックアップしたデータの戻し

1).バッチファイルで停止

2).データファイルの戻し
以下の2つの[USERS01.DBF]を戻します。

<バックアップファイル>

<データベースファイルに戻した後の状態>

リカバリ

オラクルのサービスを手動起動

上記[2.Archive-logを採取する設定]「2.Archive-log-swをオン」の「1.オラクルのサービスを手動起動」で起動します。

リカバリ実行

コマンドプロンプトを起動し、以下の順番に実行していきます。

sqlplus /nolog
connect sys/oraadmin as sysdba
startup mount PFILE='C:\oracle\oradata\XE\PFILE01.ora'
set autorecovery on
recover database;
alter database open;

確認

SqlDeveloperで更新後の値になっていることを確認します。

最後に

もし、データベースがファイルの戻しの失敗により起動しなくなった場合には、データベース内のフォルダ[XE]を削除し、バックアップしたフォルダからコピーし直します。

データ損壊などを懸念する場合には、オラクルをShutdowunした状態で、このフォルダをバックアップし戻せば戻ります。


本記事による設定では、Archive-logファイルがどんどん蓄積され増えていきます。

あるべき運用は、データベースを停止している間に取り外し可能な媒体などへ、データベースフォルダ(XEフォルダ)とArchive-logファイルをバックアップし、Archive-logフォルダからは削除していきます。

オラクル
スポンサーリンク
- 面白かったらシェアお願いします! -
健史をフォローする
自分で改善

コメント