マシンの障害に対する保護

概要:この文書では、dbbackup -l を使用してライブ・バックアップを冗長サーバで実行し、このバックアップを使用してリカバリを実行することで、メディア障害に対する保護を行う方法を説明します。この文書は、Adaptive Server Anywhere (SQL Anywhre) バージョン 7.x を対象としています。


ライブ・バックアップを使用して、トランザクション・ログの冗長コピーを実現できます。このコピーを使用して、データベース・サーバを実行するプライマリ・システムが使用不能になった場合にセカンダリ・システムを起動できます。 ライブ・バックアップは継続的に実行され、サーバの終了時にだけ停止します。システム障害が発生した場合は、バックアップされたトランザクション・ログを使用してシステムを短時間で再起動できます。ただし、サーバの処理する負荷の程度によっては、ライブ・バックアップの処理に遅延が生じ、コミットされたすべてのトランザクションが含まれない場合があります。


ライブ・バックアップの作成

トランザクション・ログのライブ・バックアップを実行するには、-l コマンド・ライン・オプションを指定して dbbackup コマンド・ライン・ユーティリティを実行します。

たとえば、次の例のようにデータベースを実行しているとします。この例は、asademo.db データベースを Adaptive Server Anywhere (SQL Anywhre) バージョン 7 サーバで起動し、asademo.db ファイルの名前を test に変更し、データベース・サーバの名前を testsrv に変更します。

d:\>dbsrv7 -x tcpip -n testsrv asademo.db -n test

ライブ・バックアップを作成するには、次の手順に従います。

1. オンライン・マシンの障害時にデータベースを実行できるセカンダリ・マシンを設定します (セカンダリ・マシンには Adaptive Server Anywhere (SQL Anywhre) をインストールしてください)。

2. 最初に (それ以降は定期的に)、次のようにしてセカンダリ・マシンに対してフル・バックアップを実行します。

dbbackup -c “uid=dba;pwd=sql;eng=testsrv;dbn=test;links=tcpip” c:\backup

結果は次のようになります。

Adaptive Server Anywhere Backup Utility Version 7.0.3.2046
(928 of 928 pages, 100% complete)
(47 of 47 pages, 100% complete)
Database backup completed

3. 次のようにして、トランザクション・ログのライブ・バックアップをセカンダリ・マシンに対して実行します。

dbbackup -l path\filename.log -c “connection_string” backup dir

4. 次のように、セカンダリ・マシンから dbbackup ユーティリティを定期的に実行します。

dbbackup -l c:\backup\test\live.log -c
“uid=dba;pwd=sql;eng=testsrv;dbn=test;links=tcpip” c:\backup

結果は次のようになります。

Adaptive Server Anywhere Backup Utility Version 7.0.3.2046
(46 of 46 pages, 100% complete)
Live backup of transaction log waiting for next page…

プライマリ・マシンが使用不能になると、セカンダリ・マシンを使用してデータベースを再起動できます。データベース・ファイルとトランザクション・ログには、再起動に必要な情報が格納されています。

たとえば、プライマリ・サーバの障害時に、次のような情報が記録されます。

Connection was terminated
(46 of 46 pages, 100% complete)
Not connected to a database

ライブ・バックアップからのリカバリ


ライブ・バックアップは、運用データベースを実行中のプライマリ・マシンから独立させるためのバックアップを作成します。ライブ・バックアップからデータベースを再起動するには、Adaptive Server Anywhere (SQL Anywhre) をセカンダリ・マシンにインストールします。

ライブ・バックアップを使用してデータベースを再起動するには、次の手順に従います。

1. -a スイッチ (トランザクション・ログを適用) を使用してセカンダリ・マシンでデータベース・サーバを起動し、バックアップされたトランザクション・ログをバックアップされたデータベースに適用します。たとえば、次のように入力します。

dbeng7 -a c:\backup\asademo.log c:\backup\asademo.db

データベース・サーバは、トランザクション・ログの適用後は自動的に終了します。

2. 1. -a スイッチ (トランザクション・ログを適用) を使用してセカンダリ・マシンでデータベース・サーバを起動し、現在またはライブ・バックアップのトランザクション・ログを適用し、データベースを最新にします。たとえば、次のように入力します。

dbeng7 -a c:\backup\live.log c:\backup\asademo.db

データベース・サーバは、トランザクション・ログの適用後は自動的に終了します。

3. データベース・サーバを通常の方法で起動し、ユーザにアクセスを許可します。新しいアクティビティは、現在のトランザクション・ログに追加されます。