다른 명령
SCAN 리스너
SCAN LISTENER 상태 확인
[root@rac1 ~]# srvctl status scan_listener SCAN 리스너 LISTENER_SCAN1이(가) 사용으로 설정되었습니다. SCAN 리스너 LISTENER_SCAN1이(가) 실행 중이 아닙니다. SCAN 리스너 LISTENER_SCAN2이(가) 사용으로 설정되었습니다. SCAN 리스너 LISTENER_SCAN2이(가) 실행 중이 아닙니다. SCAN 리스너 LISTENER_SCAN3이(가) 사용으로 설정되었습니다. SCAN 리스너 LISTENER_SCAN3이(가) 실행 중이 아닙니다.
SCAN LISTENER 설정 방법
로컬 리스너 확인
- SQL*Plus를 사용하여 데이터베이스 사용자로 Oracle 데이터베이스에 로그인
- local_listener 매개변수에 로컬 리스너 IP 번호 및 포트 번호가 포함되어 있는지 확인
- local_listener 매개변수 설정을 표시합니다.
SQL> show parameters local_listener NAME TYPE VALUE ------------------------------------ ----------------------------------------- local_listener string (ADDRESS=(PROTOCOL=TCP)(HOST=node-IP-number)(PORT=port-number))
- local_listener 매개변수에 로컬 리스너 IP 번호 및 포트 번호가 포함되지 않은 경우
- 이 매개변수를 빈 값으로 설정한 다음 Oracle 데이터베이스를 다시 시작합니다.
- Oracle 데이터베이스가 다시 시작되면
- Oracle Clusterware에서 동적으로 local_listener 매개변수를 설정합니다.
로컬 리스너 초기화
SQL> alter system set local_listener='' scope=both; System altered.
- local_listener 매개변수 설정이 올바른지 확인.
SQL> show parameters local_listener
local 리스너 다를 경우 각각 변경 함.
alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=10.10.22.33)(PORT=2222))' scope=both sid='MIG1'; -- RAC1번 alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=10.10.22.43)(PORT=2222))' scope=both sid='MIG2'; -- RAC2번
- remote_listener 매개변수가 SCAN 이름과 포트 번호를 참조하는지 확인
- remote_listener 매개변수에 SCAN 이름과 포트 번호가 포함되어 있는지 여부 지정.
$ srvctl config scan SCAN name: SCAN-name, Network: network-number …
$ srvctl config scan_listener SCAN Listener LISTENER_SCAN1 exists. Port: TCP:port-number …
remote_listener 매개변수에 SCAN 이름과 포트 번호가 포함되어 있는지 여부 지정.
SQL> show parameter remote_listener NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ remote_listener string SCAN-name:port-number
- remote_listener 매개변수에 SCAN 이름과 포트 번호가 포함되어 있지 않은 경우
- 해당 값을 사용하여 매개변수를 설정합니다.
SQL> alter system set remote_listener='SCAN-name:port-number' scope=both sid='RAC1'; SQL> alter system set remote_listener='SCAN-name:port-number' scope=both sid='RAC2';
remote_listener 매개변수의 SCAN 설정 확인
SQL> show parameter remote_listener
- 각 클러스터 노드에서 tnsnames.ora 파일이 Net Service Name의 SCAN 이름을 참조하는지 확인합니다.
ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = SCAN-name)(PORT = port-number)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )
- 참고 ) 리스너 시작/종료
$GRID_HOME/bin/srvctl stop scan_listener
$GRID_HOME/bin/srvctl start scan_listener
SCAN 리스너 재구성 방법
- RAC1,2번 노드에 DNS를 재구성 한 후 SCAN IP를 오라클에서 권장하는 3개로 변경.
SCAN IP / LISTENER 의 Configuration 상태 확인
#> srvctl config scan
SCAN name: rac-scan.localdomain, Network: 1/192.168.1.0/255.255.255.0/eth1 SCAN VIP name: scan1, IP: /rac-scan.localdomain/192.168.1.51
Local DNS에서 SCAN IP 접속 가능한지 확인
# host rac-scan # nslookup rac-scan
rac-scan.localdomain has address 192.168.1.52 rac-scan.localdomain has address 192.168.1.53 rac-scan.localdomain has address 192.168.1.51 Server: 192.168.1.101 Address: 192.168.1.101#53 Name: rac-scan.localdomain Address: 192.168.1.51 Name: rac-scan.localdomain Address: 192.168.1.52 Name: rac-scan.localdomain Address: 192.168.1.53
SCAN IP / LISTENER 중지
#> srvctl stop scan_listener
#> srvctl stop scan
#> crsctl stat res -t -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 OFFLINE OFFLINE ora.oc4j 1 OFFLINE OFFLINE ora.rac1.vip 1 ONLINE ONLINE rac1 ora.rac2.vip 1 OFFLINE OFFLINE ora.scan1.vip 1 OFFLINE OFFLINE
SCAN LISTENER & IP 삭제
#> srvctl remove scan_listener Remove scan listener? (y/[n]) y
#> srvctl remove scan Remove the scan? (y/[n]) y
SCAN IP 등록
#> srvctl add scan -n rac-scan
#> srvctl config scan
SCAN name: rac-scan, Network: 1/192.168.1.0/255.255.255.0/eth1 SCAN VIP name: scan1, IP: /192.168.1.53/192.168.1.53 SCAN VIP name: scan2, IP: /192.168.1.51/192.168.1.51 SCAN VIP name: scan3, IP: /192.168.1.52/192.168.1.52
- PRCS-1016 : Failed to resolve Single Client Access Name rac-scan 에러가 발생 하면 "/etc/nsswitch.conf" 파일의 설정 확인.
- /etc/nsswitch.conf
# Oracle RAC hosts: dns files
SCAN LISTENER 등록
#> srvctl add scan_listener
#> srvctl config scan_listener SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1521 SCAN Listener LISTENER_SCAN2 exists. Port: TCP:1521 SCAN Listener LISTENER_SCAN3 exists. Port: TCP:1521
SCAN Listener & IP 실행
#> srvctl start scan
#> srvctl start scan_listener
#> crsctl stat res -t
-------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE rac1 ora.LISTENER_SCAN2.lsnr 1 ONLINE ONLINE rac1 ora.LISTENER_SCAN3.lsnr 1 ONLINE ONLINE rac1 ora.oc4j 1 OFFLINE OFFLINE ora.rac1.vip 1 ONLINE ONLINE rac1 ora.rac2.vip 1 OFFLINE OFFLINE ora.scan1.vip 1 ONLINE ONLINE rac1 ora.scan2.vip 1 ONLINE ONLINE rac1 ora.scan3.vip 1 ONLINE ONLINE rac1
OCR 백업 경로 확인
#> ocrconfig -showbackup rac1 2012/12/07 07:35:33 /u01/app/11.2.0/grid/cdata/rac-scan/backup00.ocr rac1 2012/12/07 03:23:30 /u01/app/11.2.0/grid/cdata/rac-scan/backup01.ocr rac1 2012/12/06 23:11:29 /u01/app/11.2.0/grid/cdata/rac-scan/backup02.ocr rac1 2012/12/06 23:11:29 /u01/app/11.2.0/grid/cdata/rac-scan/day.ocr rac1 2012/12/06 23:11:29 /u01/app/11.2.0/grid/cdata/rac-scan/week.ocr
OCR Manual Backup
#> ocrconfig -export /u01/app/11.2.0/grid/cdata/rac-scan/manual_bk_121207_0946.ocr
# ls -al /u01/app/11.2.0/grid/cdata/rac-scan/manual* -rw-r--r-- 1 root root 73130 Dec 7 09:47 /u01/app/11.2.0/grid/cdata/rac-scan/manual_bk_121207_0946.ocr
(로컬) 리스너 설정(listener.ora)
listener.ora
틀:고지 상자 - 설정형식:
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 호스트ip1)(PORT = 포트번호)) (ADDRESS = (PROTOCOL = TCP)(HOST = 호스트ip2)(PORT = 포트번호)) ) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = SID_name) (ORACLE_HOME = 오라클위치) ) ) #로컬 리스너 설정 -- DB의 local_listener 파라미터에서 사용 LISTENER_RTIST = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 11.22.33.44)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 11.22.33.44)(PORT = 8855)) (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 8855)) )
- LISTENER : 리스너 이름이며 다른 이름으로 설정 가능. SID_LIST_리스너명 항목에서 리스너명과 동일
- ADDRESS_LIST : ADDRESS들의 모임이며 여러 개의 ADDRESS를 동시에 설정 가능
- ADDRESS : 데이터베이스 서버의 주소이며 프로토콜, 서버명 및 사용포트로 구성된다.
- SID_LIST_LISTENER : 리스너가 서비스하는 데이터베이스 정보를 설정하며 SID_LIST_리스너명으로 설정
- SID_LIST : 해당 리스너 프로세스가 하나 이상의 데이터베이스를 서비스 할 경우에 해당 부분에 여러개의 SID_DESC를 등록한다.
- SID_NAME : 리스너의 접속을 허용하는 데이터베이스의 SID 명을 지정한다.
- 상태 확인 command :
oracle$> lsnrctl status [리스너명]
- 12c에서 파라미터 확인
SQL> show parameter local_listener;
- 변경
SQL> alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=서버아이피)(PORT=2222))' scope=both;
- 리스너 시작
oracle$> lsnrctl start [리스너명]