Oracle19c多租戶下的監聽配置

Oracle19c多租戶下的監聽配置

1.一些基本知識

1.1 如何查詢sid和GLOBAL_NAME

  1. 查看sid

    可以通過數據庫的性能視圖來查詢亦或者linux下面使用查看進程命令的方式.具體命令如下:

    SQL> select name from v$database;
    
    NAME
    ---------------------------
    ORADB
    
    SQL> select instance_name from  V$instance;
    
    INSTANCE_NAME
    ------------------------------------------------
    oradb
    
    
    [oracle@localhost admin]$ ps -ef |grep ora_
    oracle   14326     1  0 10:47 ?        00:00:01 ora_pmon_oradb
    oracle   14328     1  0 10:47 ?        00:00:00 ora_clmn_oradb
    oracle   14330     1  0 10:47 ?        00:00:03 ora_psp0_oradb
    oracle   14333     1  2 10:47 ?        00:04:51 ora_vktm_oradb
    oracle   14337     1  0 10:47 ?        00:00:01 ora_gen0_oradb
    
  2. 查詢GLOBAL_NAME.

    由於是多租戶模式,所以使用sqlplus "/as sysdba"一般進入的是cdb$ROOT容器.可以查詢對應的global_name,如下:

    [oracle@localhost admin]$ sqlplus "/as sysdba"
    Connected to:
    Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
    Version 19.3.0.0.0
    
    SQL> select * from global_name;
    GLOBAL_NAME
    -----------------
    ORADB
    SQL> show pdbs;   
        CON_ID CON_NAME			  OPEN MODE  RESTRICTED
    ---------- ------------------------------ ---------- ----------
    	 2 PDB$SEED			  READ ONLY  NO
    	 3 HRPDB			  READ WRITE NO
    

    這裏我們可以切換到HRPDB數據庫,查看global_name.如下:

    SQL> alter session set container=HRPDB;
    
    Session altered.
    
    SQL> select * from global_name;
    
    GLOBAL_NAME
    --------------------------------------------------------------------------------
    HRPDB
    
    

2.監聽配置

Oracle 19c的監聽配置和Oracle11gR2唯一的區別,就是多了CDB和PDB的概念,本質沒有變化.
配置文件如下listener.ora:
/u01/app/oracle/product/19.3/dbhome_1/network/admin/listener.ora

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.xx.202)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )


SID_LIST_LISTENER=
## Pluggable database listener 插件式數據監聽
   (SID_LIST=
	(SID_DESC=
          (GLOBAL_DBNAME=HRPDB)
          (SID_NAME=oradb)			
          (ORACLE_HOME=/u01/app/oracle/product/19.3/dbhome_1)
        )
## container database listener 容器數據庫監聽
        (SID_DESC=
          (GLOBAL_DBNAME=ORADB)                 
          (SID_NAME=oradb)                      
          (ORACLE_HOME=/u01/app/oracle/product/19.3/dbhome_1)
        )
       )

client端需要配置(tnsnames.ora),如下:

HRPDB =
   (DESCRIPTION =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.xx.202)(PORT = 1521))
     (CONNECT_DATA =
       (SERVER = DEDICATED)
       (SERVICE_NAME = HRPDB)
     )
   )

ORADB =
   (DESCRIPTION =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.xx.202)(PORT = 1521))
     (CONNECT_DATA =
       (SERVER = DEDICATED)
       (SERVICE_NAME = ORADB)
     )
   )

3.測試

可以使用tnsping和sqlplus的方式來建議,如下:

  1. tnsping

    [oracle@localhost admin]$ tnsping ORADB
    
    TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 29-JAN-2021 15:00:13
    
    Copyright (c) 1997, 2019, Oracle.  All rights reserved.
    
    Used parameter files:
    
    
    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.xx.202)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORADB)))
    OK (10 msec)
    
  2. sqlplus

    [oracle@localhost admin]$ sqlplus system/hrpdb@HRPDB
    
    SQL*Plus: Release 19.0.0.0.0 - Production on Fri Jan 29 15:01:56 2021
    Version 19.3.0.0.0
    Copyright (c) 1982, 2019, Oracle.  All rights reserved.
    Last Successful login time: Fri Jan 29 2021 14:45:10 +08:00
    Connected to:
    Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
    Version 19.3.0.0.0
    
    SQL> select * From global_name;
    GLOBAL_NAME
    --------------------------------------------------------------------------------
    HRPDB
    

後面可以通過寫java或者python程序,來連接Oracle19c數據庫。大的變化沒有。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章