1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Oracle DBサーバのマルチテナント管理 (オンプレミス)

Posted at

Oracle DBの移行のテストの際に、運用担当者から受領したデータを蓄積するため、ローカルにDBを構築することにした。移行元データは、複数のDBサーバから来ること、それらが同一スキーマ上の同一テーブルであることや、Oracle固有のフォーマット(Data Pumpでエクスポートしたファイル)であることから、複数のDBを同居できるマルチテナントの機能を利用することにした。
マルチテナントをおさらいすると、一つのDBサーバ上に複数のデータベースを持つことができる機能。Oracle 12以降で使える。(下図参照)
image.png

コンテナデータベース上に、複数のプラガブルデータベースを作成できる。

今回は、Windowsサーバに上にOracle DBをインストールした環境で説明。
コンテナデータベース構成とし、プラガブルデータベースを作成する手順を紹介する。

Oracleのインストール

Oracleをインストールします。(ここでは割愛)

DBCAの実行

Database Configuration Assistantを実行します。

PDBの作成(DBCA)

DBCAのメニューでデータベース操作を行います。

プラガブル・データベースの管理

image.png

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

image.png

ユーザ名/パスワードの入力

PDB作成を実行するためのユーザのユーザ名/パスワードを入力
image.png

他のPDB(PDB$SEED)から新しい・ブラガブルデータベースを作成

image.png

データベース名, 管理者のID/パスワードを入力

image.png

記憶域オプション(ファイルシステム)

ファイルシステムを選択
image.png
サマリー
image.png
インストール進行中
image.png
完了
image.png

コマンドラインによるDB操作

各PDBに対して、コマンドラインからユーザ、テーブル、インデックス等を作成します。

SQLPlusによるDB接続

SQLPlus ログイン
sqlplus [ID]/[パスワード]@[RDSのアドレス]:1521/ORADB01

スキーマ作成(ユーザ作成)

ここではAPLというスキーマでアプリケーションを管理・操作する想定でスキーマを作成。

ユーザ作成
CREATE USER APL IDENTIFIED BY [Password];

DB管理ユーザ(APL)に権限を付与。

ユーザへの権限設定
grant connect, resource, dba to apl;

確認

確認
SELECT GRANTEE, GRANTED_ROLE, ADMIN_OPTION  FROM SYS.DBA_ROLE_PRIVS WHERE GRANTEE = 'APL';

テーブル作成 (SQLPlus)

SQLPlusによる接続に関しては割愛

テーブル作成(DDL)の準備

テーブル作成のDDL例 (tables.sql)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3802444/2b59146c-f7e9-2ba8-fa50-7897f4a5131e.png)--------------------------------------------------------
--  DDL for Table TBL0001
--------------------------------------------------------
CREATE TABLE "APL"."TBL0001"
 (DEPTNO NUMBER(2),
 DNAME VARCHAR2(14),
 LOC VARCHAR2(13));

 COMMENT ON TABLE "APL"."TBL0001"  IS 'Dept Table';

--------------------------------------------------------
--  DDL for Table TBL0002
--------------------------------------------------------
CREATE TABLE "APL"."TBL0002"
 (EMPNO NUMBER(4) primary key,
 ENAME VARCHAR2(10),
 JOB VARCHAR2(9),
 MGR NUMBER(4),
 HIREDATE DATE,
 SAL NUMBER(7,2),
 COMM NUMBER(7,2),
 DEPTNO NUMBER(2));

 COMMENT ON TABLE "APL"."TBL0002"  IS 'EMP Table';

DDLの実行

SQLPlus ログイン
sqlplus [ID]/[パスワード]@localhost:1521/ORADB01
スキーマの切り替え
alter session set current_schema = APL;
テーブル作成用DDL (TABLES.SQL)の実行
@TABLES.SQL

サーバへのアクセス許可 (ファイルアウォールの設定)

Windowsサーバにインストールした場合、サーバ外部からDBアクセスをするためにファィアウォールの設定を変更する必要がある。

Windowsサーバへのサインイン

Windowsセキュリティ

image.png

ネットワークファイアウォールの設定

image.png

新しい規制

image.png
image.png

Oracleのポート(TCP/IP ポート 1521)を定義

image.png

Oracleのポートを許可

image.png
image.png
image.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?