Oracle12c 新機能

update:

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

著者:吉田 宗弘

2. Database のUpgrade とCDB への統合

前節では、マルチテナント・アーキテクチャの構成と利用方法について説明しました。本機能を利用する目的は「会社が管理する多数のDB を少数のCDB に高い集約率で統合し、H/W コスト, ライセンス費用 (注), 運用コストを下げる事」にある事は間違いないでしょう。そこで本節では、12.1 以前のDatabase やPDB 化されていない12.1 のDatabase をCDB に統合する手順について、確認していきます。

(注) : マルチテナント・アーキテクチャの使用には、別途オプションのライセンス費用が発生します。しかし、1つのCDB に最大で252 個のPDB を統合する事が可能で、統合したPDB にはライセンス費用が発生しません。従って、多数のPDBをCDB に統合する事ライセンス費用も抑える事が可能です。

2.1 12.1以前のDBを12.1へUpgrade

Database をCDB に統合するためには、最初にDatabase を12.1 にUpgrade する必要があります。Database Upgrade の方法として、空のPDB にdatapump やGoldenGate 等のツールを使用してデータを移行する方法と、Database 自体を12.1 にUpgrade する方法があります。ここでは特別なツールを必要としない、後者の方法でUpgrade を行う事とします。利用中のDatabase バージョンによっては12.1 に直接Upgrade できるものと、一旦中間のバージョンを経由しなければならないものがあります。Oracle Database アップグレードガイドによると、以下のバージョンが12.1 へ直接Upgrade 可能となっています。
・Oracle 11.2.0.2 以上
・Oracle 11.1.0.7
・Oracle 10.2.0.5
上記以外のバージョンを使用している場合は、一旦上記バージョンを経由してから12.1 に再度バージョンアップを行う事となります。ここでは、直接バージョンアップなバージョン (11.2.0.4) からのバージョンアップを実施します。DB のUpgrade にはdbua を使用する方法と手動でスクリプトを実行する方法があります。dbua を使用するのが簡単ですが、Upgrade の手順を確認する意味で、ここでは手動Upgrade を行う事とします。尚、Upgrade するDatabase は、Single Instance 環境でASM を使用していません。

2.1.1 事前準備 (Notes#1503653.1 のStep 3 ~ Step 5)

12.1 以前のバージョンから、Oracle 12.1 への手動Upgrade 手順については、
My Oracle Support のNotes#1503653.1 に記載がありますので、この手順に従ってUpgrade を実施します。但し、今回Upgrade 対象のDB では不要な手順 (非推奨のCONNECT ロールやEM DB Control リポジトリの削除等) については実施していませんので、実際にUpgrade を行う際には必要に応じて手順を追加して下さい。
先ず、Upgrade に先立って、以下の準備を実施します。
・Oracle 12.1 Software のInstall
・Upgrade 前情報ツールのDownload (Notes#884522.1)
・Upgrade 後に実施する診断スクリプトのDownload (Notes#556610.1)
・Timezone Upgrade 用ツールのDownload (Notes#1585343.1)
・Upgrade 対象のDB でEM Database Control を使用している場合は、Oracle12c
環境の$ORACLE_HOME/rdbms/admin からemremove.sql をコピー


Oracle 12.1 Software のInstall については、CDB/PDB を作成している段階で既に実施済みと考え、ここでの説明は省略します。

従来の構成とマルチテナント・アーキテクチャ構成の比較
情報ツールからの指摘事項の対応, Notes#1503653.1 のStep 4, Step 5 に記載されている内容が完了したら、実際にDB のUpgrade を実施します。

2.1.2 DB Upgrade 手順 (Notes#1503653.1 のStep 6)

実際にDB Upgrade を行った手順を以下に示します
ここでもClusterware 構成情報の更新等、本環境で不要な手順は記載していませんので、ご注意下さい。


マルチテナント・アーキテクチャ構成のDB を作成した際のdbca の画面ショット

2.1.3 Upgrade 後の手順 (Notes#1503653.1 のStep 7)

実際にDB Upgrade後の作業を行った手順を以下に示します

ここでもリカバリカタログのUpgrade やOracle Text のInstall等、本環境で不要な手順は記載していませんので、ご注意下さい。また、Oracle12c 用の環境変数設定については、前節のDB Upgrade 時に既に実施していますので、本節では行いません。


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

前節までで12.1 以前のDatabase をCDB にPDB として組込むための準備ができました。それでは、実際にUpgradeしたDBをPDBとしてCDBに組込んでみましょう。

CDB にPDB を組込む場合は、Create Pluggable Database 文を使用します。それでは最初に、Create Pluggable Database 文の構文を見てみましょう。



非CDBのDBをCDB に組込むための手順は、Notes#1564657.1 で記載されています。
非CDB のDB をCDB に組込みには、create_pdb_from_xml 構文を使用してPDB の作成を行います。12.1 にUpgrade を行った環境には、cdb01 ~ cdb03 のCDB が作成されていますので、今回はcdb01 に組込みを行ってみましょう。

新しく組込むPDB のデータファイルは、cdb01/noncdb 配下にコピーするものとします。

以上で、旧バージョンからDB を12.1 にアップグレードしてPDB として既存のCDB に組込むまでの手順が確認できました。Notes#1564657.1 には、noncdb_to_pdb.sql によるデータ・ディクショナリの変換は、任意と記載されていますが実際にはデータ・ディクショナリの変換は必須です。先の例に示すように、データ・ディクショナリの変換が完了するまで制限モードの解除ができませんでした。DB のアップグレードについては、今回は手動で実施しましたが、DBUA を使用したアップグレード手順がNotes#1516557.1 で公開されていますので、最適な方法でアップグレードを実施して下さい。


2.3 PDB$SEED から新しいPDB の作成

それでは、新たにPDB を作成する他の方法を確認したいと思います。最初に、PDB 作成用のテンプレートとして準備されているPDB$SEED からPDB を作成してみましょう。PDB$SEED から新しいPDB を作成するには、Create Pluggable Database 文のcreate_pdb_from_seed 構文を使用します。


(→次のページへ続く