データベース備忘録

※自分調べ

ChatGPT-3にtnsnames.oraとlistener.oraを書いて貰った

流行りのChatGPT-3にデータベースのパラメタまで作成してもらったら楽だろうな~と思ったが、さすがにパラメタ数や設計要素多すぎてそこまではやってもらえないと思い、簡単そうなOracleのtnsnames.oraとlistener.oraを作ってもらった。

 

【質問】

 

【回答】

以下は、Oracle Database 19cにおけるlistener.oraおよびtnsnames.oraファイルの例です。具体的な設定は、環境や要件に合わせて適宜変更してください。

listener.oraの内容:

```
# listener_kokyakudbの設定
SID_LIST_listener_kokyakudb =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = kokyakudb)
      (ORACLE_HOME = /path/to/oracle19c)
    )
  )

# listener_ryokindbの設定
SID_LIST_listener_ryokindb =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = ryokindb)
      (ORACLE_HOME = /path/to/oracle19c)
    )
  )

# リスナーの設定
LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = testsrv01)(PORT = 1521))
    (REGISTER = DYNAMIC)
  )

# kokyakudbのリスナーの設定
listener_kokyakudb =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = testsrv01)(PORT = 1522))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = kokyakudb)
    )
  )

# ryokindbのリスナーの設定
listener_ryokindb =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = testsrv01)(PORT = 1523))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ryokindb)
    )
  )
```

tnsnames.oraの内容:

```
# kokyakudb接続の設定
kokyakudb =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = testsrv01)(PORT = 1522))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = kokyakudb)
    )
  )

# ryokindb接続の設定
ryokindb =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = testsrv01)(PORT = 1523))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ryokindb)
    )
  )
```

これらのファイルを、Oracle Database 19cを稼働させるデータベースサーバの適切なディレクトリに配置し、Oracleクライアント側からこれらのファイルを参照して接続することで、kokyakudbおよびryokindbという名前でDBに接続することができます。また、リスナー名はlistener_kokyakudbおよびlistener_ryokindbとし、それぞれのリスナーのポートは1522および1523と設定されています。リスナーの静的登録用のエントリは不要としています。

 

静的登録用のエントリは不要という要望を伝えたのにSID_LIST_xxxxはあるものの、

概ね間違っていないと思う。

 

大前提として記載方法を分かっていないと書いて貰うことも出来ないとは思うが、これだけの情報だけでここまでのものが出来上がるのかと驚いた。

 

oracleのパラメタも書いて貰える時代も近そう。

DBAは設計要素だけ入力すれば最適なパラメタを作り出してくれそうだ。

とはいえ最終的には人間が判断することにはなると思うが。