오라클 리스너 여러개 - olakeul liseuneo yeoleogae

프린트 하기

OS환경 : Oracle Linux 6.8 (64bit)

DB 환경 : Oracle Database 11.2.0.4

방법 : 오라클 다른 포트 리스너 설정(로컬리스너 설정)

기존 리스너 1521이 있는 상태에서 1527이라는 새로운 포트로 리스너 생성하는 시나리오

기존 리스너 확인

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 17-OCT-2019 21:42:23

Copyright (c) 19912013, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ORACLE11)(PORT=1521)))

STATUS of the LISTENER

------------------------

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production

Start Date                15-OCT-2019 09:15:09

Uptime                    2 days 12 hr. 27 min. 14 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   /oracle/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

Listener Log File         /oracle/app/oracle/diag/tnslsnr/ORACLE11/listener/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ORACLE11)(PORT=1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

Services Summary...

Service "ORCL11" has 1 instance(s).

Instance "ORCL11", status READY, has 1 handler(s) for this service...

The command completed successfully

기존 리스너 파일 확인

$ cat /oracle/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

# listener.ora Network Configuration File: /oracle/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

# Generated by Oracle configuration tools.

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = ORACLE11)(PORT = 1521))

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

)

)

ADR_BASE_LISTENER = /oracle/app/oracle

기존 tnsnames.ora 파일 확인

$ cat /oracle/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora 

# tnsnames.ora Network Configuration File: /oracle/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora

# Generated by Oracle configuration tools.

ORCL11 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = ORACLE11)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = ORCL11)

)

)

1527 리스너 추가

기존 리스너 파일에 아래 문장 추가

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

$ cat /oracle/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

# listener.ora Network Configuration File: /oracle/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

# Generated by Oracle configuration tools.

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = ORACLE11)(PORT = 1521))

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

)

)

ADR_BASE_LISTENER = /oracle/app/oracle

LISTENER1527 = 

(DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = ORACLE11)(PORT = 1527))

    )

  )

 tnsnames.ora 파일에 아래 문장 추가

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

$ cat /oracle/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora 

# tnsnames.ora Network Configuration File: /oracle/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora

# Generated by Oracle configuration tools.

ORCL11 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = ORACLE11)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = ORCL11)

)

)

ORCL11_NPORT = 

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = ORACLE11)(PORT = 1527))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = ORCL11)

)

)

1527 리스너 기동

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

$ lsnrctl start LISTENER1527

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 17-OCT-2019 21:47:00

Copyright (c) 19912013, Oracle.  All rights reserved.

Starting /oracle/app/oracle/product/11.2.0/db_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.4.0 - Production

System parameter file is /oracle/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

Log messages written to /oracle/app/oracle/diag/tnslsnr/ORACLE11/listener1527/alert/log.xml

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ORACLE11)(PORT=1527)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ORACLE11)(PORT=1527)))

STATUS of the LISTENER

------------------------

Alias                     LISTENER1527

Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production

Start Date                17-OCT-2019 21:47:00

Uptime                    0 days 0 hr. 0 min. 0 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   /oracle/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

Listener Log File         /oracle/app/oracle/diag/tnslsnr/ORACLE11/listener1527/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ORACLE11)(PORT=1527)))

The listener supports no services

The command completed successfully

tnsping 확인

$ tnsping ORCL11_NPORT

TNS Ping Utility for Linux: Version 11.2.0.4.0 - Production on 17-OCT-2019 21:48:09

Copyright (c) 19972013, Oracle.  All rights reserved.

Used parameter files:

Used TNSNAMES adapter to resolve the alias

Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ORACLE11)(PORT = 1527)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL11)))

OK (0 msec)

tns 통해 접속 확인

$ sqlplus / as sysdba@ORCL11_NPORT

SQL*Plus: Release 11.2.0.4.0 Production on Thu Oct 17 21:49:33 2019

Copyright (c) 19822013, Oracle.  All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select instance_name, version, status from v$instance;

INSTANCE_NAME     VERSION       STATUS

---------------- ----------------- ------------

ORCL11         11.2.0.4.0       OPEN

로컬 리스너 등록

SQL> alter system set local_listener=ORCL11_NPORT;

System altered.

SQL> show parameter local_listener

NAME                     TYPE     VALUE

------------------------------------ ----------- ------------------------------

local_listener                 string     ORCL11_NPORT

1521 리스너 확인

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

$ lsnrctl status 

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 17-OCT-2019 21:51:21

Copyright (c) 19912013, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ORACLE11)(PORT=1521)))

STATUS of the LISTENER

------------------------

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production

Start Date                15-OCT-2019 09:15:09

Uptime                    2 days 12 hr. 36 min. 11 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   /oracle/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

Listener Log File         /oracle/app/oracle/diag/tnslsnr/ORACLE11/listener/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ORACLE11)(PORT=1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

The listener supports no services

The command completed successfully

Service가 없음

1527 리스너 확인

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

$ lsnrctl status LISTENER1527

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 17-OCT-2019 21:51:49

Copyright (c) 19912013, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ORACLE11)(PORT=1527)))

STATUS of the LISTENER

------------------------

Alias                     LISTENER1527

Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production

Start Date                17-OCT-2019 21:47:00

Uptime                    0 days 0 hr. 4 min. 49 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   /oracle/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

Listener Log File         /oracle/app/oracle/diag/tnslsnr/ORACLE11/listener1527/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ORACLE11)(PORT=1527)))

Services Summary...

Service "ORCL11" has 1 instance(s).

  Instance "ORCL11", status READY, has 1 handler(s) for this service...

The command completed successfully

Service ORCL11 이 등록됨

추가 자료

로컬 리스너 해제

SQL> alter system set local_listener='';

System altered.

SQL> show parameter local_listener

NAME                     TYPE     VALUE

------------------------------------ ----------- ------------------------------

local_listener                 string

이렇게 하면 기존 리스너로 service가 넘어가고 1527 리스너에는 no service라고 나온다

기존 리스너 확인

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 17-OCT-2019 21:55:48

Copyright (c) 19912013, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ORACLE11)(PORT=1521)))

STATUS of the LISTENER

------------------------

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production

Start Date                15-OCT-2019 09:15:09

Uptime                    2 days 12 hr. 40 min. 38 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   /oracle/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

Listener Log File         /oracle/app/oracle/diag/tnslsnr/ORACLE11/listener/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ORACLE11)(PORT=1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

Services Summary...

Service "ORCL11" has 1 instance(s).

Instance "ORCL11", status READY, has 1 handler(s) for this service...

The command completed successfully

Service ORCL11 이 등록됨

1527 리스너 확인

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

$ lsnrctl status LISTENER1527

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 17-OCT-2019 21:55:56

Copyright (c) 19912013, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ORACLE11)(PORT=1527)))

STATUS of the LISTENER

------------------------

Alias                     LISTENER1527

Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production

Start Date                17-OCT-2019 21:47:00

Uptime                    0 days 0 hr. 8 min. 55 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   /oracle/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

Listener Log File         /oracle/app/oracle/diag/tnslsnr/ORACLE11/listener1527/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ORACLE11)(PORT=1527)))

The listener supports no services

The command completed successfully

Service가 없음

RAC 환경의 경우 설정 방법

RAC 환경에서는 리스너를 grid가 서비스로 관리하기때문에 srvctl 명령으로 관리를 해주어야 함

grid 계정을 별도로 쓰지 않기 때문에 임시로 

그리드 명령을 사용 할 수 있게끔 GRID_HOME 설정

$ export GRID_HOME=/app/grid/11.2.0/grid

$ export ORACLE_HOME=$GRID_HOME

(grid 계정을 사용한다면 grid 계정으로 접속)

1527 포트의 리스너 추가

$ srvctl add listener -l LISTENER_1527 -p 1527

상태확인

$ crsctl stat res -t

--------------------------------------------------------------------------------

NAME           TARGET  STATE        SERVER                   STATE_DETAILS

--------------------------------------------------------------------------------

Local Resources

--------------------------------------------------------------------------------

ora.LISTENER.lsnr

ONLINE  ONLINE       rac1

ora.LISTENER_1527.lsnr

OFFLINE OFFLINE      rac1

기존 리스너(LISTENER)과 신규 리스너(LISTENER_1527)이 함께 있는것을 확인할 수있다.

하지만 OFFLINE 상태

1527 리스너 시작

$ srvctl start listener -l LISTENER_1527

상태확인

$ crsctl stat res -t

--------------------------------------------------------------------------------

NAME           TARGET  STATE        SERVER                   STATE_DETAILS

--------------------------------------------------------------------------------

Local Resources

--------------------------------------------------------------------------------

ora.LISTENER.lsnr

ONLINE  ONLINE       rac1

ora.LISTENER_1527.lsnr

ONLINE  ONLINE       rac1

리스너 삭제 방법

$ srvctl remove listener -l LISTENER_1527

리스너 포트 변경 방법

우선 리스너 정지

$ srvctl stop listener -l LISTENER_1527 -n rac1

$ srvctl stop listener -l LISTENER_1527 -n rac2

리스너 포트 변경(1527에서 1530으로)

$ srvctl modify listener -l LISTENER_1527 -1530

리스너 시작

$ srvctl start listener -l LISTENER_1527 -n rac1

$ srvctl start listener -l LISTENER_1527 -n rac2

참조 : https://secmaster.tistory.com/18

https://positivemh.tistory.com/303