Oracle 데이터베이스 집합 복사 방법 에 대한 논의

12863 단어 Orraaccllee 수
보고 있 는 ORACLE 튜 토리 얼 은 Oracle 데이터베이스 세트 복사 방법 에 대한 논의 입 니 다.앞에서 말 했 듯 이 날로 증가 하 는 분포 식 응용 수 요 는 더욱 좋 은 분포 식 소프트웨어 환경 을 실현 하고 분포 식 기술 의 발전 을 계속 추진 해 야 한다.Oracle 데이터 복 제 는 분포 식 데이터 환경 을 실현 하 는 기술 로 서로 다른 물리 사이트 에서 데 이 터 를 복사 하여 분포 식 데이터 환경 을 구축한다.이 는 분포 식 데이터 베이스 와 달리 분포 식 데이터 베이스 에 서 는 모든 데이터 대상 도 모든 사이트 에 사용 할 수 있 지만 특정한 데이터 대상 은 특정한 사이트 에 만 존재 합 니 다.데이터 복 제 는 모든 사이트 가 같은 데이터 대상 의 복사 가 가능 합 니 다.전형 적 인 분포 식 상업 응용 에서 한 지역 의 데 이 터 를 본사 의 데이터 베이스 에 백업 해 야 한다.한편 으로 는 백업 방식 으로 할 수 있 고 다른 한편 으로 는 본사 응용 에서 의 종합 통 계 를 편리 하 게 할 수 있다.이것 은 Oracle 데이터 복제 에서 의 간단 한 응용 이다.본 고 는 이러한 예 를 들 어 Oracle 데이터 복 제 를 어떻게 실현 하 는 지 설명 할 것 이다.실제 상황 은 A 사 본 사 는 베 이 징 에 있 으 며 상하 이(ORACLE.SHANGHAI.COM),항 저 우(ORACLE.HANGZHOU.COM),우 한(ORACLE.WUHAN.COM)에 세 개의 영업부 가 있다.세 영업부 의 소프트웨어 시스템 은 같 고 데이터베이스 구조 도 같다.지금 은 세 영업부 의 데 이 터 를 모두 본사 의 데이터베이스 에 백업 해 야 한다.준비 작업 은 복 제 를 하기 전에 준비 해 야 할 것 이 많 습 니 다.물론 가장 기본 적 인 것 은 인터넷 이 잘 통 해 야 한 다 는 것 입 니 다.그 다음 에 복사 환경의 기본 정 보 를 수집 해 야 합 니 다.1.복사 해 야 할 데이터베이스 사이트 의 수량 2.각 사이트 의 Oracle 버 전 번호 3.복사 해 야 할 데이터베이스 의 크기 4.각 데이터 베이스 에 사용 되 는 문자 집합 5.복사 해 야 할 데이터 에 사용 되 는 프로젝트 이름 마다 환경 정 보 를 수집 합 니 다.본사 의 집중 데이터 베 이 스 를 구축 할 수 있 습 니 다.집중 데이터 베 이 스 는 모든 주전 점 의 버 전보 다 버 전 을 요구 합 니 다.모든 데이터 베 이 스 는 같은 문자 집합 을 사용 하 는 것 이 좋 습 니 다.라 이브 러 리 를 만 든 후에 모든 메 인 사이트 의 백업 데 이 터 를 위해 각각 표 공간 을 만 들 고 표 공간 은 복사 해 야 할 데이터 양 보다 많 으 며 앞으로 의 발전 공간 은 실제 상황 에 따라 정 해진 다.각 홈 페이지 에 대응 하 는 복사 데이터 구축 방안 을 만 듭 니 다.각 홈 페이지 에서 사용 하 는 프로젝트 이름 이 다 르 면 집중 데이터베이스 사이트 에서 각각 이름 이 같은 대응 방안 을 만 듭 니 다.그렇지 않 으 면 각 홈 페이지 의 복사 데 이 터 를 위해 각각 해당 하 는 프로젝트 이름 을 만 듭 니 다.실제 상황 은 후자 이 고 각 영업부 의 데이터 베 이 스 는 모두 Oracle 의 방안 명 을 사용 합 니 다.여기 서 우 리 는 세 가지 대응 방안 을 만 듭 니 다.SHORACL,HZORACL 과 WHORACL 입 니 다.모든 데이터베이스 버 전 은 9i 입 니 다.기본 개념 을 복제 하기 전에 복제 중의 몇 가지 개념 을 먼저 설명 한다.1.메 인 사이트(Mater Site):복제 과정 에서 데이터 원본 을 제공 하 는 사이트.위의 그림 과 같은 상해 데이터베이스 사이트.2.실체 화 보기 사이트(Materialized View Site):실체 화 보기 복사 중인 대상 사이트.위의 그림 과 같은 베 이 징 데이터베이스 사이트.3.다 중 주체 사이트 복제(Multimaster Replication):복제 환경의 사이트 들 은 모두 메 인 사이트 로 복 제 된 데이터베이스 대상 에 대해 같은 관리 권한 을 가진다.4.실체 화 보기 복사(Materialized View Replication):한 주체 사이트 에서 원본 복사 대상 을 제공 하고 실체 화 보기 사이트 에서 메 인 사이트 데 이 터 를 복사 합 니 다.5.실체 화 보기(Materialized View):실체 화 보기 사이트 에서 모든 복사 표 나 보기 에 해당 하 는 표를 만들어 해당 하 는 데 이 터 를 저장 합 니 다.이 표 는 Oracle 의 복사 체 제 를 통 해 데 이 터 를 추가 삭제 하고 수정 할 수 있 습 니 다.6.빠 른 리 셋,완전 리 셋 과 강제 리 셋:복사 과정 에서 의 세 가지 리 셋 방식.원본 데이터 대상 의 변경 부분 만 복사 하기;매번 원본 데이터 대상 을 복사 합 니 다.강제 리 셋 은 데이터베이스 의 절충 방안 으로 빠 른 리 셋 에 실패 하면 완전 리 셋 을 사용 합 니 다.7.주체 그룹(Master Group):주체 사이트 에서 복 제 된 원본 데이터 대상 의 집합.8.실체 화 보기 그룹(Materialized View Site):실체 화 보기 사이트 에서 복제 대상 의 집합.9.실체 화 보기 로그(Materialized View Log):실체 화 보기 복사 에서 빠 른 새로 고침 을 사용 할 때 주체 소스 데이터 대상 작업 로 그 를 기록 하 는 표 입 니 다.동기 복제 와 비동기 복 제 는 설명 하지 않 습 니 다.이 예 는 매일 한 번 씩 비동기 복 제 를 사용 합 니 다.복사 설정 을 통 해 로 컬 서비스 이름 은 상하 이 사이트:SH,항 저 우 사이트:HZ,무한 사이트:WH,베 이 징 사이트:BJ,로그 인 되 지 않 은 sqlplus 에 들 어가 복 사 를 시작 합 니 다!홈 사이트 설정이곳 은 상해 의 주요 역 설정 을 예 로 들 면.1.홈 사이트 에 연결 하여 복사 관리 자 를 만 들 고 해당 하 는 권한 을 부여 합 니 다.복사 관리 자 는 전체 복사 환경 을 관리 하고 복사 대상 을 만 드 는 사용자 입 니 다.데이터 관리자 만 주체 그룹 과 실체 화 보기 그룹 을 만 들 수 있 습 니 다.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] 

좋은 웹페이지 즐겨찾기