Oracleのバックアップ

少々時間があったのでOracleのバックアップを確認。Oracle9iに変更してからRMANを使ってバックアップをしたつもりになっていましたが、いままでリカバリの試験をしたことがありませんでした。そこで試験機をつかってリカバリができるかどうか確認。でもどうにもうまくいきませんね。。そこで仕方なく昔使っていたalter tablespace begin backupとかなんとか使ってOSレベルでのバックアップスクリプトをsqlplusw組み合わせて作ってみました。さて、大体の部分はこんな感じ。

  • テーブルスペース名を全部選択してbegin backupを発行
  • v$databaseからデータファイル名を選択してtarでどこかへバックアップする。
  • バックアップモードを解除。
  • アーカイブログファイルをバックアップ
  • コントロールファイルをバックアップ
  • redoログファイルをバックアップ

各部分で動作を確認してさて動かしてみると、これがなかなかうまくいかない。tarが途中で失敗した場合にtablespaceがバックアップモードのままになっていたり、archive log stopコマンドを発行してからarchive log startを発行するまでの間で異常終了してDBもろとも落っこちてしまったり。もう少しまじめにスクリプトをかかないといけないみたい。

そういえば昔読んだオライリーUnixバックアップ&リカバリこの本にoraback.shというスクリプトが紹介されていたなと思い出してそのサイトを見てみたら昔とすっかり様子が変わっていてoraback.shが見当たらない。ほかを探してみるか。