Oracle 정책 저장소 복제
병렬 마이그레이션 모델 및 Oracle 내보내기 메커니즘을 사용하는 정책 저장소 마이그레이션을 구성하여 정책 저장소를 전파할 수 있습니다. 이 복제 기능을 사용하면 r12.x 정책 저장소에서 병렬 r12.x 정책 저장소로 쉽게 마이그레이션할 수 있습니다. 복제 기능은 스키마와 데이터 사전을 구성하고, 사용자 정의 데이터를 새 정책 저장소로 마이그레이션합니다.
casso12kr
병렬 마이그레이션 모델 및 Oracle 내보내기 메커니즘을 사용하는 정책 저장소 마이그레이션을 구성하여 정책 저장소를 전파할 수 있습니다. 이 복제 기능을 사용하면 r12.x 정책 저장소에서 병렬 r12.x 정책 저장소로 쉽게 마이그레이션할 수 있습니다. 복제 기능은 스키마와 데이터 사전을 구성하고, 사용자 정의 데이터를 새 정책 저장소로 마이그레이션합니다.
이 섹션에서는 다음과 같은 용어가 사용됩니다.
- 원본:마이그레이션할 데이터가 있는 r12.x 정책 서버 및 정책 저장소입니다.
- 대상:데이터를 마이그레이션할 대상 r12.x 정책 서버 및 정책 저장소입니다.
경고!
대상 정책 서버는 원본 정책 서버와 동일한 정책 서버 암호화 키를 사용하도록 구성하십시오. 이 키는 정책 저장소의 중요한 데이터를 암호 해독하는 데 사용됩니다. 동일한 키를 사용하지 않는 경우 암호화 키를 사용하여 암호화한 데이터를 대상 정책 저장소에서 해독할 수 없습니다. 키가 서로 다른 경우에는 중요한 데이터를 모두 다시 입력해야 합니다. 중요한 데이터에는 사용자 저장소 관리자 암호, 트러스트된 호스트 공유 암호(에이전트를 다시 등록해야 함), 4.x 에이전트 암호 및 모든 Single Sign-On
관리자 암호가 포함됩니다.참고:
r12.0 SP3 cr11 원본 정책 저장소의 데이터는 r12.x 정책 서버에서 사용하도록 구성된 병렬 Oracle DB로 마이그레이션되었습니다.Oracle 준비
이 프로세스를 시작하기 전에 다음 요구 사항에 주의하십시오.
- 원본 및 대상 인스턴스가 이미 생성되어 있어야 합니다.
- 대상 인스턴스에 원본 데이터베이스와 동일한 이름으로 생성된 테이블스페이스가 있어야 합니다.
- 모든 정책 저장소 개체(테이블, 인덱스 및 시퀀스)에 대해 동일한 스키마 소유자가 대상 데이터베이스에 이미 생성되어 있어야 합니다. 스키마 소유자에게 원본 데이터베이스에서와 동일한 권한이 있어야 합니다.
참고:
이 항목에서는 한 데이터베이스의 테이블스페이스를 Oracle 11g
의 다른 사용자에게로 이동하는 단계만 보여 줍니다.Oracle 원본 인스턴스 준비
- 내보내기를 실행하는 사용자에게 이 태스크를 완료할 수 있는 충분한 권한이 있는지 확인합니다. 내보내기를 적용하기 위해 다음 권한을 부여할 수 있습니다.GRANT EXPORT FULL DATABASE TO USER;
- Oracle 내보내기 기능이 내보내는 DMP 파일을 내보내기 로그 파일과 함께 저장하는 데 사용할 디렉터리를 데이터베이스 서버에 만듭니다.
- 내보내기를 실행하는 사용자에게 해당 디렉터리에 대한 쓰기 권한이 있는지 확인합니다.
- Oracle 데이터베이스에이 물리적 위치를 가리키는 디렉터리를 만듭니다. SQL*Plus 또는 Oracle SQL Developer에서 다음 명령을 사용하십시오.CREATE DIRECTORY directory_name AS 'path of the physical directory as created in step 2';grant read, write on directory directory_name to user_to_execute_export;
- 데이터베이스에 이 스키마에 대한 공용 동의어를 다시 만듭니다. 다음 스크립트를 실행하여 이 단계를 수행할 수 있습니다.DECLAREBEGINFOR I IN (SELECT T.OWNER,T.TABLE_NAMEFROM DBA_TABLES TWHERE T.OWNER = 'schema') LOOPEXECUTE IMMEDIATE 'CREATE OR REPLACE PUBLIC SYNONYM '||I.TABLE_NAME||' FOR'||I.OWNER||'.'||I.TABLE_NAME;END LOOP;END;/
Oracle 대상 인스턴스 준비
- 내보내기를 실행하는 사용자에게 이 태스크를 완료할 수 있는 권한이 있는지 확인합니다. 내보내기를 적용하기 위해 다음 권한을 부여할 수 있습니다.GRANT IMPORT FULL DATABASE TO USER;
- Oracle이 DMP 파일을 데이터베이스로 가져올 때 이 파일을 읽는 데 사용할 디렉터리를 데이터베이스 서버에 만듭니다. 원본 및 대상 데이터베이스가 동일한 시스템에 있으면 이 부분을 건너뛰어도 됩니다.
- 가져오기를 실행하는 사용자에게 해당 디렉터리에 대한 읽기 권한이 있는지 확인합니다.
- Oracle 데이터베이스에 이 물리적 위치를 가리키는디렉터리를 만듭니다. SQL*Plus 또는 Oracle SQL Developer에서 다음 명령을 사용하십시오.CREATE DIRECTORY directory_name AS 'path of the physical directory as created in step 2';grant read, write on directory directory_name to user_to_execute_import;
Oracle 테이블스페이스 복제
원본 데이터베이스에서 대상 데이터베이스로의 데이터 복제를 수행하려면 원본 인스턴스와 대상 인스턴스에 대한 다음 단계를 사용하십시오.
원본 데이터베이스
원본 데이터베이스에서 내보내기 명령을 실행하여 내보내기를 시작하고 테이블스페이스를 서버에 DMP 파일로 저장하십시오. Windows 서버의 CMD와 Linux 또는 Unix 시스템의 터미널 창을 사용하여 다음 명령을 실행하십시오.
expdp user/password@dbname tablespaces=tablespace_name directory=directory_namedumpfile=file_name.dmp logfile=logfile_name.log
완료되었으면 생성된 로그 파일을 확인하십시오. 이 로그 파일은 DMP 파일과 함께 서버에 생성된 디렉터리에서 찾을 수 있습니다. 내보내기가 Oracle 오류 없이 성공적으로 완료되었는지 확인합니다.
다음은 샘플 로그 파일입니다.
Export: Release 11.1.0.6.0 - Production on Friday, 30 January, 2015 13:28:14Copyright (c) 2003, 2007, Oracle. All rights reserved.;;;Connected to: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - ProductionWith the Partitioning, Real Application Clusters, OLAP, Data Miningand Real Application Testing optionsStarting "YOUSSEF"."SYS_EXPORT_TABLESPACE_01": user/********@dbinstance tablespaces=tablespace_name directory=directory_name dumpfile=file_name.dmp logfile=fiel_name.logEstimate in progress using BLOCKS method...Processing object type TABLE_EXPORT/TABLE/TABLE_DATATotal estimation using BLOCKS method: 4.937 MBProcessing object type TABLE_EXPORT/TABLE/TABLEProcessing object type TABLE_EXPORT/TABLE/INDEX/INDEXProcessing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINTProcessing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICSProcessing object type TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINTProcessing object type TABLE_EXPORT/TABLE/TRIGGERProcessing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS. . exported "SMPSDBA"."XPSPROPERTY" 411.4 KB 14646 rows. . exported "SMPSDBA"."XPSOBJECT" 347.9 KB 3855 rows….Master table "YOUSSEF"."SYS_EXPORT_TABLESPACE_01" successfully loaded/unloaded******************************************************************************Dump file set for YOUSSEF.SYS_EXPORT_TABLESPACE_01 is:E:\ORACLE_EXPORTS\EXPORT_FILE.DMPJob "USER"."SYS_EXPORT_TABLESPACE_01" successfully completed at 13:28:54
로그 파일을 확인하십시오. 내보내기가 성공적으로 완료되었으면 원본 디렉터리의 DMP 파일을 대상 디렉터리로 이동하십시오.
대상 데이터베이스
대상 서버(원본 서버와 다른 경우)에서 다음 단계를 적용하여 데이터를 이동하십시오.
- Oracle 가져오기 메커니즘을 시작하여 DMP 파일을 Oracle 데이터베이스에 로드합니다. Windows 서버의 CMD와 Linux/Unix 시스템의 터미널 창에서 다음 명령을 사용하십시오.impdpuser/password@dbinstancetablespaces=tablespace_namedirectory=directory_namedumpfile=dump_file_name.dmp logfile=log_file.log.
- 가져오기가 완료되었으면 로그 파일에 Oracle 오류가 있는지 확인합니다. XPSObject_Insert 트리거를 만드는 동안 누락된 시퀀스가 있으면 Oracle 오류가 발생합니다.
- 시퀀스는 Oracle 테이블스페이스와 함께 내보내지지 않으므로 대상 데이터베이스에 시퀀스를 만듭니다. 다음 명령을 사용하여 시퀀스를 만드십시오.DECLAREVAL NUMBER;NFOUND NUMBER;BEGINSELECT COUNT (1) INTO NFOUNDFROM DBA_SEQUENCES SWHERE S.SEQUENCE_NAME = 'OBNUMBERSEQ'AND S.SEQUENCE_OWNER = 'SMPSDBA';IF NFOUND > 0 THENEXECUTE IMMEDIATE 'DROP SEQUENCE SMPSDBA.OBNUMBERSEQ';END IF;SELECT NVL(MAX(OBNUMBER),1) INTO VAL FROM SMPSDBA.XPSObject;EXECUTE IMMEDIATE 'CREATESEQUENCE SCHEMA_OWNER.OBNUMBERSEQ MINVALUE 1 MAXVALUE 999999999999999999999999999INCREMENT BY 1 START WITH '||VAL||' CACHE 20 NOORDER NOCYCLE';EXECUTE IMMEDIATE 'CREATE OR REPLACE PUBLIC SYNONYM OBNUMBERSEQ forSCHEMA_SCHEMA.OBNUMBERSEQ';END;/
- 마지막 단계로, 가져오기 및 재컴파일로 인해 무효화된 개체가 있는지 확인하는 것이 좋습니다.시퀀스를 만든 후trigger_schema트리거를 다시 컴파일합니다.