오라클 - 단일 인스턴스 DG의 RAC를 만들고, 스위치에서 촬영을 호출

I. 개요

이 문서에서는 역할 반전에 RAC DG 단일 노드, 방법을 구축하는 방법에 대해 설명합니다. 이전에 지식 (RAC 구축 단일 인스턴스를 - 단일 인스턴스 DG를 구축)해야

 

둘째, 실험 환경 소개

기본 라이브러리 RAC (이미 설치 RAC 및 기존 데이터베이스 ORCL)
RAC1 : 192.168.56.11, SID1 다음 ORCL1, 버전 : 11.2.0.4
RAC2 : 192.168.56.12, SID2 다음 ORCL2, 버전 : 11.2.0.4

라이브러리 (단일 인스턴스 데이터베이스 소프트웨어가 설치되어, 어떤 데이터베이스 인스턴스)에서
oradg : 192.168.56.102는 SID하지 : orcldg를, 버전 : 11.2.0.4

1

 

셋째, 빌드 DG

** 다음과 같은 주요 라이브러리 작업 모두에서 수행하는 데 필요한 경우 노드 2, 나는 표시됩니다, 노드 1에 완료

 

1. 메인 라이브러리 아카이브 모드와 쓰기 로그

첫 번째보기는 상태 데이터베이스 보관 및 아카이브를 열고,도 쓰기 로그 강제 켜지지 않습니다 현재 데이터베이스를 볼 수있는 차트에서 로그를 작성하는 강제로 켜져
V의에서 force_logging, SQL>를 선택 log_mode을 $ 데이터베이스;
삼

데이터베이스는 아카이브의 마운트 상태에서 열립니다
하며 SQL> ALTER 시스템 SET LOG_ARCHIVE_DEST_1 = 'LOCATION = + 데이터'SID = '*'범위 = SPFILE
는 SQL> 즉시 종료를 # 두 개의 노드가 폐쇄되어
SQL> 마운트 시작 # 만여 노드를 1.
은 SQL >은 ALTER 데이터베이스 ARCHIVELOG;
SQL>를 엽니 ALTER 데이터베이스;

로그를 작성하는 강제, 데이터베이스가 열려있는 상태 수정할 수 있습니다
SQL> ALTER 데이터베이스 힘 로깅을;

SQL> 시작 # 1 엽니 다 완료되면 열린 데이터베이스에 노드, 노드 2

보관 상태 데이터베이스와 쓰기 로그 개방 강제로하는지 여부를 확인하기 위해 서
V의에서 force_logging, log_mode을 선택> SQL을 $ 데이터베이스;
4

 

2. 차 라이브러리는 가드 (DataGuard) 스위치

SQL> 바꾼다 시스템 설정 log_archive_config = 'dg_config = (ORCL, orcldg)'SID = '*'# ORCL의 라이브러리로부터 DB_UNIQUE_NAME DB_UNIQUE_NAME 주요 라이브러리이다 orcldg

 

3. 중앙 도서관은 원격 아카이브를 설정

SQL> 바꾼다 시스템 설정 log_archive_dest_3 = '서비스 = orcldg valid_for = (online_logfiles, primary_role) DB_UNIQUE_NAME = orcldg'SID = '*';

 

라이브러리에 라이브러리에서 마스터 암호 파일 전송 (4)

[오라클 @ RAC1 ~] $ scp를 $ ORACLE_HOME / DBS / 반드시 orapw $ ORACLE_SID 192.168.56.102:$ORACLE_HOME/dbs/orapworcldg

 

라이브러리 준비 매개 변수 파일 5.

여기에 내장 DG와 파일을 단일 인스턴스의 단일 인스턴스에 차이가 없습니다 매개 변수, 그것은 구체적으로 소개되지 않은
[루트 @ oradg ~] # VI $ ORACLE_HOME / DBS / initorcldg.ora

* .audit_file_dest = '/ U01 / 응용 프로그램 / 오라클 / 관리자 / orcldg / adump' 
* .audit_trail = 'DB' 
* .compatible = '11 .2.0.4.0 ' 
* .control_files ='/ U01 / 응용 프로그램 / 오라클 / ORADATA / orcldg / 제어 파일 / control01.ctl ' 
* .db_block_size = 8192 
* .db_domain =' ' 
* .db_name ='ORCL ' 
* .diagnostic_dest ='/ U01 / 애플리케이션 / 오라클 
* .log_archive_config = 'dg_config = (ORCL, orcldg) ' 
* .log_archive_dest_2 ='위치 = / U01 / 애플리케이션 / 오라클 / ORADATA / orcldg / archstdlog / valid_for = (standby_logfiles, standby_role) DB_UNIQUE_NAME = orcldg ' 
* .memory_target = 838,860,800 
* .open_cursors = 300 
* .processes = 150 
* .remote_login_passwordfile = '배타적 인' 
* .undo_tablespace = 'UNDOTBS1'
파라미터 standby_file_management = 자동 번호 디폴트 값 (예를 들어, 새로운 이름 변경 등)를 수정 라이브러리 마스터 데이터 파일을 나타내는 자동으로 변경해야 할뿐만 아니라, 대응 라이브러리에서 적절히 변형되는 수동 인
DB_UNIQUE_NAME = 'orcldg' 
db_file_name_convert = '+ DATA / ORCL / 데이터 파일 /', '/ U01 / 애플리케이션 / 오라클 / ORADATA / orcldg / 데이터 파일 /', '+ DATA / ORCL / 임시 파일 /', '/ U01 / 애플리케이션 / 오라클 / ORADATA / orcldg / 임시 파일 / ' 
log_file_name_convert ='+ DATA / ORCL / onlinelog / ','/ U01 / 애플리케이션 / 오라클 / ORADATA / orcldg / onlinelog / '

 

라이브러리에서 관련 카탈로그를 준비 (6) 

[오라클 @ oradg ~] $를에서 mkdir -p / U01 / 응용 프로그램 / 오라클 / 관리자 / orcldg / adump
[오라클 @ oradg ~] $에서 mkdir -p / U01 / 응용 프로그램 / 오라클 / ORADATA / orcldg / 제어 파일
[오라클 @ oradg ~] $에서 mkdir -p / U01 / 응용 프로그램 / 오라클 / ORADATA / orcldg / archstdlog
[오라클 @ oradg ~] $에서 mkdir -p / U01 / 응용 프로그램 / 오라클 / ORADATA / orcldg / 데이터 파일
[오라클 @ oradg ~] $에서 mkdir -p / U01 / 응용 프로그램 / 오라클 / ORADATA / orcldg / 임시 파일
[오라클 @ oradg ~] $에서 mkdir -p / U01 / 응용 프로그램 / 오라클 / ORADATA / orcldg / onlinelog

 

라이브러리 예제 7. 시작

[오라클 @ oradg ~] $ 수출 ORACLE_SID = orcldg
[오라클 @ oradg ~] $ SQLPLUS /에 SYSDBA로
SQL> PFILE에서 SPFILE을 생성;
SQL> 시작 NOMOUNT

 

라이브러리에서 8. 구성을하고 리스너를 시작합니다

중복 된 데이터의 사용 방법은 주요 라이브러리를 복사 할 수 있기 때문에, 그래서 구성 레지스터에서 정적 라이브러리를 형성 할 필요가있다

[오라클 @ oradg ~] $ VI $ ORACLE_HOME / 네트워크 / 관리 / listener.ora를

SID_LIST_LISTENER = 
  (SID_LIST = 
    (SID_DESC = 
      (GLOBAL_DBNAME = orcldg) 
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1) 
      (SID_NAME = orcldg) 
    ) 
  ) 

LISTENER = 
  (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP ) (HOST = 192.168.56.102) (PORT = 1521)) 
  )

 

[오라클 @ oradg ~] $의 LSNRCTL 시작

 

9. 중앙 도서관 구성 네임 서비스 

# 두 노드 설정해야합니다
[오라클 @ RAC1 ~] $ VI $ ORACLE_HOME / 네트워크 / 관리 / tnsnames.ora를

orcldg = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.56.102) (= 1,521 PORT)) 
    ) 
    (CONNECT_DATA = 
      (SERVER = DEDICATED) 
      (SERVICE_NAME = orcldg) 
    ) 
  )

 
[오라클 @ RAC2 ~] $ VI $ ORACLE_HOME / 네트워크 / 관리 / tnsnames.ora를
, RAC1 만족 일치 약간 

 

네트워크 연결을 사용하여 라이브러리에서 10 주 라이브러리 (연결 테스트)

# sys 인 암호가 여기 내 중앙 도서관은 도서관의 중앙 도서관과 일치 123456입니다
[오라클 @ RAC1 ~] $ SQLPLUS SYSDBA로 SYS / 123456 @ orcldg

 

11. 중앙 도서관 시작 RMAN에 라이브러리 복사

RMAN 라이브러리로부터 연결 및 마스터 라이브러리
[오라클 @ RAC1 ~] $ RMAN 대상 / 보조 SYS / 123456 @ orcldg

RMAN> 활성 데이터베이스에서 대기 중복 대상 데이터베이스;

 

12. 추가 라이브러리에서 standbylog

Onlinelog 추가 로그 크기는 중앙 도서관과 일치하는 숫자 두 개 이상의 (뷰 정보에 대한 중앙 도서관 onlinelog는 V $ 로그)
그룹 번호가 반복되지 않고 현재 onlinelog에

[오라클 @ oradg ~] $에서 mkdir -p / U01 / 응용 프로그램 / 오라클 / ORADATA / orcldg / standbylog /
       
SQL> ALTER 데이터베이스 추가 대기 로그 파일 그룹 21 '/u01/app/oracle/oradata/orcldg/standbylog/std01.log'을 크기 50M;
SQL> ALTER 데이터베이스 추가 대기 로그 파일 그룹 22 '/u01/app/oracle/oradata/orcldg/standbylog/std02.log'크기 50M;
SQL> ALTER 데이터베이스 추가 대기 로그 파일 그룹 23 '/u01/app/oracle/oradata/orcldg/standbylog/std03.log'크기 50M;
SQL> ALTER 데이터베이스 추가 대기 로그 파일 그룹 24 '/u01/app/oracle/oradata/orcldg/standbylog/std04.log'크기 50M;
SQL> ALTER 데이터베이스 추가 대기 로그 파일 그룹 25 '/u01/app/oracle/oradata/orcldg/standbylog/std05.log'크기 50M;
SQL> ALTER 데이터베이스 추가 대기 로그 파일 그룹 26 '

 

13. 라이브러리에서 응용 프로그램 로그

SQL> ALTER 데이터베이스 세션에서 대기 데이터베이스 분리를 ​​관리 복구;

 

14. 스위칭 마스터 아카이브 라이브러리

SQL> ALTER 시스템 스위치 로그 파일;

 

라이브러리에서 15. 열기

라이브러리 아카이브 응용 프로그램에서 일정 기간 후에는 라이브러리에서 오픈 응용 프로그램 아카이브 로그를 닫습니다.
; SQL은> 데이터베이스는 ALTER 관리 데이터베이스 STANDBY 취소 복구
SQL>를 엽니 ALTER 데이터베이스,
SQL>은 ALTER 데이터베이스 세션에서 대기 현재 로그 파일 차단 관리하는 사용하여 데이터베이스 복구를;

 

동기 확인 16

메이크업에 중앙 도서관이 변경
SQL> 업데이트 SCOTT.EMP는 SET SAL = 2000;
SQL을>는 커밋;

데이터베이스에서 쿼리
SQL> SCOTT.EMP SELECT * FROM;

이 시점에서,주고 RAC DG 그것의 단일 인스턴스는 더 차이의 단일 인스턴스를 구축 DG 단일 인스턴스와, 수행 된 빌드합니다. 그런 다음 우리는 전환하는 방법을 설명합니다.

 

스위칭 마스터로부터 제조 넷째

17. 기본 데이터베이스 아카이브 경로 대기 로그 파일 추가

사용 그리드 계정, 아카이브 경로 생성
[RAC1 ~ @ 그리드] $ ASMCMD
ASMCMD> lsdg # 보려면 디스크 그룹 이름
ASMCMD> CD 데이터
ASMCMD> CD ORCL
ASMCMD>에서 mkdir ARCHSTDLOG

매개 변수 데이터베이스 수정하는 데 사용할 SYS 계정 데이터베이스,
SQL을> ALTER 시스템 설정 LOG_ARCHIVE_DEST_2 = ' 위치 = + DATA / ORCL / ARCHSTDLOG / valid_for = (standby_logfiles, standby_role) DB_UNIQUE_NAME = ORCL'SID = '*';

 

18. 기본 라이브러리 대기 로그를 추가

(주 정보 저장소보기 $ 로그 V onlinelog) 여러 그룹의 수 일치 Onlinelog 기본 데이터베이스의 로그의 크기에 추가됩니다
.는 SQL은> ALTER 스탠바이 데이터베이스 추가 (21)는 스레드 그룹 1 ( '+ 데이터') 크기 50M은 로그 파일;
는 SQL> .; ALTER 데이터베이스 추가 STANDBY 로그 파일 스레드 1 그룹 (22) ( '+ 데이터') 크기 50M이다
는 SQL> ALTER 데이터베이스 추가 STANDBY 로그 파일 스레드 1 그룹 23 ( '+ 데이터') 크기 50M입니다.
는 SQL> ALTER 데이터베이스 추가 STANDBY 로그 파일 스레드 2 그룹 24 ( '+ 데이터') 크기 50M;
는 SQL은> ALTER STANDBY는 추가 데이터베이스 로그 파일 25 스레드 그룹 2 ( '+ 데이터') 크기 50M;
는 SQL> ALTER 스탠바이 데이터베이스 추가 (26) 로그 파일 그룹 2 ( '+ 데이터') 크기 50M 스레드입니다;

 

(19) 중앙 도서관 수정 매개 변수 파일

SQL> ALTER 시스템 설정 standby_file_management = 자동 SID = '*';
SQL> ALTER 시스템 설정 db_file_name_convert = '/ U01 / 응용 프로그램 / 오라클 / ORADATA / orcldg / 데이터 파일 /', '+ DATA / ORCL / 데이터 파일 /', '/ U01 / 응용 프로그램 / 오라클 / ORADATA / orcldg / 임시 파일 /', ' + DATA / ORCL / 임시 파일 / 'SID ='* '범위 = SPFILE;
SQL> 바꾼다 시스템 설정 log_file_name_convert = '/ U01 / 애플리케이션 / 오라클 / ORADATA / orcldg / onlinelog /', '+ DATA / ORCL / onlinelog /'SID = '*'범위 = SPFILE;

여기에 메인 도서관은 준비 작업이 완료 라이브러리 장치로 변환!

 

구성 저장소 (20)에서의 tnsnames.ora

여기 목적은 구성 tnsnams.ora에있는 도서관 중앙 도서관의 전환은, 라이브러리는 DG 라이브러리 응용 프로그램 만 보관하기 때문에 그래서 여기에 도서관에 출발지를 TNSNAMES하고, 원산지의 라이브러리에 라이브러리에서 아카이브 로그를 보낼 원래 소유자의 요구 될 때 하나 개의 노드에있을 수 있습니다 만 노드 1 toorcl를 가리 킵니다.

[오라클 @ oradg ~] $ VI $ ORACLE_HOME / 네트워크 / 관리 / tnsnames.ora를

toorcl = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.56.11) (= 1,521 PORT)) 
    ) 
    (CONNECT_DATA = 
      (SERVER = DEDICATED) 
      (SERVICE_NAME = ORCL) 
    ) 
  )

 

아카이브 라이브러리 경로에서 21. onlinelog 배치

[오라클 @ oradg ~] $에서 mkdir -p / U01 / 응용 프로그램 / 오라클 / ORADATA / orcldg / 아카이브 로그를

SQL> 바꾼다 시스템 설정 LOG_ARCHIVE_DEST_1 = '위치 = / U01 / 애플리케이션 / 오라클 / ORADATA / orcldg / ARCHIVELOG / valid_for = (online_logfiles, primary_role) DB_UNIQUE_NAME = orcldg';

 

원격 아카이브 라이브러리에서 22 매개 변수를 설정합니다

SQL> ALTER 시스템 설정 log_archive_dest_3 = '서비스 = toorcl valid_for = (online_logfiles, primary_role) DB_UNIQUE_NAME = ORCL';

여기서, 완료 한 준비 작업의 라이브러리에서 기본 라이브러리를 켜십시오!

 

넷째, 마스터 - 슬레이브 스위칭

이

 

23. 역할 반전 중앙 도서관의 상태를 확인

SQL> database_role 선택, 브이 $ 데이터베이스에서 switchover_status;
5 
  

24. 마스터 노드에서 전송 한

集群在做角色转换时,只能有一个实例是打开状态,其余都要关闭,所以将节点2的实例关闭。
SQL> shutdown immediate;  # 只在节点2上做

在节点1上执行以下命令,将主库转为从库,并且关闭实例
SQL> alter database commit to switchover to physical standby with session shutdown; 

 

25. 在节点3上从转主

SQL> select database_role,switchover_status from v$database;
6

如果是"NOT ALLOWED"表示归档还没有应用完成,可以等待一段时间

如果日志全部应用了再查看角色转换状态
SQL> select database_role,switchover_status from v$database;
(7)

如果角色转换状态是TO PRIMARY,那么表示可以进行角色转换

执行从转主的命令,命令执行成功后,数据库的状态会变为mount
SQL> alter database commit to switchover to primary;
SQL> alter database open;

 

26. 打开新从库

在节点1和节点2上
SQL> startup

节点1上应用归档
SQL> alter database recover managed standby database using current logfile disconnect from session;

3 노드 스위치 보관
SQL> 바꾼다 시스템 스위치 로그하는 단계;

 

동기 확인 (27)

기본 라이브러리는 수정하지
하며 SQL> SET SAL을 = 업데이트 3000 SCOTT.EMP
는 SQL> 커밋을;

데이터베이스에서 쿼리
SQL> SCOTT.EMP SELECT * FROM;

 

(28) 오류 처리

로그는 대기 데이터베이스에 도달하지 않는 것을 발견하면, 다음과 같은 명령을 사용하여 중앙 도서관에서 오류 원인을 볼 수 있습니다

SQL>를 선택 dest_id, DEST_NAME, log_sequence, 상태, 브이 $ ARCHIVE_DEST에서 오류;
8

다음 스위치를 다시 오류 위의 메시지가 보관 될 수있는 경우
는 SQL> SET ALTER 시스템 log_archive_dest_state_3 = '는 연기'SID = '*';
는 SQL> SET ALTER 시스템 log_archive_dest_state_3 = '수'SID = '*';

 

V. 요약

1. DG 핸드 오버 요구는 모든 응용 프로그램을 중단하고, 잠금 해제 스위치의 완료 후, 모든 모든 데이터베이스, 전체 잠금 계정에 연결 죽이지
다른 모든 폐쇄 라이브만을 남겨두고 예 전환 2. RAC
(3). 각 명령의 실행, 관심을 지불 반환 된 결과로, 실시간보기 alert.log를

추천

출처www.cnblogs.com/ddzj01/p/12044310.html