この項では、データベースをアンロードして、新しいバージョン 11 データベースに再ロードする方法について説明します。
Windows Mobile データベースのアップグレードについては、Windows Mobile のデータベースの再構築を参照してください。
Mac OS X 用の SQL Anywhere 9.0.2 は PPC で サポートされ、SQL Anywhere 10.0.0 以降は Intel でサポートされていました。Mac OS X に 9.0.2 以前のバージョンのデータベースがある場合は、次の 2 つの方法でデータベースをアンロードできます。
バージョン 9.0.2 のソフトウェアを使用してデータベースをアンロードします。
SQL Anywhere 11 がインストールされている別のプラットフォームにデータベースをコピーしてから、バージョン 11 のソフトウェアを使用してデータベースをアンロードします。
データベースをアンロードした後は、Mac OS X でバージョン 11 のソフトウェアを使用してデータベースを再ロードできます。
大規模なデータベースのアンロードや再ロードには時間がかかり、大容量のディスク領域が必要になることがあります。この処理では、アンロードされたデータと新しいデータベース・ファイルを保持するため、データベースの約 2 倍のディスク領域にアクセスする必要があります。
バージョン 11 のツールを使用してバージョン 9 以前のデータベースを再構築するときには、次の制限事項があります。
旧バージョンの全データベース・サーバのデータベースを切断して、コンピュータで実行している旧バージョンのデータベース・サーバを停止する必要があります。また、コンピュータで実行しているバージョン 11 のデータベース・サーバも停止する必要があります。dbunload によってこれらの状態が検出され、処理を続行できない場合は、エラーが発生し、再構築に失敗します。
再構築前のデータベースの dbunload 接続文字列に、ENG、START、または LINKS の各接続パラメータを含めないでください (-c オプションで指定)。これらの接続パラメータを指定すると、無視され、警告が表示されます。Sybase Central の [接続] ウィンドウの [サーバ名] フィールドと [開始行] フィールドには、値を入力しないでください。
既存のデータベースへの直接ファイル・システム・アクセスを使用して、コンピュータで dbunload を実行します (dbunload が、共有メモリを使用してデータベースに接続できる状態である必要があります)。
再構築を実行するコンピュータで、dbunload_support_engine という名前のデータベース・サーバを実行することはできません。
パスワードの大文字と小文字の区別 新しく作成された SQL Anywhere 11 データベースでは、データベースでの設定にかかわらず、すべてのパスワードは大文字と小文字が区別されます。新しいデータベースのデフォルトの DBA パスワードは、sql です。
既存のデータベースを再構築する場合、SQL Anywhere でのパスワードの大文字と小文字の区別は、次のように決まります。
パスワードを最初に入力したのが大文字と小文字を区別しないデータベースだった場合、そのパスワードの大文字と小文字は区別されません。
パスワードを最初に入力したのが大文字と小文字を区別するデータベースだった場合、大文字のパスワードと、大文字と小文字が混在したパスワードでは、大文字と小文字が区別されます。ただし、パスワードをすべて小文字で入力した場合、パスワードの大文字と小文字は区別されません。
既存のパスワードと新しいパスワードの両方に加えられた変更は、大文字と小文字が区別されます。
ページ・サイズ SQL Anywhere 11 データベースのデフォルトのデータベース・ページ・サイズは 4096 バイトです。バージョン 11 でサポートされるページ・サイズは、2048、4096、8192、16384、32768 バイトです。既存のデータベースで、サポートされていないページ・サイズが使用されている場合は、新しいデータベースのページ・サイズはデフォルトで 4096 バイトに設定されます。dbinit の -p オプションまたは dbunload の -ap オプションを使用して、別のページ・サイズを指定できます。初期化ユーティリティ (dbinit)とアンロード・ユーティリティ (dbunload)を参照してください。
照合 バージョン 9 以前の SQL Anywhere では、CHAR データ型で使用される 1 つの照合しかサポートしていませんでした。この照合は、SQL Anywhere 照合アルゴリズム (SACA) を使用していました。バージョン 10 以降の SQL Anywhere では、照合アルゴリズムとして、SACA と UCA (Unicode 照合アルゴリズム) の 2 つをサポートしています。再構築されたデータベース用に新しい照合や別の照合を指定していない場合は、既存のデータベースの SACA 照合がアンロードされ、再構築されたデータベースで再利用されます。
カスタム照合を使用してデータベースを再構築する場合に 1 ステップで再構築すると、その照合は保持されます (内部アンロード)。データベースをアンロードしてから、作成したデータベースにスキーマとデータをロードする場合は、提供されるいずれかの照合を使用する必要があります。サポートされている照合と代替照合を参照してください。
データベースのファイル・サイズ SQL Anywhere のインデックスが変更された結果、データベースをアンロードしてから再ロードして再構築すると、再構築されたデータベースが元のデータベースよりも小さくなる場合があります。このデータベースのサイズの縮小は、問題や、データが失われたことを示すものではありません。
データベース・アンロード・ウィザードを使用して、既存のデータベースを再構築できます。このウィザードを使用すると、データベースを再ロード・ファイルとデータ・ファイルにアンロードするか、新しいデータベースにアンロードおよび再ロードするか、既存のデータベースにアンロードおよび再ロードするかのいずれかの操作を実行できます。再構築の前に、データベースをバックアップすることを強くおすすめします。
データベース・ファイルは、SQL Anywhere 11 がインストールされているコンピュータと同じコンピュータに保存されている必要があります。
データベースからはテーブルのサブセットはアンロードできません。dbunload ユーティリティを使用してアンロードしてください。
データベース・アンロード・ウィザードで、データベース・ファイルがすでに実行されていると認識された場合は、アンロードを続行する前にデータベースが停止します。
ソフトウェアをアップグレードする場合の一般的な対応策を行います。アップグレードを行う前の重要な注意事項を参照してください。
断片化されているドライブでは、データベースのパフォーマンスが低下するので、可能な場合は、新しいデータベースを保存するドライブの断片化を解除してください。
アンロードと再ロードを行うデータベースに対して、排他アクセスを持っていることを確認してください。他のユーザは接続できません。
[スタート] - [プログラム] - [SQL Anywhere 11] - [Sybase Central] を選択します。
[ツール] - [SQL Anywhere 11] - [データベースのアンロード] を選択します。
データベース・アンロード・ウィザードの概要ページを読んで、[次へ] をクリックします。
[旧バージョンのサーバで実行中のデータベース、または実行中ではないデータベースをアンロードする] を選択します。データベースの接続情報を入力します。[次へ] をクリックします。
[新しいデータベースへのアンロードと再ロード] を選択します。[次へ] をクリックします。
データベースの新しいファイル名を指定します。[次へ] をクリックします。
新しいデータベースのページ・サイズを指定できます。バージョン 11 では、デフォルトのページ・サイズ (推奨値) は 4096 バイトです。
必要に応じてデータベース・ファイルを暗号化できます。強力な暗号化を選択した場合は、データベースを起動するたびに暗号化キーが必要です。データベースの暗号化と復号化を参照してください。
[構造とデータをアンロード] を選択します。[次へ] をクリックします。
再構築が完了したときに新しいデータベースに接続するかどうかを指定します。
[完了] をクリックします。新しいデータベースを調べて、再構築が正常に完了したことを確認します。
アンロード・ユーティリティ (dbunload) の -an または -ar オプションを使用して、既存のデータベースを再構築できます。
-an オプションを使用すると、元のデータベースをそのまま残して新規データベースが作成されるので、このオプションを使用することをおすすめします。
-ar オプションを使用すると、既存のデータベースが新しいバージョン 11 のデータベースに置き換わります。
再構築の前に、データベースをバックアップすることをおすすめします。
データベースのページ・サイズには、2048、4096、8192、16384、32768 バイトのいずれかを指定できます。デフォルトは元のデータベースのページ・サイズです。
ソフトウェアをアップグレードする場合の一般的な対応策を行います。アップグレードを行う前の重要な注意事項を参照してください。
システム・パスで、他のユーティリティより前にバージョン 11 のユーティリティが置かれていることを確認してください。ユーティリティの使用を参照してください。
バージョン 11 の dbunload ユーティリティは、旧バージョンのデータベース・サーバで実行されているデータベースに対して使用できないので、すべての SQL Anywhere と Adaptive Server Anywhere のデータベース・サーバを停止します。次に例を示します。
dbstop -c "DBF=mydb.db;UID=DBA;PWD=sql" |
断片化されているドライブでは、データベースのパフォーマンスが低下するので、可能な場合は、新しいデータベースを保存するドライブの断片化を解除してください。
データベースをバックアップします。次に例を示します。
dbbackup -c "DBF=mydb.db;UID=DBA;PWD=sql" old-db-backup-dir |
バックアップのクイック・スタートを参照してください。
データベースのバックアップには、正しいバージョンの dbbackup を使用してください。ユーティリティの使用を参照してください。
-an または -ar オプションを指定してアンロード・ユーティリティ (dbunload) を実行して、新しいデータベースを作成します。
dbunload -c "connection-string" -an database-filename |
次に例を示します。
dbunload -c "DBF=mydb.db;UID=DBA;PWD=sql" -an mydb11.db |
connection-string で指定するデータベース・ユーザは、アンロードするデータベースに DBA 権限で接続する必要があります。このコマンドを使用すると、新規データベースが作成されます (-an を指定した場合)。-ar オプションを指定すると、既存のデータベースは再構築後のデータベースに置き換わります。-ar オプションを使用するには、パーソナル・データベース・サーバに接続するか、アンロード・ユーティリティ (dbunload) と同じコンピュータ上にあるネットワーク・データベース・サーバに接続します。
アンロード・ユーティリティ (dbunload) のその他のオプションについては、アンロード・ユーティリティ (dbunload)を参照してください。
dbunload またはデータベース・アンロード・ウィザードを実行したときに再構築処理に失敗した場合は、次の手順に従って失敗の原因を診断できます。
既存のデータベースで dbunload -n を実行します。
dbunload -c "connection-string" -n directory-name |
新しい、バージョン 11 の空のデータベースを作成します。
dbinit test.db |
reload.sql ファイルを空のデータベースに適用します。
dbisql -c "DBF=test.db;UID=DBA;pwd=sql" reload.sql |
reload.sql ファイルを新しいデータベースに適用したときに受信したメッセージに基づいて、元のデータベースまたは reload.sql ファイルに変更を加えます。
次の表に、再構築の失敗につながる既知の問題とその解決策を示します。
既知の問題 | 解決策 | ||
---|---|---|---|
テーブル名のプレフィクスに所有者名が付いている場合は、プロシージャまたはトリガ内の DECLARE LOCAL TEMPORARY TABLE 文により、構文エラーが発生します。 | 所有者名を削除します。 | ||
CREATE TRIGGER 文で、トリガが定義されたテーブルの所有者名が指定されておらず、ユーザが reload.sql ファイルを実行して参照するときに、テーブルが所有者名で修飾されている必要がある場合、CREATE TRIGGER 文は失敗し、テーブルが見つからなかったことを示すエラーが返されます。 | テーブル名のプレフィクスに所有者名を付けます。 | ||
オブジェクト名 (テーブル、カラム、変数、パラメータ名など) が SQL Anywhere の以後のバージョンで導入された予約語 (NCHAR など) に対応している場合は、再ロードに失敗します。次に例を示します。
|
予約語へのすべての参照を、別の名前を使用するように変更します。変数名の場合は、名前の競合を回避する @ を名前のプレフィクスとして使用するのが、一般的な規則です。 予約語の完全なリストについては、予約語を参照してください。 |
||
データベースをバージョン 9 以前の dbunload でアンロードする場合、reload.sql ファイルに ml_add_property システム・プロシージャの呼び出しが含まれることがありますが、新しいバージョン 11 データベースにはこのプロシージャは存在しません。 |
バージョン 11 のdbunload ユーティリティを使用してデータベースをアンロードしてください。 適切なバージョンのデータベース・ユーティリティを使用していることを確認する方法については、ユーティリティの使用を参照してください。 |
||
バージョン 9 以前の dbunload を使用してデータベースをアンロードする場合、Transact-SQL 外部ジョイン (*= または =* で指定) を使用するビューを再ロードすると、それらのビューが適切に作成されないことがあります。 |
次のセクション行を再ロード・スクリプトに追加します。
Transact-SQL 外部ジョインを使用しているすべてのビューを、後で書き直してください。 |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |