| ||||||||||||||||||||||
| 前のページ 1 2 3 | ||||||||||||||||||||||
| データベースのスナップショットバックアップ〜実行 | ||||||||||||||||||||||
準備ができましたら、順を追って実行していきます。まず最初に、Oracleユーザで事前に作成した各表領域に対して"BEGIN BACKUP"を実行するSQLのスクリプトを実行します。これによって、データファイルの書き込みが停止して整合性が取れた状態になります。 | ||||||||||||||||||||||
$ sqlplus "/as sysdba" @orabegin.sql | ||||||||||||||||||||||
そして本題のスナップショットの作成です。"lvcreate -s"コマンドによりスナップショットを作成します。細かい書式は表3のようになっています。スナップショットボリューム名は対応するデバイスファイル名に影響され、複数作成した場合では解りづらくなりますので、区別できる名前が良いでしょう。 | ||||||||||||||||||||||
lvcreate -s -L [size] -n [name] [OriginalLV] | ||||||||||||||||||||||
| ||||||||||||||||||||||
表3:LVMのコマンド | ||||||||||||||||||||||
# lvcreate -s -L 1g -n orasnap /dev/vg00/oradata | ||||||||||||||||||||||
これでスナップショットを作成したので、表領域のバックアップ・モードをすぐに解除します。開始から解除までは環境にもよりますが数秒程度で完了しますので、これによるデータベース側への負荷はほとんどないと考えてもよいでしょう。 | ||||||||||||||||||||||
$ sqlplus "/as sysdba" @oraend.sql | ||||||||||||||||||||||
スナップショットボリュームをマウントして、迅速にバックアップを開始します。スナップショットのボリュームにあるのは単なるファイルですので、tarコマンドやdumpコマンド、バックアップソフトなどで、ファイルを指定してのバックアップが可能です。 | ||||||||||||||||||||||
| ||||||||||||||||||||||
バックアップ完了後は、速やかにスナップショットボリュームをunmountして削除して完了です。最後の"lvremove"を忘れたりすると、いつまでもCopy on Writeによる退避がおこなわれて、最終的にはスナップボリュームの領域がなくなるので注意が必要です。 | ||||||||||||||||||||||
# umount /mnt/orasnap | ||||||||||||||||||||||
流れを理解していただくためにコマンドを実行して確認しましたが、最終的には一連の流れをスクリプト化してcronに登録したり、商用バックアップソフトのスクリプト実行機能を活用したりして自動実行するとよいでしょう(図3)。 | ||||||||||||||||||||||
![]() 図3:NetVaultを使ったスクリプトの登録 | ||||||||||||||||||||||
| まとめ | ||||||||||||||||||||||
以上、スナップショットを活用したバックアップの実際例を解説しました。PostgreSQLと組み合わせる場合などでは、バックアップ・モードの使用ができないと思います。その場合には、短時間だけデータベースをシャットダウンして、その間にスナップショットを作成するということも可能です。 次回は最終回ということで、今までのまとめと、バックアップの今後について解説します。 | ||||||||||||||||||||||
| 前のページ 1 2 3 | ||||||||||||||||||||||
| ||||||||||||||||||||||
| ||||||||||||||||||||||
| ||||||||||||||||||||||


