そういうのがいいブログ

SIerで働く30代サラリーマンSEがインフラエンジニアに憧れてLinux・クラウド・AWSの勉強をするブログ

Oracleプラガブル・データベースPDB【新規作成し接続するまでの手順】

Oracleプラガブル・データベースPDB【新規作成し接続するまでの手順】

Oracle Database 19cでプラガブル・データベース(PDB)を新規作成して接続できるようにするまでの方法を知りたい方へ

Oracle Databaseのマルチテナント・コンテナ・データベース(CDB)の上に、
プラガブル・データベース(PDB)を新規をしたい、作成したプラガブル・データベース(PDB)に接続できるようにしたい、と考えていませんか?

あと、オラクルデータベースの勉強ができるおススメの勉強法があれば知りたい、と考えていませんか?

Oracle 19c でPDBを新規作成する手順(SQLコマンド)を解説します

本記事では、下記の内容を解説します。

  1. Oracle 19c でプラガブル・データベース(PDB)を新規作成する手順【SQLコマンド】
  2. プラガブル・データベース(PDB)に接続できるようにするためにtnsnames.oraを編集する手順
  3. ラクルデータベースのおススメの勉強法の紹介

この記事を書いている私は、某SIerに勤務しながら、WEB系エンジニア・インフラエンジニアに憧れて、プログラミングおよびインフラ技術の勉強をしています。
私が実機で試したコマンドや画像を載せて書いています。

実際にこの記事に書いた方法で、
Oracle Linux8.1上にインストールしたOracle Database 19cのコンテナデータベース上に新規のプラガブル・データベースを作成して、SQL*PlusやOsqlEditから接続できるようになりました(30分もかからず)ので、
記事の信頼性担保に繋がると思います。

Oracle19cにプラガブル・データベース(PDB)を新規作成する手順

CDBルートに接続

OS認証でOracleへ接続

sqlplus / as sysdba
[oracle@SV-PLUTO ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on 土 125 11:35:23 2020
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.



Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
に接続されました。

接続先がCDBルートであることを確認

show con_name
SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT

現在のPDBを確認

show pdbs
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB1                       READ WRITE NO

プラガブル・データベース(PDB)の作成

CREATE PLUGGABLE DATABASE

CREATE PLUGGABLE DATABASE <新規作成するPDB名(8文字以下)> ADMIN USER <ユーザー名> IDENTIFIED BY <パスワード> 
FILE_NAME_CONVERT = ('/opt/oracle/oradata/ORCLCDB/pdbseed/', '/opt/oracle/oradata/<新規作成するPDB名>/')
今回作成したPDBの情報
  • PDB名:FINDTPDB
  • ユーザー名:findtadm
  • PDB$SEEDファイルを利用
  • データファイルの場所:/opt/oracle/oradata/findtpdb/
SQL> CREATE PLUGGABLE DATABASE FINDTPDB ADMIN USER findtadm IDENTIFIED BY ●●●●●●●●● FILE_NAME_CONVERT = ('/opt/oracle/oradata/ORCLCDB/pdbseed/', '/opt/oracle/oradata/findtpdb/');

プラガブル・データベースが作成されました。

作成されたPDBを確認します。(作成した直後は「MOUTED」状態になっています)

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB1                       READ WRITE NO
         5 FINDTPDB                       MOUNTED

ディレクトリが作成されて、データファイルが作られました。

プラガブル・データベース作成

プラガブル・データベース作成

「CREATE PLUGGABLE DATABASE ~」のコマンド1発で簡単にプラガブル・データベースが作成できました。

プラガブル・データベース(PDB)のオープン・自動起動の設定

プラガブル・データベースのオープン

alter pluggable database <PDB名> open;
SQL> alter pluggable database findtpdb open;

プラガブル・データベースが変更されました。

状態が「MOUNTED」から「READ WRITE」に変わりました

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB1                       READ WRITE NO
         5 FINDTPDB                       READ WRITE NO

プラガブル・データベースの自動起動の設定

alter pluggable database <PDB名> save state;
SQL> alter pluggable database findtpdb save state;

プラガブル・データベースが変更されました。
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB1                       READ WRITE NO
         5 FINDTPDB                       READ WRITE NO

新規作成したプラガブル・データベース(PDB)に接続できるようにする手順

OS認証でまずCDBに接続して、alter session set container = ~PDBに接続することができます。

sqlplus / as sysdba
alter session set container = findtpdb;
[oracle@SV-PLUTO ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on125 12:05:15 2020
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.



Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
に接続されました。
SQL> alter session set container = findtpdb;

セッションが変更されました。

SQL> show con_name

CON_NAME
------------------------------
FINDTPDB

直接、PDB用のユーザーでSQL*Plusで最初からPDBに接続できるようにしたいので、tnsnames.ora を編集します。

Linuxサーバ上のtnsnames.oraを編集して、SQL*Plusで接続できるようにする

vi /opt/oracle/product/19c/dbhome_1/network/admin/tnsnames.ora
 16 FINDTPDB =
 17   (DESCRIPTION =
 18     (ADDRESS = (PROTOCOL = TCP)(HOST = SV-PLUTO)(PORT = 1521))
 19     (CONNECT_DATA =
 20       (SERVER = DEDICATED)
 21       (SERVICE_NAME = FINDTPDB)
 22     )
 23   )

PDB用のユーザー名とパスワードでSQL*Plusで接続してみます。

[oracle@SV-PLUTO admin]$ sqlplus findtadm/●●●●●●●●●@findtpdb

SQL*Plus: Release 19.0.0.0.0 - Production on 土 125 12:12:45 2020
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.



Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
に接続されました。
SQL> show con_name

CON_NAME
------------------------------
FINDTPDB

Windows端末上のtnsnames.oraを編集して、OsqlEditから接続できるようにする

WindowsパソコンのOracle Instant Clientのフォルダにあるtnsnames.ora ファイルをエディタで開いて編集します。

Windows端末上のtnsnames.ora

FINDTPDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = SV-PLUTO)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = FINDTPDB)
    )
  )

SQL*Plusで接続できるようになった。

C:\WINDOWS\system32>sqlplus findtadm/●●●●●●●●●@findtpdb

SQL*Plus: Release 19.0.0.0.0 - Production on 土 125 13:23:35 2020
Version 19.5.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

最終正常ログイン時間: 土 125 2020 12:18:56 +09:00


Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
に接続されました。
SQL> show user
ユーザーは"FINDTADM"です。
SQL>

OsqlEditでも接続できるようになりました。

参考にしたサイト

docs.oracle.com

【Oracle】プラガブル・データベース(PDB)を作成する:DBAlone

Oracle DB 12c PDBへの接続:Slowly But Surely(アプリやインフラなど気になる技術/話題の技術について)

ラクルデータベースのおススメの勉強法の紹介

私は、某SIerに勤務しながら、入社以来10年以上、オラクルデータベースを使用したシステムに関わる仕事をしています。

ラクルデータベースについて、仕事場以外でも勉強をしたい、おススメの勉強法を知りたい、と考えている方のために、
①おすすめの書籍と、②おすすめのオンライン学習サイト、 を紹介します。

働きながら勉強するための、おススメの書籍とオンラインで学習できるサイトの紹介です

ラクルデータベースの勉強ができるおススメ書籍

朝の通勤時や帰宅時の電車の中や、社外打合せへの移動中などに勉強するなら、やはり書籍が一番だと思います。

Oracleの基本 ~データベース入門から設計/運用の初歩まで

技術エキスパートとして認定されたOracle ACEの渡部亮太さんの書かれた本です。

https://twitter.com/wrcsus4twitter.com

本書では、Oracle初心者/新人エンジニアが押さえておくべき知識とスキルを、現場で活躍するOracleエンジニアたちが、わかりやすく丁寧に解説。
Oracleの使い方はもちろん、データベースの基礎知識から、データ操作のためのSQL、テーブル設計、データベース運用/管理の基礎までしっかり押さえ、実務で使える入門スキルを身につけられます。
Oracleを学びたいすべての人に最適な入門書です。

Oracleの基本 ~データベース入門から設計/運用の初歩まで

プロとしてのOracleアーキテクチャ入門【第2版】

もう1冊、こちらもOracle ACEの渡部亮太さんの書かれた本です。

本書は、Oracle Databaseのアーキテクチャ(内部構成)について解説した入門書です。 本書の内容を理解することで「Oracleの動作の仕組み」を本質的に理解することができます。 これからOracleを使用する初心者の方から、実際にシステムの開発や運用管理を行っている DBエンジニアやシステムエンジニアの方を対象としています。

プロとしてのOracleアーキテクチャ入門【第2版】(12c、11g、10g 対応) 図解と実例解説で学ぶ、データベースの仕組み (Oracle現場主義)

ラクルデータベースの勉強ができるオンライン学習サイト

iStudy

ラクルのeラーニングサイトといえば、「iStudy」です。
ラクル関連のいろいろなコースが用意されています。

https://www.istudy.co.jp/products/training/list/it/database?a8=s7Jmh7cw.IM0943bcaLmnD3k0J16MwDZcaLVQ1eubuKw.IJDo4JwjbXtMI1QYQXMFuHbe5J2F7Jmgs00000020030001

f:id:souiunogaii:20200118213515j:plain

f:id:souiunogaii:20200118213502j:plain