最近在测试主备环境中使用srvctl添加新的service之后,srvctl start发现其中一个原本用于主备同步的service丢失了。
原始的参数文件中的service_names参数值如下(数据库中service_names的值也一样,省略查看步骤):
[oracle@smartdbstb01 20250212]$ grep service_names pfile.ora
*.service_names='smartdb','stb_smartdb'
其中,stb_smartdb是专用于给主库同步所用的service。
由于测试环境上某张临时表大小几百M但是查询却非常慢拖慢了某块测试功能,经过排查是由于gc类的等待比较严重。
经过讨论决定创建这块业务用户的专属service进行连接以固定只连接到节点1,避免跨节点访问内存数据以避免gc类等待。
如下:
主库:
srvctl add service -d smartdb -s szsmart_basicsrv -r smartdbi1 -a smartdbi2
srvctl start service -d smartdb -s szsmart_basicsrv
备库:
srvctl add service -d smartdbstb -s szsmart_basicsrv -r smartdb1 -a smartdb2
srvctl start service -d smartdbstb -s szsmart_basicsrv