→Oracleに関するメモ
バックアップ、REDOログ関連の備忘メモ
#contents
*論理バックアップ [#a44cb744]
export/importを使ったバックアップ/リストアのこと
*物理バックアップ [#b03f7711]
OSコマンドによるファイルコピー、もしくはRMANを使ってバックアップ
-一貫性バックアップ=コールドバックアップ
--事前にサービスを止める > net stop <oracleサービス名>
--DBを止めたあとで .dbf, .ctl, .log ファイルを退避する
--init.ora, spfile.oraも取って置きたい
-非一貫性バックアップ=ホットバックアップ(DBを動かしたまま)
--アーカイブログモードでの運用が前提。
--表領域をバックアップモードにして OCOPYコマンドでコピーする
*REDOログへの書き込みを行うモード [#q10175fd]
-アーカイブモード~
1つのオンラインREDOログを使い切ってスイッチするタイミングで
新しくアーカイブREDOログファイルを作ってコピーする
-非アーカイブモード~
すべてのREDOログファイルを使い切ると最初のRODOログファイルを循環的に使う
*アーカイブログモードの確認 [#je98c556]
+sysで接続
+>archive log list;
SQL> archive log list;
データベース・ログ・モード 非アーカイブ・モード
自動アーカイブ 使用禁止
アーカイブ先 D:\oracle\ora92\RDBMS
最も古いオンライン・ログ順序 122
現行のログ順序 124
*アーカイブログモードの設定 [#a247e7f5]
+sysで接続
+DBを停止(shutdown)
+マウントモードで起動(startup mount)
+初期化パラメータの設定
LOG_ARCHIVE_START=TRUE
LOG_ARCHIVE_DEST=<path> <--ここに十分な容量が必要。
LOG_ARCHIVE_FORMAT=arch%s.arc
+モード変更
>alter database archivelog; (オフにするときは noarchivelog)
+DBオープン
>alter database open;
*強制的にアーカイブを出力したいとき [#ve840593]
>alter system archive log current;
(アーカイブログモード時)
*リストア手順 [#e6032d0e]
+DBを停止
+バックアップしたファイルを戻す(REDOログ以外)
+DBをマウント状態で起動 startup mount
+recoverコマンドを打つ
>recover database;
(prompt)auto
+alter database open;
*注意点 [#c53a13f2]
ログアーカイブモードになっているときはアーカイブ先のフォルダ、例えば''D:\oracle\ora92\RDBMS''にどんどんアーカイブREDOログがたまっていくので、十分な容量が確保されている必要がある。また、コールドバックアップをしたらその時点までのアーカイブREDOログはいらなくなるので削除するようにしておかないといつかディスクがパンクするので注意。きちんとした運用を考えないままログアーカイブモードにするのは控えるべし。