2.3.2 True Cacheの手動作成
True Cacheを手動で作成するには、次のステップに従います。
2.3.2.1 True Cacheおよびプライマリ・データベースのtnsnames.oraファイルの編集
True Cacheとプライマリ・データベースの両方でtnsnames.ora
ファイルを編集して、データベース・ネットワーク接続を構成します。
ほとんどのLinuxプラットフォームでは、tnsnames.ora
ファイルは$ORACLE_HOME/network/admin
ディレクトリにあります。
このファイルは、手動で、またはOracle Net Configuration Assistant (NETCA)を使用して作成できます。
情報がまだ存在しない場合は、すべてのプライマリ・データベースおよびTrue Cache tnsnames.ora
ファイルに次の情報を追加します:
- プライマリ・データベースおよびすべてのTrue Cacheのネットワーク名。これらは、REDOをTrue Cacheに送信するために必要であり、データベース・アプリケーション・サービスがまだ作成されていない場合でもREDO送信が機能することを可能にします。
- すべてのプライマリ・データベースおよびTrue Cacheデータベース・アプリケーション・サービス名。1つのTrue Cacheは、同時に起動される複数のデータベース・アプリケーション・サービスをサポートできます。
- リモート・リスナーを使用している場合は、すべての参加リスナー・ネットワークの別名。
True Cacheおよびプライマリ・データベースのtnsnames.ora
ファイルのエントリの例を次に示します:
# True Cache network name
tcdb1i =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = true_cache_host)(PORT = 1521))
)
(CONNECT_DATA =
(SID = tcdb1i)
)
)
# True Cache database application service name
sales_tc =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = true_cache_host)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = sales_tc)
)
)
# Primary database network name
primdb1i =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = primary_database_host)(PORT = 1521))
)
(CONNECT_DATA =
(SID = primdb1i)
)
)
# Primary database application service name
sales =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = primary_database_host)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = sales)
)
)
listener_primary =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = primary_database_host)(PORT=1521))
)
listener_true_cache =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = true_cache_host)(PORT=1521))
)
2.3.2.2 True Cacheノードでのローカル・リスナーの構成および起動
ローカル・リスナーを構成して起動し、True Cacheノードがプライマリ・データベースからREDOを受信できるようにします。
2.3.2.3 プライマリ・データベースからTrue Cacheノードへのパスワード・ファイルまたはウォレットのコピー
REDO転送セッションの認証を指定するには、プライマリ・データベースのパスワード・ファイルまたはウォレットをTrue Cacheノードにコピーします。
True Cacheでは、Oracle Netを使用してTrue Cache構成のメンバー間でREDOデータを転送し、メッセージを制御します。これらのREDO転送セッションはパスワード・ファイルを使用して認証されるため、構成内のすべてのTrue Cacheにはプライマリ・データベースからのパスワード・ファイルの最新のコピーが必要です。
プライマリ・データベースのパスワード・ファイルをTrue Cacheノードの適切なディレクトリにコピーします。パスワード・ファイルはV$PASSWORDFILE_INFO
ビューで見つけることができ、Linuxでは通常、ファイルは$ORACLE_HOME/dbs/orapwSID
にあります。
このドキュメントの例では、プライマリ・データベースのパスワード・ファイルは$ORACLE_HOME/dbs/orapwprimdb1i
で、True Cacheノードにコピーして名前を$ORACLE_HOME/dbs/orapwtcdb1i
に変更します。
次の場合は、パスワード・ファイルを再コピーする必要があります:
- 管理権限(
SYSDG
、SYSOPER
、SYSDBA
など)が付与または取り消された場合 - 管理権限を持つユーザーのパスワードが変更された後
次の場合は、パスワード・ファイルのかわりにウォレットをコピーします:
- プライマリ・データベースがパスワード・ファイルのかわりにTLS証明書認証を使用する場合
-
プライマリ・データベースが透過的データ暗号化(TDE)を構成している場合。True Cache用のコピーには、プライマリ・データベースから送信される暗号化されたREDOを復号化するために使用される
ROOT
コンテナのマスター・キーのみを含めます。ノート:
TDEウォレットを使用する場合、True Cacheの自動ログイン・ウォレットまたはローカル自動ログイン・ウォレットを構成することをお薦めします。自動ログイン・ウォレットの場合、プライマリ・データベースにウォレットを作成し、パスワード・ウォレット(ewallet.p12)と自動ログイン・ウォレット(cwallet.sso)の両方をTrue Cacheにコピーします。ローカル自動ログイン・ウォレットはホスト固有であるため、別のノードにコピーできません。かわりに、ローカルの自動ログイン・ウォレットの場合は、パスワード・ウォレットをTrue Cacheにコピーし、True Cacheで開き、ウォレット・パスワードを使用してローカル自動ログイン・ウォレットを作成します。ローカルの自動ログイン・ウォレットは、ウォレット・パスワードを知らないとウォレットをコピーして使用できないため、セキュリティが向上します。ウォレット・タイプの詳細は、Oracle Databaseウォレットについての説明を参照してください。ウォレット・タイプの詳細は、Oracle Databaseウォレットについての説明を参照してください
2.3.2.4 True CacheのPFILEの準備
True Cacheごとに、次のパラメータを使用してPFILE
を準備します。
表2-3 初期化パラメータ
パラメータ | 説明 |
---|---|
TRUE_CACHE=TRUE |
これがTrue Cacheであることをサーバーに知らせます。 |
DB_NAME |
プライマリ・データベースのものと同じ値を入力します。 |
DB_UNIQUE_NAME |
このTrue Cacheに一意の名前を指定します。 |
DB_FILES |
プライマリ・データベースのものと同じ値を入力します。 |
SGA_TARGET |
このTrue CacheのSGAメモリー・サイズを入力します。 |
REMOTE_LISTENER |
プライマリ・データベース・リスナーを入力します。これは ノート: Oracle RACプライマリ・データベースの場合、 ノート: 登録に対する有効ノード・チェック(VNCR)がリスナーに構成されているかどうかを確認します。その場合は、リモート・リスナーの ノート:構成を簡略化し、接続の問題を回避するには、
詳細は、「共通構成でのロード・バランシングに関するベスト・プラクティス」を参照してください。 |
FAL_SERVER |
プライマリ・データベースのネットワーク名を入力します。 ノート: Oracle RACプライマリ・データベースの場合、 プライマリ・スタンバイ・スイッチオーバーの後にプライマリになる可能性があるスタンバイ・データベースがある場合は、True Cacheにより、その既存のスタンバイ・データベースが自動的に
|
FAL_CLIENT |
True Cacheネットワークの名前を入力します。True Cacheを起動すると、プライマリ・データベースがオンラインREDOログ・ブロックの送信先を認識できるように、対応するプライマリ・データベースのLOG_ARCHIVE_DEST_n 初期化パラメータにそのネットワーク名が自動的に追加されます。
|
DB_CREATE_FILE_DEST |
内部True Cacheファイル(制御ファイルや一時ファイルなど)を格納するディレクトリを入力します。 True CacheでOracle Automatic Storage Management (ASM)ストレージまたはOracle Exadata Exascaleストレージ・ボールトが使用される場合は、パスにASMディスク・グループ名またはExascaleボールト名の接頭辞を付けます。 ノート: ディレクトリに、プライマリ・データベースの一時ファイルを保持するのに十分な領域と、ブロック・サイズおよびスレッドごとの最大オンラインREDOログ・サイズの4倍を足した領域があることを確認します。たとえば、プライマリに2つのREDOログ・スレッドがあり、各スレッドに512バイト・ブロックの2つの2GBのオンラインREDOログ、512バイト・ブロックの2つの4GBのオンラインREDOログ、4KBブロックの3つの8GBのオンラインREDOログがある場合、次の式を使用します: 2スレッドx (4GB x 2 (512バイト・ブロックの大きい方)) + (8KB x 3 (4KBブロック)) |
DB_DOMAIN |
これは、プライマリ・データベースでDB_DOMAIN も設定される場合に必要になることがあります。True Cacheノードが存在するドメインに設定します。
|
WALLET_ROOT およびTDE_CONFIGURATION |
プライマリ・データベースが推奨されるWALLET_ROOT およびTDE_CONFIGURATION パラメータを使用してTDEを構成する場合は、このTrue Cacheで適宜構成します。
|
たとえば、次のPFILE
はinit_tcdb1i.ora
という名前で、True Cacheノードの$ORACLE_HOME/dbs/
ディレクトリに格納されます:
true_cache=true
db_name=primaryd
db_unique_name=tcdb1
db_files=200
sga_target=20G
fal_server=primdb1i
fal_client=tcdb1i
instance_name=tcdb1i
db_create_file_dest=local_directory_on_true_cache_node
local_listener=listener
remote_listener=listener_primary
前述の例では、プライマリ・データベースのDB_UNIQUE_NAME
初期化パラメータがprimarydb
に設定され、DB_FILES
が200
に設定されていることを想定しています。
関連トピック
2.3.2.5 True Cacheの作成および開始
True Cacheを初めて作成して開始するには、次のステップに従います。
-
SQL*Plusを使用して、True Cacheを
NOMOUNT
モードで起動します。export ORACLE_SID=tcdb1i
sqlplus / as SYSDBA
STARTUP NOMOUNT PFILE=$ORACLE_HOME/dbs/init_tcdb1i.ora;
-
パスワード・ファイルが正しいファイルを指していることを確認します
SELECT file_name FROM v$passwordfile_info; FILE_NAME ---------------------------------------------------- /u01/example/oracle/product/main/db_1/dbs/orapwtcdb1i
-
True Cacheを作成して起動します
CREATE TRUE CACHE;
- True Cacheが動作していることを確認するには、「True Cacheが想定どおりに動作していることの確認」を参照してください。
True Cacheを作成すると、作成した最初のPFILE
に基づいて、適切なサイズのスタンバイREDOログ、制御ファイル、一時ファイル(必要な場合)および内部SPFILE
が自動的に作成されます。このSPFILE
は、PFILE
値を指定しなくても、後のSTARTUP
コマンドで自動的に使用されます。
この時点で、アプリケーションはプライマリ・データベースとTrue Cacheへの個別の物理接続を使用し、読取りか書込みかに基づいて使用する接続を選択できます。
JDBC ThinドライバでTrue Cacheを使用するには、次のトピックに進み、True Cacheのデータベース・アプリケーション・サービスを構成します。