Oracle検証環境構築手順〜Databaseの作成〜
本記事は次の記事の中の手順です。
jimatomo.hatenablog.com
5-1)「/etc/init.d/oracledb_ORCLCDB-19c」によるサンプルDBの作成
いよいよDB作成です。今回は自動でサンプルDBを作成してくれるスクリプトを実行します。
(一般的にはDBCA(GUIの構成ツール)で作成するか、カスタマイズした作成スクリプトを使用しますが、今回は気軽にできることをモットーにしているので、デフォルトで入っているスクリプトを使用します。)
「/etc/init.d/oracledb_ORCLCDB-19c」の実行
[root@ol76-19c tmp]# # # サンプルDB構築スクリプトの実行(rootユーザで実行) [root@ol76-19c tmp]# ls -l /etc/init.d/oracledb_ORCLCDB-19c ls -l /etc/init.d/oracledb_ORCLCDB-19c [root@ol76-19c tmp]# [root@ol76-19c tmp]# /etc/init.d/oracledb_ORCLCDB-19c configure Configuring Oracle Database ORCLCDB. DB操作の準備 8%完了 データベース・ファイルのコピー中 31%完了 Oracleインスタンスの作成および起動中 32%完了 36%完了 40%完了 43%完了 46%完了 データベース作成の完了 51%完了 54%完了 プラガブル・データベースの作成 58%完了 77%完了 構成後アクションの実行 100%完了 データベースの作成が完了しました。詳細は、次の場所にあるログ・ファイルを参照してください: /opt/oracle/cfgtoollogs/dbca/ORCLCDB。 データベース情報: グローバル・データベース名:ORCLCDB システム識別子(SID):ORCLCDB 詳細はログ・ファイル"/opt/oracle/cfgtoollogs/dbca/ORCLCDB/ORCLCDB.log"を参照してください。 Database configuration completed successfully. The passwords were auto generated, you must change them by connecting to the database using 'sqlplus / as sysdba' as the oracle user. [root@ol76-19c tmp]#
5-2) .bash_profileの編集
oracleユーザの.bash_profileを編集します。
これによって、いちいち環境変数を設定しなくて済むようにします。
[root@ol76-19c tmp]# # .bash_profileの編集 [root@ol76-19c tmp]# su - oracle 最終ログイン: 2019/05/26 (日) 00:47:15 JST日時 pts/0 [oracle@ol76-19c ~]$ [oracle@ol76-19c ~]$ id uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 [oracle@ol76-19c ~]$ pwd /home/oracle [oracle@ol76-19c ~]$ [oracle@ol76-19c ~]$ ls -la 合計 24 drwx------. 3 oracle oinstall 4096 5月 26 00:50 . drwxr-xr-x. 3 root root 20 5月 25 23:48 .. -rw-------. 1 oracle oinstall 149 5月 26 00:26 .bash_history -rw-r--r--. 1 oracle oinstall 18 8月 24 2018 .bash_logout -rw-r--r--. 1 oracle oinstall 193 8月 24 2018 .bash_profile -rw-r--r--. 1 oracle oinstall 231 8月 24 2018 .bashrc -rw-r--r--. 1 oracle oinstall 172 8月 31 2018 .kshrc drwxr-x---. 2 oracle oinstall 40 5月 26 00:50 .oracle_jre_usage [oracle@ol76-19c ~]$ [oracle@ol76-19c ~]$ cp -p .bash_profile .bash_profile.bak [oracle@ol76-19c ~]$ ls -la .bash_profile* -rw-r--r--. 1 oracle oinstall 193 8月 24 2018 .bash_profile -rw-r--r--. 1 oracle oinstall 193 8月 24 2018 .bash_profile.bak [oracle@ol76-19c ~]$ [oracle@ol76-19c ~]$ [oracle@ol76-19c ~]$ cat .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/.local/bin:$HOME/bin export PATH [oracle@ol76-19c ~]$ [oracle@ol76-19c ~]$ # 編集内容は下記参照 [oracle@ol76-19c ~]$ vi .bash_profile [oracle@ol76-19c ~]$
以下の内容を追記します。
(差分をdiffコマンドで表示しているので、4つのexport文を末尾に追加してください。
[oracle@ol76-19c ~]$ diff .bash_profile .bash_profile.bak 13,17d12 < export ORACLE_BASE=/opt/oracle/ < export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1/ < export PATH=$PATH:$ORACLE_HOME/bin < export NLS_LANG=Japanese_Japan.AL32UTF8 < export ORACLE_SID=ORCLCDB [oracle@ol76-19c ~]$
編集後は次の通り
[oracle@ol76-19c ~]$ cat .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/.local/bin:$HOME/bin export PATH export ORACLE_BASE=/opt/oracle/ export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1/ export PATH=$PATH:$ORACLE_HOME/bin export NLS_LANG=Japanese_Japan.AL32UTF8 [oracle@ol76-19c ~]$
5-3) SQL*Plusでの接続とパスワードの変更
DBに接続できるか確認してみます。
[oracle@ol76-19c ~]$ # 接続できるか確認 [oracle@ol76-19c ~]$ . .bash_profile [oracle@ol76-19c ~]$ env | grep ORA ORACLE_SID=ORCLCDB ORACLE_BASE=/opt/oracle/ ORACLE_HOME=/opt/oracle/product/19c/dbhome_1/ [oracle@ol76-19c ~]$ [oracle@ol76-19c ~]$ # なぜか再起動しないと接続に失敗する(俺だけ?) [oracle@ol76-19c ~]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on 日 5月 26 02:34:37 2019 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. ERROR: ORA-12547: TNS: 接続を失いました。 ユーザー名を入力してください: ^C [oracle@ol76-19c ~]$
謎の接続できない現象に悩まされましたが、再起動をしてみたら何とか接続できるようになりました。なんだこの仕様(?)は...(^▽^;)
再起動してから再接続
[root@ol76-19c tmp]# # 接続できない場合は再起動してみる [root@ol76-19c tmp]# systemctl reboot
Last login: Sun May 26 00:45:50 2019 from 192.168.56.1 [root@ol76-19c ~]# [root@ol76-19c ~]# su - oracle 最終ログイン: 2019/05/26 (日) 02:32:38 JST日時 pts/0 [oracle@ol76-19c ~]$ [oracle@ol76-19c ~]$ id uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 [oracle@ol76-19c ~]$ [oracle@ol76-19c ~]$ env | grep ORA ORACLE_SID=ORCLCDB ORACLE_BASE=/opt/oracle/ ORACLE_HOME=/opt/oracle/product/19c/dbhome_1/ [oracle@ol76-19c ~]$ [oracle@ol76-19c ~]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on 日 5月 26 11:50:21 2019 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. アイドル・インスタンスに接続しました。 SQL> show user ユーザーは"SYS"です。 SQL> -- ついでに起動 SQL> startup ORACLEインスタンスが起動しました。 Total System Global Area 1543500832 bytes Fixed Size 9135136 bytes Variable Size 922746880 bytes Database Buffers 603979776 bytes Redo Buffers 7639040 bytes データベースがマウントされました。 データベースがオープンされました。 SQL> SQL> select instance_name , status from v$instance; INSTANCE_NAME STATUS ---------------- ------------ ORCLCDB OPEN SQL> SQL> -- PDBもオープンしておく SQL> ALTER PLUGGABLE DATABASE orclpdb1 OPEN; プラガブル・データベースが変更されました。 SQL> SQL> SQL> SQL> SQL>
ユーザーのパスワードを変更します。(大文字小文字が区別されるので注意しましょう)
SQL> -- お好きなパスワードに変更しておきましょう(XXXXXXXXを置き換えてください!) SQL> ALTER USER sys IDENTIFIED BY XXXXXXXX; ユーザーが変更されました。 SQL> SQL> ALTER USER system IDENTIFIED BY XXXXXXXX; ユーザーが変更されました。 SQL> SQL> quit Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0との接続が切断されました。 [oracle@ol76-19c ~]$
5-4) tnsnames.oraにORCLPDB1を追加
PDBに直接接続するためにはtnsnames.oraにPDBにつなげるようなネットワーク名が必要になります。
tnsnames.oraにORCLPDB1を追加
[oracle@ol76-19c ~]$ # tnsnames.oraにORCLPDB1を追加 [oracle@ol76-19c ~]$ cd /opt/oracle/product/19c/dbhome_1/network/admin/ [oracle@ol76-19c admin]$ pwd /opt/oracle/product/19c/dbhome_1/network/admin [oracle@ol76-19c admin]$ [oracle@ol76-19c admin]$ ls -l tnsnames.ora* -rw-r-----. 1 oracle oinstall 432 5月 26 00:58 tnsnames.ora [oracle@ol76-19c admin]$ [oracle@ol76-19c admin]$ cat tnsnames.ora # tnsnames.ora Network Configuration File: /opt/oracle/product/19c/dbhome_1/network/admin/tnsnames.ora # Generated by Oracle configuration tools. ORCLCDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ol76-19c.localdomain)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCLCDB) ) ) LISTENER_ORCLCDB = (ADDRESS = (PROTOCOL = TCP)(HOST = ol76-19c.localdomain)(PORT = 1521)) [oracle@ol76-19c admin]$ [oracle@ol76-19c admin]$ cp tnsnames.ora tnsnames.ora_`date +"%Y%m%d_%H%M"` [oracle@ol76-19c admin]$ ls -l tnsnames.ora* -rw-r-----. 1 oracle oinstall 432 5月 26 00:58 tnsnames.ora -rw-r-----. 1 oracle oinstall 432 5月 26 13:20 tnsnames.ora_ -rw-r-----. 1 oracle oinstall 432 5月 26 13:20 tnsnames.ora_20190526_1320 [oracle@ol76-19c admin]$ [oracle@ol76-19c admin]$ vi tnsnames.ora [oracle@ol76-19c admin]$
追加する記述は次の通りです。
[oracle@ol76-19c admin]$ diff tnsnames.ora tnsnames.ora_20190526_1320 16,23d15 < ORCLPDB1 = < (DESCRIPTION = < (ADDRESS = (PROTOCOL = TCP)(HOST = ol76-19c.localdomain)(PORT = 1521)) < (CONNECT_DATA = < (SERVER = DEDICATED) < (SERVICE_NAME = ORCLPDB1) < ) < ) [oracle@ol76-19c admin]$
変更後の記載は次の通りになっています。
[oracle@ol76-19c admin]$ cat tnsnames.ora # tnsnames.ora Network Configuration File: /opt/oracle/product/19c/dbhome_1/network/admin/tnsnames.ora # Generated by Oracle configuration tools. ORCLCDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ol76-19c.localdomain)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCLCDB) ) ) LISTENER_ORCLCDB = (ADDRESS = (PROTOCOL = TCP)(HOST = ol76-19c.localdomain)(PORT = 1521)) ORCLPDB1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ol76-19c.localdomain)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCLPDB1) ) ) [oracle@ol76-19c admin]$
後は白本の学習用のスキーマを作成するのみです(*^-^*)
次の記事はこちら
jimatomo.hatenablog.com