VirtualBoxインストール
platform packagesとOracle VM VirtualBox Extension Packをインストールしてください。
Downloads – Oracle VM VirtualBox
Oracle Linux 7/Oracle Database 19.3 Linux x86-64の仮想マシン(ova)をOracleが準備してくれているのでダウンロード、インポートします。オラクルのアカウントが必要になります。アカウントは無料で作成できます。
ovaはテスト目的のみ利用可能で、本番環境には利用できませんのでご注意ください。
Developer Day - Hands-on Database Application Development
Developer Day - Hands-on Database Application Development
インポートが完了したらイメージを起動してください。
ターミナルが自動で立ち上がります。
以降の作業はターミナルで実行します。
環境変数設定
export ORACLE_HOME=/u01/app/oracle/product/version/db_1
export PATH=${PATH}:${ORACLE_HOME}/bin
DB作成
# 接続
sqlplus /nolog
# パスワードはoracle
CONNECT SYS/oracle@ORCLCDB AS SYSDBA;
# 誰で接続されてるか
show con_name;
# PDBを確認
show pdbs;
# PDB$SEEDに接続
alter session set container=PDB$SEED;
# PDBファイルの場所を確認
select file_name from dba_data_files;
# pdbseedからSAMPLEDB作成
# パス部分は1つ上のクエリで取得した値を設定してください
CREATE PLUGGABLE DATABASE SAMPLEDB ADMIN USER sampledbuser IDENTIFIED BY sampledbpasswd FILE_NAME_CONVERT = ('/u01/app/oracle/oradata/ORCLCDB/pdbseed/', '/u01/app/oracle/oradata/SAMPLEDB/');
# プラガブル・データベースのオープン
alter pluggable database SAMPLEDB open;
# プラガブル・データベースの自動起動の設定
alter pluggable database SAMPLEDB save state;
tnsnames.oraを編集して、SQL*Plusで接続できるようにします
vi ${ORACLE_HOME}/network/admin/tnsnames.ora
# 以下を追加
SAMPLEDB= (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = sampledb) ) )
権限付与
pdbseedからSAMPLEDBを作成した時点で、sampledbuserにCREATE SESSION権限は付与されているようで、DBには接続できますが、テーブル作成はできませんでしたので以下の権限を付与します。
- テーブルへの、SELECT、INSERT、UPDATE、DELETE
- テーブルの作成・削除の権限
- シノニム、プロシージャ、ビュー等の作成・削除の権限
# 接続
sqlplus /nolog;
# パスワードはoracle
CONNECT SYS/oracle@ORCLCDB AS SYSDBA;
# 誰で接続されてるか
show con_name;
# PDBを確認
show pdbs;
# PDBが起動されているか確認(mountedだと起動してない)
select name, open_mode from v$pdbs;
# 起動してない場合
alter pluggable database SAMPLEDB open;
# PDBに接続
alter session set container = SAMPLEDB;
# PDBで、ユーザを一覧表示
SELECT USERNAME,PASSWORD FROM DBA_USERS;
# 権限付与
GRANT CREATE SESSION, CREATE SYNONYM, CREATE ANY INDEXTYPE, CREATE ANY OPERATOR, CREATE ANY PROCEDURE, CREATE ANY MATERIALIZED VIEW, CREATE ANY SEQUENCE, CREATE ANY TRIGGER, CREATE ANY TYPE, CREATE ANY VIEW, CREATE DATABASE LINK, CREATE ANY TABLE, INSERT ANY TABLE, SELECT ANY TABLE, UPDATE ANY TABLE, DELETE ANY TABLE, DEBUG ANY PROCEDURE, DEBUG CONNECT SESSION, EXECUTE ANY LIBRARY, EXECUTE ANY PROCEDURE, UNLIMITED TABLESPACE, EXP_FULL_DATABASE, IMP_FULL_DATABASE, ALTER ROLLBACK SEGMENT, ALTER TABLESPACE TO sampledbuser;
一旦ログアウトし、作成したユーザでPDBにログインします。
sqlplus [ユーザ名]/[パスワード]@[ホスト]:[Oracleリスナーのポート]/[PDBインスタンス];
sqlplus sampledbuser/sampledbpasswd@localhost:1521/SAMPLEDB
おまけ:ホストPCからDB接続
virtualbox->設定->ネットワーク->ポートフォワーディングで1521がデフォルトで設定してあるため、ホストPCからもDBeaverなどのSQLクライアントで上記の情報でDBに接続できます。
DBeaver Community | Free Universal Database Tool
以下のサイトを参考にさせていただきました。