I. Network 설정
1. 서버 Network 설정
A) 서버 정보 hosts 파일 저장
vi /etc/hosts
10.10.50.11 ora_act 10.10.50.21 ora_stb
hosts 파일에 Primary 서버의 정보와 Standby 서버의 정보를 입력합니다.
IP를 사용하지 않고 등록된 서버 정보로 접속을 하기 위한 작업입니다.
2. Listener 설정
A) Network manager로 primary listener 수정
Primary 노드에서 oracle 유저로 수행
netmgr
Network Manager를 실행하여 Static Listener를 설정합니다.
직접 listener.ora 파일을 수정해도 됩니다.
Network Manger 화면에서 Oracle Net 구성의 로컬 부분을 클릭하여 확장합니다.
Primary는 DB 생성시에 Listener가 이미 설정되어 있을 수 있습니다.
중앙 상단의 '수신 위치'를 '데이터베이스 서비스'로 변경해줍니다.
아래 버튼에서 <데이터베이스 추가> 버튼을 클릭합니다.
데이터베이스1 항목에 다음과 같이 정보를 입력합니다.
- 전역 데이터베이스 이름 : ORCL (서비스 명)
- Oracle 홈 디렉토리 : (ORACLE_HOME으로 지정된 경로)
- SID : orcl (데이터베이스의 SID)
<데이터베이스 추가> 버튼을 클릭하여 데이터베이스2를 추가한 후 다음과 같이 입력합니다.
- 전역 데이터베이스 이름 : ORCL_DGB (서비스 명_DGB)
- Oracle 홈 디렉토리 : (ORACLE_HOME으로 지정된 경로)
- SID : orcl (데이터베이스의 SID)
<데이터베이스 추가> 버튼을 클릭하여 데이터베이스3를 추가한 후 다음과 같이 입력합니다.
- 전역 데이터베이스 이름 : ORCL_DGB (서비스 명_DGMGRL)
- Oracle 홈 디렉토리 : (ORACLE_HOME으로 지정된 경로)
- SID : orcl (데이터베이스의 SID)
Listener 설정이 모두 완료되었으면, 좌측 상단에 '파일' > '네트워크 구성 저장'을 클릭하여 작업한 내용을 저장합니다.
저장을 하게 되면 listener.ora 파일에 변경된 내용이 반영됩니다.
B) Primary의 listener.ora 파일
vi $ORACLE_HOME/network/admin/listener.ora
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ora-act)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = ORCL) (ORACLE_HOME = /u01/app/oracle/product/18.3.0/db_1) (SID_NAME = orcl) ) (SID_DESC = (GLOBAL_DBNAME = ORCL_DGB) (ORACLE_HOME = /u01/app/oracle/product/18.3.0/db_1) (SID_NAME = orcl) ) (SID_DESC = (GLOBAL_DBNAME = ORCL_DGMGRL) (ORACLE_HOME = /u01/app/oracle/product/18.3.0/db_1) (SID_NAME = orcl) ) ) ADR_BASE_LISTENER = /u01/app/oracle
Primary 노드의 listener.ora 파일의 내용은 다음과 같이 변경됩니다.
Network Manager를 사용하지 않고 직접 listener.ora 파일을 수정해도Static Listener를 추가할 수 있습니다.
C) Network manager로 standby listener 생성
Standby 노드에서 oracle 유저로 수행
netmgr
D) Standby의 listener.ora 파일
vi $ORACLE_HOME/network/admin/listener.ora
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ora-stb)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = ORCL_STB) (ORACLE_HOME = /u01/app/oracle/product/18.3.0/db_1) (SID_NAME = orcl) ) (SID_DESC = (GLOBAL_DBNAME = ORCL_STB_DGB) (ORACLE_HOME = /u01/app/oracle/product/18.3.0/db_1) (SID_NAME = orcl) ) (SID_DESC = (GLOBAL_DBNAME = ORCL_STB_DGMGRL) (ORACLE_HOME = /u01/app/oracle/product/18.3.0/db_1) (SID_NAME = orcl) ) ) ADR_BASE_LISTENER = /u01/app/oracle
E) 리스너 기동
oracle 유저로 실행
lsnrctl start lsnrctl status
[oracle@orcl ~]$ lsnrctl start LSNRCTL for Linux: Version 18.0.0.0.0 - Production on 10-SEP-2018 15:16:19 Copyright (c) 1991, 2018, Oracle. All rights reserved. Starting /u01/app/oracle/product/18.3.0/db_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 18.0.0.0.0 - Production System parameter file is /u01/app/oracle/product/18.3.0/db_1/network/admin/listener.ora Log messages written to /u01/app/oracle/diag/tnslsnr/ora-act/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora-act)(PORT=1521))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ora-act)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 18.0.0.0.0 - Production Start Date 10-SEP-2018 15:16:19 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/18.3.0/db_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/ora-act/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora-act)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Services Summary... Service "ORCL" has 1 instance(s). Instance "orcl", status UNKNOWN, has 1 handler(s) for this service... Service "ORCL_DGB" has 1 instance(s). Instance "orcl", status UNKNOWN, has 1 handler(s) for this service... Service "ORCL_DGMGRL" has 1 instance(s). Instance "orcl", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully [oracle@orcl ~]$ lsnrctl status LSNRCTL for Linux: Version 18.0.0.0.0 - Production on 10-SEP-2018 15:17:30 Copyright (c) 1991, 2018, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ora-act)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 18.0.0.0.0 - Production Start Date 10-SEP-2018 15:16:19 Uptime 0 days 0 hr. 1 min. 10 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/18.3.0/db_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/ora-act/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora-act)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Services Summary... Service "64a52f53a7683286e053cda9e80aed76" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... Service "755d92b0acb235ebe0534701000a49b5" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... Service "ORCL" has 2 instance(s). Instance "orcl", status UNKNOWN, has 1 handler(s) for this service... Instance "orcl", status READY, has 1 handler(s) for this service... Service "ORCL_DGB" has 1 instance(s). Instance "orcl", status UNKNOWN, has 1 handler(s) for this service... Service "ORCL_DGMGRL" has 1 instance(s). Instance "orcl", status UNKNOWN, has 1 handler(s) for this service... Service "orclXDB" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... Service "pdb" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... The command completed successfully
[oracle@orcl ~]$ lsnrctl start LSNRCTL for Linux: Version 18.0.0.0.0 - Production on 10-SEP-2018 15:17:59 Copyright (c) 1991, 2018, Oracle. All rights reserved. Starting /u01/app/oracle/product/18.3.0/db_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 18.0.0.0.0 - Production System parameter file is /u01/app/oracle/product/18.3.0/db_1/network/admin/listener.ora Log messages written to /u01/app/oracle/diag/tnslsnr/ora-stb/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora-stb)(PORT=1521))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ora-stb)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 18.0.0.0.0 - Production Start Date 10-SEP-2018 15:17:59 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/18.3.0/db_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/ora-stb/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora-stb)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Services Summary... Service "ORCL_STB" has 1 instance(s). Instance "orcl", status UNKNOWN, has 1 handler(s) for this service... Service "ORCL_STB_DGB" has 1 instance(s). Instance "orcl", status UNKNOWN, has 1 handler(s) for this service... Service "ORCL_STB_DGMGRL" has 1 instance(s). Instance "orcl", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully [oracle@orcl ~]$ lsnrctl status LSNRCTL for Linux: Version 18.0.0.0.0 - Production on 10-SEP-2018 15:18:25 Copyright (c) 1991, 2018, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ora-stb)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 18.0.0.0.0 - Production Start Date 10-SEP-2018 15:17:59 Uptime 0 days 0 hr. 0 min. 26 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/18.3.0/db_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/ora-stb/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora-stb)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Services Summary... Service "ORCL_STB" has 1 instance(s). Instance "orcl", status UNKNOWN, has 1 handler(s) for this service... Service "ORCL_STB_DGB" has 1 instance(s). Instance "orcl", status UNKNOWN, has 1 handler(s) for this service... Service "ORCL_STB_DGMGRL" has 1 instance(s). Instance "orcl", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully
3. Local Net Service Name 구성
A) Net Configuration Assistant 실행
oracle 유저로 수행
netca
B) Primary 데이터베이스의 접속 정보 등록
C) Standby 데이터베이스의 접속 정보 등록
D) tnsnames.ora 파일
vi $ORACLE_HOME/network/admin/tnsnames.ora
ORCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ora-act)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = ORCL) ) ) ORCL_STB = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ora-stb)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = ORCL_STB) ) )
[oracle@orcl ~]$ tnsping ORCL TNS Ping Utility for Linux: Version 18.0.0.0.0 - Production on 10-SEP-2018 15:18:45 Copyright (c) 1997, 2018, Oracle. All rights reserved. Used parameter files: /u01/app/oracle/product/18.3.0/db_1/network/admin/sqlnet.ora Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ora-act)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = ORCL))) OK (0 msec) [oracle@orcl ~]$ tnsping ORCL_STB TNS Ping Utility for Linux: Version 18.0.0.0.0 - Production on 10-SEP-2018 15:19:00 Copyright (c) 1997, 2018, Oracle. All rights reserved. Used parameter files: /u01/app/oracle/product/18.3.0/db_1/network/admin/sqlnet.ora Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ora-stb)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = ORCL_STB))) OK (0 msec)