|
||||||||||||||||||||||
| 1 2 3 次のページ | ||||||||||||||||||||||
| オンライン・バックアップの時代 | ||||||||||||||||||||||
|
現在のようにネットワーク環境が整う以前の企業の基幹システムや銀行などは、平日の夜間や休日ではシステムが稼動しておらず、データベースもシャットダウンしてしまい、その際にバックアップすれば良いという考え方がありました。 しかし、VPNなどで平日の夜間や休日でも会社にアクセスして仕事ができるようになったり、銀行などが24時間使用できたり、ネットワーク上での商取引が絶え間なくおこなわれるようになった現在では、システムの心臓部ともいえるデータベースを停止することは不可能になってきています。そのため、最近のデータベースのバックアップといえばオンライン・バックアップを検討することが多くなってきています。 |
||||||||||||||||||||||
| オンライン・バックアップの難しさ | ||||||||||||||||||||||
|
一部の特殊なケースを除けば、データベースのデータはファイルとして格納されています。そのためデータベースを停止すれば、他の一般的なファイルとの違いはありません。しかし大半のデータベースではトランザクション処理を採用しており、まず最初にログファイルに記録され、その後でデータファイルへと反映されるのが通常です。このため、トランザクションが発生している限り、データベースのバックアップをおこなうことができません。 そこで、何らかの形でデータファイルへの書き込みをロックし、その間にデータファイルをバックアップすることになります。しかし、データベースの種類によってはその方法が違うため、各々の特徴を抑えておく必要があります。 |
||||||||||||||||||||||
![]() 図1:トランザクションとバックアップ |
||||||||||||||||||||||
| Oracle Databaseのバックアップ | ||||||||||||||||||||||
|
Oracle Databaseのバックアップ方法は2種類用意されています。1つは、ユーザ管理バックアップと呼ばれ、SQLコマンドを発行してデータの書き込みをロックしている間にバックアップをおこなう方法です。もう1つはOracle DatabaseのRecovery Manager(RMAN)という、Oracle社が作成したインターフェイス/コマンド方法を使う方法です。その2種類の方法を説明します。 なお、どちらの方法でバックアップする場合にも、必ずログはアーカイブログモードに設定しておく必要があります。 |
||||||||||||||||||||||
| ユーザ管理バックアップ | ||||||||||||||||||||||
|
まずは、ユーザ管理バックアップと呼ばれる方法を説明します。表領域をバックアップする前に"ALTER TABLESPACE BEGIN BACKUP"というSQLコマンドを発行すると、データファイルへの書き込みをロックできますので、その間にバックアップをおこないます。バックアップ後、"ALTER TABLESPACE END BACKUP"というSQLコマンドを発行して、解放してあげます。バックアップ対象が複数ある場合には、この処理をシーケンシャルで繰り返します。 ファイルのバックアップには、OSのコマンドや商用バックアップソフトなどのファイルバックアップ機能を使用します。以下に示す例は、表領域1〜3を順にバックアップしていく様子です。 |
||||||||||||||||||||||
|
※編集局注 Oracle Databaseではデータファイルを仮想的な領域に割り当て、その領域を「表領域」と呼んでいます。 |
||||||||||||||||||||||
|
ユーザ管理バックアップ |
||||||||||||||||||||||
ALTER TABLESPACE 表領域1 BEGIN BACKUP;
|
||||||||||||||||||||||
|
1 2 3 次のページ |
||||||||||||||||||||||
|
|
||||||||||||||||||||||
|
|
||||||||||||||||||||||
|
||||||||||||||||||||||
|
|
||||||||||||||||||||||
|
||||||||||||||||||||||
|
|
||||||||||||||||||||||
|
||||||||||||||||||||||


