web-dev-qa-db-ja.com

Oracleユーザー向けのdb2LUWヘルプ:データベースの作成は出力なしでハングしますが、データベースは作成されました

私は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 => 

したがって、この質問は一種の「自動解決」ですが、観察結果は他の誰かに役立つ可能性があります。

2
alok

うーん、末尾の「;」についての私の以前の答えをスクラッチします。
完全なステートメントではないため、まだ「ハング」していると思われます。完了するのを待っています。 (残念ながら、現時点ではテストに使用できるdb2インスタンスはありません)

これを試して:

CREATE DATABASE mytestdb
  AUTOMATIC STORAGE YES

実行することをお勧めします

db2 list applications

コマンドが完了するのを待つ間、別のセッションで。それは何かが実際に起こっているかどうかを教えてくれます。

1
r.m