탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
Oracle용 Oracle Solaris Cluster 데이터 서비스 설명서 Oracle Solaris Cluster 4.0 (한국어) |
HA for Oracle에 대한 설치 및 구성 프로세스 개요
Solaris Volume Manager를 사용하여 Oracle 데이터베이스 액세스를 구성하는 방법
Oracle ASM을 사용하여 Oracle 데이터베이스 액세스를 구성하는 방법
Oracle Grid Infrastructure for Clusters SCAN 리스너를 구성하는 방법
HA for Oracle을 등록 및 구성하는 방법(clsetup)
Oracle ASM 없이 HA for Oracle을 등록 및 구성하는 방법(CLI)
클러스터된 Oracle ASM 디스크 그룹 및 타사 볼륨 관리자로 Oracle Grid Infrastructure 리소스를 만드는 방법(CLI)
클러스터된 Oracle ASM 인스턴스로 HA for Oracle을 등록 및 구성하는 방법(CLI)
데이터베이스 트랜잭션 실패에 대한 응답으로 서버 결함 모니터의 조치
Oracle Data Guard 인스턴스의 역할을 변경하는 방법
B. DBMS 오류 및 로깅된 경고에 대한 미리 설정된 조치
HA for Oracle 서버 결함 모니터를 사용자 정의하면 다음과 같이 서버 결함 모니터의 동작을 수정할 수 있습니다.
오류에 대해 미리 설정된 조치 대체
미리 설정된 조치가 없는 오류에 대해 조치 지정
HA for Oracle 서버 결함 모니터 사용자 정의는 다음 작업으로 구성됩니다.
HA for Oracle 서버 결함 모니터는 다음 오류 유형을 감지합니다.
서버 결함 모니터에서 데이터베이스 프로브 중에 발생한 DBMS 오류
Oracle이 경고 로그 파일에 로깅하는 경고
Probe_timeout 확장 등록 정보로 설정된 시간 안에 응답 수신 실패로 인해 발생하는 시간 초과
이러한 오류 유형에 대한 사용자 정의 동작을 정의하려면 사용자 정의 조치 파일을 만듭니다. 이 절은 사용자 정의 조치 파일에 대한 다음 정보를 포함합니다.
사용자 정의 조치 파일은 일반 텍스트 파일입니다. 이 파일은 HA for Oracle 서버 결함 모니터의 사용자 정의 동작을 정의하는 하나 이상의 항목을 포함합니다. 각 항목은 단일 DBMS 오류, 단일 시간 초과 오류 또는 여러 로깅된 경고에 대한 사용자 정의 동작을 정의합니다. 최대 1024개 항목이 사용자 정의 조치 파일에 허용됩니다.
주 - 사용자 정의 조치 파일의 각 항목은 오류에 대해 미리 설정된 조치를 대체하거나, 미리 설정된 조치가 없는 오류에 대해 조치를 지정합니다. 대체하려는 미리 설정된 조치나 미리 설정된 조치가 없는 오류에 대해서만 사용자 정의 조치 파일의 항목을 만듭니다. 변경하지 않을 조치에는 항목을 만들지 마십시오.
사용자 정의 조치 파일의 항목은 세미콜론으로 구분된 키워드-값 쌍의 시퀀스로 구성됩니다. 각 항목은 괄호로 묶습니다.
사용자 정의 조치 파일의 항목 형식은 다음과 같습니다.
{ [ERROR_TYPE=DBMS_ERROR|SCAN_LOG|TIMEOUT_ERROR;] ERROR=error-spec; [ACTION=SWITCH|RESTART|STOP|NONE;] [CONNECTION_STATE=co|di|on|*;] [NEW_STATE=co|di|on|*;] [MESSAGE="message-string"] }
구분된 키워드-값 쌍 사이와 파일 형식을 지정할 항목 사이에 공백을 사용할 수 있습니다.
사용자 정의 조치 파일에서 키워드의 의미와 허용된 값은 다음과 같습니다.
서버 결함 모니터가 감지된 오류의 유형을 나타냅니다. 이 키워드에 허용된 값은 다음과 같습니다.
오류를 DBMS 오류로 지정합니다.
오류를 경고 로그 파일에 로깅된 경고로 지정합니다.
오류를 시간 초과로 지정합니다.
ERROR_TYPE 키워드는 선택 사항입니다. 이 키워드를 생략하면 DBMS 오류로 간주됩니다.
오류를 식별합니다. 다음 표에 표시된 대로 error-spec의 데이터 유형과 의미는 ERROR_TYPE 키워드 값으로 결정됩니다.
|
ERROR 키워드를 지정해야 합니다. 이 키워드를 생략하면 사용자 정의 조치 파일의 항목이 무시됩니다.
서버 결함 모니터가 오류에 대한 응답으로 수행할 조치를 지정합니다. 이 키워드에 허용된 값은 다음과 같습니다.
서버 결함 모니터가 오류를 무시하도록 지정합니다.
서버 결함 모니터가 중지되도록 지정합니다.
서버 결함 모니터가 SUNW.oracle_server 리소스의 Restart_type 확장 등록 정보 값으로 지정된 엔티티를 중지했다가 다시 시작하도록 지정합니다.
서버 결함 모니터가 데이터베이스 서버 리소스 그룹을 다른 노드로 스위치오버하도록 지정합니다.
ACTION 키워드는 선택 사항입니다. 이 키워드를 생략하면 서버 결함 모니터가 오류를 무시합니다.
오류가 감지될 때 데이터베이스와 서버 결함 모니터 간의 필요한 연결 상태를 지정합니다. 오류가 감지될 때 연결이 필요한 상태인 경우에만 항목이 적용됩니다. 이 키워드에 허용된 값은 다음과 같습니다.
연결 상태에 관계없이 항목이 항상 적용되도록 지정합니다.
서버 결함 모니터가 데이터베이스에 연결을 시도하는 경우에만 항목이 적용되도록 지정합니다.
서버 결함 모니터가 온라인인 경우에만 항목이 적용되도록 지정합니다. 서버 결함 모니터가 데이터베이스에 연결된 경우 온라인입니다.
서버 결함 모니터가 데이터베이스에서 연결을 끊는 경우에만 항목이 적용되도록 지정합니다.
CONNECTION_STATE 키워드는 선택 사항입니다. 이 키워드를 생략하면 연결 상태에 관계없이 항목이 항상 적용됩니다.
오류가 감지된 후에 서버 결함 모니터가 얻어야 하는 데이터베이스와 서버 결함 모니터 간의 연결 상태를 지정합니다. 이 키워드에 허용된 값은 다음과 같습니다.
연결 상태에 변화가 없어야 합니다.
서버 결함 모니터가 데이터베이스에서 연결을 끊은 즉시 다시 데이터베이스에 연결해야 합니다.
서버 결함 모니터가 데이터베이스에서 연결을 끊어야 합니다. 다음에 데이터베이스를 프로브할 때 서버 결함 모니터가 다시 연결됩니다.
NEW_STATE 키워드는 선택 사항입니다. 이 키워드를 생략하면 오류가 감지된 후에 데이터베이스 연결 상태에 변화가 없습니다.
이 오류가 감지될 때 리소스의 로그 파일에 인쇄할 추가 메시지를 지정합니다. 메시지를 큰 따옴표로 묶어야 합니다. 이 메시지는 오류에 정의된 표준 메시지에 추가적으로 붙습니다.
MESSAGE 키워드는 선택 사항입니다. 이 키워드를 생략하면 이 오류가 감지될 때 리소스의 로그 파일에 추가 메시지가 인쇄되지 않습니다.
각 DBMS 오류에 대한 응답으로 서버 결함 모니터가 수행하는 조치는 표 B-1에 나열된 대로 미리 설정되어 있습니다. DBMS 오류에 대한 응답을 변경해야 하는지 여부를 결정하려면 미리 정의된 조치가 적절한지 DBMS 오류가 데이터베이스에 미치는 영향을 고려하십시오. 예를 들어, 다음의 하위 절을 참조하십시오.
DBMS 오류에 대한 응답을 변경하려면 다음과 같이 키워드가 설정된 사용자 정의 조치 파일의 항목을 만듭니다.
ERROR_TYPE이 DBMS_ERROR로 설정됩니다.
ERROR가 DBMS 오류의 오류 번호로 설정됩니다.
ACTION이 필요한 조치로 설정됩니다.
서버 결함 모니터가 무시하는 오류가 여러 세션에 영향을 미치는 경우 서비스 손실을 막으려면 서버 결함 모니터의 조치가 필요할 수 있습니다.
예를 들어, Oracle 오류 4031: unable to allocate num-bytes bytes of shared memory에 대해 미리 설정된 조치가 없습니다. 그러나 이 Oracle 오류는 SGA(공유 전역 영역)에 메모리가 부족하거나 단편화가 잘못되었음(또는 둘 다)을 나타냅니다. 이 오류가 단일 세션에만 영향을 미치는 경우 오류를 무시하는 것이 적절할 수 있습니다. 그러나 이 오류가 여러 세션에 영향을 미치는 경우 서버 결함 모니터가 데이터베이스를 다시 시작하도록 지정할 것을 고려하십시오.
다음 예제는 DBMS 오류에 대한 응답을 다시 시작으로 변경하기 위한 사용자 정의 조치 파일의 항목을 보여줍니다.
예 1-3 DBMS 오류에 대한 응답을 다시 시작으로 변경
{ ERROR_TYPE=DBMS_ERROR; ERROR=4031; ACTION=restart; CONNECTION_STATE=*; NEW_STATE=*; MESSAGE="Insufficient memory in shared pool."; }
이 예제는 DBMS 오류 4031에 대한 미리 설정된 조치를 대체하는 사용자 정의 조치 파일의 항목을 보여줍니다. 이 항목은 다음 동작을 지정합니다.
DBMS 오류 4031에 대한 응답으로 서버 결함 모니터가 수행하는 조치는 다시 시작입니다.
이 항목은 오류가 감지될 때 데이터베이스와 서버 결함 모니터 간의 연결 상태에 관계없이 적용됩니다.
오류가 감지된 후에 데이터베이스와 서버 결함 모니터 간의 연결 상태는 변화가 없어야 합니다.
이 오류가 감지될 때 리소스의 로그 파일에 다음 메시지가 인쇄됩니다.
Insufficient memory in shared pool.
서버 결함 모니터가 응답하는 오류의 영향이 사소한 경우 오류를 무시하는 것이 오류에 응답하는 것보다 덜 번거로울 수 있습니다.
예를 들어, Oracle 오류 4030: out of process memory when trying to allocate num-bytes bytes에 대한 미리 설정된 조치는 다시 시작입니다. 이 Oracle 오류는 서버 결함 모니터가 개인 힙 메모리를 할당할 수 없음을 나타냅니다. 이 오류의 한가지 가능한 원인은 운영 체제에 사용 가능한 메모리가 부족한 것입니다. 이 오류가 여러 세션에 영향을 미치는 경우 데이터베이스를 다시 시작하는 것이 적절할 수 있습니다. 그러나 해당 세션에 더 이상 개인 메모리가 필요 없기 때문에 이 오류가 다른 세션에 영향을 주지 않을 수 있습니다. 이 경우 서버 결함 모니터가 오류를 무시하도록 지정할 것을 고려하십시오.
다음 예제는 DBMS 오류를 무시하기 위한 사용자 정의 조치 파일의 항목을 보여줍니다.
예 1-4 DBMS 오류 무시
{ ERROR_TYPE=DBMS_ERROR; ERROR=4030; ACTION=none; CONNECTION_STATE=*; NEW_STATE=*; MESSAGE=""; }
이 예제는 DBMS 오류 4030에 대한 미리 설정된 조치를 대체하는 사용자 정의 조치 파일의 항목을 보여줍니다. 이 항목은 다음 동작을 지정합니다.
서버 결함 모니터가 DBMS 오류 4030을 무시합니다.
이 항목은 오류가 감지될 때 데이터베이스와 서버 결함 모니터 간의 연결 상태에 관계없이 적용됩니다.
오류가 감지된 후에 데이터베이스와 서버 결함 모니터 간의 연결 상태는 변화가 없어야 합니다.
이 오류가 감지될 때 리소스의 로그 파일에 추가 메시지가 인쇄되지 않습니다.
Oracle 소프트웨어는 alert_log_file 확장 등록 정보로 식별된 파일에 경고를 로깅합니다. 서버 결함 모니터는 이 파일을 스캔하고 조치가 정의된 경고에 대한 응답으로 조치를 수행합니다.
조치가 미리 설정된 로깅된 경고가 표 B-2에 나열됩니다. 미리 설정된 조치를 변경하거나 서버 결함 모니터가 응답하는 새 경고를 정의하려면 로깅된 경고에 대한 응답을 변경합니다.
로깅된 경고에 대한 응답을 변경하려면 다음과 같이 키워드가 설정된 사용자 정의 조치 파일의 항목을 만듭니다.
ERROR_TYPE이 SCAN_LOG로 설정됩니다.
ERROR가 Oracle 경고 로그 파일에 로깅된 오류 메시지의 문자열을 식별하는 인용된 정규 표현식으로 설정됩니다.
ACTION이 필요한 조치로 설정됩니다.
서버 결함 모니터는 항목이 발생한 순서대로 사용자 정의 조치 파일의 항목을 처리합니다. 로깅된 경고와 일치하는 첫번째 항목만 처리됩니다. 나중에 일치하는 항목은 무시됩니다. 여러 로깅된 경보에 대한 조치를 지정하기 위해 정규 표현식을 사용하는 경우 구체적 항목이 일반적 항목보다 먼저 발생하도록 합니다. 일반적 항목 후에 발생하는 구체적 항목은 무시될 수 있습니다.
예를 들어, 사용자 정의 조치 파일이 정규 표현식 ORA-65 및 ORA-6으로 식별된 오류에 대해 여러 조치를 정의할 수 있습니다. 정규 표현식 ORA-65가 포함된 항목이 무시되지 않도록 하려면 이 항목이 정규 표현식 ORA-6이 포함된 항목 앞에 발생하도록 하십시오.
다음 예제는 로깅된 경고에 대한 응답을 변경하기 위한 사용자 정의 조치 파일의 항목을 보여줍니다.
예 1-5 로깅된 경고에 대한 응답 변경
{ ERROR_TYPE=SCAN_LOG; ERROR="ORA-00600: internal error"; ACTION=RESTART; }
이 예제는 내부 오류에 대해 로깅된 경고에 대한 미리 설정된 조치를 대체하는 사용자 정의 조치 파일의 항목을 보여줍니다. 이 항목은 다음 동작을 지정합니다.
ORA-00600: internal error 텍스트가 포함된 로깅된 경고에 대한 응답으로 서버 결함 모니터가 수행하는 조치는 다시 시작입니다.
이 항목은 오류가 감지될 때 데이터베이스와 서버 결함 모니터 간의 연결 상태에 관계없이 적용됩니다.
오류가 감지된 후에 데이터베이스와 서버 결함 모니터 간의 연결 상태는 변화가 없어야 합니다.
이 오류가 감지될 때 리소스의 로그 파일에 추가 메시지가 인쇄되지 않습니다.
기본적으로, 서버 결함 모니터는 두번째 연속 시간 초과된 프로브 후에 데이터베이스를 다시 시작합니다. 데이터베이스 로드가 가벼운 경우 두 개의 연속 시간 초과된 프로브로도 데이터베이스의 정지 상태를 나타내기에 충분합니다. 그러나 로드가 무거운 동안에는 데이터베이스가 제대로 작동하는 경우에도 서버 결함 모니터 프로브가 시간 초과될 수 있습니다. 서버 결함 모니터가 데이터베이스를 불필요하게 다시 시작하지 못하게 하려면 연속 시간 초과된 프로브의 최대 개수를 늘리십시오.
주의 - 연속 시간 초과된 프로브의 최대 개수를 늘리면 데이터베이스의 정지 상태를 감지하는 데 필요한 시간이 늘어납니다. |
연속 시간 초과된 프로브의 최대 허용된 개수를 변경하려면 첫번째 시간 초과된 프로브를 제외하고 허용된 각 연속 시간 초과된 프로브에 대해 사용자 정의 조치 파일의 항목을 만듭니다.
주 - 첫번째 시간 초과된 프로브의 항목은 만들 필요가 없습니다. 첫번째 시간 초과된 프로브에 대한 응답으로 서버 결함 모니터가 수행하는 조치는 미리 설정입니다.
마지막 허용된 시간 초과된 프로브의 경우 다음과 같이 키워드가 설정된 항목을 만듭니다.
ERROR_TYPE이 TIMEOUT_ERROR로 설정됩니다.
ERROR가 허용된 연속 시간 초과된 프로브의 최대 개수로 설정됩니다.
ACTION이 RESTART로 설정됩니다.
첫번째 시간 초과된 프로브를 제외한 나머지 연속 시간 초과된 프로브의 경우 다음과 같이 키워드가 설정된 항목을 만듭니다.
ERROR_TYPE이 TIMEOUT_ERROR로 설정됩니다.
ERROR가 시간 초과된 프로브의 시퀀스 번호로 설정됩니다. 예를 들어, 두번째 연속 시간 초과된 프로브의 경우 이 키워드를 2로 설정합니다. 세번째 연속 시간 초과된 프로브의 경우 이 키워드를 3으로 설정합니다.
ACTION이 NONE으로 설정됩니다.
참고 - 디버깅을 활용하려면 시간 초과된 프로브의 시퀀스 번호를 나타내는 메시지를 지정합니다.
다음 예제는 연속 시간 초과된 프로브의 최대 개수를 5로 늘리기 위한 사용자 정의 조치 파일의 항목을 보여줍니다.
예 1-6 연속 시간 초과된 프로브의 최대 개수 변경
{ ERROR_TYPE=TIMEOUT; ERROR=2; ACTION=NONE; CONNECTION_STATE=*; NEW_STATE=*; MESSAGE="Timeout #2 has occurred."; } { ERROR_TYPE=TIMEOUT; ERROR=3; ACTION=NONE; CONNECTION_STATE=*; NEW_STATE=*; MESSAGE="Timeout #3 has occurred."; } { ERROR_TYPE=TIMEOUT; ERROR=4; ACTION=NONE; CONNECTION_STATE=*; NEW_STATE=*; MESSAGE="Timeout #4 has occurred."; } { ERROR_TYPE=TIMEOUT; ERROR=5; ACTION=RESTART; CONNECTION_STATE=*; NEW_STATE=*; MESSAGE="Timeout #5 has occurred. Restarting."; }
이 예제는 연속 시간 초과된 프로브의 최대 개수를 5로 늘리기 위한 사용자 정의 조치 파일의 항목을 보여줍니다. 이러한 항목은 다음 동작을 지정합니다.
서버 결함 모니터가 두번째 연속 시간 초과된 프로브에서 네번째 연속 시간 초과된 프로브까지 무시합니다.
다섯번째 연속 시간 초과된 프로브에 대한 응답으로 서버 결함 모니터가 수행하는 조치는 다시 시작입니다.
이 항목은 시간 초과가 발생할 때 데이터베이스와 서버 결함 모니터 간의 연결 상태에 관계없이 적용됩니다.
시간 초과가 발생한 후에 데이터베이스와 서버 결함 모니터 간의 연결 상태는 변화가 없어야 합니다.
두번째 연속 시간 초과된 프로브에서 네번째 연속 시간 초과된 프로브가 발생할 때 다음 형태의 메시지가 리소스의 로그 파일에 인쇄됩니다.
Timeout #number has occurred.
다섯번째 연속 시간 초과된 프로브가 발생할 때 다음 메시지가 리소스의 로그 파일에 인쇄됩니다.
Timeout #5 has occurred. Restarting.
서버 결함 모니터는 모든 클러스터 노드에서 일관되게 작동해야 합니다. 따라서 서버 결함 모니터가 사용하는 사용자 정의 조치 파일이 모든 클러스터 노드에서 동일해야 합니다. 사용자 정의 조치 파일을 만들거나 수정한 후에 이 파일을 모든 클러스터 노드로 전파하여 모든 클러스터 노드에서 동일한지 확인합니다. 모든 클러스터 노드로 파일을 전파하려면 다음 중 클러스터 구성에 가장 적절한 방법을 사용합니다.
모든 노드가 공유하는 파일 시스템에 파일 배치
고가용성 로컬 파일 시스템에 파일 배치
rcp 명령 또는 rdist 명령과 같은 운영 체제 명령을 사용하여 각 클러스터 노드의 로컬 파일 시스템에 파일 복사
사용자 정의된 조치를 서버 결함 모니터에 적용하려면 결함 모니터가 사용할 사용자 정의 조치 파일을 지정해야 합니다. 서버 결함 모니터가 사용자 정의 조치 파일을 읽을 때 사용자 정의된 조치가 서버 결함 모니터에 적용됩니다. 사용자 정의 조치 파일을 지정할 때 서버 결함 모니터가 파일을 읽습니다.
사용자 정의 조치 파일을 지정하면 파일이 검증됩니다. 파일에 구문 오류가 있으면 오류 메시지가 표시됩니다. 따라서 사용자 정의 조치 파일을 수정한 후에 파일을 검증하려면 파일을 다시 지정하십시오.
주의 - 수정된 사용자 정의 조치 파일에 구문 오류가 감지된 경우 결함 모니터를 다시 시작하기 전에 오류를 수정하십시오. 결함 모니터를 다시 시작할 때 구문 오류가 해결되지 않으면 결함 모니터가 오류가 있는 파일을 읽고, 첫번째 구문 오류 후에 발생하는 항목은 무시됩니다. |
이 등록 정보를 사용자 정의 조치 파일의 절대 경로로 설정합니다.
# clresource set -p custom_action_file=filepath server-resource
사용자 정의 조치 파일의 절대 경로를 지정합니다.
SUNW.oracle_server 리소스를 지정합니다.