2018년 1월 8일 월요일

정호 스터디 2018_01_06 RAC & ADRCI


1. 서버에 최초 접근 시

RAC 서버 접속 후,
관리에 있어서 grid와 dbhome의 위치를 가장 먼저 파악해야 한다.


▶ grid home 위치 확인

# ps -ef | grep d.bin









# cat /etc/oratab

DB가 종료 되어 있는 서버의 경우 프로세스에 나타나지 않으므로,
설치 도중 root.sh파일을 실행하게 되는데, 이 때 db 엔진들의 home 정보가 /etc/oratab 파일에 입력된다.





※ 절대 bash_profile을 믿어서는 안된다.
※ sun(solaris)의 경우 "/var/opt/oracle/oratab" 이다.



▶ Listener 위치 확인

# ps -ef | grep tns


lsnrctl을 사용하기 전에 11g에서 RAC의 리스너는 grid에서 자동 생성 하므로, 유념하여 리스너의 위치를 확인한다.

※ 10g의 경우, asm과 listener를 db엔진 생성 단계에서 하므로, Listener는 database home 에서 실행된다.



▶ ASM 및 DB 의 SID 확인

# ps -ef | grep pmon









▶ sqlplus로 접속 후, dbname, instance 확인.

SQL> show parameter name


자신이 작업할 DB가 맞는지 반드시 확인하도록 한다.





2. RAC crs의 관리(crsctl)



▶ crs의 시작과 종료

# crsctl start crs
: crs 시작

# crsctl stop crs
: crs 종료

# crsctl stop crs -f
: crs 강제 종료
※ -f 옵션을 동반한 강제 종료는 DB를 abort로 종료 시킨다.

# crsctl start crs -excl
: crs를 제한적으로, 최소한의 모드로 올리는 경우.


※ 명령을 실행한 하나의 노드에서만 crs가 실행 되며,
db는 올릴 수 없는 상태이지만, ASM이라도 올려서 확인을 반드시 해야하는 경우 유용하게 사용 가능하다.
※ ASM이 올라가 있기 때문에, crsctl, sqlplus / as sysasm 또는, asmcmd, ocr, oicfg  명령어 등을 사용 가능하다.
※ 종료 할때는 "crsctl stop crs" -f 로 강제종료를 해야한다.


▶ crs의 상태 조회

# crsctl status resource -t
: crs의 상태를 조회한다.

# crsctl stat resource -t -init
: crsctl start crs를 진행 후, start 되고 있는 도중에 확인이 필요한 경우
※ 기본적으로 -init 옵션을 붙이지 않으면 crs 데몬들이 완전 구동되지 않은 경우 확인이 불가능하다.

# crsctl relocate resource 
: crs상에서 cluster_resource에 등록된 Resource를 다른 노드로 보내 줄 수 있다.
또한 2개의 노드인 경우에는 현재 노드에서 다른 노드로 자동 이동 되며, 3개 이상 노드의 경우 -n 옵션으로 노드를 지정해 줄 수 있다. 또한, 옮겨지지 않는 resource인데 부득이하게 강제로 옮겨야 하는 경우 -f 옵션 사용이 가능하다. (특히 세션 조정을 위한 vip 이동의 경우)

※ Resource 관련
11g R2 부터는 local_resource, cluster_resource가 나뉘어 졌다.
또한 11g에서는 asm resource가 각 로컬(local_resource)에 있었지만,
12c 부터는 cluster_resource로 변경되었다.


# crsctl add serverpool
server pool에 다른 서비스(apache 등)을 등록하여, 다른노드로 자동 failover가 되도록 설정 할 수 있다.
# crsctl add serverpool myApache_sp -attr "PARENT_POOLS=Generic, SERVER_NAMES=rac1 rac2"


# crsctl add resource
신규 리소스를 등록할 수 있으며, serverpool에 등록해놓은 것을 이용하여 작성 할 수 있다.
# crsctl add resource myApache -type cluster_resource -attr "ACTION_SCRIPT=/usr/local/bin/apache.scr, PLACEMENT='restricted', SERVER_POOLS=myApache_sp, CHECK_INTERVAL='30', RESTART_ATTEMPTS='2'"

이후 crsctl start res myApache 및 crsctl start res myApache 등의 명령어로 시작 및 상태 조회가 가능하다.



3. RAC 서비스 관리(srvctl)

# srvctl start database -d orcl
: orcl DB 시작

# srvctl stop database -d orcl
: orcl db 종료

# srvctl start instance -d orcl -n rac1
: 1번 노드에서만 orcl db 시작

# srvctl config database -d orcl
: 명령 실행시 적용되는 설정 확인.






















# srvctl start database -d orcl -o 'read only'
: read only 상태로 db start (migration 등의 작업 시 유용)

※ 단, data pump의 expdp 사용 시에는, db 안에서 테이블이 만들어지면서 진행되는 작업이기에, open 상태가 되어 있어야 한다.

# srvctl start database -d orcl -o mount
: mount 상태로 db start

# srvctl stop listener -l LISTENER -n rac1
: rac1 노드의 리스너를 종료한다.
※ 리스너는 connection에서의 forking 역할만 하므로, 기존 rac1 노드에 연결된 session들은 끊어지지 않는다. session 조정이 필요한 경우, 신규 세션들은 모두 rac2에 연결되므로 유용하게 사용 가능하다.




4. inter-connect
interconnect는 UDP 통신으로, 크로스 케이블로 직결연결 하면 data loss 및 instance 장애가 발생 할 수 있다.
따라서 양 노드 사이에 switch를 두고 연결해야 한다.

더불어 특히 AIX의 경우 udp buffer size를 최대로 올려야 하며,
tcp_recvspace = 65536
tcp_sendspace = 65536
udp_sendspace = ((DB_BLOCK_SIZE * DB_FILE_MULTIBLOCK_READ_COUNT) + 4 KB) but no lower than 65536
udp_recvspace = 655360 (Minimum recommended value is 10x udp_sendspace, parameter value must be less than sb_max)
rfc1323 = 1
sb_max = 4194304 #(1048576, 4194304, 83388608 값 중에서만)

ipqmaxlen = 512

OS별 Default UDP Buffer Size와 조절방법(MAX:8M)
kernelValueDefaultCommand
Linuxnet.core.rmem_max131071sysctl -w net.core.rmem_max = 8388608
Solarisudp_max_buf262144ndd -set /dev/udp udp_max_buf 8388608
AIXsb_max1048576no -o sb_max=8388608
(1048576, 4194304, 83388608 값 중에서만)




MTU 값 또한 조절해 주어야 한다.

ex) eth0 변경시

# ifconfig eth0 mtu 9000 up

OR

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
MTU="9000"

추가 후, network 재시작
# service network restart




5. ASM DISKGROUP 관리

sqlplus / as sysasm

set pagesize 1000
set linesize 130
col name format a20
col failgroup format a20
col group_name format a10
select g.name group_name, d.name, d.mode_status, d.header_status
from v$asm_disk d, v$asm_diskgroup g
where d.group_number = g.group_number
and g.name = 'DATA' order by d.failgroup, d.name;

disk drop 해보기.

SQL> select * from v$asm_operation;
no rows selected

SQL> alter diskgroup DATA drop disk 'DISK05';
Diskgroup altered.

SQL> select * from v$asm_operation;


SQL> col name format a20
SQL> col path format a20
SQL> select name, path, mode_status, header_status from v$asm_disk

디스크 다시 추가
SQL> alter diskgroup DATA add disk 'ORCL:DISK05';

SQL> select * from v$asm_operation;

rebalance power를 높여서 rebalance를 더 빠르게 할 수 있다.
SQL> alter diskgroup data rebalance power 11;




6. RAC 관련 ORACLE SR 지원
11g부터 SE(Standard Edition)에서는 ASM으로만 공식 지원 하며, Raw Device로 설치는 가능하지만, SR이 불가능하다.

이러한 지원 관련 용어로, 아래의 두가지 용어가 사용 되며, 작업전에 Documents에서 관련 내용을 확인하는 것이 필요하다.
▶ Deprecated
: 다음 버전부터 사라질 기능이니 사용을 지양 할 것.
▶ Desupport
: 지원 불가.

SR 진행 전 실행해볼 필요가 있는 공식 스크립트

▶ RAC 설치 전 확인 작업
./runcluvfy.sh stage -pre crsinst -n rac1,rac2,rac3 -r 11gR2 -verbose > ./check1.log

▶ SR 진행 전 diagcollection.sh 수행
$GRID_HOME/bin/diagcollection.sh
※ 현재폴더로 tar.gz 파일이 만들어지며,
SR 진행 전에는 diagcollection.sh로 만들어진 파일 및 현재 현상을 SR에 전달하면, 추가 자료 요청을 대폭 줄일 수 있다.


===================================

7. ADRCI
11g 부터 제공되는 기능으로, base, home 확인 및 alert, trace 확인 및 정리까지 다양한 기능을 제공한다.

adrci> show homepath












adrci> show base







adrci> show alert














원하는 홈의 번호를 선택하면 바로 alert 로그를 볼 수 있다.

adrci> set home (homepath)
adrci> show alert -tail -f
홈경로를 지정해준 후, alert 로그를 지속적으로 확인 할 수도 있다.
















adrci> purge -age -30
30일치만 남기고 모두 정리도 가능하다.



댓글 없음:

댓글 쓰기

zamong server 설치

0. server 설정 hosts 설정 # vi /etc/hosts 192.168.56.130   monitor 추가 os 방화벽 해제 # service iptables stop ※ RHEL7 이상의 경우 # systemctl st...