Windows環境でOracle12cを使う! ~環境構築編~

 
前回のブログで、Oracle12cをWindows環境にインストールをおこないました。
Oracle12cではプラガブル・データベース(以下PDB)などの新しい概念を知る必要がありますが、
新しい機能や細かい仕組みを理解するためにも、まずは動くようにしましょう!!
ということで、今回はテーブル作成やデータの取得までに必要な手順をご説明致します。
 
 

環境情報

今回、実施した環境は以下のとおりです。

OS Windows 8.1
Oracle バージョン 12c
Oracle エディション Enterprise Edition

 
 

実施手順

  1. Oracle起動状態の確認
  2. tnsnames.oraの修正
  3. PDBのオープン
  4. ユーザーの作成
  5. PDBORCLに接続
  6. テーブル作成、データの登録、データの取得

 
 

Oracle起動状態の確認

まずはOracleのサービスが起動していることを確認します。
コントロールパネルの管理ツールからサービスを起動します。
 
以下のようにOracleServiceとTNSListenerが実行中となっている事を確認してください。
oracle_exec1
 
 
 

tnsnames.oraの修正

12c以前でも必要な作業ですが、tnsnames.oraに接続情報を追加します。
 
tnsnames.oraはデフォルト設定の場合、下記に置いてあります。
C:\app\ora\product\12.1.0\dbhome_1\NETWORK\ADMIN
 
インストール時に設定したPDB名などによりSERVICE_NAME等が異なりますが
PDB名がPDBORCLの場合の記述は以下のようになります。

 PDBORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = PDBORCL)
    )
  )

 
 

PDBのオープン

PDBを使用する為にはPDBがオープンしている必要があります。
まずはsysdba権限でログインし、下記コマンドでPDBの状態を確認します。

select name,  open_mode from v$pdbs;

以下のようにPDBがオープンしていない場合は、MOUNTEDと表示されます。
oracle_exec2
 
 
今回はPDBORCLというPDBを使用します。
下記コマンドでPDBORCLをオープンします。
alter session set container = PDBORCL;

以下のようにREAD WRITEと表示されればオープンされている状態です。
正常にPDBORCLに接続できる状態となっています。
oracle_exec3-1
 
 
PDBがオープンしていない場合、接続しようとすると下記の様なエラーが発生します。
原因が推測しづらいメッセージとなっているので注意してください。
※ORA-01033:Oracleの初期化またはシャットダウン中です。
oracle_exec3-2
 
 

ユーザーの作成

次にPDBORCLに接続する為の、ユーザーを作成します。
まず接続先をPDBORCLに変更してからCREATE USERを実行します。
また、権限の付与と表領域usersに対する使用用容量の制限値 (QUOTA) も変更します。

-- 接続先の変更
ALTER SESSION SET CONTAINER = PDBORCL;

-- testUserの作成
CREATE  USER testUser
IDENTIFIED BY "password"
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp;

-- testUserに権限を付与
GRANT CONNECT TO testUser;
GRANT CREATE TABLE TO testUser;

-- testUserの表領域usersに対する使用用容量の制限値 (QUOTA) を変更
ALTER USER testUser QUOTA UNLIMITED ON users;

 
実行結果は以下のようになります。
oracle_exec4
 

テーブルの作成、データの登録、データの取得

最後に、作成したユーザーでPDBORCLに接続し、テーブルの作成、データの登録、データの取得をします。

-- PDBORCLに接続
sqlplus testUser/password@PDBORCL

-- テーブルの作成
CREATE TABLE test_tbl (
  id           NUMBER , 
  name      VARCHAR2(10)
);

-- データの登録
INSERT INTO test_tbl VALUES(1,  'abc');

-- データの取得
SELECT * FROM test_tbl;

 
実行結果は下記のようになります。
oracle_exec5
 
 

まとめ

実際に仕事などで使用する場合、権限の設定などより細かい設定をする必要があるかと思います。
しかし、新しい機能などを理解するためには、まずは動かしてみることが大事です。
ぜひ一度お試し頂ければと思います。

記事をシェア
MOST VIEWED ARTICLES