私はdb2を初めて使用しますが、以前にOracleに取り組んだことがあります。データベースを作成しようとして成功しましたが、データベース作成コマンドを発行したセッションがハングします。
64ビットのubuntuマシンにdb210.5をインストールしました。
最初に、インスタンス所有者であるdb2inst1
としてログインし、コマンドラインでdb2を呼び出して、シェルにアクセスしました。
alok@mylaptop:~$ su - db2inst1
शब्दकूट:
$ uname -a
Linux cxps044 3.2.0-52-generic #78-Ubuntu SMP Fri Jul 26 16:21:44 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
$ db2
(c) Copyright IBM Corporation 1993,2007
Command Line Processor for DB2 Client 10.5.0
You can issue database manager commands and SQL statements from the command
Prompt. For example:
db2 => connect to sample
db2 => bind sample.bnd
For general help, type: ?.
For command help, type: ? command, where command can be
the first few keywords of a database manager command. For example:
? CATALOG DATABASE for help on the CATALOG DATABASE command
? CATALOG for help on all of the CATALOG commands.
To exit db2 interactive mode, type QUIT at the command Prompt. Outside
interactive mode, all commands must be prefixed with 'db2'.
To list the current command option settings, type LIST COMMAND OPTIONS.
For more detailed help, refer to the Online Reference Manual.
次に、db2inst1にインスタンスをアタッチしました。これは、出力を考慮すると成功したと思います。これについては、 db2 cli install の指示に従いました。
db2 => attach to db2inst1
Instance Attachment Information
Instance server = DB2/LINUXX8664 10.5.0
Authorization ID = DB2INST1
Local instance alias = DB2INST1
次に、次のコマンドを使用してデータベースを作成しようとしました。
db2 => create database mytestdb
そして、これは出力を提供せずにハングします。
数時間後に確認したところ、データベースが作成されていることがわかりました。
$ db2 list applications
Auth Id Application Appl. Application Id DB # of
Name Handle Name Agents
-------- -------------- ---------- -------------------------------------------------------------- -------- -----
DB2INST1 db2bp 85 *LOCAL.db2inst1.130903105030 MYTESTDB 1
DB2INST1 db2bp 86 *LOCAL.db2inst1.130903105031 EIGHTBYT 1
DB2INST1 db2bp 99 *LOCAL.db2inst1.130903110149 TUT_DB 1
しかし、あきらめるまでにどれくらい待つかをどのように理解するのでしょうか。コマンドの実行が完了するのを待ち続けるかどうかの手がかりを与えることができるログまたは他の出力はありますか?
ハングした別のcreatedatabaseコマンドを試した後、別のセッションをチェックインして、データベースが実際に作成されていることを確認しました。
セッション1:
$ db2
(c) Copyright IBM Corporation 1993,2007
Command Line Processor for DB2 Client 10.5.0
You can issue database manager commands and SQL statements from the command
Prompt. For example:
db2 => connect to sample
db2 => bind sample.bnd
For general help, type: ?.
For command help, type: ? command, where command can be
the first few keywords of a database manager command. For example:
? CATALOG DATABASE for help on the CATALOG DATABASE command
? CATALOG for help on all of the CATALOG commands.
To exit db2 interactive mode, type QUIT at the command Prompt. Outside
interactive mode, all commands must be prefixed with 'db2'.
To list the current command option settings, type LIST COMMAND OPTIONS.
For more detailed help, refer to the Online Reference Manual.
db2 => attach to db2inst1
Instance Attachment Information
Instance server = DB2/LINUXX8664 10.5.0
Authorization ID = DB2INST1
Local instance alias = DB2INST1
db2 => create database mytestd2 automatic storage yes
これがここにぶら下がっている間、セッション2:
$ db2
(c) Copyright IBM Corporation 1993,2007
Command Line Processor for DB2 Client 10.5.0
You can issue database manager commands and SQL statements from the command
Prompt. For example:
db2 => connect to sample
db2 => bind sample.bnd
For general help, type: ?.
For command help, type: ? command, where command can be
the first few keywords of a database manager command. For example:
? CATALOG DATABASE for help on the CATALOG DATABASE command
? CATALOG for help on all of the CATALOG commands.
To exit db2 interactive mode, type QUIT at the command Prompt. Outside
interactive mode, all commands must be prefixed with 'db2'.
To list the current command option settings, type LIST COMMAND OPTIONS.
For more detailed help, refer to the Online Reference Manual.
db2 => attach to db2inst1
Instance Attachment Information
Instance server = DB2/LINUXX8664 10.5.0
Authorization ID = DB2INST1
Local instance alias = DB2INST1
db2 => list applications
Auth Id Application Appl. Application Id DB # of
Name Handle Name Agents
-------- -------------- ---------- -------------------------------------------------------------- -------- -----
DB2INST1 db2bp 226 *LOCAL.db2inst1.130903115709 MYTESTD2 1
db2 =>
セッション1の^C
、^X
、^Z
などは影響しません。
私はdb2を初めて使用しますが、Oracleとlinux/posixに精通しています。
数分後:
私はついにセッション1でプロンプトを取り戻しました。
db2 => create database mytestd2 automatic storage yes
DB20000I The CREATE DATABASE command completed successfully.
db2 =>
したがって、この質問は一種の「自動解決」ですが、観察結果は他の誰かに役立つ可能性があります。
うーん、末尾の「;」についての私の以前の答えをスクラッチします。
完全なステートメントではないため、まだ「ハング」していると思われます。完了するのを待っています。 (残念ながら、現時点ではテストに使用できるdb2インスタンスはありません)
これを試して:
CREATE DATABASE mytestdb
AUTOMATIC STORAGE YES
実行することをお勧めします
db2 list applications
コマンドが完了するのを待つ間、別のセッションで。それは何かが実際に起こっているかどうかを教えてくれます。