|
|
前のページ 1 2 3
|
|
データベースのスナップショットバックアップ〜実行
|
準備ができましたら、順を追って実行していきます。まず最初に、Oracleユーザで事前に作成した各表領域に対して"BEGIN BACKUP"を実行するSQLのスクリプトを実行します。これによって、データファイルの書き込みが停止して整合性が取れた状態になります。
|
$ sqlplus "/as sysdba" @orabegin.sql
SQL*Plus: Release 10.1.0.2.0 - Production on 日 5月 1 02:24:21 2005
Copyright (c) 1982, 2004, Oracle. All rights reserved.
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
に接続されました。
表領域が変更されました。
表領域が変更されました。
表領域が変更されました。
表領域が変更されました。
表領域が変更されました。
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining optionsとの接続が切断されました。
|
そして本題のスナップショットの作成です。"lvcreate -s"コマンドによりスナップショットを作成します。細かい書式は表3のようになっています。スナップショットボリューム名は対応するデバイスファイル名に影響され、複数作成した場合では解りづらくなりますので、区別できる名前が良いでしょう。
|
|
lvcreate -s -L [size] -n [name] [OriginalLV]
|
|
-s |
スナップショットの作成を意味する |
-L [size] |
スナップショットボリュームのサイズ |
-n [name] |
スナップショットボリューム名 |
[originalLV] |
対象とするオリジナルの論理ボリューム名 |
|
表3:LVMのコマンド
|
# lvcreate -s -L 1g -n orasnap /dev/vg00/oradata
lvcreate -- WARNING: the snapshot will be automatically disabled once it gets full
lvcreate -- INFO: using default snapshot chunk size of 64 KB for "/dev/vg00/orasnap"
lvcreate -- doing automatic backup of "vg00"
lvcreate -- logical volume "/dev/vg00/orasnap" successfully created
|
これでスナップショットを作成したので、表領域のバックアップ・モードをすぐに解除します。開始から解除までは環境にもよりますが数秒程度で完了しますので、これによるデータベース側への負荷はほとんどないと考えてもよいでしょう。
|
$ sqlplus "/as sysdba" @oraend.sql
SQL*Plus: Release 10.1.0.2.0 - Production on 日 5月 1 02:26:39 2005
Copyright (c) 1982, 2004, Oracle. All rights reserved.
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
に接続されました。
表領域が変更されました。
表領域が変更されました。
表領域が変更されました。
表領域が変更されました。
表領域が変更されました。
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining optionsとの接続が切断されました。
|
スナップショットボリュームをマウントして、迅速にバックアップを開始します。スナップショットのボリュームにあるのは単なるファイルですので、tarコマンドやdumpコマンド、バックアップソフトなどで、ファイルを指定してのバックアップが可能です。
|
# mkdir /mnt/orasnap
# mount /dev/vg00/orasnap /mnt/orasnap
mount: ブロックデバイス /dev/vg00/orasnap は書き込み禁止です、読込み専用でマウントします
# cd /mnt/orasnap/o10g/
# ls
|
example01.dbf |
|
system01.dbf |
|
undotbs01.dbf |
sysaux01.dbf |
|
temp01.dbf |
|
users01.dbf |
|
バックアップ完了後は、速やかにスナップショットボリュームをunmountして削除して完了です。最後の"lvremove"を忘れたりすると、いつまでもCopy on Writeによる退避がおこなわれて、最終的にはスナップボリュームの領域がなくなるので注意が必要です。
|
# umount /mnt/orasnap
# lvremove /dev/vg00/orasnap
lvremove -- do you really want to remove "/dev/vg00/orasnap"? [y/n]: y
lvremove -- doing automatic backup of volume group "vg00"
lvremove -- logical volume "/dev/vg00/orasnap" successfully removed
|
流れを理解していただくためにコマンドを実行して確認しましたが、最終的には一連の流れをスクリプト化してcronに登録したり、商用バックアップソフトのスクリプト実行機能を活用したりして自動実行するとよいでしょう(図3)。
|
図3:NetVaultを使ったスクリプトの登録
|
まとめ
|
以上、スナップショットを活用したバックアップの実際例を解説しました。PostgreSQLと組み合わせる場合などでは、バックアップ・モードの使用ができないと思います。その場合には、短時間だけデータベースをシャットダウンして、その間にスナップショットを作成するということも可能です。
次回は最終回ということで、今までのまとめと、バックアップの今後について解説します。
|
前のページ 1 2 3
|
|
|
|
著者プロフィール
バックボーン・ソフトウエア株式会社 青木 浩朗
ストレージ専業ベンダーにて、SEおよび企画を担当した後に、2001年にBakBoneSoftware入社。主に大手ベンダーのSEを担当しながら、テクニカル・マーケティングとして、各種講演や執筆活動を行っている。最近は、特にデータベースとクラスタリングに注力し、検証レポートを作成するのをライフワークとしている。
|
|
|
|