データベース
 Computer >> コンピューター >  >> プログラミング >> データベース

TDEテーブルスペース暗号化を使用してデータベースを12Cにアップグレードする

TDEテーブルスペース暗号化機能を使用して、EBSアプリケーションからのすべてのデータが格納されているテーブルスペースを暗号化できます。 TDEはアプリケーションに対して透過的であるため、コードを書き直す必要はありません。許可されたユーザーは誰でも問題なく暗号化されたデータにアクセスできます。

はじめに

許可されたユーザーは、問題なく暗号化されたデータにアクセスできます。 TDEは、データファイルやバックアップファイルなどの保存データに適用されます。

目的

TDEテーブルスペース暗号化オプションを使用すると、EBSデータベースに保存されているすべての機密データを保護できます。暗号化されたデータにアクセスできるのは、許可されたユーザーのみです。

制限

SYSTEMおよびSYSAUXは、表領域の作成時ではなく、DBの作成時に作成されるため、暗号化できません。表領域の作成中に暗号化オプションが追加されます。元に戻すおよびTEMPテーブルスペースも暗号化できませんが、暗号化されたテーブルスペースからTEMP/UNDOに保存されたデータは暗号化されます。

実装手順

1。ソフトウェアのバージョンを確認する

•パッチ16207672-12.2.2

•パッチ20745242-R12.AD.C.Delta.7

•パッチ20784380-R12.TXK.C.Delta.7

•パッチ19597008

•パッチ20251314(12.2.5に含まれています)

•パッチ8796558

•パッチ19343134

2。 12.1.0DBホームを準備する

•12.1.0ソフトウェアをインストールします

•12cサンプルCDからOracleDatabase12c製品をインストールします(必須)

•追加の12.1.0.2RDBMSパッチを適用する

3。必要な最新のDBETCC/PSUパッチをすべて適用する

4。 4. nls / data/9idataディレクトリを作成します

perl $ ORACLE_HOME / nls / data / old / cr9idata.pl

55.パッチ16541956をに適用します。ソース管理サーバーノードでエクスポート/インポートユーティリティパッチを使用して統合されたアプリケーション。

作業ディレクトリを作成する

mkdir / u01 / expimp <

7。ターゲットデータベースインスタンス作成スクリプトaucrdb.sqlを生成します

エクスポート/インポートパッチは、aucrdb.sqlスクリプトを生成するauclondb.sqlスクリプトを提供します。 $ AU_TOP / patch / 115 / sql / auclondb.sqlをコピーします アプリノードからDBノードソースへのスクリプトを作成し、以下のように実行します。

$ sqlplus system / [system password] \ @ $ AU_TOP / patch / 115 / sql / auclondb.sql 12

8。高度なキュー設定を記録する

auque1.sqlをコピーします $ AU_TOP / patch / 115 / sqlからのスクリプト アプリノードからDBノードに移動して実行します。次のコマンドはauque2.sqlを生成します。

$ sqlplus / nolog

SQL> connect / as sysdba;

SQL> @ auque1.sql

9。空間インデックスの再構築インデックスパラメータを削除します

select * from dba_indexes where index_type =‘DOMAIN’ andupper(parameters)like‘%REBUILD%';

10。テキストインデックスを同期する

$ sqlplus'/ as sysdba' SQL> select pnd_index_owner、pnd_index_name、count(*) from ctxsys.ctx_pending group by pnd_index_owner、pnd_index_name;

上記のクエリから行が返された場合は、以下のコマンドを使用します

exec ctx_ddl.sync_index('[インデックス所有者]。[インデックス名]');

11。エクスポートパラメータファイルを作成します

アプリノードから$AU_TOP/ patch / 115 / import / auexpdp.datをコピーし、要件に従って編集します。

diff auexpdp.dat auexpdp.dat.orig «/u01 / oracle / patches / 12c_db / backup / expimp 8c8

filesize =1048576000 12,13d11

必要に応じてディレクトリを作成します。

SQL> create または、ディレクトリdmpdirを'/ u01 / oracle / patches / 12c_db / backup / expimp / 2nditeration';に置き換えます。

ディレクトリが作成されました。

12。パッチ適用サイクルがアクティブになっていないことを確認してください。

ノード名ノードタイプフェーズステータス開始終了終了

Appnode master PREPARE COMPLETED
2017/05/20 23:01:31 2017 / || 05/20 23:24:45 0:23:14 APPLY COMPLETED
2017/05/20 23:53:09 2017/05/20 23:53:39 0:00:30 FINALIZE COMPLETED 2017/05/20 23:55:55 2017/05/20 23:56:14 0:00:19 CUTOVER COMPLETED 2017/05/20 23:58:57 2017/05/21 00:09:50 0:10:53 CLEANUP COMPLETED 2017/05/21 01:59:13 2017/05/21 01:59:44 0:00:31

13。アプリケーションサーバープロセスをシャットダウンします

14。次のコマンドを使用して、ソースシステムスキーマに特権を付与します

SQL>システムにEXEMPTACCESSPOLICYを付与します;

付与に成功しました。

15。次のコマンドを使用してMGDSYSスキーマ(条件付き)を削除します

$ sqlplus "/ as sysdba" @?/ md / admin / catnomgdidcode.sql

16。次のコマンドを実行して、OLAP分析ワークスペースをエクスポートします(オプション)

  1. SQL> col owner format a15

SQL> col aw_name format a15

SQL> select OWNER、AW_NAME、PAGESPACES from dba_aws where owner!='SYS' order by 1,2;

OWNER AW_NAME PAGESPACES

> APPS ODPCODE 1123

APPS XWDEVKIT 1106 APPS XWDEVKIT_BACKUP 1106 FPA FPAPJP 505

  1. SQL>ディレクトリAW_DIRを'/u01 / oracle / patches / 12c_db / backup / MGR_DIR';として作成または置換します。

作成されたディレクトリ

2a。 SQL> exec dbms_aw.execute('aw attach APPS.ODPCODE rw');

PL/SQLプロシージャが正常に完了しました。

SQL> exec dbms_aw.execute('allstat');

PL/SQLプロシージャが正常に完了しました。

SQL> exec dbms_aw.execute('すべてをeifファイルにエクスポート''AW_DIR / ODPCODE.eif''');

PL/SQLプロシージャが正常に完了しました。

SQL> exec dbms_aw.execute('aw detach APPS.ODPCODE');

PL/SQLプロシージャが正常に完了しました。

2b。 SQL> exec dbms_aw.execute('aw attach APPS.XWDEVKIT rw');

PL/SQLプロシージャが正常に完了しました。

SQL> exec dbms_aw.execute('allstat');

PL/SQLプロシージャが正常に完了しました。

SQL> exec dbms_aw.execute('すべてをeifファイルにエクスポート''AW_DIR / XWDEVKIT.eif''');

PL/SQLプロシージャが正常に完了しました。

SQL> exec dbms_aw.execute('aw detach APPS.XWDEVKIT');

PL/SQLプロシージャが正常に完了しました。

2c。 SQL> exec dbms_aw.execute('aw attach APPS.XWDEVKIT_BACKUP rw');

PL/SQLプロシージャが正常に完了しました。

SQL> exec dbms_aw.execute('allstat');

PL/SQLプロシージャが正常に完了しました。

SQL> exec dbms_aw.execute('すべてをeifファイルにエクスポート''AW_DIR / XWDEVKIT_BACKUP.eif''');

PL/SQLプロシージャが正常に完了しました。

SQL> exec dbms_aw.execute('aw detach APPS.XWDEVKIT_BACKUP');

PL/SQLプロシージャが正常に完了しました。

2d。 SQL> exec dbms_aw.execute('aw attach FPA.FPAPJP rw');

PL/SQLプロシージャが正常に完了しました。

SQL> exec dbms_aw.execute('allstat');

PL/SQLプロシージャが正常に完了しました。

SQL> exec dbms_aw.execute('すべてをeifファイルにエクスポート''AW_DIR / FPAPJP.eif''');

PL/SQLプロシージャが正常に完了しました。

SQL> exec dbms_aw.execute('aw detach FPA.FPAPJP');

PL/SQLプロシージャが正常に完了しました。

  1. SQLコマンドを使用して、手順2でエクスポートされた各AWを削除します。

SQL> exec dbms_aw.execute('aw delete APPS.ODPCODE');

PL/SQLプロシージャが正常に完了しました。

SQL> exec dbms_aw.execute('aw delete APPS.XWDEVKIT');

PL/SQLプロシージャが正常に完了しました。

SQL> exec dbms_aw.execute('aw delete APPS.XWDEVKIT_BACKUP');

PL/SQLプロシージャが正常に完了しました。

SQL> exec dbms_aw.execute('aw delete FPA.FPAPJP');

PL/SQLプロシージャが正常に完了しました。

  1. 32ビットデータベースからOLAPを削除し、次のコマンドを実行して、無効なOLAP関連オブジェクトをクリーンアップします。

cd $ ORACLE_HOME / olap / admin--->>>他のスクリプトへのすべての埋め込み呼び出しを見つけるために必要 conn / as sysdba

@?/ olap / admin / catnoamd.sql

@?/ olap / admin / olapidrp.plb

@?/ olap / admin / catnoaps.sql

@?/ olap / admin / catnoxoq.sql

@?/ rdbms / admin / utlrp.sql

dba_objectsからowner、object_name、object_typeを選択します。ここでstatus <>‘VALID’;

SQL> select owner、object_name、object_type、status from dba_objects where status <>'VALID'およびobject_namelike'%OLAP%'; SYS OLAPIBOOTSTRAP FUNCTION INVALID

SYS OLAPIHANDSHAKE FUNCTION INVALID

PUBLIC OLAPIBOOTSTRAP SYNONYM INVALID

PUBLIC OLAPIHANDSHAKE SYNONYM INVALID

APPS PA_OLAP_PVT PACKAGE BODY INVALID

SQL> drop FUNCTION sys.OLAPIBOOTSTRAP;

機能が削除されました。

SQL> drop FUNCTION sys.OLAPIHANDSHAKE;

機能が削除されました。

SQL> drop PUBLIC SYNONYM OLAPIBOOTSTRAP;

同義語が削除されました。

SQL> drop PUBLIC SYNONYM OLAPIHANDSHAKE;

同義語が削除されました。

SQL>ドロップパッケージ本体apps.PA_OLAP_PVT;

パッケージ本体を落としました。

SQL> select owner、object_name、object_type、status from dba_objects where status <>'VALID'およびobject_namelike'%OLAP%';

行が選択されていません

アップグレードを実行しているターゲット12c64ビットデータベースで次の手順を実行します。

64ビットバージョンのOracle、Oracle OLAPオプションを含め、データベースを64ビットに移行します。

データベース「/assysdba」に接続して実行することにより、OLAPをデータベースに追加し直します。

 SQL> spool olap_install.log
 SQL> set echo on
 SQL> show user
 SQL> @?/olap/admin/olap.sql SYSAUX TEMP;
 SQL> spool off

次のSQLコマンドを使用して、エクスポートされた各AWをインポートします。

注:すべての引用符は一重引用符であり、EIFファイルとOWNER.AW_NAMEの正しい組み合わせを使用していることを確認してください

SQL>ディレクトリAW_DIRを'/u01 / oracle / patches / 12c_db / backup/MGR_DIR'として作成または置換します;

ディレクトリが作成されました。

  1. SQL> exec dbms_aw.execute('aw create APPS.ODPCODE');

PL/SQLプロシージャが正常に完了しました。

SQL> exec dbms_aw.execute('すべてをeifファイルからインポート''AW_DIR / ODPCODE.eif''data dfns');

PL/SQLプロシージャが正常に完了しました。

SQL> exec dbms_aw.execute('update');

PL/SQLプロシージャが正常に完了しました。

SQL> commit;

コミットが完了しました。

SQL> exec dbms_aw.execute('aw detach APPS.ODPCODE');

PL/SQLプロシージャが正常に完了しました。

  1. SQL> exec dbms_aw.execute('aw create APPS.XWDEVKIT');

PL/SQLプロシージャが正常に完了しました。

SQL> exec dbms_aw.execute('import all from eif file''AW_DIR / XWDEVKIT.eif''data dfns');

PL/SQLプロシージャが正常に完了しました。

SQL> exec dbms_aw.execute('update');

PL/SQLプロシージャが正常に完了しました。

SQL> commit;

コミットが完了しました。

SQL> exec dbms_aw.execute('aw detach APPS.XWDEVKIT');

PL/SQLプロシージャが正常に完了しました。

  1. SQL> exec dbms_aw.execute('aw create APPS.XWDEVKIT_BACKUP');

PL/SQLプロシージャが正常に完了しました。

SQL> exec dbms_aw.execute('eifファイルからすべてをインポート''AW_DIR / XWDEVKIT_BACKUP.eif''データdfns');

PL/SQLプロシージャが正常に完了しました。

SQL> exec dbms_aw.execute('update');

PL/SQLプロシージャが正常に完了しました。

SQL> commit;

コミットが完了しました。

SQL> exec dbms_aw.execute('aw detach APPS.XWDEVKIT_BACKUP');

PL/SQLプロシージャが正常に完了しました。

  1. SQL> exec dbms_aw.execute('aw create FPA.FPAPJP');

PL/SQLプロシージャが正常に完了しました。

SQL> exec dbms_aw.execute('すべてをeifファイルからインポート''AW_DIR / FPAPJP.eif''data dfns');

PL/SQLプロシージャが正常に完了しました。

SQL> exec dbms_aw.execute('update');

PL/SQLプロシージャが正常に完了しました。

SQL> commit;

コミットが完了しました。

SQL> exec dbms_aw.execute('aw detach FPA.FPAPJP');

PL/SQLプロシージャが正常に完了しました。

17。 XLAパッケージの削除(オプション)

$ sqlplus apps/[APPSパスワード] SQL> selectdistinct('drop package' ||db.owner||'。'||db.object_name ||';') from dba_objects db、xla_subledgers xl where db.object_type ='PACKAGE BODY'anddb。 object_name like'XLA%AAD%PKG' and substr(db.object_name、1,9)='XLA_' || LPAD (SUBSTR(TO_CHAR(ABS(xl.application_id))、1、5)、5、 '0')およびdb.object_name NOT IN('XLA_AAD_HDR_ACCT_ATTRS_F_PKG'、'XLA_AMB_AAD_PKG')1で並べ替え; SQL> @ drop_xla_package.sql

18。アプリケーションデータベースインスタンスをエクスポートする

$ expdp "'/ as sysdba'" parfile=[エクスポートパラメータファイル名]

19。ソースシステムスキーマから特権を取り消す

SQL>システムからEXEMPTACCESSPOLICYを取り消します;

20。 Oracle Advanced Security TDEテーブルスペース暗号化を有効にする(Oracleウォレット方式を使用)

このエントリを$ORACLE_HOME/ network / admin /_のsqlnet_ifile.oraに追加します。

フォーマットの問題を回避するために、1行で保持してください

ENCRYPTION_WALLET_LOCATION =(SOURCE =(METHOD =FILE)(METHOD_DATA =(DIRECTORY =/u01/oracle/dbhome1/12.1.0.2/wallet)))

21。ターゲット初期化パラメータファイル/作業ディレクトリを作成します

22。ターゲットデータベースデータファイルの実際の場所に従ってaucrdb.sqlスクリプトを変更します

aucrdb.sqlの各「CREATETABLESPACE」コマンドに以下を追加します。

ENCRYPTION[USING';']DEFAULT STORAGE(ENCRYPT) 可能な選択肢は、3DES168、AES128(指定されていない場合はデフォルト)、AES192、およびAES256です。

23。最後に、編集したaucrdb.sqlのコピーを2つの別々の.sqlファイルに分割します。最初のファイルにはCREATE DATABASEステートメントが含まれ、2番目のファイルにはCREATETABLESPACEステートメントが含まれます。

24。ターゲットデータベースインスタンスを作成します

$ sqlplus / nolog SQL> connect / as sysdba; SQL>スプールaucrdb1.log; UNIXまたはLinuxの場合: SQL> startup nomount; SQL> @ aucrdb1.sql SQL>スプールオフ

25。 DBを作成したら、テーブルスペースを作成する前に、まず暗号化キーを作成する必要があります。

Oracle Walletに基づく暗号化されたテーブルスペースおよび暗号化キー管理の場合:

SQLは、「>」で識別されるシステムセットの暗号化キーを変更します;

26。次のスクリプトを使用して暗号化されたテーブルスペースを作成します

SQL>スプールaucrdb2.log SQL> @aucrdb2.sql<<暗号化シンテックスが含まれていることを確認してください SQL> exit;

27。ターゲットデータベースインスタンスが作成されたら、データベースインスタンスを再起動します

すぐにシャットダウン cp -pR wallet wallet.orig.date orapki wallet create -wallet /u01/oracle/dbhome1/12.1.0.2/wallet -auto_login

ウォレットの自動ログインを作成する

スタートアップマウント Oracle Walletを使用する場合:

手動walletSQL>「」で識別されるシステムセット暗号化ウォレットオープンの変更;データベースオープンの変更;

の場合は、以下が必要です。

select * from v $ encoding_wallet;

28。すべてのデータベース準備スクリプトをコピーして、システム/システムスキーマをセットアップするためのOracleホームをターゲットにします。

29。 SYSスキーマを設定する

$ sqlplus "/ as sysdba" @ audb1210.sql

30。 SYSTEMスキーマを設定する

$ sqlplus system / [system password] @ ausy1210.sql

31。 Java仮想マシンをインストールする

$ sqlplus system / [system password] @ aujv1210.sql

32。その他の必要なコンポーネントをインストールする

sqlplus system / **** @ aumsc1210.sql SYSAUX TEMP

33。パッチのインストール後の手順を実行します

SQL> conn / as sysdba アイドル状態のインスタンスに接続しました。 SQL>スタートアップアップグレード cd $ ORACLE_HOME / OPatch [oracle @ dbnode OPatch] $ ./datapatch –verbose SQL>すぐにシャットダウン SQL>起動 SQL> @?/ rdbms / admin / utlrp.sql

34。 CTXSYSパラメータを設定します(条件付き)

$ sqlplus "/ as sysdba" SQL> exec ctxsys.ctx_adm.set_parameter('file_access_role'、'public');

35。統計の自動収集を無効にする

$ sqlplus "/ as sysdba" SQL>システムを変更して制限付きセッションを有効にする; SQL> @ adstats.sql $ sqlplus "/ as sysdba" SQL>システムを変更して制限されたセッションを無効にする; SQL> exit;

36。ターゲットデータベースインスタンスをバックアップします(オプション)

37。インポートパラメータファイルを作成します

SQL> show user USERは「システム」です SQL>ディレクトリdmpdirを'/u01 / oracle / patches / 12c_db / backup / expimp';として作成または置換します。

ディレクトリが作成されました。

サーバーが異なる場合は、ダンプファイルをソースサーバーからターゲットサーバーにコピーします

38。アプリケーションデータベースインスタンスをインポートします

$ impdp "'/ as sysdba'" parfile =auimpdp.dat

39。 OLAP分析ワークスペースのインポート(条件付き)

ターゲット(12c)に関連する手順はここで実行する必要があります

40。ターゲットシステムスキーマから特権を取り消す

SQL>システムからEXEMPTACCESSPOLICYを取り消します;

41。高度なキューをリセットする

$ sqlplus / nolog SQL> connect / as sysdba; SQL> @ auque2.sql

42。 adgrants.sqlを実行します

$ sqlplus "/ as sysdba" @ adgrants.sql APPS

43。 CTXSYSでのプロシージャの作成権限を付与する

$ sqlplus apps / [APPS password] @ adctxprv.sql \ [システムパスワード]CTXSYS

44。新しいデータベースリスナーを起動します(条件付き)

45。現在のデータベースサーバーの登録を解除します

$ sqlplus apps/[APPSパスワード] SQL> exec fnd_conc_clone.setup_clean;

46。 AutoConfigを実装して実行する

perl $ AD_TOP / bin / admkappsutil.pl

appsutil.zipをDBノードの$ORACLE_HOME/にコピーします。

unzip -o appsutil.zip

ビルド$CONTEXT_FILE

perl adbldxml.pl

./ adconfig.sh

DB/Listenerの再起動-新しいenvファイルのソース

アプリノードでautoconfigを実行しますrunfs

./ adconfig.sh

アプリノードパッチfsでautoconfigを実行します

./ adconfig.pl contextfile =$ CONTEXT_FILE run =INSET8

47。 SYSスキーマの統計を収集する

$ sqlplus "/ as sysdba" SQL>システムを変更して制限付きセッションを有効にする; SQL> @ adstats.sql $ sqlplus "/ as sysdba" SQL>システムを変更して制限されたセッションを無効にする; SQL> exit;

49。 ConTextオブジェクトを作成する

これらのオブジェクトを作成するには、ドライバーファイルを使用してスクリプトを呼び出す必要があります。次のコマンドを実行します:

$ perl $ AU_TOP / patch / 115 / bin /dpost_imp.pl[ドライバーファイル][ソースデータベースバージョン] adop phase =apply hotpatch =yes

50。 CTXSYS.DR$SQEテーブルにデータを入力します

$ sqlplus apps / [apps password] SQL> exec icx_cat_sqe_pvt.sync_sqes_for_all_zones;

51。無効なオブジェクトをコンパイルする

52。 XLAパッケージを再作成します(条件付き)

XLAパッケージをソース環境にドロップした場合は、$ XLA_TOP / patch / 115 / sql / xla6128278.sqlをソースからターゲットにコピーして、以下のように実行します。

$ sqlplus apps/[APPSパスワード] SQL> @xla6128278.sql[スプールログファイル]

53。 APPL_TOPの実行でAutoConfigを実行します

==> echo $ FILE_EDITION run ==> ./ adconfig.sh

54。アップグレード後のWMSパッチを適用する(条件付き)

12cより前のバージョンのRDBMSからアップグレードした場合は、パッチ19007053adop phase =apply patch =19007053 patchtop =/ home / applmgr / exp_patch apply_mode =downtime worker =12

を適用します。

55。アプリケーションデータベースオブジェクトを維持する

a。 AOLテーブルのフレックスフィールドデータをコンパイルしますb。 APPSスキーマの付与と同義語を再作成する

56。アプリケーションサーバープロセスを開始する

57。 DQMインデックスを作成する

a。 「TradingCommunityManager」の責任でOracleApplicationsにログオンします

b。 [制御]>[要求]>[実行]

をクリックします

c。 「シングルリクエスト」オプションを選択

d。 「DQMステージングプログラム」の名前を入力してください

e。次のパラメータを入力します:

私。並列ステージングワーカーの数:4ii。ステージングコマンド:CREATE_INDEXESiii。前の実行を続行:NOiv。インデックス作成:SERIALf。 [送信]をクリックします

結論

上記のすべての手順に従うことで、テーブルスペースレベルの暗号化を有効にするとともに12Cデータベースのアップグレードを実行しています。

コメントや質問をするには、[フィードバック]タブを使用します。私たちと会話を始めることもできます。


  1. OracleGridを12cから19cにアップグレードします

    この投稿では、2ノードのOracle®GridRealApplication Cluster(RAC)をバージョン12C(12.1.0.2)からLinux®オペレーティングシステム(OS)で実行される19C(19.7.0)にアップグレードするための段階的なアプローチについて説明します。 はじめに OracleGridRACで使用可能な最新バージョンは19cです。安定性とセキュリティを向上させるために、グリッドインフラストラクチャを19cにアップグレードすることを強くお勧めします。 19cでは、オラクルはドライランアップグレードなどの多くの新機能を導入しました。この投稿では、この新機能とグリ

  2. 透過的なデータ暗号化

    Oracle®は、セキュリティの目的でOracle 12Cに透過的データ暗号化(TDE)機能を導入し、ユーザーが機密データのテーブルスペースおよび列レベルの暗号化を有効にできるようにしました。 はじめに データを暗号化すると、許可されたユーザーまたはアプリケーションのみがデータにアクセスできます。 Oracleは、ツールとプロセスを使用してデータベースを認証、承認、監査しますが、データを格納するOSデータファイルは使用しません。 Oracle Database Advanced Security Guide(ASOAG)によると、「TDEはデータファイルに保存されている機密データを暗号化し