Oracle Database 12c R1 : コンテナデータベースとプラガブルデータベースを歩きやすくしてみる Tweet
世界を見渡せば、かなりの方がOracle Database 12cのインストール手順を公開し始めているのでインストール後の話を書いておきますね。
インストール時にPluggable Databaseも同時に作成してもtnsnames.oraにはContainer Databaseへの接続定義しか無かったんです。(私のインストール手順に問題がなければ..なんですが)
無くてもEasy connectを使えば接続できるので問題はないんですが...
ただ、Easy connectで毎回タイプするのも面倒(少々長いし)なので、tnsnames.oraにPluggable Database接続用定義を作成しておきましょう。
定義内容はいままでと変わらず。 SERVICE_NAMEの箇所を接続先のPluggable Database名にするだけ。
(Pluggable Database名と書いたが、マニュアル読みきれてないので表現は間違っているかもしれません。間違っていたら後で修正します)
[oracle@emperortetra]$ cat $ORACLE_HOME/network/admin/tnsnames.ora# tnsnames.ora Network Configuration File: /opt/u01/product/12.1.0/dbhome_1/network/admin/tnsnames.ora# Generated by Oracle configuration tools.# for Container Database : orcl12cORCL12C = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = emperortetra)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl12c) ) )# for Pluggable Database : pdborclPDBORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = emperortetra)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = pdborcl) ) )
本題である、歩きやすくするための設定がこれ。
複数のPluggable DatabaseとContainer Database間を旅することも多くなりそうですから、今、自分はどこにいるのか把握しやすくしておいたほうが吉かと。
12c以前から定番で設定している内容ではあるのですが。赤字部分がポイント
目立たないけど、地味に大切なのが、 set tab off だと思っているのは私だけだろうか!w
(ここのところ、set tab offじゃない人のコピペしてきた、位置ズレまくりの実行計画見せられててイライラしている影響もある :)
それ以外の設定も、設定してるだけで、「むむむ、この方できるかも!」 と、
思わせる(思わせるだけですからね!w つかみはOK的な感じなので、あとはあなた次第)設定内容なので大切と言えば大切。
(login.sqlでもOK)
[oracle@emperortetra]$ cat $ORACLE_HOME/sqlplus/admin/glogin.sql---- Copyright (c) 1988, 2005, Oracle. All Rights Reserved.---- NAME-- glogin.sql---- DESCRIPTION-- SQL*Plus global login "site profile" file---- Add any SQL*Plus commands here that are to be executed when a-- user starts SQL*Plus, or uses the SQL*Plus CONNECT command.---- USAGE-- This script is automatically run--set linesize 180set pagesize 10000set timi onset time ondefine _EDITOR=vicol table_name for a30col column_name for a30col segment_name for a30col tablespace_name for a30col index_name for a30col partition_name for a30col sub_partition_name for a30set sqlp "_USER'@'_CONNECT_IDENTIFIER> "set tab off[oracle@emperortetra]$
リスナーを起動してステータスを見てみましょう (u01が/optの下にあるのは内緒w じゃないw
まだ、データベースを起動していないのでこんな感じです。
[oracle@emperortetra]$ lsnrctl statusLSNRCTL for Linux: Version 12.1.0.1.0 - Production on 06-7月 -2013 09:10:04Copyright (c) 1991, 2013, Oracle. All rights reserved.(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))に接続中リスナーのステータス------------------------別名 LISTENERバージョン TNSLSNR for Linux: Version 12.1.0.1.0 - Production開始日 06-7月 -2013 09:06:38稼働時間 0 日 0 時間 3 分 26 秒トレース・レベル offセキュリティ ON: Local OS AuthenticationSNMP OFFパラメータ・ファイル /opt/u01/product/12.1.0/dbhome_1/network/admin/listener.oraログ・ファイル /opt/u01/diag/tnslsnr/emperortetra/listener/alert/log.xmlリスニング・エンドポイントのサマリー... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=emperortetra)(PORT=1521)))リスナーはサービスをサポートしていません。コマンドは正常に終了しました。[oracle@emperortetra]$
Container Databaseの起動(12cより前のOracle Databaseと同じですね)
Container Databaseである orcl12c がSQL*Plusのプロンプトに表示されていますよね!! :)
[oracle@emperortetra]$ sqlplus / as sysdbaSQL*Plus: Release 12.1.0.1.0 Production on 土 7月 6 09:25:22 2013Copyright (c) 1982, 2013, Oracle. All rights reserved.アイドル・インスタンスに接続しました。09:25:22 SYS@orcl12c> startupORACLEインスタンスが起動しました。Total System Global Area 1653518336 bytesFixed Size 2289016 bytesVariable Size 1040188040 bytesDatabase Buffers 603979776 bytesRedo Buffers 7061504 bytesデータベースがマウントされました。データベースがオープンされました。09:25:32 SYS@orcl12c> Pluggable Databaseを起動します!09:25:34 SYS@orcl12c> alter pluggable database pdborcl open;プラガブル・データベースが変更されました。経過: 00:00:00.86Pluggable DatabaseのSYS、SYSTEMおよび、SCOTTユーザに接続してみます!09:25:53 SYSTEM@orcl12c> conn sys@pdborcl as sysdbaパスワードを入力してください: 接続されました。09:26:06 SYS@pdborcl> 09:26:07 SYS@pdborcl> 09:26:07 SYS@pdborcl> conn system@pdborclパスワードを入力してください: 接続されました。09:26:34 SYSTEM@pdborcl> 09:26:34 SYSTEM@pdborcl> 09:26:35 SYSTEM@pdborcl> conn scott@pdborclパスワードを入力してください: 接続されました。09:26:50 SCOTT@pdborcl> 09:26:51 SCOTT@pdborcl> 09:26:51 SCOTT@pdborcl>
SQL*Plusのプロンプトに接続先の情報を表示しておくと便利ですよね。Database間を歩きやすく、迷子になりにくくなりますよ! :)
おまけ
Container Databaseおよび、Pluggable Database起動後のlistenerのステータスは以下の通り。
[oracle@emperortetra]$ lsnrctl statusLSNRCTL for Linux: Version 12.1.0.1.0 - Production on 06-7月 -2013 09:28:09Copyright (c) 1991, 2013, Oracle. All rights reserved.(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))に接続中リスナーのステータス------------------------別名 LISTENERバージョン TNSLSNR for Linux: Version 12.1.0.1.0 - Production開始日 06-7月 -2013 09:06:38稼働時間 0 日 0 時間 21 分 31 秒トレース・レベル offセキュリティ ON: Local OS AuthenticationSNMP OFFパラメータ・ファイル /opt/u01/product/12.1.0/dbhome_1/network/admin/listener.oraログ・ファイル /opt/u01/diag/tnslsnr/emperortetra/listener/alert/log.xmlリスニング・エンドポイントのサマリー... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=emperortetra)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=emperortetra)(PORT=5500))(Security=(my_wallet_directory=/opt/u01/admin/orcl12c/xdb_wallet))(Presentation=HTTP)(Session=RAW))サービスのサマリー...サービス"orcl12c"には、1件のインスタンスがあります。 インスタンス"orcl12c"、状態READYには、このサービスに対する1件のハンドラがあります...サービス"orcl12cXDB"には、1件のインスタンスがあります。 インスタンス"orcl12c"、状態READYには、このサービスに対する1件のハンドラがあります...サービス"pdborcl"には、1件のインスタンスがあります。 インスタンス"orcl12c"、状態READYには、このサービスに対する1件のハンドラがあります...コマンドは正常に終了しました。[oracle@emperortetra]$
Enjoy Oracle Database 12c R1 :)
| 固定リンク | 0
コメント