(Oracle数据库管理每周一例(12.2,18c,19c) 2020-06-17

第三期 容器数据库的连接

1.基本连接

在以前的版本中,访问单实例数据库可以使用SID和SERVICE_NAME两种方式进行访问,而在RAC环境中通过SCANIP则主要使用SERVICE_NAME来访问数据库,当然从11g开始,Oracle是建议使用SERVICE_NAME来连接数据库的。
从12c开始,在容器数据库多租户模式下,CDB和PDB是承载在一个数据库实例上的,那么要访问CDB或者PDB无法使用SID的方式,只能使用SERVICE_NAME的方式。
在这里插入图片描述
在前一期中也讲到了如何使用sqlplus远程访问到容器数据库:

sqlplus user/password@ip:port/[cdb/pdb]_service_name

单实例环境下,在不考虑SERVICE_NAME域名后缀的情况下,CDB的SERVICE_NAME一般与数据库名一致,PDB的SERVICE_NAME和PDB_NAME一致。

2.使用SERVICE访问到PDB

有一种比较特殊的需求,PDB建立好了运行一段时间之后,需要更改数据库连接的SERVICE_NAME,而更改PDB_NAME非常麻烦,这种情况下就可以通过srvctl创建一个SERVICE,下面以使用TEST1的SERVICE_NAME访问PDB1为例进行演示:

srvctl add service -db oradb -pdb pdb1 -service TEST1
srvclt start service -db oradb -service TEST1

pdb1的SERVICE创建完成后,监听中会增加:
在这里插入图片描述
然后就可以通过TEST1的SERVICE_NAME来访问pdb1:
在这里插入图片描述
这里还要注意一点,主要安装grid启用Oracle Restart之后才能使用srvctl。

3.RAC中的SERVICE

RAC作为多实例数据库,每个计算节点承载一个实例,各实例之间会通过集群私有网络传输高速缓冲块、心跳信息、ASM信息、集群一致性信息等数据。
在多节点(节点数>2)RAC中如果一个业务对应的PDB的每个实例都参与数据库运算,那么这个PDB中使用私有网络的数据会在所有实例中流转,会极大增加私有网络压力,会造成cluster级别的等待,在一些情况下甚至会造成私有网络拥塞引起集群故障,因此需要减少参与计算的实例数量。
另一种情况,在一套RAC中,存在测试开发环境和生产环境,需要将部分实例用于测试开发,部分实例用于生产,二者之间通过划分实例进行隔离。
那么为了解决RAC环境中的上述问题,可以通过srvctl add service的-preferred参数来限定PDB的示例(下面操作、截图基于生产环境,4节点RAC):

srvctl add service -db dbname -pdb pdb_zydb -service zytest -preferred SID4

以上命令会在节点4创建名称为zytest的SERVICE,通过SERVICE_NAME:zytest可以访问节点4上pdb2,而不会使用其他节点。同时SCANIP上的监听也会新增名为zytest的SERVICE,包含节点4的实例;通过crsctl status res -t也可以查看:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.管理SERVICE

通过srvctl status service命令可以查看SERVICE状态:
在这里插入图片描述
通过srvctl config service命令可以查看SERVICE配置情况:
在这里插入图片描述
使用srvctl modify service -modifyconifg命令可以修改SERVICE命令:
在这里插入图片描述

下期预告:

容器数据库的性能管理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖头鱼的鱼缸(尹海文)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值