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=104857600012,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
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
- 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.
- 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.
- 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.
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.
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.
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.
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;
48. Tạo lại custom database links (có điều kiện)
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.