本文主要介绍 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的服务名访问了