業界トップクラスのデータベースエキスパート集団

株式会社アクアシステムズ

Oracle12c 新機能
第1回「Oracle12c マルチテナント・アーキテクチャによるDB 統合」

 Oracle12c 新機能

update:

第1回「Oracle12c マルチテナント・アーキテクチャによるDB 統合」

著者:吉田 宗弘

2.4 既存のPDB から新しいPDB の作成 (同一CDB間)

前節ではPDB テンプレートから新しくPDB を作成する手順を確認しましたが、テンプレート以外の既存のPDB をベースとして新たにPDBを作成する事ができます。但し、新規PDB 作成中はベースとなるPDB をRead Onlyでオープンしておく必要があります。それでは実際の手順を確認してみましょう。




2.5 既存のPDB から新しいPDB の作成 (CDB 間の移動1)

前節では、同一CDB 内でPDB を作成する手順を確認しましたので、本節では異なるCDB 間でPDB 作成の手順を確認します。それではcdb02 に前節で使用したcdb01 上のpdb01 をnewpdb1として組込む手順を確認します。
[注意] 本手順を実施するには、事前に以下のPatchを適用しておく必要があります。
 ・Patch#17027533 (PSU 12.1.0.1.1)
 ・Patch#15931910 (PSU 12.1.0.1.1 が前提となります。)
UTF-8 以外の文字コードを使用しているDatabase に対して、PSU 適用を行う
場合は、datapatch utility の実行に先立って、Notes#1633831.1 に記載されている対応を行って下さい。
PSU適用後のCDB に対して、PSU を適用していないPDB の組込みを行った場合は、再度datapatch utility を実行して下さい。
(以前のPSU では、catbundle.sql で行っていた処理が、12.1 以降はdatapatch utility を使用するようになりました。)




2.6 既存のPDB から新しいPDB の作成 (CDB 間の移動2)

前節では、DB Link を使用して既存のPDB からPDB をコピーする手順を確認しました。この方法ではCreate pluggable database 文の実行時に全てのデータファイルをNetwork 経由でコピーする事となります。コピーするPDB の容量や使用しているNetwork 帯域にもよりますが、Network 経由でデータファイルのコピーが難しい場合もあるでしょう。そのような場合は事前に手動でPDB をコピーしておく事でCreate pluggable database 文の実行時にPDB のコピーをスキップさせる事ができます。

(移行先のCDB から参照できればコピーも不要です。) それでは実際に手順を確認してみましょう。ここでは移行元/移行先 CDB が独立した環境で動作している事を想定して、移行元のデータファイル配置ディレクトリをmv しています。





2.7 最少構成のDatabase のUpgrade&組込み

ここまでは、dbcaを使用して作成したDB のUpgradeとCDB への組込みを行ってきました。しかし実際に業務で使用しているDatabase はdbca を使用せずにCreate Database 文で作成し、必要最小限のComponent のみセットアップしている場合も多いでしょう。それでは最後に、必要最小限の構成で作成したDatabaseのUpgradeとCDB への組込みについて確認してみましょう。

以下に、今回使用した初期化パラメータファイルとDatabase 作成のスクリプトを示します。


前節までは、旧バージョンのDatabase が存在する環境にOracle12.1 Software をInstall する手順でUpgrade を行っていました。しかし実際にUpgrade を行う際には、別のマシン上でOracle12.1 にUpgrade を行いたい場合も多いでしょう。Oracle12.1 Software がInstall された環境が既に存在する場合は、Database のCold Backup をコピーしてUpgrade を行う事も可能です。またコピー元と異なるディレクトリにCod Backup をコピーしてUpgrade を行い事も可能です。今回は、そのようなケースも想定してUpgrade を行ってみましょう。


2.7.1 Upgrade 対象DB のコピー




2.7.2 データファイル等のパス変更


これで、新しいパスに配置されているDatabase のUpgrade 準備ができました。これ以降は「2.1.2 DB Upgrade 手順 (Notes#1503653.1 のStep6)」~「2.2 CDB のDBをPDB としてCDB に組込み」と同じ手順を実施します。


2.7.3 DB Upgrade 手順




2.7.4 Upgrade 後の手順



2.7.5 非CDB のDB をPDB としてCDB に組込み


原因は不明ですが、最小限のComponent で構成されているDatabase をUpgrade してCDB に組込みを行うと、XML Schema 関連のType の一部がInvalid 状態となったまま解消する事ができませんでした。Invalid 状態となっているType が、XML Schema 関連のものだったため、Upgrade 前のDatabase に対して以下の手順でXML DatabaseのInstall を行ってから同じ手順を実行したところ、Oracle12cへのUpgrade/CDB への組込み/ディクショナリの変換を行っても、Invalid Objectは発生しませんでした。XML Schema 関連のTypeの一部がInvalid 状態となっている事の影響については不明ですが、手動で作成したDatabase をCDB に組込みを行う際には、事前にXML Database のInstall を行っておいた方が良いでしょう。XML Database のInstall 手順については、Krown#166257 に記載があります。 Krown 情報の参照には、Oracle社とのサポート契約が必要となりますのでご注意下さい。



3. まとめ

今回はOracle12c の目玉機能であるマルチテナント・アーキテクチャを利用したDB 統合について手順等の確認を行いました。マルチテナント・アーキテクチャを使用すると、1つのインスタンスで複数のPDB を管理する事が可能なため、DB の集約率を大きく上げる事が可能になります。それでは実際にCDBにDB を集約させる際には、どのような点に注意して集約を行えば良いでしょうか?
技術的な制限、可用性、パフォーマンス等の観点から筆者は以下のように考えています。
・エンディアン/文字コードセットが同一であるDBを集約 (技術的な制限)
  文字コードが異なると、US7ASCII のDatabase でも組込む事はできません。
・SLA が類似しているPDB を集約 (可用性の観点)
・DB の負荷のピーク時間帯が異なるDBを集約 (パフォーマンスの観点)
・運用パターンが同じDB を集約
先にも書きましたが、Oracle12c のマルチテナント機能を使用するには別途ライセンス費用が発生しますが、統合したPDB にはライセンス料が発生しません。Enterprise Edition では最大で252 個のPDB を作成する事ができるため、DB を集約する事でライセンス料を抑える事ができます。更に、ライセンス料を抑えるためにStandard Edition/Standard Edition One を使用して構築していたDBが大量にある場合、PDB に統合する事で、Parallel 機能やOnline 再作成機能等、Enterprise Edition の恩恵も受ける事ができるようになります。

 

参考URL

Oracle12c 新機能セミナー資料
http://www.oracle.com/technetwork/jp/ondemand/od12c-coretech-seminar-doc-1988084-ja.html

Oracle Database 12c お役立ちリンク集
http://www.oracle.com/webfolder/technetwork/jp/12c-links/index.html


Oracle Database SQL 言語リファレンス
http://docs.oracle.com/cd/E49329_01/server.121/b71278/toc.htm


Oracle Database リファレンス
http://docs.oracle.com/cd/E49329_01/server.121/b71292/toc.htm


Oracle Database PL/SQL パッケージおよびタイプ・リファレンス
http://docs.oracle.com/cd/E49329_01/appdev.121/b71281/toc.htm


参考にしたサポート情報

以下のURL を参照するには、Oracle社とのサポート契約が必要です。

Complete Checklist for Manual Upgrades to Oracle Database 12c Release 1 (12.1)
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=
BULLETIN&id=1503653.1


Complete Checklist for Upgrading to Oracle Database 12c Release 1 using DBUA
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=
BULLETIN&id=1516557.1


How to Download and Run Oracle's Database Pre-Upgrade Utility
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=
BULLETIN&id=884522.1


Script to Collect DB Upgrade/Migrate Diagnostic Information (dbupgdiag.sql)
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=
BULLETIN&id=556610.1


Scripts to automatically update the RDBMS DST (timezone) version in an 11gR2 or 12cR1 database
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=
BULLETIN&id=1585343.1


How to migrate an existing pre12c database(nonCDB) to 12c CDB database ?
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=
BULLETIN&id=1564657.1


CDB:CLONE REMOTE PDB BY DB LINK FAILED WITH ORA-17628/ORA-19505
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=
BULLETIN&id=1592033.1


Queryable Patch Inventory - Issues/Solutions for XML parser errors in a non UTF8 database
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=
BULLETIN&id=1633831.1


マルチテナント・アーキテクチャの基本情報
https://krown.oracle.co.jp/krown/oisc_showDoc.do?id=164344


[マスターノート] Oracle XML Database (XDB) のインストールとアンインストール[ID 1292089.1]翻訳
https://krown.oracle.co.jp/krown/oisc_showDoc.do?id=166257

業界トップクラスのデータベースエキスパート集団
アクアシステムズ

データベースに関するすべての課題、トラブル、お悩みを解決します。
高難易度、複雑、他社対応不可案件など、お気軽にご相談ください。