[IP 종류]
puvlic : 외부에서 (putty) 접근할 때 사용
private : rac에서 1번2번 노드끼리 통신할 때 사용
virtual : cluster 가 관리함. 한쪽 서버가 다운되어도 세션을 다른쪽 서버로 넘겨줄 수 있어서(failover) 접속이 끊기지 않게 됨. 그래서 기능이 끊기면 안되는 앱 WAS에서 사용한다.
scan : 여기로 보내면 알아서 1번2번으로 load valance를 해준다.
-- 현재 tnsnames.ora에 scan ip로 되어있음
[oracle@oel8db1 admin]$ cat tnsnames.ora
# tnsnames.ora Network Configuration File: /oracle/app/oracle/product/19c/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
ORADB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oel8db-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORADB)
)
)
-- 따라서 sqlplus에 접속할 때마다 어떤 인스턴스를 쓸지 scan이 정해줌
-- 현재 붙어있는 instance 확인)
select instance_name from v$instance;
-- 현재 모든 instance의 상태
select instance_name, status from gv$instance;
Orange로 RAC에 접속하기 위한 설정
sqlnet.ora 생성 및 11g 버전 접근 허용 설정
1번 2번 모두에서
cd $ORACLE_HOME/network/admin
vi sqlnet.ora 해서 아래 내용 입력.
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=11
SQLNET.ALLOWED_LOGON_VERSION_SERVER=11
패스워드 재설정(한쪽 노드에서만)
SQL> alter user system identified by oracle;
windows(client)의 tnsnames.ora 수정
1) public ip
– fail-over 불가
– load-balance 불가
ORADB1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.124.100)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORADB)
)
)
ORADB2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.124.200)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORADB)
)
)
2) virtual ip
– fail-over 가능
– load-balance 불가
ORADB1-VIP =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.124.110)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORADB)
)
)
ORADB2-VIP =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.124.210)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORADB)
)
)
3) scan ip
– load-balance 가능
ORADB-SCAN =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.124.150)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORADB)
)
)
4) VIP + load balancing
– VIP는 load balancing이 안됐는데 아래 방식으로 하면 load balancing도 되고 fail over도 가능한 접속이 된다.
ORADB =
(DESCRIPTION =
(LOAD_BALANCE = YES)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.124.110)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.124.210)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORADB)
)
)
[RAC 명령어]
1. crsctl
– CRS(Cluster Ready Services) 기동, 중지, 상태 확인
– root 유저로 수행 권고
2. srvctl
– crs 내 특정 서비스(=application=resource) 관리
– 서비스 상태 확인 가능, 기동 및 중지, 변경
[crs 기동 및 중지]
1. 확인
crsctl status res -t
2. 중지
1) 각 노드별 중지
crsctl stop crs
2) 1, 2번 노드 동시 중지
crsctl stop cluster -all
3. 기동
1) 각 노드별 기동
crsctl start crs
2) 1, 2번 노드 동시 중지
crsctl start cluster -all
[서비스(=application=resource) 기동 및 중지]
oracle 계정에서 수행 권고.
srvctl = service control
1. 확인
srvctl status database -d oradb — db전체 상태 체크
srvctl status instance -d oradb -n oel8db1 — db의 특정 인스턴스만 상태 체크
srvctl status vip -n oel8db1 — 특정 인스턴스의 vip 상태 체크
2. 중지
srvctl stop database -d oradb — shutdonw immediate가 기본 설정
srvctl stop instance -d oradb -n oel8db1 — node로 내리나 instance로 내리나 똑같음
srvctl stop instance -d oradb -i ORADB1 — 대소구분 있음!
3. 기동
srvctl start database -d oradb — open까지 startup이 기본 설정
srvctl start instance -d oradb -n oel8db1
srvctl start instance -d oradb -i ORADB1
[리스너 기동 및 중지]
oracle 계정에서 수행 권고
1. 확인
srvctl status listener — 아래 명령어와 동일한 출력
srvctl status listener -l listener — 리스너 이름이 listener인거임
srvctl status listener -l listener -n oel8db1 — 특정 리스너
2. 중지
srvctl stop listener -l listener
srvctl stop listener -l listener -n oel8db1
3. 기동
srvctl start listener -l listener
srvctl start listener -l listener -n oel8db1
[DB 구성정보 확인]
ASM 환경에서의 모든 공유 파일들은 os에 존재하지 않고 +DATA 라는 영역에서 존재하며 ASM instance를 통해서 접근 가능.
1. control file 확인
select *
from v$controlfile;
2. data file 확인
select file#, ts#, name, bytes
from v$datafile;
3. redo log file 확인
select *
from v$logfile;
4. undo tbs 확인
-> instance 별로 rollback 이미지를 각 undo tbs에 저장. 따라서 인스턴스의 숫자만큼 undo tbs가 생긴다.
select *
from gv$parameter
where name = 'undo_tablespace';
5. parameter file 확인
SQL> show parameter pfile;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +DATA/ORADB/PARAMETERFILE/spfile.268.1189873561
[asm instance 접근]
asmcmd
cd, ls 등의 기본적인 명령어는 먹힌다. 근데 tab같은게 안되는 듯? 조금 불편함.