Oracle Database 19cでプラガブル・データベース(PDB)に表領域とユーザーを作成する手順を知りたい方へ
Oracle Databaseのプラガブル・データベース(PDB)は、
新規作成した直後だと、 「SYSTEM」「TEMP」などの必要最低限の表領域しか作られていない状態です。
今回は、通常のユーザーが使用する表領域「USERS」をPDBに作成して、ユーザーも作成する手順を紹介したいと思います。
あと、オラクルデータベースのおススメの勉強法があれば知りたい、という方に向けての情報も記事の後半で書きます。
OracleのPDBに表領域を作成して、ユーザーも作成する手順を解説します
本記事では、下記の内容を解説します。
この記事を書いている私は、某SIerに勤務しながら、WEB系エンジニア・インフラエンジニアに憧れて、プログラミングおよびインフラ技術の勉強をしています。
私が実機で試したコマンドや画像を載せて書いています。
実際にこの記事に書いた方法で、Oracle Linux8.1上にインストールしたOracle Database 19cのプラガブル・データベースPDB上に表領域とユーザーを作成できました。(30分もかからず)
記事の信頼性担保に繋がると思います。
- Oracle Database 19cでプラガブル・データベース(PDB)に表領域とユーザーを作成する手順を知りたい方へ
- Oracle19cにプラガブル・データベースPDBに表領域を作成する手順
- Oracle19cのプラガブル・データベースPDBにユーザーを作成する手順
- オラクルデータベースのおススメの勉強法の紹介
Oracle19cにプラガブル・データベースPDBに表領域を作成する手順
PDBローカル管理者の権限・ロールの確認、DBA権限の付与
CDBルートにOS認証で接続
[oracle@SV-PLUTO ~]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on 土 1月 25 16:17:44 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
------------------------------
CDB$ROOT
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に接続切り換え
alter session set container = <PDB名>;
SQL> alter session set container = FINDTPDB; セッションが変更されました。 SQL> show con_name CON_NAME ------------------------------ FINDTPDB
PDBローカル管理者ユーザーの権限・ロールの確認
SQL> select GRANTEE, GRANTED_ROLE, ADMIN_OPTION 2 from SYS.DBA_ROLE_PRIVS 3 where GRANTEE = 'FINDTADM' 4 / GRANTEE GRANTED_ROLE ADMIN_OPTION ---------- -------------------- --------------- FINDTADM PDB_DBA YES
SQL> select GRANTEE, PRIVILEGE, ADMIN_OPTION 2 from SYS.DBA_SYS_PRIVS 3 where GRANTEE = 'PDB_DBA' 4 / GRANTEE PRIVILEGE ADMIN_OPTION ---------- ---------------------------------------- --------------- PDB_DBA CREATE PLUGGABLE DATABASE NO PDB_DBA CREATE SESSION NO
「PDB_DBA」に「DBA」ロールを付与
grant DBA to PDB_DBA;
SQL> grant DBA to PDB_DBA; 権限付与が成功しました。
SQL> select GRANTEE, GRANTED_ROLE, ADMIN_OPTION 2 from SYS.DBA_ROLE_PRIVS 3 where GRANTEE = 'PDB_DBA' 4 / GRANTEE GRANTED_ROLE ADMIN_OPTION ---------- -------------------- --------------- PDB_DBA DBA NO
PDBに表領域の作成
PDBローカル管理者ユーザーでPDBに接続
[oracle@SV-PLUTO ~]$ sqlplus findtadm/findtadmx@FINDTPDB SQL*Plus: Release 19.0.0.0.0 - Production on 土 1月 25 16:37:00 2020 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. 最終正常ログイン時間: 土 1月 25 2020 13:25:31 +09:00 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
PDBローカル管理者ユーザーで表領域「USERS」を作成
CREATE TABLESPACE USERS
DATAFILE '/opt/oracle/oradata/findtpdb/users01.dbf' SIZE 300M REUSE
AUTOEXTEND ON NEXT 500K MAXSIZE UNLIMITED
- DATAFILE: データファイルのパス、拡張子は一般的に「dbf」
- SIZE:データファイルのサイズ指定
- REUSE:すでに同じパスにファイルが存在した場合は再利用する
- AUTOEXTEND ON:自動拡張ON (表領域の空きが不足すると自動で拡張される)
SQL> CREATE TABLESPACE USERS 2 DATAFILE '/opt/oracle/oradata/findtpdb/users01.dbf' SIZE 300M REUSE 3 AUTOEXTEND ON NEXT 500K MAXSIZE UNLIMITED 4 / 表領域が作成されました。
表領域の作成後の確認
SQL> select TABLESPACE_NAME, BLOCK_SIZE, INITIAL_EXTENT, MAX_EXTENTS, MAX_SIZE, STATUS, CONTENTS 2 from SYS.DBA_TABLESPACES 3 / TABLESPACE BLOCK_SIZE INITIAL_EXTENT MAX_EXTENTS MAX_SIZE STATUS CONTENTS ---------- ---------- -------------- ----------- ---------- --------- --------------------- SYSTEM 8192 65536 2147483645 2147483645 ONLINE PERMANENT SYSAUX 8192 65536 2147483645 2147483645 ONLINE PERMANENT UNDOTBS1 8192 65536 2147483645 2147483645 ONLINE UNDO TEMP 8192 1048576 2147483645 ONLINE TEMPORARY USERS 8192 65536 2147483645 2147483645 ONLINE PERMANENT
SQL> select FILE_NAME, TABLESPACE_NAME, BYTES, BLOCKS, STATUS 2 from SYS.DBA_DATA_FILES 3 / FILE_NAME TABLESPACE BYTES BLOCKS STATUS ------------------------------------------ ---------- ---------- ---------- --------- /opt/oracle/oradata/findtpdb/system01.dbf SYSTEM 293601280 35840 AVAILABLE /opt/oracle/oradata/findtpdb/sysaux01.dbf SYSAUX 356515840 43520 AVAILABLE /opt/oracle/oradata/findtpdb/undotbs01.dbf UNDOTBS1 104857600 12800 AVAILABLE /opt/oracle/oradata/findtpdb/users01.dbf USERS 314572800 38400 AVAILABLE
Oracle19cのプラガブル・データベースPDBにユーザーを作成する手順
表領域が作成できたので、引き続き、PDB管理者ユーザーでPDBにユーザーを作成します。
PDBにユーザー作成
CREATE USER <ユーザー名>
IDENTIFIED BY <パスワード>
DEFAULT TABLESPACE USERS
QUOTA UNLIMITED ON USERS
TEMPORARY TABLESPACE TEMP
- QUOTA:表領域USERSへの無制限に使用できる領域サイズの割り当て
SQL> CREATE USER findtuser01 2 IDENTIFIED BY ●●●●●●●●●●● 3 DEFAULT TABLESPACE USERS 4 QUOTA UNLIMITED ON USERS 5 TEMPORARY TABLESPACE TEMP 6 / ユーザーが作成されました。
作成したユーザーに権限付与
grant create session to <ユーザー名>
grant resource to <ユーザー名>
grant unlimited tablespace to <ユーザー名>
- CREATE SESSION: この権限が無いとOracleDatabaseに接続できない
- RESOURCE: テーブルなどのオブジェクト作成を可能にするロール
- UNLIMITED TABLESPACE: 無制限に領域を使用できる権限
SQL> grant create session to findtuser01 2 / 権限付与が成功しました。 SQL> grant resource to findtuser01 2 / 権限付与が成功しました。 SQL> grant unlimited tablespace to findtuser01 2 / 権限付与が成功しました。
SQL> select GRANTEE, PRIVILEGE, ADMIN_OPTION 2 from SYS.DBA_SYS_PRIVS 3 where GRANTEE = 'FINDTUSER01' 4 / GRANTEE PRIVILEGE ADM ----------- ---------------------------------------- --- FINDTUSER01 UNLIMITED TABLESPACE NO FINDTUSER01 CREATE SESSION NO
SQL> select GRANTEE, GRANTED_ROLE, ADMIN_OPTION 2 from SYS.DBA_ROLE_PRIVS 3 where GRANTEE = 'FINDTUSER01' 4 / GRANTEE GRANTED_ROLE ADMIN_OPTION -------------------- -------------------- --------------- FINDTUSER01 RESOURCE NO
PDBに新しいユーザーが作成できました!
作成したユーザーでPDBに接続
[oracle@SV-PLUTO ~]$ sqlplus findtuser01/●●●●●●●●●●●@FINDTPDB SQL*Plus: Release 19.0.0.0.0 - Production on 土 1月 25 17:07:47 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 user ユーザーは"FINDTUSER01"です。 SQL>
参考にしたサイト
ユージ&ギョータの実践データベース講座「マルチテナント・アーキテクチャ編 第2回 表領域やユーザー、表の作成」:Oracle Technology Network
【Oracle】表領域・ユーザー・テーブルを作成する:DBAlone
オラクルデータベースのおススメの勉強法の紹介
私は、某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」です。
オラクル関連のいろいろなコースが用意されています。