Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Cơ Sở Dữ Liệu

Nâng cấp lên Oracle 12c với mã hóa Tablespace TDE (Transparent Data Encryption)

Chức năng mã hóa tablespace TDE có thể được sử dụng để mã hóa tablespace nơi lưu trữ tất cả dữ liệu từ ứng dụng EBS. Vì TDE trong suốt đối với ứng dụng, không cần viết lại mã. Bất kỳ người dùng được ủy quyền nào cũng có thể truy cập dữ liệu đã mã hóa mà không gặp vấn đề.

Giới thiệu

Bất kỳ người dùng được ủy quyền nào cũng có thể truy cập dữ liệu đã mã hóa mà không gặp vấn đề. TDE áp dụng cho dữ liệu tại trạng thái nghỉ (data-at-rest) như datafile và tệp backup.

Mục tiêu

Tùy chọn mã hóa tablespace TDE cho phép bảo mật tất cả dữ liệu nhạy cảm lưu trữ trong cơ sở dữ liệu EBS. Chỉ người dùng được ủy quyền mới có thể truy cập dữ liệu đã mã hóa.

Hạn chế

Tablespace SYSTEM và SYSAUX không thể được mã hóa vì chúng được tạo tại thời điểm tạo database, không phải khi tạo tablespace. Tùy chọn mã hóa được thêm vào khi tạo tablespace. Tablespace Undo và TEMP cũng không thể mã hóa nhưng dữ liệu lưu trữ từ tablespace đã mã hóa trong TEMP/UNDO sẽ được mã hóa.

Các bước triển khai

1. Xác minh phiên bản phần mềm

  • Patch 16207672 - 12.2.2
  • Patch 20745242 - R12.AD.C.Delta.7
  • Patch 20784380 - R12.TXK.C.Delta.7
  • Patch 19597008
  • Patch 20251314 (đã bao gồm trong 12.2.5)
  • Patch 8796558
  • Patch 19343134

2. Chuẩn bị 12.1.0 DB Home

  • Cài đặt phần mềm 12.1.0
  • Cài đặt Oracle Database 12c Products từ CD 12c Examples (bắt buộc)
  • Áp dụng các bản vá RDBMS 12.1.0.2 bổ sung

3. Áp dụng tất cả bản vá DB ETCC/PSU mới nhất bắt buộc

4. Tạo thư mục nls/data/9idata

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

5. Áp dụng Patch 16541956 trên Applications consolidated sử dụng tiện ích export/import patch trên source administration server node

Tạo thư mục làm việc

mkdir /u01/expimp << /u01/oracle/patches/12c_db/backup/expimp/3rditeration

7. Tạo script tạo instance database đích aucrdb.sql

Patch export/import cung cấp script auclondb.sql tạo ra script aucrdb.sql. Sao chép $AU_TOP/patch/115/sql/auclondb.sql từ app node sang DB node source và thực thi như sau.

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

8. Ghi lại cài đặt Advanced Queue

Sao chép script auque1.sql từ $AU_TOP/patch/115/sql từ app node sang DB node và thực thi. Lệnh sau tạo ra auque2.sql.

$ sqlplus /nolog

SQL> connect / as sysdba;

SQL> @auque1.sql

9. Xóa tham số rebuild index trong spatial indexes

select * from dba_indexes where index_type='DOMAIN' and upper(parameters) like '%REBUILD%';

10. Đồng bộ hóa Text indexes

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

Sử dụng lệnh dưới nếu truy vấn trên trả về kết quả

exec ctx_ddl.sync_index('[index owner].[index name]');

11. Tạo file tham số export

Sao chép $AU_TOP/patch/115/import/auexpdp.dat từ App node và chỉnh sửa theo yêu cầu.

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

filesize=1048576000 12,13d11 < PARALLEL=5 < EXCLUDE=STATISTICS

Tạo thư mục theo yêu cầu.

SQL> create or replace directory dmpdir as '/u01/oracle/patches/12c_db/backup/expimp/2nditeration';

Directory created.

12. Đảm bảo không có chu kỳ patching đang hoạt động

Node Name Node Type Phase Status Started Finished Elapsed

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. Tắt tiến trình application server

14. Cấp quyền cho schema hệ thống nguồn bằng lệnh sau

SQL> grant EXEMPT ACCESS POLICY to system;

Grant succeeded.

15. Xóa schema MGDSYS (có điều kiện) bằng lệnh sau

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

16. Xuất OLAP analytical workspaces (tùy chọn) bằng các lệnh sau

  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> create or replace directory AW_DIR as '/u01/oracle/patches/12c_db/backup/MGR_DIR';

Directory Created

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

PL/SQL procedure successfully completed.

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

PL/SQL procedure successfully completed.

SQL> exec dbms_aw.execute('export all to eif file ''AW_DIR/ODPCODE.eif''');

PL/SQL procedure successfully completed.

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

PL/SQL procedure successfully completed.

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

PL/SQL procedure successfully completed.

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

PL/SQL procedure successfully completed.

SQL> exec dbms_aw.execute('export all to eif file ''AW_DIR/XWDEVKIT.eif''');

PL/SQL procedure successfully completed.

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

PL/SQL procedure successfully completed.

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

PL/SQL procedure successfully completed.

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

PL/SQL procedure successfully completed.

SQL> exec dbms_aw.execute('export all to eif file ''AW_DIR/XWDEVKIT_BACKUP.eif''');

PL/SQL procedure successfully completed.

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

PL/SQL procedure successfully completed.

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

PL/SQL procedure successfully completed.

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

PL/SQL procedure successfully completed.

SQL> exec dbms_aw.execute('export all to eif file ''AW_DIR/FPAPJP.eif''');

PL/SQL procedure successfully completed.

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

PL/SQL procedure successfully completed.

  1. Xóa từng AW đã xuất ở bước #2, dùng lệnh SQL:

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

PL/SQL procedure successfully completed.

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

PL/SQL procedure successfully completed.

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

PL/SQL procedure successfully completed.

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

PL/SQL procedure successfully completed.

  1. Loại bỏ OLAP khỏi database 32-bit và dọn dẹp đối tượng OLAP liên quan INVALID bằng các lệnh:

cd $ORACLE_HOME/olap/admin --->>> required to locate all embedded calls to other scripts conn / as sysdba

@?/olap/admin/catnoamd.sql

@?/olap/admin/olapidrp.plb

@?/olap/admin/catnoaps.sql

@?/olap/admin/catnoxoq.sql

@?/rdbms/admin/utlrp.sql

select owner, object_name, object_type from dba_objects where status <> 'VALID';

SQL> select owner, object_name, object_type,status from dba_objects where status <> 'VALID' and object_name like '%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;

Function dropped.

SQL> drop FUNCTION sys.OLAPIHANDSHAKE;

Function dropped.

SQL> drop PUBLIC SYNONYM OLAPIBOOTSTRAP;

Synonym dropped.

SQL> drop PUBLIC SYNONYM OLAPIHANDSHAKE;

Synonym dropped.

SQL> drop package body apps.PA_OLAP_PVT;

Package body dropped.

SQL> select owner, object_name, object_type,status from dba_objects where status <> 'VALID' and object_name like '%OLAP%';

no rows selected

Thực hiện các bước sau trên target database 12c 64-bit nơi bạn đang thực hiện nâng cấp.

Cài đặt phiên bản 64-bit của Oracle, bao gồm tùy chọn Oracle OLAP, và di chuyển database sang 64-bit.

Thêm OLAP trở lại database bằng cách kết nối '/ as sysdba' và thực thi:

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

Sử dụng các lệnh SQL sau để import từng AW đã xuất.

LƯU Ý: Tất cả dấu nháy đều là dấu nháy đơn và đảm bảo dùng đúng tổ hợp file EIF và OWNER.AW_NAME

SQL> create or replace directory AW_DIR as '/u01/oracle/patches/12c_db/backup/MGR_DIR';

Directory created.

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

PL/SQL procedure successfully completed.

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

PL/SQL procedure successfully completed.

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

PL/SQL procedure successfully completed.

SQL> commit;

Commit complete.

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

PL/SQL procedure successfully completed.

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

PL/SQL procedure successfully completed.

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

PL/SQL procedure successfully completed.

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

PL/SQL procedure successfully completed.

SQL> commit;

Commit complete.

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

PL/SQL procedure successfully completed.

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

PL/SQL procedure successfully completed.

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

PL/SQL procedure successfully completed.

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

PL/SQL procedure successfully completed.

SQL> commit;

Commit complete.

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

PL/SQL procedure successfully completed.

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

PL/SQL procedure successfully completed.

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

PL/SQL procedure successfully completed.

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

PL/SQL procedure successfully completed.

SQL> commit;

Commit complete.

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

PL/SQL procedure successfully completed.

17. Xóa XLA packages (tùy chọn)

$ sqlplus apps/[APPS password] SQL> select distinct('drop package '||db.owner||'.'|| db.object_name || ';') from dba_objects db, xla_subledgers xl where db.object_type='PACKAGE BODY' and db. 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') and db.object_name NOT IN ('XLA_AAD_HDR_ACCT_ATTRS_F_PKG','XLA_AMB_AAD_PKG') order by 1; SQL> @drop_xla_package.sql

18. Xuất instance database ứng dụng

$ expdp "/ as sysdba" parfile=[export parameter file name]

19. Thu hồi quyền từ schema hệ thống nguồn

SQL> revoke EXEMPT ACCESS POLICY from system;

20. Kích hoạt Oracle Advanced Security TDE Tablespace Encryption (Phương pháp Oracle Wallet)

Thêm mục sau vào sqlnet_ifile.ora trong $ORACLE_HOME/network/admin/_:

Giữ trên một dòng để tránh lỗi định dạng

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

21. Tạo file tham số khởi tạo target / thư mục làm việc

22. Sửa đổi script aucrdb.sql theo vị trí thực tế datafile database đích

Thêm sau mỗi lệnh 'CREATE TABLESPACE' trong aucrdb.sql:

ENCRYPTION [USING '<enc. algorithm>;'] DEFAULT STORAGE (ENCRYPT) các lựa chọn: 3DES168, AES128 (mặc định nếu không chỉ định), AES192, AES256.

23. Tách bản sao đã chỉnh sửa của aucrdb.sql thành 2 file .sql riêng biệt: file đầu chứa CREATE DATABASE, file hai chứa CREATE TABLESPACE statements

24. Tạo instance database đích

$ sqlplus /nolog SQL> connect / as sysdba; SQL> spool aucrdb1.log; For UNIX or Linux: SQL> startup nomount; SQL> @aucrdb1.sql SQL> spool off

25. Sau khi DB tạo xong, cần tạo encryption key trước khi tạo tablespace

Đối với tablespace mã hóa và quản lý khóa mã hóa dựa trên Oracle Wallet:

SQL alter system set encryption key identified by "<Strong_Password > >";

26. Tạo tablespace mã hóa bằng script sau

SQL> spool aucrdb2.log SQL> @aucrdb2.sql << Make sure this include encryption syntex SQL> exit;

27. Khi instance database đích đã tạo xong, khởi động lại instance database

Shutdown immediate cp -pR wallet wallet.orig.date orapki wallet create -wallet /u01/oracle/dbhome1/12.1.0.2/wallet -auto_login

Tự động login wallet

startup mount Nếu dùng Oracle Wallet:

Dưới đây bắt buộc nếu wallet thủ công SQL> alter system set encryption wallet open identified by "<strong_password>"; alter database open;

select * from v$encryption_wallet;

28. Sao chép tất cả script chuẩn bị database sang target Oracle home để thiết lập schema sys/system

29. Thiết lập schema SYS

$ sqlplus "/ as sysdba" @audb1210.sql

30. Thiết lập schema SYSTEM

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

31. Cài đặt Java Virtual Machine

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

32. Cài đặt các thành phần bắt buộc khác

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

33. Thực hiện hướng dẫn post-install patch

SQL> conn /as sysdba Connected to an idle instance. SQL> startup upgrade cd $ORACLE_HOME/OPatch [oracle@dbnode OPatch]$ ./datapatch –verbose SQL> shut immediate SQL> startup SQL> @?/rdbms/admin/utlrp.sql

34. Thiết lập tham số CTXSYS (có điều kiện)

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

35. Vô hiệu hóa thu thập thống kê tự động

$ sqlplus "/ as sysdba" SQL> alter system enable restricted session; SQL> @adstats.sql $ sqlplus "/ as sysdba" SQL> alter system disable restricted session; SQL> exit;

36. Backup instance database đích (Tùy chọn)

37. Tạo file tham số import

SQL> show user USER is "SYSTEM" SQL> create or replace directory dmpdir as '/u01/oracle/patches/12c_db/backup/expimp';

Directory created.

Sao chép dump file từ source sang target server nếu server khác nhau

38. Import instance database ứng dụng

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

39. Import OLAP analytical workspaces (có điều kiện)

Các bước liên quan target (12c) cần thực hiện ở đây

40. Thu hồi quyền từ schema hệ thống target

SQL> revoke EXEMPT ACCESS POLICY from system;

41. Reset Advanced Queues

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

42. Chạy adgrants.sql

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

43. Cấp quyền tạo procedure trên CTXSYS

$ sqlplus apps/[APPS password] @adctxprv.sql \ [SYSTEM password] CTXSYS

44. Khởi động listener database mới (có điều kiện)

45. Hủy đăng ký database server hiện tại

$ sqlplus apps/[APPS password] SQL> exec fnd_conc_clone.setup_clean;

46. Triển khai và chạy AutoConfig

perl $AD_TOP/bin/admkappsutil.pl

Copy appsutil.zip to $ORACLE_HOME/ on DB node.

unzip -o appsutil.zip

Build $CONTEXT_FILE

perl adbldxml.pl

./adconfig.sh

Restart DB/Listener - Source new env file

Run autoconfig on App node run fs

./adconfig.sh

Run autoconfig on App node patch fs

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

47. Thu thập thống kê cho schema SYS

$ sqlplus "/ as sysdba" SQL> alter system enable restricted session; SQL> @adstats.sql $ sqlplus "/ as sysdba" SQL> alter system disable restricted session; SQL> exit;

49. Tạo ConText objects

Cần gọi script bằng driver file để tạo các đối tượng này. Chạy lệnh:

$ perl $AU_TOP/patch/115/bin/dpost_imp.pl [driver file] [source database version] adop phase=apply hotpatch=yes

50. Điền dữ liệu vào bảng CTXSYS.DR$SQE

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

51. Biên dịch đối tượng INVALID

52. Tạo lại XLA packages (có điều kiện)

Nếu đã xóa XLA packages ở môi trường source, sao chép $XLA_TOP/patch/115/sql/xla6128278.sql từ source sang target và chạy như sau.

$ sqlplus apps/[APPS password] SQL> @xla6128278.sql [spool log file]

53. Chạy AutoConfig trên Run APPL_TOP

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

54. Áp dụng post-upgrade WMS patches (có điều kiện)

Nếu nâng cấp từ RDBMS trước 12c, áp dụng Patch 19007053 adop phase=apply patches=19007053 patchtop=/home/applmgr/exp_patch apply_mode=downtime workers=12

55. Duy trì đối tượng database ứng dụng

a. Biên dịch dữ liệu flexfield trong bảng AOL
b. Tạo lại grants và synonyms cho schema APPS

56. Khởi động Applications Server Processes

57. Tạo DQM Indexes

a. Đăng nhập Oracle Applications với trách nhiệm "Trading Community Manager"
b. Nhấp Control > Request > Run
c. Chọn "Single Request"
d. Nhập tên "DQM Staging Program"
e. Nhập tham số:
i. Number of Parallel Staging Workers: 4
ii. Staging Command: CREATE_INDEXES
iii. Continue Previous Execution: NO
iv. Index Creation: SERIAL
f. Nhấp "Submit"

Kết luận

Bằng cách làm theo tất cả các bước trên, chúng ta thực hiện nâng cấp database 12C cùng với việc bật mã hóa Tablespace.

Sử dụng tab Feedback để góp ý hoặc đặt câu hỏi. Bạn cũng có thể bắt đầu cuộc trò chuyện với chúng tôi.