IT기술/Oracle

04 RAC 운영하기 (2/2)

dobbby 2021. 6. 18. 17:45
반응형

6. Service 재배치 하기
SERVICE: RAC 안에서 제공해주는 업무
이 명령을 사용하여 현재 운영중인 서비스들의 인스턴스를 변경할 수 있습니다.
예를 들어 인사관리를 위한 insa 서비스가 기존에 rac1 에서 서비스 중이었는데 
rac1 을 패치하기 위해서 서비스를 rac2 로 이동해야 할 경우 등에 사용하는 명령입니다.

srvctl  relocate  service  -d db_unique_name  -s  service_name  -i old_inst_name
-t new_inst_name [-f] 

위 명령의 주요 옵션은 아래와 같습니다.
-d db_unique_name     Unique database name 을 지정합니다.
-s service_name       Service name 을 지정합니다.
-i old_inst_name        현재 서비스 중인 instance name 을 지정합니다.
-t new_inst_name       새로 변경할 instance name 을 지정합니다.
-f                  서비스 재배치를 할 때 현재 접속 중인 세션을 모두 강제 종료 시킵니다.

사용 예) 
인사관리를 위한 insa 서비스를 rac1 instance 에 생성한 후 이 명령을 사용해서 rac2 instance 로 변경합니다.

[oracle@rac2 ~]$ srvctl add service -d rac -s insa -r rac1 -a rac2
[oracle@rac2 ~]$ srvctl start service -d rac -s insa 

insa 서비스가 rac1 에서 작동하는 것이 확인됩니다.
위에서 확인한 rac1 에서 동작 중인 insa 서비스를 rac2 로 이동하겠습니다.
$ srvctl relocate service -d rac -s insa -i rac1 -t rac2

기존 rac1 -> rac2 로 변경된 것이 보입니다.
클라이언트(PC) 에서 tnsnames.ora 파일을 수정해서 insa 서비스에 접속한 후 instance name 을 확인해 보겠습니다.
tnsnames.ora 파일에 아래와 같은 내용을 추가합니다.

 

pc 에서 서버로 접속하여 확인합니다.

 

 

다시 rac1 으로 변경 후 확인 해 보겠습니다
srvctl relocate service -d rac -s insa -i rac2 -t rac1 

 

 

 

 

 

 

7. CRS 자원의 일시적인 활성화 / 비활성화 설정하기

주요 명령은 아래와 같습니다.
- 활성화 하기
$ srvctl enable database -d <database-name> 
$ srvctl enable instance -d <database-name> -i <instance-name> [,<instnacnename-list>] 
$ srvctl enable service -d <database-name> -s <service-name>][,<servicename-list>][-i <instance-name>]

- 비활성화 하기
$ srvctl disable database -d <database-name> 
$ srvctl disable instance -d <database-name> -i <instnace-name> [,<instancename-list>] 
$ srvctl disable service -d <database-name> -s <service-name>][,<service-name-list>][-i <instance-name>]

위 명령을 사용하여 insa 서비스를 비활성화 시킨 후 접속 테스트를 해 보겠습니다.
$ srv disable service -d rac -s insa
$ srvctl stop service -d rac -s insa
$ srvctl disable service -d rac -s insa

위와 같이 실행중인 서비스는 사용 안 함으로 변경할 수 없어서 중단 후 사용 안 함으로 변경합니다.

이제 client 에서 insa 서비스로 접속해 있던 사용자 창에서 조회를 해 보고 새로 접속을 시도 해보겠습니다.
먼저 서비스가 중단되기 전에 접속해 있던 세션부터 확인합니다.

 

 

 

 

이번에는 새로 접속을 시도합니다.

 

 

당연히 에러가 발생합니다.
이번에는 insa service 를 활성화 한 후 접속 테스트를 합니다.
srvctl enable service -d rac -s insa

 

 

여전히 접속이 안됨을 알 수 있습니다.
crs_stat -t 로 현재 상태를 조회합니다.

 

 

 

위 화면을 보면 service 를 enable 해도 여전히 service 는 offline 상태임을 알 수 있습니다.
즉 해당 서비스를 다시 사용하려면 service 를 start 해야 합니다.

srvctl start service -d rac -s insa

 

 

이상으로 srvctl 로 RAC 서비스와 자원을 관리하는 방법을 살펴보았습니다.



8. rac 관련 로그 경로 및 내용 확인하기
- $ORA_CRS_HOME/crs/log : CRS resources 와 관련된 주요 내용이 저장됩니다.
- $ORA_CRS_HOME/crs/init : CRS daemon 이 시작될 때부터 관련 내용을 기록합니다. 

 

CRS 시작 관련된 장애 내용 등을 확인 할 경우 유용합니다.
- $ORA_CRS_HOME/css/log : Cluster Synchronization (CSS) 데몬이 수행 하는 reconfigurations, missed check-ins, 
connects, disconnects 관련된 내용을 기록합니다. 
만약 CSS 데몬에 문제가 발생해서 재부팅을 할 경우 이 파일의 내용을 확인하여 시간과 내역을 찾아볼 수 있습니다.
- $ORA_CRS_HOME/css/init : Oracle Cluster Synchronization Service daemon (OCSSd) 데몬이 장애가 발생했을 경우 
Core Dump 관련 내용을 저장하고 있습니다.
- $ORA_CRS_HOME/evm/log : Event Volume Manager (EVM) 데몬과 evmlogger 데몬 관련 로그파일입니다.
- $ORA_CRS_HOME/evm/init : EVM 데몬과 관련된 PID 와 lock file 입니다. 
이 파일에 EVM 관련된 문제가 발생 될 경우 Core Dump 도 기록됩니다.
- $ORA_CRS_HOME/srvm/log : Oracle Cluster Registry (OCR) 과 관련된 log file 입니다. 
- $ORA_CRS_HOME/log : Oracle Clusterware 관련된 일반적 내용이 저장되는 log file 입니다. 
 가장 일반적으로 많이 모니터링 됩니다.

반응형