【PDB】 为Oracle pdb添加服务(pdb add service)

本文主要介绍 rac环境下,12.1以上 如何为pdb添加新的服务名(service)

大家都知道,Oracle 数据库的服务名默认是 数据库唯一名,在nocdb环境或者12.1之前,我们直接在参数service_name中可以为数据库添加新的服务名,或者通过srvctl添加,那么12.1以上 pdb怎么办呢,除了使用pdb本身的名字之外,如何为pdb添加新的服务名?

本例测试环境,cdb:testdb pdb:mypdb

为MYPDB添加服务名MYPDB.COM

# 如对参数不了解,可通过srvctl add service -h 参考,本例 新增服务名:mypdb.com
#oracle用户添加
[oracle@rac19c ~]$ srvctl add service -db testdb -service mypdb.com -pdb mypdb -preferred testdb1
[grid@rac19c ~]$ srvctl start service -db testdb -s mypdb.com
#检查服务状态
[grid@rac19c ~]$ crsctl stat res -t
....
ora.testdb.mypdb.com.svc
      1        ONLINE  ONLINE       rac19c                   STABLE
#查看监听状态
Service "mypdb.com" has 1 instance(s).
  Instance "testdb1", status READY, has 1 handler(s) for this service...

测试连接

[oracle@rac19c admin]$ sqlplus sys/oracle@192.168.80.210:1521/mypdb.com as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Thu Jun 10 14:56:21 2021
Version 19.6.0.0.0
Copyright (c) 1982, 2019, Oracle.  All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.6.0.0.0
SQL> show pdbs
    CON_ID CON_NAME              OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
     3 MYPDB              READ WRITE NO
SQL> show parameter service
NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
service_names                 string     testdb
SQL>

单机参考

exec dbms_service.create_service('pdb1.com','pdb1.com');
exec dbms_service.start_service('pdb1.com');
--删除
exec dbms_service.delete_service('pdb1.com');
--查看
set lines 200
col name for a20
col pdb for a20
select con_id,name,enabled,pdb from cdb_Services order by 1;

如上所示,我们可以通过 mypdb.com 或者 pdb1.com的服务名访问了

请使用浏览器的分享功能分享到微信等