データベースのアップグレード、データベースの jConnect サポートのオン/オフの切り替え、データベースの調整、トランザクションログファイル名とトランザクションログミラーファイル名の変更、またはミラーサーバ対するデータベースの所有権の取得の強制を実行します。
ALTER DATABASE UPGRADE [ PROCEDURE ON ] [ JCONNECT { ON | OFF } ] [ RESTART { ON | OFF } ] [ SYSTEM PROCEDURE AS DEFINER { ON | OFF } ]
ALTER DATABASE { CALIBRATE [ SERVER ] | CALIBRATE DBSPACE dbspace-name | CALIBRATE DBSPACE TEMPORARY | CALIBRATE GROUP READ | CALIBRATE PARALLEL READ | RESTORE DEFAULT CALIBRATION }
ALTER DATABASE dbfile ALTER [ TRANSACTION ] LOG { ON [ log-name ] [ MIRROR mirror-name ] | OFF } [ KEY key ]
ALTER DATABASE { dbname FORCE START | SET PARTNER FAILOVER }
ALTER DATABASE dbfile CHECKSUM OFF
PROCEDURE 句 データベースに含まれるすべての dbo 所有プロシージャと SYS 所有プロシージャを削除して再作成します。
JCONNECT 句 jConnect JDBC ドライバからシステムカタログ情報にアクセスできるようにするには、JCONNECT ON を指定します。この句によって jConnect をサポートするシステムオブジェクトがインストールされます。jConnect システムオブジェクトを除外するには、JCONNECT OFF を指定します。その場合でも、システム情報にアクセスしないかぎり、JDBC を使用できます。JCONNECT はデフォルトで ON です。
RESTART 句 RESTART はデフォルトで ON です。RESTART ON が指定されており、AutoStop 接続パラメータが No に設定されている場合、アップグレード後にデータベースが再起動します。それ以外の場合、アップグレード後にデータベースが停止します。
SYSTEM PROCEDURE AS DEFINER { ON | OFF } 句 SYSTEM PROCEDURE AS DEFINER 句は、権限付き作業を実行する 16.0 より前のシステムプロシージャを、invoker または definer (所有者) の権限で実行するかどうかを指定します。ON の場合、これらのシステムプロシージャは definer (所有者) で実行されます。OFF の場合、これらのシステムプロシージャは invoker の権限で実行されます。
この句が指定されていない場合、アップグレードされたデータベースの現在の動作を維持するのがデフォルトとなります。16.0 より前のバージョンのデータベースをアップグレードしている場合、プロシージャは定義として実行されます。
この設定は、ユーザ定義プロシージャまたはバージョン 16.0 以降に導入されたプロシージャには影響しません。 この設定が影響するシステムプロシージャについては、16.0 より前のバージョンのシステムプロシージャを呼び出し側または定義者として実行するを参照してください。
CALIBRATE [ SERVER ] 句 テンポラリ DB 領域以外のすべての DB 領域を調整します。この句は、CALIBRATE PARALLEL READ によって実行される処理も実行します。
CALIBRATE GROUP READ 句 テンポラリ DB 領域でグループ読み込みの調整を実行します。テンポラリ DB 領域に大きなワークテーブルを書き込み、さまざまなグループ読み込みサイズを使用してファイルの読み込み時間を設定します。テンポラリテーブルに追加する領域が接続の制限を超えた場合、またはキャッシュサイズが足りず、最大メモリサイズで調整できない場合、調整が失敗してエラーメッセージが返されます。
CALIBRATE PARALLEL READ 句 すべての DB 領域ファイルについてデバイスの並列 I/O 機能を調整します。CALIBRATE [ SERVER ] 句もこの調整を実行します。
RESTORE DEFAULT CALIBRATION 句 一般的なハードウェアと構成設定に基づく組み込みのデフォルト値に、ディスク転送時間 (DTT: Disk Transfer Time) をリストアします。
ALTER [TRANSACTION] LOG 句 トランザクションログファイルまたはトランザクションログミラーファイルの名前を変更します。MIRROR mirror-name を指定しないと、新しいトランザクションログのファイル名が設定されます。データベースがトランザクションログを現在使っていない場合、データベースは設定されたファイル名を使って起動します。すでにトランザクションログを使っている場合、データベースはトランザクションログとして新しいファイル名を使って起動します。
MIRROR mirror-name を指定する、新しいトランザクションログミラーのファイル名として設定されます。データベースがトランザクションログミラーを現在使っていない場合、データベースはこの設定された名前を使って起動します。すでにトランザクションログミラーを使っている場合、データベースはトランザクションログミラーとして新しいファイル名を使って起動します。
この句を使用して、トランザクションログまたはトランザクションログミラーをオフにすることもできます。たとえば、ALTER DATABASE ALTER LOG OFF のように指定します。
KEY 句 トランザクションログまたはトランザクションログミラーに使用する暗号化キーを指定します。この暗号化キーには文字列または変数名を使用できます。強力に暗号化されたデータベースで ALTER [TRANSACTION] LOG 句を使用するときは、暗号化キーを指定する必要があります。
dbname FORCE START 句 現在ミラーサーバとして動作しているデータベースサーバに、データベースの所有権の取得を強制します。
FORCE START 句を使用する場合、ミラーサーバに存在しないトランザクションがプライマリサーバにあると、結果としてトランザクションが失われることがあります。
プライマリを再起動し、SET PARTNER FAILOVER 句を指定して ALTER DATABASE を実行することで、トランザクションを失わないで失敗を強制することをおすすめします。FORCE START 句は、プライマリをどうしても再起動できない場合にのみ、最後の手段として使用してください。トラブルシューティング:プライマリサーバが起動できないを参照してください。
この句は、プロシージャまたはイベントから実行できます。また、ミラーサーバ上のユーティリティデータベースに接続しているときに実行する必要があります。
SET PARTNER FAILOVER 句 サーバを停止せずに、プライマリサーバからミラーサーバへのデータベースミラーリングのフェイルオーバを起動します。この文は、プライマリサーバ上のデータベースに接続している間に実行する必要があり、プロシージャ内またはイベント内から実行できます。この文が実行された場合
データベースサーバが、その文を実行している接続を含む、データベースに対するすべての接続を終了します。
データベースが停止し、ミラーロールで再起動します。
文にプロシージャまたはイベントが含まれている場合、後続の他の文が実行されない場合があります。
CHECKSUM 句 データベースのグローバルチェックサムを無効にします。デフォルトでは、新しいデータベースでグローバルチェックサムが有効になりますが、バージョン 11 以前のデータベースではグローバルチェックサムは有効になりません。
リムーバブルドライブなどのストレージデバイス上で実行されているデータベースや Windows Mobile 上で実行されているデータベースでは、データベースファイルの破損を速やかに検出できるように、この句の設定に関係なく、データベースサーバによって常に書き込みチェックサムが有効になります。また、検証アクティビティの実行時に重要なページのチェックサムも計算されます。
グローバルチェックサムが有効になっていないデータベースでは、-wc オプションを使用して書き込みチェックサムを有効にすることができます。
構文 1 ALTER DATABASE UPGRADE 文は、データベースをアップグレードまたは更新するためのアップグレードユーティリティ (dbupgrad) の代わりとして使用します。デフォルトで、データベースが停止して、アップグレード後に再起動されます。アップグレード中にトランザクションログがアーカイブされ、データベースが停止または再起動する前に、新しいトランザクションログが作成されます。
一般に、マイナーバージョンでのデータベースの変更はデータベースオプションの追加やシステムテーブルとシステムプロシージャの細かい変更にかぎられます。ALTER DATABASE UPGRADE 文は、システムテーブルを最新バージョンにアップグレードし、新規データベースオプションを追加します。必要に応じて、すべてのシステムプロシージャを削除し、再作成します。PROCEDURE ON 句を指定すると、システムプロシージャを強制的に再構築できます。
ALTER DATABASE UPGRADE 文を現在ミラーされているデータベースで実行すると、エラーメッセージが返されます。
ALTER DATABASE UPGRADE 文を使用して、設定やシステムオブジェクトを元のインストール状態にリストアすることもできます。
データベースファイルの物理的な再編成を必要とする機能は、ALTER DATABASE UPGRADE 文を実行して使用可能にすることはできません。そのような機能には、インデックスの拡張やデータの格納に関する変更が含まれています。これらの拡張機能を利用するには、データベースのアンロードと再ロードを行ってください。
データベースのアップグレードを行う前に、データベースをバックアップしてください。
jConnect JDBC ドライバを使用してシステムカタログ情報にアクセスするには、JCONNECT ON (デフォルト値) を指定します。jConnect システムオブジェクトを実行する場合は、JCONNECT OFF を指定します。JCONNECT OFF を設定しても、データベースから jConnect サポートが削除されることはありません。その場合でも、システムカタログ情報にアクセスしないかぎり、JDBC を使用できます。続けて jConnect の新しいバージョンをダウンロードする場合、ALTER DATABASE UPGRADE JCONNECT ON 文を (再) 実行して、データベースのバージョンをアップグレードできます。
構文 2 構文 2 を使用すると、オプティマイザが使用する I/O コストモデルを再調整することもできます。この操作により、ディスク転送時間 (DTT: Disk Transfer Time) モデルが更新されます。DTT は、コストモデルで使用されるディスク I/O の数学的モデルです。I/O コストモデルを再調整するときは、データベースサーバを他の用途に使用できません。また、コンピュータ上の他のすべてのアクティビティがアイドル状態になっている必要があります。データベースサーバの再調整は高負荷のオペレーションであり、完了までに長時間かかることがあります。通常はデフォルトのままにすることをおすすめします。
CALIBRATE PARALLEL READ 句を使用する場合、10000 ページ未満の DB 領域ファイルでは並列の調整は実行されません。調整操作中にデータベースサーバが自動的にすべてのアクティビティを中断した場合でも、同じコンピュータに大量のリソースを消費するプロセスがなければ、並列の調整は実行されます。調整後、IOParallelism 拡張データベースプロパティを使用して、DB 領域ファイルに使用できる並列 I/O 操作の最大推定数を取得できます。
同じようなハードウェアインストールが大量にある場合に、繰り返し行われる時間のかかる再調整作業を省くには、sa_unload_cost_model システムプロシージャを使用してアンロードしてから、sa_load_cost_model システムプロシージャを使用して別のデータベースに適用 (ロード) して調整を再使用できます。
構文 3 ALTER DATABASE 文を使用して、データベースファイルに関連付けられているトランザクションログとトランザクションログミラーの名前を変更します。データベースの実行中にこれらの変更を行わないでください。これらの変更は、トランザクションログ (dblog) ユーティリティで行う変更と同じです。この文は、-gu オプションの設定に応じて、ユーティリティデータベースまたは別のデータベースと接続しているときに実行できます。
暗号化されたデータベースのトランザクションログまたはトランザクションログミラーを変更する場合は、キーを指定してください。データベースが監査を実行中にトランザクションログの使用を停止することはできません。監査をオフにすると、トランザクションログの使用を停止できます。この構文は、プロシージャ、トリガ、イベント、またはバッチではサポートされていません。
BACKUP DATABASE 文を使用して、実行中のデータベースのトランザクションログの名前を変更します。次に例を示します。
BACKUP DATABASE DIRECTORY 'directory-name' TRANSACTION LOG ONLY TRANSACTION LOG RENAME; |
構文 4 ALTER DATABASE...FORCE START は、プライマリサーバではなくミラーサーバから実行する必要があります。
構文 5 この句は、データベースのチェックサムを無効にする場合にのみ使用できます。
ALTER DATABASE UPGRADE 文は、Windows Mobile ではサポートされません。
構文 1 と 2ALTER DATABASE システム権限が必要です。また、このデータベースに他の接続がないことが必要です。
構文 3:SERVER OPERATOR システム権限と、トランザクションログのあるディレクトリのファイルパーミッションを持っており、データベースが実行中である必要があります。
ALTER DATABASE dbfile ALTER TRANSACTION LOG 文の実行能力は、-gu データベースオプションの設定と SERVER OPERATOR システム権限の有無によって異なります。
構文 4:SERVER OPERATOR システム権限が必要です。
ALTER DATABASE dbname FORCE START 文を実行するのに必要な権限は、-gd データベースサーバオプションを使用して変更できます。
構文 5:ALTER DATABASE システム権限が必要です。
オートコミット。
構文 1:アップグレード中にトランザクションログがアーカイブされます。アップグレード後、データベースの再起動時に新しいトランザクションログが作成されます。
構文 1:アップグレードの終了時にデータベースが停止し、デフォルトで再起動します。
SQL/2008 ベンダー拡張。
Transact-SQL ALTER DATABASE 文は、Adaptive Server Enterprise でサポートされています。ただし、Adaptive Server Enterprise でサポートされる文の句は、SQL Anywhere でサポートされる句とは切り離されています。
次の例では、jConnect サポートを無効にします。
ALTER DATABASE UPGRADE JCONNECT OFF; |
次の例は、demo.db に関連するトランザクションログファイル名を mynewdemo.log に設定します。
ALTER DATABASE 'C:\\Users\\Public\\Documents\\SQL Anywhere 16\\Samples\\demo.db' ALTER LOG ON 'mynewdemo.log'; |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |