web-dev-qa-db-ja.com

db2データベースエイリアスがリストデータベースディレクトリにリストされていませんが、そのデータベースを作成できません

インスタンス所有者として、db2サーバーがインストールされているLinuxサーバーにログオンして、データベースを作成しようとしています

db2 => list database directory

 System Database Directory

 Number of entries in the directory = 1

Database 1 entry:

 Database alias                       = SAMPLE
 Database name                        = SAMPLE
 Local database directory             = /home/mylogin/sqllib
 Database release level               = f.00
 Comment                              =
 Directory entry type                 = Indirect
 Catalog database partition number    = 0
 Alternate server hostname            =
 Alternate server port number         =

db2 => create database testdb2
SQL1005N  The database alias "TESTDB2" already exists in either the local 
database directory or system database directory.
    db2 => list database directory on /home/mylogin/sqllib

 Local Database Directory on /home/mylogin/sqllib

 Number of entries in the directory = 1

Database 1 entry:

 Database alias                       = SAMPLE
 Database name                        = SAMPLE
 Database directory                   = SQL00001
 Database release level               = f.00
 Comment                              =
 Directory entry type                 = Home
 Catalog database partition number    = 0
 Database member number               = 0
db2 => quit

私以外にも存在するインスタンスがないか確認しましたが、ありません。

DB20000I  The QUIT command completed successfully.
-bash-4.1$ db2ilist
mylogin

エイリアスtestdb2はlist database directoryにリストされていませんが、db2はこのエイリアスがシステムデータベースディレクトリまたはローカルデータベースディレクトリのいずれかにすでに存在していると主張しています。

これに該当する場合、testdb2もリストするlist database directoryに相当するものを取得するにはどうすればよいですか?

4
alok

db2 list db directoryは、システムレベルのディレクトリです。もあります db2 list db directory on <path>は、その特定のパスにあるデータベースをリストします。

最初にuncatalogまたはcatalogを試してみましたか?カタログ化することで削除できるかどうかを確認できます。

さらに悪いことには、ディスクがデータベース上にある場所を見つけて、手動で削除する必要がある場合があります(カタログ化されていない限り)。

1
Chris Aldrich

デフォルトのデータベースパスに、同じ名前でカタログされていないデータベースがあります。まずカタログ化してから、ドロップする必要があります。その後、その名前でデータベースを作成できます。それを実行できない場合、またはドロップしたくない場合は、CREATE DBステートメントのON PATHおよびDBPATHパラメーターを使用して、デフォルトのディレクトリーとは異なるディレクトリーを指定してください。

これが問題の回避策です。

db2 catalog database testdb2 as oldtestdb
db2 create database testdb2x
db2 uncatalog database testdb2x
db2 catalog database testdb2x as testdb2

これで、データベースtestdb2ができました。

1
Ramazan Polat