Computer >> 컴퓨터 >  >> 프로그램 작성 >> 데이터 베이스

TDE 테이블스페이스 암호화를 사용하여 데이터베이스를 12C로 업그레이드

TDE 테이블스페이스 암호화 기능은 모든 데이터가 EBS 애플리케이션에서 저장되는 테이블스페이스를 암호화하는 데 사용할 수 있습니다. TDE는 애플리케이션에 투명하므로 코드를 다시 작성할 필요가 없습니다. 인증된 모든 사용자는 문제 없이 암호화된 데이터에 액세스할 수 있습니다.

소개

인증된 모든 사용자는 문제 없이 암호화된 데이터에 액세스할 수 있습니다. TDE는 데이터 파일 및 백업 파일과 같은 미사용 데이터에 적용됩니다.

목표

TDE 테이블스페이스 암호화 옵션을 사용하면 EBS 데이터베이스에 저장된 모든 민감한 데이터를 보호할 수 있습니다. 인증된 사용자만 암호화된 데이터에 액세스할 수 있습니다.

제한

SYSTEM과 SYSAUX는 테이블스페이스 생성 시가 아니라 DB 생성 시 생성되므로 암호화할 수 없다. 테이블스페이스 생성 시 암호화 옵션이 추가됩니다. Undo 및 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.0 DB 홈 준비

• 12.1.0 소프트웨어 설치

• 12c 예제 CD에서 Oracle Database 12c 제품 설치(필수)

• 추가 12.1.0.2 RDBMS 패치 적용

3. 모든 최신 필수 DB ETCC/PSU 패치 적용

4. 4. nls/data/9idata 디렉토리 생성

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

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('[index owner].[index name]');

11. 내보내기 매개변수 파일 생성

앱 노드에서 $AU_TOP/patch/115/import/auexpdp.dat를 복사하고 요구 사항에 따라 편집합니다.

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

<블록 인용>

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

필요에 따라 디렉토리를 만드십시오.

SQL> create 또는 디렉토리 dmpdir as '/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> grant EXEMPT ACCESS POLICY to system;

Grant succeeded.

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

<올 시작="2">
  • 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('export all to eif file ''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('export all to eif file ''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('export all to eif file ''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('export all to eif file ''AW_DIR/FPAPJP.eif''');

    PL/SQL 절차가 성공적으로 완료되었습니다.

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

    PL/SQL 절차가 성공적으로 완료되었습니다.

    <올 시작="3">
  • 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 절차가 성공적으로 완료되었습니다.

    <올 시작="4">
  • 32비트 데이터베이스에서 OLAP를 제거하고 다음 명령을 실행하여 INVALID OLAP 관련 개체를 정리합니다.
  • 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

    dba_objects에서 소유자, object_name, object_type을 선택합니다. 여기서 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;

    기능이 떨어졌습니다.

    SQL> drop FUNCTION sys.OLAPIHANDSHAKE;

    기능이 떨어졌습니다.

    SQL> drop PUBLIC SYNONYM OLAPIBOOTSTRAP;

    동의어가 삭제되었습니다.

    SQL> drop PUBLIC SYNONYM OLAPIHANDSHAKE;

    동의어가 삭제되었습니다.

    SQL> drop package body apps.PA_OLAP_PVT;

    패키지 본문이 삭제되었습니다.

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

    no rows selected

    <블록인용><블록인용>

    업그레이드를 수행 중인 대상 12c 64비트 데이터베이스에서 다음 단계를 실행하십시오.

    64비트 버전 설치 Oracle, Oracle OLAP 옵션을 포함하고 데이터베이스를 64비트로 마이그레이션합니다.

    <블록인용><블록인용>

    '/ as sysdba' 데이터베이스에 연결하고 다음을 실행하여 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> create or replace directory AW_DIR as '/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('import all from eif file ''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 절차가 성공적으로 완료되었습니다.

    <올 시작="2">
  • 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 절차가 성공적으로 완료되었습니다.

    <올 시작="3">
  • SQL> exec dbms_aw.execute('aw create APPS.XWDEVKIT_BACKUP');
  • PL/SQL 절차가 성공적으로 완료되었습니다.

    SQL> exec dbms_aw.execute('import all from eif file ''AW_DIR/XWDEVKIT_BACKUP.eif'' data 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 절차가 성공적으로 완료되었습니다.

    <올 시작="4">
  • SQL> exec dbms_aw.execute('aw create FPA.FPAPJP');
  • PL/SQL 절차가 성공적으로 완료되었습니다.

    SQL> exec dbms_aw.execute('import all from eif file ''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 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. 애플리케이션 데이터베이스 인스턴스 내보내기

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

    19. 소스 시스템 스키마에서 권한 취소

    SQL> revoke EXEMPT ACCESS POLICY from system;

    20. Oracle Advanced Security TDE 테이블스페이스 암호화 활성화 (Oracle 지갑 방식 사용)

    $ORACLE_HOME/network/admin/_의 sqlnet_ifile.ora에 이 항목을 추가하십시오. <호스트>:

    <블록인용><블록인용>

    형식 문제를 피하기 위해 한 줄로 유지

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

    21. 대상 초기화 매개변수 파일/작업 디렉토리 생성

    22. 대상 데이터베이스 데이터 파일의 실제 위치에 따라 aucrdb.sql 스크립트 수정

    aucrdb.sql의 각 'CREATE TABLESPACE' 명령에 다음을 추가합니다.

    ENCRYPTION [USING '<enc. algorithm>;'] DEFAULT STORAGE (ENCRYPT) 가능한 선택은 3DES168, AES128(아무것도 지정되지 않은 경우 기본값), AES192 및 AES256입니다.

    23. 마지막으로 aucrdb.sql의 편집된 사본을 두 개의 개별 .sql 파일로 분할합니다. 첫 번째 파일에는 CREATE DATABASE 문이 포함되고 두 번째 파일에는 CREATE TABLESPACE 문이 포함됩니다.

    24. 대상 데이터베이스 인스턴스 생성

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

    25. DB 생성 후 테이블스페이스를 생성하기 전에 먼저 암호화 키를 생성해야 합니다.

    Oracle Wallet을 기반으로 하는 암호화된 테이블스페이스 및 암호화 키 관리:

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

    26. 다음 스크립트를 사용하여 암호화된 테이블스페이스 생성

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

    27. 대상 데이터베이스 인스턴스가 생성되면 데이터베이스 인스턴스를 다시 시작하십시오.

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

    <블록 인용>

    지갑 자동 로그인 만들기

    startup mount Oracle Wallet을 사용하는 경우:

    <블록인용><블록인용>

    다음은 수동 지갑의 경우 필요합니다.SQL> ""로 식별되는 시스템 설정 암호화 지갑 열기 변경, 데이터베이스 열기;

    select * from v$encryption_wallet;

    28. 모든 데이터베이스 준비 스크립트를 대상 Oracle 홈에 복사하여 시스템/시스템 스키마를 설정합니다.

    29. SYS 스키마 설정

    $ sqlplus "/ as sysdba" @audb1210.sql

    30. SYSTEM 스키마 설정

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

    31. 자바 가상 머신 설치

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

    32. 기타 필수 구성 요소 설치

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

    33. 패치 설치 후 지침 수행

    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. CTXSYS 매개변수 설정(조건부)

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

    35. 통계 자동 수집 비활성화

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

    36. 대상 데이터베이스 인스턴스 백업(선택 사항)

    37. 가져오기 매개변수 파일 만들기

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

    디렉토리가 생성되었습니다.

    서버가 다른 경우 소스에서 대상 서버로 덤프 파일 복사

    38. 애플리케이션 데이터베이스 인스턴스 가져오기

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

    39. OLAP 분석 작업 영역 가져오기(조건부)

    여기에서 대상(12c)과 관련된 단계를 수행해야 합니다.

    40. 대상 시스템 스키마에서 권한 취소

    SQL> revoke EXEMPT ACCESS POLICY from system;

    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 \ [SYSTEM password] CTXSYS

    44. 새 데이터베이스 수신기 시작(조건부)

    45. 현재 데이터베이스 서버 등록 취소

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

    46. 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. 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. 컨텍스트 개체 만들기

    이러한 개체를 만들려면 드라이버 파일을 사용하여 스크립트를 호출해야 합니다. 다음 명령을 실행하십시오.

    $ perl $AU_TOP/patch/115/bin/dpost_imp.pl [driver file] [source database version] 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 password] SQL> @xla6128278.sql [spool log file]

    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 workers=12

    를 적용하십시오.

    55. 애플리케이션 데이터베이스 개체 유지

    ㅏ. AOL 테이블에서 가변필드 데이터를 컴파일합니다.b. APPS 스키마에 대한 권한 부여 및 동의어 재생성

    56. 응용 프로그램 서버 프로세스 시작

    57. DQM 인덱스 생성

    ㅏ. "Trading Community Manager" 권한으로 Oracle Applications에 로그온합니다.

    비. 제어> 요청> 실행

    을 클릭합니다.

    씨. "단일 요청" 옵션 선택

    디. "DQM 스테이징 프로그램" 이름 입력

    이자형. 다음 매개변수를 입력하십시오.

    나. 병렬 스테이징 작업자 수:4ii. 준비 명령:CREATE_INDEXESiii. 이전 실행 계속:NOiv. 인덱스 생성:SERIALf. "제출"을 클릭하십시오.

    결론

    위의 모든 단계를 수행하여 테이블스페이스 수준 암호화를 활성화하는 것과 함께 12C 데이터베이스 업그레이드를 수행합니다.

    피드백 탭을 사용하여 의견을 작성하거나 질문하십시오. 저희와 대화를 시작할 수도 있습니다.