Oracle 데이터베이스 집합 복사 방법 에 대한 논의
connect system/passwd@SH
create user repadmin identified by repadmin;
begin
dbms_repcat_admin.grant_admin_any_schema(
username=>'repadmin');
end;
/
grant comment any table to REPADMIN;
grant lock any table to REPADMIN;
뒤에 있 는 두 개의 grant 문 구 는 복사 관리자 가 모든 표 에 실체 적 인 보기 로 그 를 만 들 수 있 도록 합 니 다.사용자 가 보기 관리 자 를 사용 할 수 있 도록 변경 하려 면 다음 명령 이 필요 합 니 다.grant select any dictionary to REPADMIN;
2.전파 자 를 등록 하면 전파 자 는 주체 사이트 의 지연 트 랜 잭 션 대기 열 을 다른 주체 사이트 나 실체 화 된 보기 사이트 로 밀어 넣 습 니 다.begin
dbms_defer_sys.register_purpagator(username=>'repadmin');
end;
3.제거 작업 을 예약 합 니 다.이 작업 은 지연 트 랜 잭 션 대기 열 을 정기 적 으로 제거 하고 전파 자로 지연 트 랜 잭 션 을 다른 주체 사이트 나 실체 화 보기 사이트 로 밀어 넣 습 니 다.먼저 사용자 교체:disconnect;
connect repadmin/repadmin@SH;
begin
dbms_defer_sys.schedule_purge(
next_date=>sysdate,interval=>'sysdate + 1',delay_seconds=>0);
end;
nextdate:다음 실행 날짜,sysdate 는 즉시.interval:간격 시간 대,sysdate+1 은 하루 간격,sysdate+1/24 는 1 시간 간격 delayseconds:지연 대기 열 이 지연 되 지 않 았 을 때 다음 제거 작업 의 지연 시간 을 중단 합 니 다.4.실체 화 된 보기 사이트 에 복사 대 리 를 만 듭 니 다.복사 프 록 시 사용 자 를 만 들 고 보기 수용 자 에 게 권한 을 부여 합 니 다.복제 에이 전 트 는 수신 자가 주체 사 이 트 를 연결 하 는 것 을 복제 하 는 사용자disconnect;
connect system/passwd@SH;
create user proxy_bjoracle identified by proxy_bjoracle;
begin
dbms_repcat_admin.register_user_repgroup(
user_name=>'proxy_bjoracle,
privilege_type => 'proxy_snapadmin',list_of_gnames => NULL);
end;
/
grant select_catalog_role to proxy_bjoracle;
5.주체 그룹 을 만 듭 니 다.disconnect;
connect repadmin/repadmin@SH;
begin
dbms_repcat.create_master_repgroup(gname=>'sh_rep');
end;
/
6.주체 그룹 에 복사 대상 a 추가)표 추가:begin
dbms_repcat.create_master_repobject(
gname=>'sh_rep',
type=>'TABLE',
oname=>' CREDIT_CARD'
sname=>'SHORACL'
use_existing_object=>TRUE,
copy_rows=>TRUE);
end;
[1] [2] [3] 다음 페이지보고 있 는 ORACLE 튜 토리 얼 은 Oracle 데이터베이스 세트 복사 방법 에 대한 논의 입 니 다.>b)색인 추가begin
dbms_repcat.create_master_repobject(
gname=>'sh_rep',
type=>'INDEX',
oname=>' INDEX_CREDIT_CARD'
sname=>'SHORACL'
use_existing_object=>TRUE,
copy_rows=>FALSE);
end;
/
[NextPage]
7.
begin
dbms_repcat.set_columns(
sname => 'SHORACL',
oname => ' CREDIT_CARD ',
column_list => ' CREDIT_CARD_ID');
end;
/
8.주체 그룹의 데이터 대상 이 복사 되 기 전에 복사 지원 을 만들어 야 합 니 다.이 방법 은 생 성 에 필요 한 트리거,가방 또는 저장 과정 을 복사 하기 위해 서 입 니 다.begin
dbms_repcat.generate_replication_support(
sname=>'SHORACL',
oname=>' CREDIT_CARD',
type=>'TABLE',
min_communication=>TRUE);
end;
/
9.실체 보기 로 그 를 빠르게 새로 고치 기 위해 서 입 니 다.create materialized view log on SHORACL. CREDIT_CARD;
홈 키 가 없 는 경우 문 구 를 사용 하 십시오.create materialized view log on SHORACL. CREDIT_CARD with
rowid excluding new values;
10.복사 시작:begin
dbms_repcat.resume_master_activity(
name=>'sh_rep');
end;
/
2.실체 화 보기 사이트 설정.1.복사 관리 자 를 만 들 고 권한 부여:disconnect;
connect system/passwd@BJ;
create user mvadmin identified by
mvadmin;
begin
dbms_repcat_admin.
grant_admin_any_schema(username=> 'mvadmin');
end;
/
grant comment any table to mvadmin;
grant lock any table to mvadmin;
grant select any dictionary to mvadmin;
2.등록 전파 자:begin
dbms_defer_sys.register_propagator(
username => 'mvadmin');
end;
/
3.공공 데이터 베이스 연결.복사 할 때마다 세 개의 데이터베이스 연결 을 만들어 야 합 니 다.공공 데이터베이스 연결 지정 한 데이터베이스 의 전역 이름:create public database link ORACLSH using 'oracle.shanghai.
com';
Using 자구 뒤 꿈 치 는 전역 데이터베이스 이름 이나 연결 문자열 입 니 다.create public database link ORACLSH using '(description=
(address=(protocol=tcp)(host=127.0.0.1)(port=1521))
(connect_data=(service_name=oracl)))'
4.클 리 어 지연 트 랜 잭 션 대기 열 스케줄 링 작업 구축:disconnect;
connect mvadmin/mvadmin@BJ;
begin
dbms_defer_sys.schedule_purge(
next_date => sysdate,
interval => '/*1:hr*/ sysdate + 1',
delay_seconds => 0,
rollback_segment => '');
end;
5.복사 관리자 mvadmin 의 데이터베이스 연결 구축:create database link ORACLSH connect to proxy_bjoracle
identified by proxy_bjoralce
Connect to ... Identified by ...
6.복사 스케줄 링 데이터베이스 연결 작업 구축:begin
dbms_defer_sys.schedule_push(
destination => 'ora92zjk',interval => '/*1:hr*/ sysdate + 1',
next_date => sysdate,stop_on_error => false,
delay_seconds => 0,parallelism => 0);
end;
/
7.SHORACL 사용자(SHORACL 방안 에 대응)에 게 해당 하 는 권한 을 부여 하여 실체 화 보 기 를 만 듭 니 다.disconnect;
connect system/passwd@BJ;
grant alter session to crm;
grant create cluster to crm;
grant create database link to crm;
grant create sequence to crm;
grant create session to crm;
grant create synonym to crm;
grant create table to crm;
grant create view to crm;
grant create procedure to crm;
grant create trigger to crm;
grant unlimited tablespace to crm;
grant create type to crm;
grant create any snapshot to crm;
grant alter any snapshot to crm;
8.복 구 를 만 듭 니 다.프로젝트 의 데이터베이스 연결:disconnect;
connect SHORACL/SHORACL@BJ;
create database link ORACLSH connect to ORACL identified
by ORACL;
복제 프로젝트 의 데이터베이스 연결 과 복제 관리자 의 데이터베이스 연결 은 시스템 사용자 간 에 대응 하 는 공공 데이터베이스 연결 과 같은 이름 을 사용 하고,연결 을 예약 할 때 공공 데이터베이스 연결 에서 지정 한 데이터 라 이브 러 리 전역 이름 이나 연결 문자열 을 사용 합 니 다.9.실체 화 보기 만 들 기:이전 페이지 [1] [2] [3] 다음 페이지보고 있 는 ORACLE 튜 토리 얼 은 Oracle 데이터베이스 세트 복사 방법 에 대한 논의 입 니 다.disconnect;
connect mvadmin/mvadmin@BJ;
create materialized view SHORACL.CREDIT_CARD refresh fast
wit h pr imar y key as sele ct * from ORA CL.
CREDIT_CARD@ORACLSH;
@뒤쪽 은 데이터베이스 연결 명 입 니 다.이 표 에 홈 키 가 없 으 면 rowid 를 사용 하여 새로 고침create materialized view SHORACL. CREDIT_CARD refresh
fast with rowid as select * from ORACL. CREDIT_CARD@ORACLSH;
10.여러 보기 로 새로 고침 그룹 을 만 듭 니 다.begin
dbms_refresh.make (
name => 'mvadmin.sh_refresh',list => '',
next_date => sysdate,interval => 'sysdate + 1',
implicit_destroy => false,rollback_seg => '',
push_deferred_rpc => true,refresh_after_errors => false);
end;
11.새로 고침 그룹 에 복사 대상 을 추가 합 니 다.begin
dbms_refresh.add (name => 'mvadmin.sh_refresh',list => 'SHORACL.CREDIT_CARD ',lax => true);
end;
/
3.복사 프로 세 스 를 검사 합 니 다.1.sys.dba 보기jobs 보기에 충분 한 작업 이 생 성 되 었 는 지 여부 입 니 다.이상 의 절 차 를 거 쳐 세 가지 작업 이 있어 야 합 니 다.작업 제거,스케줄 링 작업 과 새로 고침 작업 입 니 다.보기 의 what 필드 에 다음 내용 이 있 는 지 확인 하 십시오.a) declare rc binary_integer; begin rc := sys.dbms_defer_sys.
purge( delay_seconds=>0); end;
b) declare rc binary_integer; begin rc := sys.dbms_defer_sys.
push(destination=>'ORACLSH', stop_on_error=>FALSE,
delay_seconds=>0, parallelism=>0); end;
c) dbms_refresh.refresh('"MVADMIN"."SH_REFRESH"');
다른 시스템 작업 을 제외 하면 항 저 우 와 무한 의 데이터 베 이 스 를 복사 하여 만 든 후 7 개의 작업 이 있 습 니 다.(각 복사 에 각각 새로 고침 그룹 을 만 들 면)청소 작업 은 항상 하나 입 니 다.복사 마다 스케줄 링 작업 에 대응 하고,새로 고침 그룹 마다 새로 고침 작업 에 대응 합 니 다.2.job 보기queue_processes 매개 변 수 는 이 매개 변수 가 0 이 아 닌 지 확인 합 니 다.(데이터베이스 의 기본 값 은 0 입 니 다)이 매개 변수 가 0 이면 매번 수 동 으로 새로 고침 을 실행 하지 않 으 면 시스템 은 자동 으로 복사 데 이 터 를 새로 고침 하지 않 습 니 다.3.복사 실행 을 확보 한 후 sys.dba 관찰jobs 보기 의 failures 필드 입 니 다.복사 가 새로 고침 과정 에서 오 류 를 제거 하면 Oracle 은 자동 으로 1 분 후에 다시 새로 고침 을 시도 합 니 다.실패 한 후에 2 분,4 분,8 분..이후 에 새로 고침 을 시도 합 니 다.실패 횟수 가 16 회 에 달 하거나 간격 이 작업 설정 의 간격 을 초과 할 때 까지 이 작업 은 중단 으로 표 시 됩 니 다.Oracle 은 이 작업 을 수행 하지 않 습 니 다.변경 작업 을 다시 수행 하려 면 dbms 사용job 가방 의 run 과정:begin
dbms_job.run(job_no);
end;
/
jobno 는 sys.dbajobs 의 Job 필드 의 값,작업 번호.오류 로 중 단 된 작업 을 다시 수행 하기 전에 오류 점 을 손 으로 찾 아 수정 해 야 합 니 다.요약 하면 본 고 는 Oracle 고급 복사 에서 가장 간단 한 기능 을 사 용 했 을 뿐 입 니 다.Oracle 의 고급 복 제 는 업데이트 가능 한 보기 와 복잡 한 읽 기 전용 실체 화 보기 복 제 를 제공 합 니 다.물론 우리 가 모두 고급 복잡 하고 강력 한 기능 을 사용 해 야 하 는 것 은 아 닙 니 다.구체 적 으로 응용 할 때 시스템 기능 과 성능 수요 에 따라 적당 한 복사 기술 의 한 페이지 를 선택해 야 합 니 다.
이전 페이지 [1] [2] [3]