Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - データベース管理 » データベースの管理 » データベース管理ユーティリティ

 

ログ変換ユーティリティ (dbtran)

トランザクション・ログを SQL コマンド・ファイルに変換します。

構文

データベース・サーバに対して実行する場合。

dbtran [ options ] -c { connection-string } -n SQL-file

トランザクション・ログに対して実行する場合。

dbtran [ options ] [ transaction-log ] [ SQL-file ]
オプション 説明
@data

指定された環境変数または設定ファイルからオプションを読み込みます。設定ファイルの使用を参照してください。

設定ファイル内のパスワードなどの情報を保護する場合は、ファイル難読化ユーティリティを使用して、設定ファイルの内容を難読化できます。ファイル難読化ユーティリティ (dbfhide)を参照してください。

-a

コミットされていないトランザクションをトランザクション・ログに含めるかどうかを制御します。

トランザクション・ログには、最新の COMMIT 以前にすべてのトランザクションによって加えられた変更が含まれます。最新のコミット以後の変更はトランザクション・ログの中にはありません。

-a が指定されていない場合、出力ファイルにはコミットされたトランザクションのみが含まれます。-a を指定した場合、トランザクション・ログにあるコミットされていないトランザクションに続いて、ROLLBACK 文が出力されます。

-c "keyword=value; ..." ユーティリティをデータベース・サーバに対して実行する場合に、接続文字列を指定します。接続パラメータを参照してください。
-d トランザクションを古いものから新しいものへと順に書き出すことを指定します。この機能は、主に、データベースのアクティビティを監査するときに使用されます。dbtran の出力を、データベースに対して適用しないようにしてください。
-ek key

強力に暗号化されているデータベースの暗号化キーを指定します。データベースが強力に暗号化されている場合、データベースまたはトランザクション・ログを使用するには暗号化キーを指定する必要があります。

強力な暗号化が適用されたデータベースの場合、-ek または -ep のどちらかを指定します。両方同時には指定できません。正しい暗号化キーを指定しないとコマンドが失敗します。

データベース・サーバに対して -c オプションを使用して dbtran を実行している場合は、-ek オプションではなく、接続パラメータを使用してキーを指定してください。たとえば、次のコマンドは、データベース・サーバ sample からデータベース enc.db についてのトランザクション・ログ情報を取得し、その出力を log.sql に保存します。

dbtran -n log.sql -c "ENG=sample;DBF=enc.db;
UID=DBA;PWD=sql;DBKEY=mykey"
-ep

暗号化キーを入力するよう要求します。このオプションを指定すると、暗号化キーを入力するためのウィンドウが表示されます。クリア・テキストでは暗号化キーを見ることができないようにすることで、高いセキュリティが得られます。

強力な暗号化が適用されたデータベースの場合、-ek または -ep のどちらかを指定します。両方同時には指定できません。正しい暗号化キーを指定しないとコマンドが失敗します。

データベース・サーバに対して -c オプションを使用して dbtran を実行している場合は、-ep オプションではなく、接続パラメータを使用してキーを指定してください。たとえば、次のコマンドは、データベース・サーバ sample からデータベース enc.db についてのトランザクション・ログ情報を取得し、その出力を log.sql に保存します。

dbtran -n log.sql -c "ENG=sample;DBF=enc.db;
UID=DBA;PWD=sql;DBKEY=mykey"
-f 最終チェックポイント以降に完了したトランザクションだけを出力します。
-g

auditing データベース・オプションがオンの場合は、監査情報をトランザクション・ログに追加します。この情報は、このオプションを使用して、出力ファイルにコメントとして含めることができます。auditing オプション [データベース]を参照してください。

-g オプションは、-a、-d、-t オプションも暗黙で指定したことになります。

-ir offset1,offset2 2 つの指定オフセット間の部分的トランザクション・ログを出力します。
-is source,...

次の 1 つ以上のソース (カンマ区切りのリストで指定) の操作によって変更された、ローに対する操作を出力します。

  • All   すべてのロー。これはデフォルト設定です。

  • SQLRemote   SQL Remote を使用して変更されたローだけを含みます。SR という短い形式を使用することもできます。

  • RepServer   Replication Agent (LTM) と Replication Server を使用して変更されたローだけを含みます。RS という短い形式を使用することもできます。

  • Local   レプリケートされないローだけを含みます。

-it owner.table,... カンマ区切りのリストで指定されたテーブルに対する操作を出力します。各テーブルは、owner.table として指定します。
-j date/time 指定した日付または時刻より前の、最新のチェックポイント以降のトランザクションだけを変換します。ユーザは、日付、時刻、日付と時刻を引用符で囲んで引数を指定できます。時刻を省略すると、その日付の開始時刻が使用されます。日付を省略すると、今日の日付が使用されます。日付と時刻には、フォーマット "YYYY/MMM/DD HH:NN" を使用できます。
-k エラー検出時に部分的な .sql ファイルが消去されるのを防止します。dbtran の実行中にエラーが検出された場合、通常は、部分的なファイルが誤って使用されないように、その時点までに生成された .sql ファイルが消去されます。このオプションを指定すると、破損したトランザクション・ログからトランザクションをサルベージしようとするときに役立ちます。
-m トランザクション・ログを格納するディレクトリを指定します。このオプションは、-n オプションと一緒に使用してください。
-n filename データベース・サーバに対して dbtran ユーティリティを実行するときに、SQL 文を保持する出力ファイルを指定します。
-o filename 指定したファイルに、出力メッセージを書き込みます。
-q クワイエット・モードで実行します (メッセージを表示しません)。
-r コミットされなかったトランザクションを削除します。これがデフォルトの動作です。
-rsu username,... カンマで区切ったユーザ名のリストを指定して、デフォルトの Replication Server ユーザ名を上書きします。デフォルトでは、-is オプションは、デフォルトの Replication Server ユーザ名 dbmaint および sa を想定します。
-s UPDATE 文の生成方法を制御します。テーブルにプライマリ・キーまたはユニークなインデックスがなく、重複ローがある場合、このオプションを指定しないと、ログ変換ユーティリティは標準ではない FIRST キーワードを使って UPDATE 文を作成します。このオプションを使用すると、FIRST キーワードが省略され、SQL 標準との互換性が保持されます。
-sr SQL Remote がリモート・サイトに操作を分配する方法を記述するコメントを生成し、出力ファイルに挿入します。
-t トリガをコマンド・ファイルに含めるかどうかを制御します。デフォルトでは、トリガが実行する動作はコマンド・ファイルには含まれません。一致するトリガがデータベースにある場合は、データベースに対してコマンド・ファイルを実行すると、トリガの動作が自動的に実行されます。コマンド・ファイルが実行されるデータベース内に一致するトリガがない場合は、トリガの動作を出力に入れてください。
-u userid,... 指定したユーザのトランザクション・ログだけが出力されるように制限します。
-x userid,... 指定したユーザ以外のトランザクション・ログが出力されるように制限します。
-y 確認メッセージを表示することなく、既存のコマンド・ファイルを置き換えます。-q を指定する場合、-y も指定しないと操作は失敗します。
-z トリガによって生成されたトランザクションを、コメントとして出力ファイルの中に含めます。
transaction-log 変換するログ・ファイルを指定します。-c または -m オプションとは一緒に使用できません。
SQL-file 変換した情報を含む出力ファイルを指定します。transaction-log 専用です。
備考

dbtran ユーティリティは、トランザクション・ログ内の情報を取り出して、それらを一連の SQL 文とコメントとして出力ファイルに入れます。このユーティリティは、次の方法で実行できます。

  • データベース・サーバに対して実行   データベース・サーバに対して実行した場合、dbtran は標準的なクライアント・アプリケーションとして動作します。これは、-c オプションの後に指定された接続文字列を使用してデータベース・サーバに接続し、-n オプションによって指定されたファイルに出力を送ります。この方法での実行には、DBA 権限が必要です。

    次のコマンドは、サーバ demo11 からのログ情報を変換して、出力をファイル demo.sql に入れます。

    dbtran -c "ENG=demo11;DBN=demo;UID=DBA;PWD=sql" -n demo.sql

  • トランザクション・ログ・ファイルに対して実行   トランザクショ・ログに対して実行した場合、dbtran はトランザクション・ログ・ファイルに対して直接作用します。ユーザにこの文を実行する機能を持たせないようにする場合は、トランザクション・ログ・ファイルを一般的なアクセスから保護してください。
    dbtran demo.log demo.sql

dbtran ユーティリティが実行されると、トランザクション・ログの初期のログ・オフセットが表示されます。複数のログ・ファイルが作成される場合、順序を決定するにはこの方法が効果的です。

-c を使用する場合、dbtran はオンライン・トランザクション・ログ・ファイルと、オンライン・トランザクション・ログ・ファイルと同じディレクトリにあるすべてのオフライン・トランザクション・ログ・ファイルを変換しようとします。ディレクトリに複数のデータベース用のトランザクション・ログ・ファイルが含まれている場合、dbtran がエラーを示す場合があります。この問題を回避するには、各ディレクトリに 1 つのデータベースのみのトランザクション・ログ・ファイルが含まれていることを確認します。

トランザクションは複数のトランザクション・ログにまたがる場合があります。トランザクション・ログ・ファイルに複数のログにまたがるトランザクションが含まれている場合、単一のトランザクション・ログ・ファイル (たとえば dbtran demo.log) を変換すると、関連しているトランザクションが失われる場合があります。dbtran によって完全なトランザクションを生成するには、ディレクトリ内のトランザクション・ログ・ファイルで -c または -m オプションを使用します。複数のトランザクション・ログがあるデータベースのリカバリを参照してください。

次の方法で、ログ変換ユーティリティにアクセスできます。

  • Sybase Central のログ・ファイル変換ウィザードを使用する。

  • コマンド・プロンプトで、dbtran コマンドを入力する。バッチまたはコマンド・ファイルへの組み込みには、このユーティリティが便利です。

終了コードは、0 (成功) または 0 以外の値 (失敗) です。ソフトウェア・コンポーネントの終了コードを参照してください。