기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
2단계 - 롤포워드 단계(소스 데이터베이스는 온라인 상태로 유지)
롤 포워드 단계를 필요한 만큼 반복하여 대상 데이터 파일을 소스 데이터베이스까지 포착할 수 있습니다.
롤포워드 단계는 다음 단계로 구성됩니다.
-
소스 데이터베이스에서 증분 백업을 생성합니다.
-
백업을 대상 시스템으로 전송합니다.
-
백업을 대상 시스템 엔디안 형식으로 변환합니다.
-
변환된 대상 데이터 파일 사본에 백업을 적용하여 롤포워드합니다.
각 연속 증분 백업은 시간이 덜 걸리며 대상 데이터 파일 복사본이 소스 데이터베이스와 더 최신 상태가 됩니다.
1단계: 증분 백업을 병렬로 가져오기
소스 시스템에서 병렬로 전송 중인 테이블스페이스 그룹의 증분 백업을 수행합니다.
이 단계에서는 xtt.properties 파일에 나열된 모든 테이블스페이스=에 대한 증분 백업을 생성합니다.
소스 시스템에서 블록 변경 추적 기능을 활성화하면 증분 백업 시간을 크게 줄일 수 있습니다.
다음 명령은 전체 백업 후 다음 SCN을 자동으로 인식합니다.
cd /u01/oracle/expimp/xtt<nn> export TMPDIR=/u01/oracle/expimp/out/out<nn> $ORACLE_HOME/perl/bin/perl xttdriver.pl --backup --debug 3
2단계: 증분 백업 및 res.txt 파일을 대상 시스템으로 전송
대역폭이 충분한 경우를 사용하여 전송 기간을 줄일 수 있습니다 Direct Connect.
src_scratch_location 및 간에 증분 백업을 전송합니다dest_scratch_location. $TMPDIR 소스 시스템의와 $TMPDIR 대상 시스템의 간에 res.txt 파일을 전송합니다.
여러 증분 백업을 수행하는 경우 대상 시스템에 적용하기 전에 마지막 증분 백업 이후에 res.txt 파일을 복사해야 합니다.
[source]$ scp $TMPDIR/res.txt oracle@[dest]:/u01/oracle/expimp/out/out<nn> [source]$ scp <src_scratch_location>/* oracle@[dest]:<dest_scratch_location>
3단계: 증분 백업 변환 및 적용
증분 백업을 대상 시스템 엔디안 형식으로 변환하고 대상 시스템의 대상 데이터 파일 사본에 증분 백업을 적용합니다.
이 안내서에서 테이블스페이스 그룹이 4개라고 가정합니다. 각 테이블스페이스 그룹에 대한 --restore 옵션을 사용하여 각 xttdriver.pl 명령을 실행합니다.
이 단계에서 Oracle XTTS 유틸리티는 대상 데이터베이스를 다시 시작합니다. 명령을 병렬로 실행하려면 Perl 스크립트에서 다음 사용자 지정을 사용해야 합니다xttdriver.pl.
-
다음 줄에 주석을 추가합니다.
-
4867행:
my $outputstart = `sqlplus -L -s \"/ as sysdba\" \@xttstartupnomount.sql`; -
4868행:
checkError ("Error in executing xttstartupnomount.sql", $outputstart); -
4992행:
my $outputstart = `sqlplus -L -s \"/ as sysdba\" \@xttdbopen.sql`;\
-
-
대상 DB를
NOMOUNT상태로 만듭니다.sqlplus / as sysdba @xttstartupnomount.sql -
증분 백업의 롤포워드를 병렬로 수행합니다.
cd /u01/oracle/expimp/xtt<nn> export TMPDIR=/u01/oracle/expimp/out/out<nn> $ORACLE_HOME/perl/bin/perl xttdriver.pl --restore --debug 3 -
모든 증분 백업을 롤포워드한 후 대상 DB를
OPEN상태로 설정합니다.sqlplus / as sysdba @xttdbopen.sql
이 시점에서 소스 및 대상 데이터베이스의 SCNs 충분히 근접할 때까지 2단계를 반복할 수 있습니다. 주어진 목표 가동 중지 시간에 따라 3단계로 진행할지 아니면 2단계를 반복할지 결정해야 합니다.
3단계(전송 단계) 중 가동 중지 시간을 줄이기 위해 소스 데이터베이스를 로 설정하기 전에 , FUNCTION, 및 USERPACKAGEPROCEDURE와 같은 비세그먼트 기반 객체의 메타데이터를 내보내고 가져올 수 있습니다READ ONLY.
소스 데이터베이스의 데이터베이스 객체 수가 매우 많으면(수만 개) 메타데이터를 내보내고 가져오는 데 몇 시간이 걸립니다. 이 경우 메타데이터를 내보내는 것이 좋습니다.
세그먼트 기반이 아닌 객체 내보내기는 소스 시스템에서 읽기/쓰기로 실행됩니다. 그런 다음 소스 시스템을 로 설정하기 전에 대상 시스템으로 객체를 가져와야 합니다READ ONLY. 이때 , PACKAGE PROCEDURE및와 같은 데이터베이스 소스 객체를 FUNCTION 변경하지 않고 유지해야 합니다.
다음은 , , USER, 및를 포함하여 세그먼트 기반이 아닌 객체의 메타데이터를 내보내는 데 사용되는 PACKAGE_SPEC PACKAGE_BODY덤프 파라미터 파일의 예입니다PROCEDUREFUNCTION.
directory=dmpdir dumpfile=xttsmsc%U.dmp full=y filesize=1048576000 logfile=expmsc.log metrics=y exclude=TABLE,INDEX,CONSTRAINT,COMMENT, MATERIALIZED_VIEW,MATERIALIZED_VIEW_LOG,SCHEMA_CALLOUT
다음 명령을 사용하여 메타데이터를 내보냅니다.
SQL> create directory dmpdir as <location>; expdp system/<system password> parfile=<parameter file>
다음은 비세그먼트 객체의 메타데이터를 가져오는 덤프 파라미터 파일의 예입니다.
directory=dmpdir dumpfile=xttsmsc%U.dmp full=y logfile=impmsc1.log EXCLUDE=TABLESPACE, PROCOBJ, RLS_CONTEXT, RLS_GROUP, RLS_POLICY, TABLESPACE_QUOTA metrics=y remap_tablespace= APPS_TS_ARCHIVE:SYSTEM, APPS_TS_INTERFACE:SYSTEM, APPS_TS_SEED:SYSTEM, APPS_TS_SUMMARY:SYSTEM, …..
현재 대상 시스템에는 , SYSTEMUNDO, 및 SYSAUXTEMP를 제외한 테이블스페이스가 없습니다. 따라서 SYSTEM 테이블스페이스로 가져올 모든 객체를 다시 매핑해야 합니다.
다음 명령을 사용하여 메타데이터를 가져옵니다.
SQL> create directory dmpdir as <location>; impdp system/<system password> parfile=<parameter file>
이제 대상 데이터베이스에서 생성된 객체를 볼 수 있습니다.
SQL> select object_type, count(*) from dba_objects group by object_type order by count(*) desc; OBJECT_TYPE COUNT(*) ------------------------------- ---------- SYNONYM 89327 PACKAGE 55670 PACKAGE BODY 54447 VIEW 41378 JAVA CLASS 31978 SEQUENCE 12766 …..
SYSTEM, SYSAUX, UNDO및를 제외한 테이블스페이스는 없습니다TEMP. USER 객체는를 기본 테이블스페이스USERS로 사용하여 생성됩니다. 3단계에서는 전송 가능한 테이블스페이스가 생성된 다음 USER 객체가 원래 기본 테이블스페이스로 변경됩니다.