Blackfish SQL のデータベースをバックアップ

By: Tomohiro Takahashi

Abstract: この記事では、Blackfish SQL に組み込まれたストアドプロシージャを実行して、データベースをバックアップする方法を紹介します。

以下の手順により、WindowsとJavaの両方のプラットホームにおいて、Blackfish SQL のデータベースをバックアップすることができます。

新たにバックアップ用のデータベースを作成するには、接続時のcreateプロパティをtrueに設定してデータベースをオープンしてください。

バックアップ元のデータベースに他のユーザーが接続している状態でバックアップを行いたい場合には、「読み取り専用のトランザクション」を使用してバックアップ元のデータベースに接続してください。ちなみに、Blackfish SQL のデータベースに接続する際の「読み取り専用」の考え方には2種類あります。readOnlyプロパティを使った接続は、すべての接続に対して、データベースへの書き込みを一切禁止します。readOnlyTxプロパティは、readOnlyTxプロパティをtrueに設定した接続に対して、データベースの「トランザクションとして一貫性のある読み取り専用ビュー」を提供します。書き込みを行う接続がある状況でバックアップを行うには、このreadOnlyTxプロパティを使用すべきです。例えば以下のように設定します。

dbExpressの接続プロパティは、dbxconnections.ini で設定します。

ADO.NETの接続プロパティは、接続文字列で設定します。

JDBCの接続プロパティは、DataSource実装クラスを使用するか、JDBCのURLに追加して設定します。

既存のユーザーを新しいデータベースにコピーするには、バックアップ元のデータベースに接続して、次のストアドプロシージャを実行します。

CALL DB_ADMIN.COPY_USERS('c:\backup\employee_copy.jds', 'sysdba', 'masterkey', false, true)

1番目のパラメータは、バックアップ先のデータベース名です。2番目と3番目は、バックアップ先のデータベースのユーザーとパスワードです。4番目のパラメータには、バックアップ元のデータベースが暗号化されている場合に、同じキーを使ってターゲットデータベースを暗号化するかどうかを指定します。5番目のパラメータは、ターゲットデータベースの既存のユーザーを置き換えるかどうかを指定します。

データベースの内容をバックアップ先のデータベースへコピーするには、バックアップ元のデータベースに接続して、次のようにします。

CALL DB_ADMIN.COPY_STREAMS('c:\backup\employee_copy.jds', 'sysdba', 'masterkey', true, false)

4番目のパラメータは、既存のテーブルを上書きするかどうかを指定します。5番目のパラメータは、エラーを無視するかどうかを指定します。

接続プロパティやDB_ADMINのメソッドは、以下からダウンロード可能な「Blackfish SQL 開発者ガイド」で解説されています。

http://cc.codegear.com/Item/25076


Published on: 1/8/2008 10:03:53 PM

Server Response from: ETNASC04

Copyright© 1994 - 2013 Embarcadero Technologies, Inc. All rights reserved.