"오라클 rac 시작 종료"의 두 판 사이의 차이
DB CAFE
(→활성화 하기) |
|||
(같은 사용자의 중간 판 40개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
− | + | == RAC DB 상태(시작/종료) 확인 == | |
− | + | ||
− | + | === RAC DB 상태 확인 명령 === | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | 상태 확인 명령 : | |
+ | crs_stat , srvctl | ||
<source lang=shell> | <source lang=shell> | ||
− | + | crs_stat -t | |
</source> | </source> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<source lang=shell> | <source lang=shell> | ||
Usage: crs_stat [resource_name [...]] [-v] [-l] [-q] [-c cluster_member] | Usage: crs_stat [resource_name [...]] [-v] [-l] [-q] [-c cluster_member] | ||
314번째 줄: | 20번째 줄: | ||
</source> | </source> | ||
− | + | * Target : 목표 상태 | |
− | + | * State : 현재 상태 | |
− | + | * Host : 작동 노드 | |
− | |||
+ | Target 와 State 가 모두 Online 상태가 되면 정상적으로 작동 중. | ||
− | * | + | *.실시간으로 위와 같은 상황을 조회하려면 리눅스에서는 watch 명령(1초마다 반복 실행) |
− | |||
− | |||
− | |||
− | |||
− | |||
<source lang=shell> | <source lang=shell> | ||
− | + | watch -n 1 'crs_stat -t' | |
</source> | </source> | ||
− | + | * srvctl 명령 : 보다 세부적인 내용 확인 가능 | |
− | |||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl status database[/instance/service/nodeapps/asm] -d [DB명] | |
− | |||
− | |||
− | |||
− | |||
− | |||
</source> | </source> | ||
− | |||
− | |||
− | + | === DB 상태 현재 상태 확인 === | |
− | |||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl status database -d <database-name> [-f][-v][-S <level>] | |
− | |||
− | |||
</source> | </source> | ||
+ | 예) srvctl status database -d DB명 -v | ||
+ | === DB 인스턴스 상태 확인 === | ||
<source lang=shell> | <source lang=shell> | ||
− | + | [<instancename-list>][-f][-v]-S <level>] | |
</source> | </source> | ||
− | |||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl status instance -d <database-name> -i <instance-name> | |
</source> | </source> | ||
− | + | 예) srvctl status instance -d DB명 -i rac1번인스턴스명, rac2번 인스턴스명 | |
− | |||
− | |||
− | |||
− | |||
+ | === DB 서비스명 상태 확인 === | ||
+ | * [<service-namelist>][-f][-v][-S <level>] | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl status service -d <database-name> -s <service_name> | |
</source> | </source> | ||
− | |||
− | + | === DB 노드APP 별 상태 확인 === | |
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl status nodeapps [-n <node-name>] | |
</source> | </source> | ||
− | + | 예) srvctl status nodeapps -n rac1번 노드명 | |
− | + | === ASM 상태 확인 === | |
<source lang=shell> | <source lang=shell> | ||
− | + | srcvtl status asm -n <node_name> | |
</source> | </source> | ||
− | + | -------------- | |
− | |||
− | |||
− | |||
− | |||
− | RAC | + | == RAC DB 종료 == |
− | + | {{고지상자 | |
− | srvctl 명령을 사용하며 중단을 시키는 순서는 | + | |제목=" RAC는 중단 순서가 중요. " |
− | + | |내용=*srvctl 명령을 사용하며 중단을 시키는 순서는 | |
+ | 인스턴스 --> ASM(ASM 구성시) --> application 순서 | ||
+ | }} | ||
− | + | * 정지 명령어 : srvctl | |
+ | === 데이터베이스 정지 === | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl stop database -d DB명 [-o <stop-options: immediate/abort/nomount/.. >] | |
− | |||
[-c <connect-string> | -q] | [-c <connect-string> | -q] | ||
</source> | </source> | ||
+ | |||
+ | === 인스턴스 정지 === | ||
+ | 예) srvctl stop instance -d DB명 -i rac1번인스턴스명 | ||
+ | (1번 인스턴스만 정지, 2번 인스턴스는 작동중..) | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl stop instance -d <database-name> -i <instance-name> | |
− | |||
[,<instance-namelist>][-o <stop-option>][-c <connect -string> | -q] | [,<instance-namelist>][-o <stop-option>][-c <connect -string> | -q] | ||
</source> | </source> | ||
+ | === 서비스 정지 === | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl stop service -d <database-name> [-s <service-name> [, <service-namelist>]] | |
− | |||
[-i <instance-name][-c <connect -string> | -q][-f] | [-i <instance-name][-c <connect -string> | -q][-f] | ||
</source> | </source> | ||
+ | === 노드 정지 === | ||
+ | <source lang=shell> | ||
+ | srvctl stop nodeapps -n <node-name> | ||
+ | </source> | ||
+ | === ASM 정지 === | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl stop asm -n <node_name> [-i | |
</source> | </source> | ||
+ | |||
+ | ---------------------- | ||
+ | |||
+ | ==== RAC 정지 확인 명령어 ==== | ||
<source lang=shell> | <source lang=shell> | ||
− | + | crs_stat -t | |
</source> | </source> | ||
− | |||
− | |||
+ | * 인스턴스1이 종료 확인. | ||
+ | 그러나 Database는 아직 중단이 되지 않음. | ||
+ | 인스턴스2번 운영 중임. | ||
+ | |||
+ | * 인스턴스2번 정지 | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl stop instance -d RAC -i rac2 | |
</source> | </source> | ||
+ | 모든 Instance 와 Database 가 OFFLINE 확인. | ||
− | |||
− | |||
− | |||
<source lang=shell> | <source lang=shell> | ||
crs_stat -t | crs_stat -t | ||
</source> | </source> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | 이후 노드APP 종료 | |
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl stop nodeapps -n rac1 | |
</source> | </source> | ||
− | |||
− | |||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl stop nodeapps -n rac2 | |
</source> | </source> | ||
+ | |||
+ | 모두 정상적으로 OFFLINE 확인. | ||
+ | ==== CRS 전체 정지 명령 ==== | ||
+ | * root 나 grid 권한으로 | ||
<source lang=shell> | <source lang=shell> | ||
− | + | crs_stop -all | |
</source> | </source> | ||
− | |||
− | |||
− | + | 위와 같이 한 단계씩 수동으로 종료할 수도 있고 | |
− | 위와 같이 한 단계씩 수동으로 종료할 수도 있고 crs_stop -all 명령을 이용해서 한꺼번에 자동으로 종료시킬 수도 있습니다. | + | crs_stop -all 명령을 이용해서 한꺼번에 자동으로 종료시킬 수도 있습니다. |
− | |||
− | |||
− | + | ---------------------- | |
− | |||
− | |||
− | |||
+ | == RAC DB 시작 == | ||
+ | {{고지상자 | ||
+ | |제목= " 시작하는 순서는 중단 순서와 반대." | ||
+ | |내용=#application --> ASM (ASM 일경우) --> Instance 순서로 시작. | ||
+ | #종료할 때와 마찬가지로 srvctl 명령으로 시작합니다. | ||
+ | }} | ||
+ | ==== 시작 명령어 ==== | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl start database -d <database-name> [-o <start-options>][-c <connect-string> | -q] | |
</source> | </source> | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl start instance -d <database-name> -i <instance-name> [,<instance-name-list>] | |
[-o <start-option>][-c <connect -string> | -q] | [-o <start-option>][-c <connect -string> | -q] | ||
482번째 줄: | 177번째 줄: | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl start service -d <database-name> [-s <service-name> [, <service-namelist>]] | |
[-i <instance-name>][-o <start-option>][-c <connect -string> | -q] | [-i <instance-name>][-o <start-option>][-c <connect -string> | -q] | ||
488번째 줄: | 183번째 줄: | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl start nodeapps -n <node-name> | |
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl start asm -n <node_name> [-i | |
</source> | </source> | ||
<source lang=shell> | <source lang=shell> | ||
− | + | crs_stat -t | |
</source> | </source> | ||
현재 상태는 모두 offline 입니다. | 현재 상태는 모두 offline 입니다. | ||
− | |||
먼저 node application 부터 시작합니다. | 먼저 node application 부터 시작합니다. | ||
+ | ==== node 어플리케이션 시작 ==== | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl start nodeapps -n rac1 | |
</source> | </source> | ||
513번째 줄: | 208번째 줄: | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl start nodeapps -n rac2 | |
</source> | </source> | ||
− | + | * rac1 ,rac2 에서 node application이 정상 작동 확인 | |
+ | |||
+ | |||
+ | ==== ASM 구성시 ASM 시작 ==== | ||
+ | |||
만약 ASM 으로 구성되었을 경우는 양쪽 노드 모두에서 아래와 같이 ASM 을 시작하면 됩니다. | 만약 ASM 으로 구성되었을 경우는 양쪽 노드 모두에서 아래와 같이 ASM 을 시작하면 됩니다. | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl start asm -n rac1 | |
</source> | </source> | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl start asm -n rac2 | |
</source> | </source> | ||
− | + | ||
+ | |||
+ | ==== 인스턴스 시작 ==== | ||
+ | |||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl start instance -d rac -i rac1 | |
</source> | </source> | ||
− | + | ||
− | + | Instance가 1 개라도 시작이 되면 Database가 시작됨. | |
− | 나머지 Instance 도 | + | |
+ | ===== 나머지 Instance 도 시작 ===== | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl start instance -d rac -i rac2 | |
</source> | </source> | ||
− | Instance 가 모두 시작 되어도 서비스가 시작이 안 될 경우 아래와 같이 특정 | + | * Instance 가 모두 시작 되어도 서비스가 시작이 안 될 경우 |
− | + | 아래와 같이 특정 서비스 실행. | |
+ | <source lang=shell> | ||
+ | srvctl start service -d rac -s rac -i rac1 | ||
+ | </source> | ||
+ | ==== CRS 한번에 시작 하는 명령어 ==== | ||
<source lang=shell> | <source lang=shell> | ||
− | + | crs_start -all | |
</source> | </source> | ||
+ | * crs_start -all 명령은 위 단계들을 모두 한꺼번에 모아서 실행하는 스크립트. | ||
− | + | == RAC 리소스 추가/삭제 == | |
− | |||
− | + | 자원의 시작과 종료 외에도 srvctl 명령을 사용하여 운영 중인 RAC 에서 여러 가지 자원을 추가. | |
− | + | * DB 추가 | |
− | |||
− | |||
− | |||
− | |||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl add database -d <name> -o <oracle_home> [-m <domain_name>][-p <spfile>] | |
[-A <name|ip>/netmask][-r{PRIMARY | PHYSICAL_STANDBY | LOGICAL_STANDBY}] | [-A <name|ip>/netmask][-r{PRIMARY | PHYSICAL_STANDBY | LOGICAL_STANDBY}] | ||
563번째 줄: | 266번째 줄: | ||
</source> | </source> | ||
+ | * 인스턴스 추가 | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl add instance -d <name> -i <inst_name> -n <node_name> | |
</source> | </source> | ||
+ | |||
+ | * 서비스 추가 | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl add service -d <name> -s <service_name> -r <preferred_list> [-a | |
[-P <TAF_policy>][-u] | [-P <TAF_policy>][-u] | ||
</source> | </source> | ||
+ | * 노드 추가 | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl add noeapps -n <node_name> -o <oracle_home> [-A <name|ip>/netmask[/if1[|if2|….]]] | |
</source> | </source> | ||
+ | * ASM 추가 | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl add asm -n <node_name> i | |
</source> | </source> | ||
+ | ==== RAC 리소스 추가 ==== | ||
+ | 인사 관리작업을 위한 insa 서비스를 추가하되 rac2 에서 서비스 하고 rac1 에서는 대기 상태로 생성하겠습니다. | ||
+ | |||
+ | 예시) insa 서비스 추가 후 rac2 에서 서비스 , rac1 에서는 대기 상태로 생성 | ||
− | + | <source lang=shell> | |
+ | srvctl add service -d rac -s insa -r rac2 -a rac1 | ||
+ | </source> | ||
− | |||
+ | 위와 같이 서비스를 생성 한 후 확인 | ||
<source lang=shell> | <source lang=shell> | ||
− | + | crs_stat -t | |
</source> | </source> | ||
− | + | * insa 서비스가 생성은 되었으나 실행은 되지 않음. | |
− | + | * 해당 서비스를 명령어로 실행. | |
− | |||
− | |||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl start service -d rac -s insa | |
</source> | </source> | ||
− | 정상적으로 잘 실행 되는 | + | * 정상적으로 잘 실행 되는 것 확인 |
srvctl 명령어를 이용해서 기존에 존재하는 자원을 제거 할 수도 있습니다. | srvctl 명령어를 이용해서 기존에 존재하는 자원을 제거 할 수도 있습니다. | ||
606번째 줄: | 318번째 줄: | ||
주요 명령어는 아래와 같습니다 | 주요 명령어는 아래와 같습니다 | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl remove database -d <database-name> | |
</source> | </source> | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl remove database -d <database-name> [-i <instance-name>] | |
</source> | </source> | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl remove database -d <database-name> -s <service-name> | |
[-i <instance-name>] | [-i <instance-name>] | ||
</source> | </source> | ||
+ | ==== RAC 리소스 삭제 ==== | ||
− | + | * insa 서비스 중지 후 | |
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl stop service -d rac -s insa | |
− | |||
− | |||
− | |||
</source> | </source> | ||
+ | |||
+ | * insa 서비스를 제거 | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl remove service -d rac -s insa | |
</source> | </source> | ||
− | |||
만약 여러 개의 인스턴스에서 실행 중인 서비스인 경우 특정 인스턴스에서만 제거를 해야 할 | 만약 여러 개의 인스턴스에서 실행 중인 서비스인 경우 특정 인스턴스에서만 제거를 해야 할 | ||
− | + | 경우 -i 옵션을 함께 사용 | |
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl remove service -d rac -s insa -i rac1 | |
</source> | </source> | ||
− | + | ==== srvctl 명령을 사용하여 rac service 관련 설정 변경 ==== | |
+ | |||
+ | srvctl modify 명령 사용하여 현재 설정되어 있는 값 변경 | ||
− | + | srvctl modify database -> Database 와 관련된 설정을 변경할 수 있습니다. | |
− | srvctl modify database Database 와 관련된 설정을 변경할 수 있습니다. | + | srvctl modify instance -> Instance 와 관련된 설정을 변경할 수 있습니다. |
− | srvctl modify instance Instance 와 관련된 설정을 변경할 수 있습니다. | + | srvctl modify service -> Service 와 관련된 설정을 변경할 수 있습니다. |
− | srvctl modify service Service 와 관련된 설정을 변경할 수 있습니다. | + | srvctl modify nodeapps -> node application 과 관련된 설정을 변경할 수 있습니다. |
− | srvctl modify nodeapps node application 과 관련된 설정을 변경할 수 있습니다. | ||
1) srvctl modify database | 1) srvctl modify database | ||
+ | |||
<source lang=shell> | <source lang=shell> | ||
srvctl modify database -d db_unique_name [-n db_name] [-o oracle_home] [-m domain_name] | srvctl modify database -d db_unique_name [-n db_name] [-o oracle_home] [-m domain_name] | ||
654번째 줄: | 367번째 줄: | ||
</source> | </source> | ||
− | + | * 주요 옵션 | |
-d db_unique_name 유일한(Unique) DB 이름을 지정합니다. | -d db_unique_name 유일한(Unique) DB 이름을 지정합니다. | ||
669번째 줄: | 382번째 줄: | ||
2) srvctl modify instance | 2) srvctl modify instance | ||
+ | |||
<source lang=shell> | <source lang=shell> | ||
srvctl modify instance -d db_unique_name -i inst_name | srvctl modify instance -d db_unique_name -i inst_name | ||
675번째 줄: | 389번째 줄: | ||
</source> | </source> | ||
− | + | * 주요 옵션 | |
d db_unique_name database Unique name 을 설정합니다. | d db_unique_name database Unique name 을 설정합니다. | ||
688번째 줄: | 402번째 줄: | ||
이 명령을 사용하여 서비스 중인 노드들의 설정을 변경할 수 있습니다. | 이 명령을 사용하여 서비스 중인 노드들의 설정을 변경할 수 있습니다. | ||
그러나 이 명령은 아래와 같이 몇 가지 주의 사항이 있습니다. | 그러나 이 명령은 아래와 같이 몇 가지 주의 사항이 있습니다. | ||
+ | |||
- 새로운 변경 사항이 생길 때 기존 운영중인 서비스에는 반영이 되지 않습니다. | - 새로운 변경 사항이 생길 때 기존 운영중인 서비스에는 반영이 되지 않습니다. | ||
즉 변경사항을 운영중인 서비스에 적용하려면 기존 서비스를 중단 한 후 새로 시작해야 합니다. | 즉 변경사항을 운영중인 서비스에 적용하려면 기존 서비스를 중단 한 후 새로 시작해야 합니다. | ||
700번째 줄: | 415번째 줄: | ||
− | + | * 주요 옵션 | |
+ | |||
-d db_unique_name Unique database name 을 설정합니다. | -d db_unique_name Unique database name 을 설정합니다. | ||
-s service_name Service name 을 지정합니다. | -s service_name Service name 을 지정합니다. | ||
723번째 줄: | 439번째 줄: | ||
− | + | ==== Service 재배치 하기 ==== | |
SERVICE: RAC 안에서 제공해주는 업무 | SERVICE: RAC 안에서 제공해주는 업무 | ||
− | 이 명령을 사용하여 현재 운영중인 서비스들의 | + | 이 명령을 사용하여 현재 운영중인 서비스들의 인스턴스 변경 |
예를 들어 인사관리를 위한 insa 서비스가 기존에 rac1 에서 서비스 중이었는데 | 예를 들어 인사관리를 위한 insa 서비스가 기존에 rac1 에서 서비스 중이었는데 | ||
− | + | rac1 을 패치하기 위해서 서비스를 rac2 로 이동해야 할 경우 등에 사용하는 명령. | |
− | rac1 을 패치하기 위해서 서비스를 rac2 로 이동해야 할 경우 등에 사용하는 | ||
<source lang=shell> | <source lang=shell> | ||
740번째 줄: | 455번째 줄: | ||
− | + | * 주요 옵션 | |
-d db_unique_name Unique database name 을 지정합니다. | -d db_unique_name Unique database name 을 지정합니다. | ||
749번째 줄: | 464번째 줄: | ||
− | + | 예시) | |
− | + | 인사관리를 위한 insa 서비스를 rac1 instance 에 생성한 후 이 명령을 사용해서 rac2 instance 로 변경. | |
− | 인사관리를 위한 insa 서비스를 rac1 instance 에 생성한 후 이 명령을 사용해서 rac2 instance 로 | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl add service -d rac -s insa -r rac1 -a rac2 | |
</source> | </source> | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl start service -d rac -s insa | |
</source> | </source> | ||
− | + | insa 서비스가 rac1 에서 작동하는 것이 확인. | |
− | + | 확인한 rac1 에서 동작 중인 insa 서비스를 rac2 로 이동. | |
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl relocate service -d rac -s insa -i rac1 -t rac2 | |
</source> | </source> | ||
− | + | * 클라이언트(PC) 에서 tnsnames.ora 파일을 수정해서 insa 서비스에 접속한 후 instance name 을 확인. | |
− | 클라이언트(PC) 에서 tnsnames.ora 파일을 수정해서 insa 서비스에 접속한 후 instance name 을 | + | * pc 에서 서버로 접속하여 확인. |
− | |||
− | |||
− | pc 에서 서버로 접속하여 | ||
− | |||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl relocate service -d rac -s insa -i rac2 -t rac1 | |
</source> | </source> | ||
− | + | ==== CRS 자원의 일시적인 활성화 / 비활성화 설정 ==== | |
− | 주요 | + | * 주요 명령 |
− | + | ||
+ | ===== 활성화 하기===== | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl enable database -d <database-name> | |
</source> | </source> | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl enable instance -d <database-name> -i <instance-name> [,<instnacnename-list>] | |
</source> | </source> | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl enable service -d <database-name> -s <service-name>][,<servicename-list>] | |
[-i <instance-name>] | [-i <instance-name>] | ||
</source> | </source> | ||
− | + | ===== 비활성화 하기 ===== | |
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl disable database -d <database-name> | |
</source> | </source> | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl disable instance -d <database-name> -i <instnace-name> [,<instancename-list>] | |
</source> | </source> | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl disable service -d <database-name> -s <service-name>][,<service-name-list>] | |
[-i <instance-name>] | [-i <instance-name>] | ||
</source> | </source> | ||
− | 위 명령을 사용하여 insa 서비스를 비활성화 시킨 후 접속 | + | 위 명령을 사용하여 insa 서비스를 비활성화 시킨 후 접속 테스트. |
<source lang=shell> | <source lang=shell> | ||
− | + | srv disable service -d rac -s insa | |
</source> | </source> | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl stop service -d rac -s insa | |
</source> | </source> | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl disable service -d rac -s insa | |
</source> | </source> | ||
− | + | 실행중인 서비스는 사용 안함으로 변경할 수 없어 중단 후 사용 안함으로 변경. | |
− | |||
− | |||
− | + | 먼저 서비스가 중단되기 전에 접속해 있던 세션부터 확인. | |
− | + | ||
− | + | 새로 접속을 시도. | |
+ | 에러가 발생합니다. | ||
+ | insa service 를 활성화 한 후 접속 테스트. | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl enable service -d rac -s insa | |
</source> | </source> | ||
− | 여전히 접속이 안됨을 알 | + | 여전히 접속이 안됨을 알 수 있습니다. |
+ | |||
+ | 현재 상태를 조회 | ||
<source lang=shell> | <source lang=shell> | ||
crs_stat -t | crs_stat -t | ||
</source> | </source> | ||
− | + | ||
− | 위 화면을 보면 service 를 enable 해도 여전히 service 는 offline 상태임을 알 수 | + | 위 화면을 보면 service 를 enable 해도 여전히 service 는 offline 상태임을 알 수 있음. |
− | 즉 해당 서비스를 다시 사용하려면 service 를 start 해야 | + | |
+ | 즉 해당 서비스를 다시 사용하려면 service 를 start 해야 함 . | ||
<source lang=shell> | <source lang=shell> | ||
− | + | srvctl start service -d rac -s insa | |
</source> | </source> | ||
− | |||
− | + | ==== rac 관련 로그 경로 및 내용 확인 ==== | |
− | - | + | |
− | - | + | - ORA_CRS_HOME/crs/log : CRS resources 와 관련된 주요 내용이 저장. |
+ | |||
+ | - ORA_CRS_HOME/crs/init : CRS daemon 이 시작될 때부터 관련 내용을 기록. | ||
CRS 시작 관련된 장애 내용 등을 확인 할 경우 유용합니다. | CRS 시작 관련된 장애 내용 등을 확인 할 경우 유용합니다. | ||
− | |||
− | connects, disconnects 관련된 내용을 | + | - ORA_CRS_HOME/css/log : Cluster Synchronization (CSS) 데몬이 수행 하는 reconfigurations, missed check-ins, |
+ | |||
+ | connects, disconnects 관련된 내용을 기록. | ||
만약 CSS 데몬에 문제가 발생해서 재부팅을 할 경우 이 파일의 내용을 확인하여 시간과 내역을 찾아볼 수 있습니다. | 만약 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. | ||
가장 일반적으로 많이 모니터링 됩니다. | 가장 일반적으로 많이 모니터링 됩니다. | ||
+ | |||
+ | [[Category:oracle]] |
2024년 1월 7일 (일) 23:17 기준 최신판
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
1 RAC DB 상태(시작/종료) 확인[편집]
1.1 RAC DB 상태 확인 명령[편집]
상태 확인 명령 : crs_stat , srvctl
crs_stat -t
Usage: crs_stat [resource_name [...]] [-v] [-l] [-q] [-c cluster_member]
crs_stat [resource_name [...]] -t [-v] [-q] [-c cluster_member]
crs_stat -p [resource_name [...]] [-q]
crs_stat [-a] application -g
crs_stat [-a] application -r [-c cluster_member]
crs_stat -f [resource_name [...]] [-q] [-c cluster_member]
crs_stat -ls [resource_name [...]] [-q]
- Target : 목표 상태
- State : 현재 상태
- Host : 작동 노드
Target 와 State 가 모두 Online 상태가 되면 정상적으로 작동 중.
- .실시간으로 위와 같은 상황을 조회하려면 리눅스에서는 watch 명령(1초마다 반복 실행)
watch -n 1 'crs_stat -t'
- srvctl 명령 : 보다 세부적인 내용 확인 가능
srvctl status database[/instance/service/nodeapps/asm] -d [DB명]
1.2 DB 상태 현재 상태 확인[편집]
srvctl status database -d <database-name> [-f][-v][-S <level>]
예) srvctl status database -d DB명 -v
1.3 DB 인스턴스 상태 확인[편집]
[<instancename-list>][-f][-v]-S <level>]
srvctl status instance -d <database-name> -i <instance-name>
예) srvctl status instance -d DB명 -i rac1번인스턴스명, rac2번 인스턴스명
1.4 DB 서비스명 상태 확인[편집]
- [<service-namelist>][-f][-v][-S <level>]
srvctl status service -d <database-name> -s <service_name>
1.5 DB 노드APP 별 상태 확인[편집]
srvctl status nodeapps [-n <node-name>]
예) srvctl status nodeapps -n rac1번 노드명
1.6 ASM 상태 확인[편집]
srcvtl status asm -n <node_name>
2 RAC DB 종료[편집]
- 정지 명령어 : srvctl
2.1 데이터베이스 정지[편집]
srvctl stop database -d DB명 [-o <stop-options: immediate/abort/nomount/.. >]
[-c <connect-string> | -q]
2.2 인스턴스 정지[편집]
예) srvctl stop instance -d DB명 -i rac1번인스턴스명 (1번 인스턴스만 정지, 2번 인스턴스는 작동중..)
srvctl stop instance -d <database-name> -i <instance-name>
[,<instance-namelist>][-o <stop-option>][-c <connect -string> | -q]
2.3 서비스 정지[편집]
srvctl stop service -d <database-name> [-s <service-name> [, <service-namelist>]]
[-i <instance-name][-c <connect -string> | -q][-f]
2.4 노드 정지[편집]
srvctl stop nodeapps -n <node-name>
2.5 ASM 정지[편집]
srvctl stop asm -n <node_name> [-i ][-o <start_option>
2.5.1 RAC 정지 확인 명령어[편집]
crs_stat -t
- 인스턴스1이 종료 확인.
그러나 Database는 아직 중단이 되지 않음. 인스턴스2번 운영 중임.
- 인스턴스2번 정지
srvctl stop instance -d RAC -i rac2
모든 Instance 와 Database 가 OFFLINE 확인.
crs_stat -t
이후 노드APP 종료
srvctl stop nodeapps -n rac1
srvctl stop nodeapps -n rac2
모두 정상적으로 OFFLINE 확인.
2.5.2 CRS 전체 정지 명령[편집]
- root 나 grid 권한으로
crs_stop -all
위와 같이 한 단계씩 수동으로 종료할 수도 있고 crs_stop -all 명령을 이용해서 한꺼번에 자동으로 종료시킬 수도 있습니다.
3 RAC DB 시작[편집]
3.1 시작 명령어[편집]
srvctl start database -d <database-name> [-o <start-options>][-c <connect-string> | -q]
srvctl start instance -d <database-name> -i <instance-name> [,<instance-name-list>]
[-o <start-option>][-c <connect -string> | -q]
srvctl start service -d <database-name> [-s <service-name> [, <service-namelist>]]
[-i <instance-name>][-o <start-option>][-c <connect -string> | -q]
srvctl start nodeapps -n <node-name>
<source lang=shell>
srvctl start asm -n <node_name> [-i ][-o <start_options>]
crs_stat -t
현재 상태는 모두 offline 입니다.
먼저 node application 부터 시작합니다.
3.2 node 어플리케이션 시작[편집]
srvctl start nodeapps -n rac1
rac1 에서 application 이 실행 된 것을 확인 할 수 있습니다.
여기서 중요한 것은 vip 와 listener 입니다. 나머지 rac2 에서도 application 을 시작합니다.
srvctl start nodeapps -n rac2
- rac1 ,rac2 에서 node application이 정상 작동 확인
3.3 ASM 구성시 ASM 시작[편집]
만약 ASM 으로 구성되었을 경우는 양쪽 노드 모두에서 아래와 같이 ASM 을 시작하면 됩니다.
srvctl start asm -n rac1
srvctl start asm -n rac2
4 RAC 리소스 추가/삭제[편집]
자원의 시작과 종료 외에도 srvctl 명령을 사용하여 운영 중인 RAC 에서 여러 가지 자원을 추가.
- DB 추가
srvctl add database -d <name> -o <oracle_home> [-m <domain_name>][-p <spfile>]
[-A <name|ip>/netmask][-r{PRIMARY | PHYSICAL_STANDBY | LOGICAL_STANDBY}]
[-s <start_options>][-n <db_name>]
- 인스턴스 추가
srvctl add instance -d <name> -i <inst_name> -n <node_name>
- 서비스 추가
srvctl add service -d <name> -s <service_name> -r <preferred_list> [-a ]
[-P <TAF_policy>][-u]
- 노드 추가
srvctl add noeapps -n <node_name> -o <oracle_home> [-A <name|ip>/netmask[/if1[|if2|….]]]
- ASM 추가
srvctl add asm -n <node_name> i -o <oracle_home>
4.1 RAC 리소스 추가[편집]
인사 관리작업을 위한 insa 서비스를 추가하되 rac2 에서 서비스 하고 rac1 에서는 대기 상태로 생성하겠습니다.
예시) insa 서비스 추가 후 rac2 에서 서비스 , rac1 에서는 대기 상태로 생성
srvctl add service -d rac -s insa -r rac2 -a rac1
위와 같이 서비스를 생성 한 후 확인
crs_stat -t
- insa 서비스가 생성은 되었으나 실행은 되지 않음.
- 해당 서비스를 명령어로 실행.
srvctl start service -d rac -s insa
- 정상적으로 잘 실행 되는 것 확인
srvctl 명령어를 이용해서 기존에 존재하는 자원을 제거 할 수도 있습니다.
주요 명령어는 아래와 같습니다
srvctl remove database -d <database-name>
srvctl remove database -d <database-name> [-i <instance-name>]
srvctl remove database -d <database-name> -s <service-name>
[-i <instance-name>]
4.2 RAC 리소스 삭제[편집]
- insa 서비스 중지 후
srvctl stop service -d rac -s insa
- insa 서비스를 제거
srvctl remove service -d rac -s insa
만약 여러 개의 인스턴스에서 실행 중인 서비스인 경우 특정 인스턴스에서만 제거를 해야 할 경우 -i 옵션을 함께 사용
srvctl remove service -d rac -s insa -i rac1
4.3 srvctl 명령을 사용하여 rac service 관련 설정 변경[편집]
srvctl modify 명령 사용하여 현재 설정되어 있는 값 변경
srvctl modify database -> Database 와 관련된 설정을 변경할 수 있습니다. srvctl modify instance -> Instance 와 관련된 설정을 변경할 수 있습니다. srvctl modify service -> Service 와 관련된 설정을 변경할 수 있습니다. srvctl modify nodeapps -> node application 과 관련된 설정을 변경할 수 있습니다.
1) srvctl modify database
srvctl modify database -d db_unique_name [-n db_name] [-o oracle_home] [-m domain_name]
[-p spfile] [-r {PRIMARY | PHYSICAL_STANDBY | LOGICAL_STANDBY}] [-s start_options]
[-y {AUTOMATIC | MANUAL}]
- 주요 옵션
-d db_unique_name 유일한(Unique) DB 이름을 지정합니다. -n db_name DB 이름을 지정합니다. -o oracle_home Cluster database 용 Oracle home 을 지정합니다. -m domain_name Cluster database 용 domain 명을 지정합니다. -p spfile Cluster database 용 spfile 을 지정합니다. -r role [PRIMARY | PHYSICAL_STANDBY | LOGICAL_STANDBY] Database의 역할을 지정합니다. (primary , physical standby , logical standby) -s start_options database 가 Startup 될 때 option 을 지정합니다 -y Database 관리정책을 지정합니다. 값으로는 automatic 과 manual 을 사용합니다 -h 도움말을 출력합니다.
2) srvctl modify instance
srvctl modify instance -d db_unique_name -i inst_name
{-n node_name | -s asm_instance_name | -r}
- 주요 옵션
d db_unique_name database Unique name 을 설정합니다. -i inst_name Database instance name 을 설정합니다. -n node_name Node name 을 지정합니다. -s asm_instance_name Database instance 에서 사용하는 ASM instance name 을 지정합니다 -r Database instance 에서 사용하는 ASM instance name 을 제거합니다
3) srvctl modify service
이 명령을 사용하여 서비스 중인 노드들의 설정을 변경할 수 있습니다. 그러나 이 명령은 아래와 같이 몇 가지 주의 사항이 있습니다.
- 새로운 변경 사항이 생길 때 기존 운영중인 서비스에는 반영이 되지 않습니다. 즉 변경사항을 운영중인 서비스에 적용하려면 기존 서비스를 중단 한 후 새로 시작해야 합니다. 또한 운영중인 서비스의 설정 값은 사용량이 많을 때는 변경하지 않을 것을 권장합니다. 변경 명령은 아래와 같습니다.
srvctl modify 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 서비스를 중단하고 재 위치 시킬 때 현재 접속을 모두 강제로 종료합니다
4) srvctl modify nodeapps
이 명령은 Oracle home 이 변경되었거나 vip 가 변경되었을 경우 사용합니다.
srvctl modify nodeapps -n node_name [-o oracle_home] [-A new_vip_address]
이 명령의 주요 옵션은 아래와 같습니다.
-n node_name Node name 을 지정합니다. -o oracle_home 새롭게 변경 될 Oracle home 을 지정합니다. -A new_vip_address 새롭게 변경 될 VIP address (name|ip/netmask[/if1[|if2|...]])를 지정합니다.
4.4 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 로 변경.
srvctl add service -d rac -s insa -r rac1 -a rac2
srvctl start service -d rac -s insa
insa 서비스가 rac1 에서 작동하는 것이 확인. 확인한 rac1 에서 동작 중인 insa 서비스를 rac2 로 이동.
srvctl relocate service -d rac -s insa -i rac1 -t rac2
- 클라이언트(PC) 에서 tnsnames.ora 파일을 수정해서 insa 서비스에 접속한 후 instance name 을 확인.
- pc 에서 서버로 접속하여 확인.
srvctl relocate service -d rac -s insa -i rac2 -t rac1
4.5 CRS 자원의 일시적인 활성화 / 비활성화 설정[편집]
- 주요 명령
4.5.1 활성화 하기[편집]
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>]
4.5.2 비활성화 하기[편집]
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
실행중인 서비스는 사용 안함으로 변경할 수 없어 중단 후 사용 안함으로 변경.
먼저 서비스가 중단되기 전에 접속해 있던 세션부터 확인.
새로 접속을 시도. 에러가 발생합니다. 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
4.6 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.
가장 일반적으로 많이 모니터링 됩니다.