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 サーバ - データベース管理 » データベースの管理 » データベース管理ユーティリティ

 

初期化ユーティリティ (dbinit)

新しいデータベースを作成します。

構文
dbinit [ options ] new-database-file
オプション 説明
@data

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

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

-a

CHAR データ型または NCHAR データ型で UCA (Unicode 照合アルゴリズム) を使用している場合 (「-z」と「-zn」を参照)、文字列比較の際に文字のアクセント記号の違いを考慮します (たとえば、e は é より小さいと見なします)。UCA 照合を使用して作成された日本語のデータベースを除き、デフォルトではアクセント記号は無視されます (e は é と等しいと見なされます)。すべての基本文字 (アクセント記号と大文字/小文字の区別を取り除いた文字) が等しい場合は、アクセント記号が左から右へ比較されます。

日本語のデータベースを作成する場合の UCA 照合では、デフォルトでアクセント記号が区別されます。つまり、アクセント記号が考慮されます。Unicode 照合アルゴリズム (UCA)を参照してください。

-af

CHAR データ型または NCHAR データ型で UCA を使用している場合 (後述の「-z」と「-zn」を参照)、文字列比較の際に文字のアクセント記号の違いを考慮します (たとえば、e は é より小さいと見なします)。デフォルトでは、アクセント記号は無視されます (e は é と等しいと見なされます)。すべての基本文字 (アクセント記号を取り除いた文字) が等しい場合は、フランス語の規則に従ってアクセント記号が右から左へ比較されます。

詳細については、Unicode 照合アルゴリズム (UCA)を参照してください。

-b

データベースにブランクを埋め込みます。

SQL Anywhere は、文字列について、可変長であり VARCHAR ドメインを使用して格納されている文字列と同じ扱いで、すべての文字列を比較します。これには、固定長の CHAR カラムまたは NCHAR カラムの文字列比較も含まれます。また、値がデータベースに格納されている場合、SQL Anywhere は後続ブランクのトリムや埋め込みは行いません。

デフォルトでは、SQL Anywhere はブランクを意味のある文字として扱います。したがって、値 'a ' (文字 'a' と、後続の 1 つのブランク) は、単一文字の文字列 'a' と等しくありません。不等号比較の照合でも、ブランクは、他の文字と同じように扱われます。

ブランク埋め込みが有効である場合 (dbinit -b オプション)、文字列比較のセマンティックは ANSI/ISO SQL 標準と一層密接になります。ブランク埋め込みが有効であると、SQL Anywhere はどのような比較であっても後続ブランクを無視します。

上に挙げた例では、ブランクを埋め込まれたデータベースで 'a ' を 'a' に対して等号比較すると、TRUE が返されます。ブランクを埋め込まれたデータベースでは、固定長文字列の値は、アプリケーションによってフェッチされたときにブランクで埋め込まれます。このような文字の割り当てが行われたときにアプリケーションが文字列のトランケーション警告を受け取るかどうかは、ansi_blanks 接続オプションによって制御されます。ansi_blanks オプション [互換性]を参照してください。

-c

比較や文字列操作をするときに、すべての値で大文字と小文字を区別します。大文字と小文字を区別するデータベースであっても、データベースの識別子については大文字と小文字は区別されません。

UCA 照合を使用して作成された日本語のデータベースを除き、デフォルトではすべての比較において大文字と小文字が区別されません。日本語のデータベースを作成する場合の UCA 照合では、デフォルトで大文字と小文字が区別されます。

QAnywhere サーバ・ストアとして使用されるデータベースでは、大文字と小文字を区別する必要があります。

このオプションは、ISO/ANSI SQL 標準との互換性を保つために用意されています。

-dba [DBA-user][ ,pwd ]

DBA ユーザ ID とパスワードを指定します。データベースの DBA ユーザに新しい名前を指定すると、そのデータベースにユーザ DBA として接続することはできなくなります。DBA データベース・ユーザに別のパスワードを指定することもできます。パスワードを指定しない場合は、デフォルト・パスワードの sql が使用されます。このオプションを指定しない場合は、パスワードが sql のデフォルト・ユーザ ID DBA が作成されます。

次のコマンドは、いずれも DBA ユーザ名を testuser、デフォルト・パスワードを sql としてデータベースを作成します。

dbinit -dba testuser mydb.db

dbinit -dba testuser, mydb.db

次のコマンドは、パスワードが mypwd であるデフォルト・ユーザ ID DBA を使用します。

dbinit -dba ,mypwd mydb.db

次のコマンドは、DBA ユーザをパスワードが mypwd である user1 に変更します。

dbinit -dba user1,mypwd mydb.db

パスワードには 7 ビット ASCII 文字を使用することをおすすめします。それ以外の文字を使用すると、サーバがクライアントの文字セットを UTF-8 に変換できない場合、パスワードが機能しないことがあります。

-dbs size[ k | m | g | p ]

データベースの領域を事前に割り付けます。データベースが使用する領域の事前割り付けを行うと、データベースがあるドライブの空き領域が不足する危険性を小さくすることができます。また、データベース・サイズを拡大する操作は時間を要するため、それが必要となる前にデータベースに保存できるデータの量を増やすことがパフォーマンスの向上につながります。

デフォルトでは、size の値はバイト単位となります。単位をキロバイト、メガバイト、ギガバイト、またはページで指定するには、それぞれ kmgp を使用します。

-ea algorithm

データベース暗号化またはテーブル暗号化 (-et) で使用する暗号化アルゴリズムを指定します。単純暗号化の場合は、(-ek や -ep を指定するのではなく) -ea simple を指定します。単純暗号化はデータベースの難読化に相当し、データベース・ファイルが不用意に直接アクセスされた場合にデータが表示されないようにすることだけを目的としています。これにより第三者は、ディスク・ユーティリティを使用してファイルを表示し、データベースのデータを解読することが困難になります。

セキュリティを強化するには、128 ビットの場合は AES、256 ビットの場合は AES256 の強力な暗号化を指定します。FIPS 認定の強力な暗号化を使用するには、128 ビットの場合は AES_FIPS、256 ビットの場合は AES256_FIPS をそれぞれ指定してください。強力な暗号化を使用するためには、-ek または -ep オプションも指定する必要があります。強力な暗号化の詳細については、強力な暗号化を参照してください。

暗号化されていないデータベースを作成するには、-ea none を指定するか、-ea オプションを指定しません (-et、-ep、-ek オプションも指定しません)。

-ea オプションを指定しない場合、デフォルトの動作は次のようになります。

  • -ea none (-ek、-ep、-et が指定されない場合)
  • -ea AES (-ek、または -ep が指定される場合) (-et の指定とは無関係)
  • -ea simple (-ek または -ep を指定せずに -et を指定する場合)

アルゴリズム名の大文字と小文字は区別されません。

Windows Mobile では、ARM プロセッサ用に AES_FIPS および AES256_FIPS アルゴリズムのみがサポートされています。

次のコマンドは、強力に暗号化されたデータベースを作成し、暗号化キーとアルゴリズムを指定します。

dbinit -ek "0kZ2o56AK#" -ea AES_FIPS "myencrypteddb.db"

ただし、ファイル圧縮ユーティリティを使用する場合、暗号化を実行したデータベースは、暗号化されていないデータベースほどには圧縮できません。

別途ライセンスが必要な必須コンポーネント

ECC 暗号化と FIPS 認定の暗号化には、別途ライセンスが必要です。強力な暗号化テクノロジはすべて、輸出規制対象品目です。

別途ライセンスが必要なコンポーネントを参照してください。

-ek key

コマンドに暗号化キーを直接指定することで、強力に暗号化されたデータベースを作成するように指定します。-ek オプションは、-ea オプションによって任意で指定された AES アルゴリズムとともに使用します。-ea オプションを指定しないで -ek オプションを指定すると、デフォルトで AES が使用されます。

このオプションを -et とともに指定すると、データベースは暗号化されません。この場合、テーブル暗号化が有効になります。テーブル暗号化を参照してください。

警告

強力な暗号化が適用されたデータベースの場合、キーのコピーは必ず安全な場所に保管してください。暗号化キーがわからなくなった場合は、Sybase 製品の保守契約を結んでいるサポート・センタに依頼してもデータにはアクセスできません。アクセスできなくなったデータベースは、廃棄して、新しくデータベースを作成する必要があります。

-ep

ウィンドウに暗号化キーを入力することで、強力に暗号化されたデータベースを作成するように指定します。クリア・テキストでは暗号化キーを見ることができないようにすることで、高いセキュリティが得られます。

暗号化キーは、正確に入力されたことを確認するために 2 回入力してください。キーが一致しない場合は、初期化は失敗します。

このオプションを -et とともに指定すると、データベースは暗号化されません。この場合、テーブル暗号化が有効になります。

詳細については、強力な暗号化を参照してください。

-et

-ea オプションで指定した暗号化アルゴリズム (およびキー) を使用したテーブル暗号化を有効にします。このオプションは、データベース全体を暗号化しないで、暗号化されたテーブルを作成する場合に使用します。-et を -ek または -ep とともに指定し、-ea を指定しないと、デフォルトで AES アルゴリズムが使用されます。-et だけを指定した場合は、単純暗号化が使用されます。

テーブル暗号化を有効にしただけで、テーブルが暗号化されるわけではありません。データベースを作成した後で、テーブルを個別に暗号化する必要があります。テーブルの暗号化を参照してください。

テーブルの暗号化が有効な場合、暗号化されたテーブルのテーブル・ページ、関連するインデックス・ページ、テンポラリ・ファイルのページ、暗号化されたテーブルのトランザクションを含むトランザクション・ログ・ページが暗号化されます。

次の例は、キー abc と暗号化アルゴリズム AES_FIPS を使用して、強力なテーブル暗号化が有効になっているデータベース new.db を作成します。

dbinit -et -ek abc -ea AES_FIPS new.db
-i

jConnect システム・オブジェクトをデータベースから除外します。jConnect JDBC ドライバを使用してシステム・カタログ情報にアクセスするには、jConnect カタログ・サポートをインストールする必要があります (デフォルトでインストールされます)。このオプションを指定した場合でも、システム情報にアクセスしないかぎり、JDBC を使用できます。必要に応じて、Sybase Central または ALTER DATABASE 文を使用して、jConnect サポートを後から追加することもできます。

詳細については、jConnect システム・オブジェクトのデータベースへのインストールを参照してください。

Windows Mobile で使用するデータベースを作成する場合は、Windows Mobile での jConnect の使用を参照してください。

-k SYSCOLUMNS ビューと SYSINDEXES ビューを作成しません。デフォルトでは、データベース作成機能は、Watcom SQL (このソフトウェアのバージョン 4 以前) で使用可能なシステム・テーブルとの互換性を保つために、ビュー SYS.SYSCOLUMNS と SYS.SYSINDEXES を生成します。これらのビューは、Sybase Adaptive Server Enterprise の互換性ビュー dbo.syscolumns および dbo.sysindexes と競合します。
-l 推奨する照合順をリストした後、停止します。データベースは作成されません。使用可能な照合順のリストは、Sybase Central のデータベース作成ウィザードに自動的に表示されます。
-le

使用可能な文字セット・エンコードをリストした後、停止します。データベースは作成されません。文字セット・エンコードは、1 つ以上のラベルによって識別されます。エンコードの識別に使用できる文字列があります。表示される各テキスト行には、エンコード・ラベルと、エンコードの識別に使用できる代替ラベルがリストされます。これらのラベルは、SA (SQL Anywhere ラベル)、IANA (Internet Assigned Numbers Authority)、MIME (Multipurpose Internet Mail Extensions)、ICU (International Components for Unicode)、JAVA、または ASE (Adaptive Server Enterprise) の共通カテゴリに分類されます。

代替ラベルを含めて、文字セット・エンコードのリストを参照するには、-le+ オプションを指定します。

初期化ユーティリティが文字セット・エンコードをレポートするとき、必ず、ラベルの SQL Anywhere バージョンもレポートします。たとえば、次のコマンドを使用すると、CHAR データ型の文字セット・エンコード 1250 のレポートが行われます。

dbinit -ze cp1250 -z uca test.db
-m filename トランザクション・ログ・ミラーを作成します。トランザクション・ログ・ミラーはトランザクション・ログと同一のコピーで、通常は別のデバイスで管理され、データを確実に保護しています。デフォルトでは、SQL Anywhere はトランザクション・ログ・ミラーを使用しません。
-n トランザクション・ログのないデータベースを作成します。トランザクション・ログを使用しないデータベースを作成すると、ディスク領域を節約できますが、コミットごとにチェックポイントが発生するので、パフォーマンスが低下する可能性があります。また、トランザクション・ログを使用しないで実行していた場合、データベースが壊れたときにデータを回復できません。ただし、トランザクション・ログはデータ・レプリケーションに必要です。メディア障害またはシステム障害が発生した場合に備えて、データベース情報のセキュリティを強化します。
-o filename 指定したファイルに、出力メッセージを書き込みます。
-p page-size

データベースのページ・サイズを指定します。データベースのページ・サイズには、2048、4096、8192、16384、32768 バイトのいずれかを指定できます。デフォルトは 4096 バイトです。

大規模なデータベースでは、より大きなページ・サイズの方が有利です。たとえば、テーブルのスキャンでは一度にページ全体が読み込まれるため、通常、必要な I/O 操作の回数は少なくなります。ただし、大きなページ・サイズには、より多くのメモリが必要です。ページ・サイズを選択するときは、パフォーマンス・テスト (およびテスト全般) を実行することを強くおすすめします。そして、満足できる結果を得られた最小のページ・サイズを選択します。ほとんどのアプリケーションでは、16 KB または 32 KB のページ・サイズはおすすめしません。常に十分なデータベース・サーバ・キャッシュの確保が可能であり、メモリとディスク領域のパフォーマンス特性に対するトレードオフが調査済である場合以外は、運用システムで 16 KB または 32 KB のページ・サイズは使用しないでください。多数のデータベースを同じサーバで起動する場合は、適切なページ・サイズを選択してください。

詳細については、次の項を参照してください。

-q クワイエット・モードで実行します (メッセージを表示しません)。
-s

データベース・ページにチェックサムを追加します。チェックサムは、データベース・ページがディスク上で変更されたかどうかを判断するために使用します。チェックサムを有効にしてデータベースを作成した場合、チェックサムはページがディスクに書き込まれる直前に計算されます。そのページが次にディスクから読み出されるときに、ページのチェックサムが再計算されて、ページに保存されているチェックサムと比較されます。チェックサムが異なる場合は、ディスク上のページが変更されているか、破損しており、エラーが発生します。-s を指定したかどうかにかかわらず、重要なデータベース・ページにはデータベース・サーバによって必ずチェックサムが追加されます。

Windows Mobile またはストレージ・デバイス (リムーバブル・ドライブなど) 上で実行されているデータベースでは、データベースの破損を速やかに検出できるように、自動的にチェックサムが有効になります。

-t transaction-log-name トランザクション・ログ・ファイルの名前を指定します。トランザクション・ログは、使用しているアプリケーションに関わらず、すべてのユーザが行った変更をデータベース・サーバがその中に記録するファイルです。トランザクション・ログはバックアップとリカバリ (トランザクション・ログを参照)、データ・レプリケーションで重要な役割を果たします。トランザクション・ログのファイル名にパスがない場合、トランザクション・ログはデータベース・ファイルと同じディレクトリに保存されます。-t または -n を指定しないで dbinit を実行すると、データベース・ファイルと同じファイル名のトランザクション・ログが作成されますが、拡張子は .log になります。
-z coll [ collation-tailoring-string ]

データベースの照合順を指定します。照合順は、文字データ型 (CHAR、VARCHAR、LONG VARCHAR) のソートと比較に使用されます。照合は、使用されるエンコード (文字セット) に文字の比較と順序付けに関する情報をもたらすものです。照合は慎重に選択してください。データベースの作成が完了した後で照合を変更するためには、データベースをアンロードし、再ロードする必要があります。照合が指定されていない場合、SQL Anywhere はオペレーティング・システムの言語と文字セットに基づいて照合を選択します。次の項を参照してください。

オプションで、文字列のソートや比較を詳細に制御することを目的に、照合の適合化オプション (collation-tailoring-string) を指定できます。これらのオプションは、キーワード=値 の形式で、カッコで囲んで指定して、その後ろに照合名を記述します。次に例を示します。

dbinit -c -z uca(locale=es;case=LowerFirst) spanish2.db

照合の適合化オプションを参照してください。

collation-tailoring-string に指定する大文字小文字とアクセント記号の設定は、dbinit (-c、-a、-af) の大文字小文字とアクセント記号の設定よりも優先されます (両方を指定した場合)。

注意

照合の適合化オプションを使用して初期化したデータベースは、10.0.1 より前のデータベース・サーバでは起動できません。

-ze encoding

照合のエンコードを指定します。-z で指定するほとんどの照合には、エンコード (文字セット) と順序付けの両方が定義されています。そのような照合については、-ze を指定する必要はありません。

-z で指定した照合が UCA (Unicode 照合アルゴリズム) である場合、-ze では CHAR データ型のエンコードとして UTF-8 またはシングルバイト・エンコードを指定できます。デフォルトのエンコードは UTF-8 です。-ze を使用すると、ロケール固有のエンコードを指定し、比較と順序付けに UCA を利用することができます。

-zn coll [ collation-tailoring-string ]

各国の文字データ型 (NCHAR、NVARCHAR、LONG NVARCHAR) のソートと比較に使用する照合順を指定します。照合は、使用される UTF-8 エンコード (文字セット) に文字の順序付けに関する情報をもたらすものです。このオプションの値は、UCA (デフォルト) と UTF8BIN です。UTF8BIN は、エンコードが 0x7E を超えるすべての文字のバイナリ順を規定します。dbicu11 と dbicudt11 の DLL がインストールされていない場合、デフォルトの NCHAR 照合は UTF8BIN になります。詳細については、照合の選択を参照してください。

オプションで、文字列のソートや比較を詳細に制御することを目的に、照合の適合化オプション (collation-tailoring-string) を指定できます。これらのオプションは、キーワード=値 の形式で、カッコで囲んで指定して、その後ろに照合名を記述します。次に例を示します。

dbinit -c -zn UCA(case=LowerFirst) sens.db

照合の適合化オプションを参照してください。

collation-tailoring-string に指定する大文字小文字とアクセント記号の設定は、dbinit (-c、-a、-af) の大文字小文字とアクセント記号の設定よりも優先されます (両方を指定した場合)。

注意

照合の適合化オプションを使用して初期化したデータベースは、10.0.1 より前のデータベース・サーバでは起動できません。

備考

初期化するときにいくつかのデータベース属性が指定されます。これらの属性は、データベース全体のアンロード、再初期化、再構築以外の方法では、後から変更することはできません。データベース属性には次のものがあります。

たとえば、次のようにして 8192 バイトのページを持つデータベース test.db を作成できます。

dbinit -p 8192 test.db

データベースに utility_db という名前を付けることはできません。この名前は、ユーティリティ・データベースのために予約されています。ユーティリティ・データベースの使用を参照してください。

データベースに大文字小文字またはアクセント記号の区別がある場合は、初期化コマンドに照合の適合化オプションを指定するときに、句読表記の区別でレベル 4 は指定できません。

さらに、初期化するときに、トランザクション・ログとトランザクション・ログ・ミラーを使うかどうかを選択することができます。この選択は、トランザクション・ログ・ユーティリティまたは ALTER DATABASE 文を使用して後で変更できます。

別途ライセンスが必要な必須コンポーネント

ECC 暗号化と FIPS 認定の暗号化には、別途ライセンスが必要です。強力な暗号化テクノロジはすべて、輸出規制対象品目です。

別途ライセンスが必要なコンポーネントを参照してください。

データベースは、次の方法を使用して作成することもできます。

注意

アプリケーションを配備するときは、dbinit ユーティリティを使用してデータベースを作成するために、パーソナル・データベース・サーバ (dbeng11) が必要です。パーソナル・データベース・サーバは、その他のデータベース・サーバが実行されていない場合にローカル・コンピュータで Sybase Central からデータベースを作成する場合にも必要です。

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

次のコマンドを実行すると、大文字と小文字を区別するデータベースである spanish.db が作成されます。このデータベースでは、非 NCHAR データに対して 1262spa 照合が使用されます。NCHAR データには、UCA 照合が指定されます。この場合、ロケールは es であり、最初に小文字がソートされます。

dbinit -c -z 1252spa -zn uca(locale=es;case=LowerFirst) spanish.db