Oracle19c RAC 监听兼容sid连接pdb库

文章介绍了在RAC上使用SID连接的可行性,包括客户升级到19c数据库后,为兼容旧版驱动启用USE_SID_AS_SERVICEListener。在虚拟机环境中搭建RAC测试环境,使用VirtualBox和vagrant进行配置,调整内存和内核版本,并解决了连接问题。同时,通过OracleSQLDeveloper和DataGrip测试了SID连接的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

在RAC上可行吗?结论:可以。

在虚拟机上搭建RAC测试环境验证

Oracle SQL Developer连接SID测试

DataGrip旧驱动连接SID测试


作为与Oracle告别的文字。

客户升级Oracle数据库到19c,但是一些应用的Oracle客户端驱动比较老旧无法升级到新版驱动,为了兼容此类老旧应用,启用USE_SID_AS_SERVICE_listener_name参数,注意:listener_name需要用实际的监听名称,默认是LISTENER,即:USE_SID_AS_SERVICE_LISTENER。

参考官方建议Oracle Net 12c: How to enable Clients using SID to connect to PDB? (Doc ID 1644355.1)

墨天轮大拿的建议Oracle 12c 以上,如何使用sid 连接pdb ?结论也是可以的。

在RAC上可行吗?结论:可以。

副作用是连接SCANIP无效,连接真正sid会失败。


在虚拟机上搭建RAC测试环境验证

确保RAC运行正常

使用VirtualBox7+vagrant2.3.4+OracleLinux8.7搭建环境注意事项:

  1. 用于rac节点的内存最好10G,OracleLinux8.7内核选用4.18(4.18.0-425.13.1.el8_7.x86_64)兼容VirtualBox的扩展包使用共享文件夹与主机传输文件。
  2. 互信报错INS-44000处理,参考,注意两个节点都要配置。  
  3. 可选启用图形界面,安装UIServer with GUI ),配置自动进入图形界面,或者进入grid或oracle字符界面,手动运行startx进入图形界面

grid用户下,修改任意节点的$ORACLE_HOME\network/admin/listener.ora文件,如下图所示:

Oracle SQL Developer连接SID测试

DataGrip旧驱动连接SID测试

<think>好的,我需要帮助用户在Oracle 19c RAC与单机ADG环境中创建PDB。首先,我需要明确用户的环境是RAC加上单机ADG备。根据提供的引用资料,主RAC环境,可能有多个节点,而备是单机ADG。创建PDB通常在主进行,然后通过ADG同步到备。我需要考虑以下几个步骤: 1. **准备工作**:确保主和备的配置正确,ADG已经正常同步。检查主的TNS配置,确保能够连接到备。同时,确认主的归档模式和强制日志开启,这些都是ADG正常工作的前提。 2. **在主RAC上创建PDB**:用户可能需要在其中一个节点上执行创建PDB的操作,或者使用服务名连接RAC。创建PDB的方法可以是克隆现有的PDB、使用PDB种子文件或插入拔出PDB。需要确认存储的位置和文件路径是否正确,特别是RAC环境下的共享存储。 3. **同步到ADG备**:创建PDB后,ADG应该会自动同步数据,但可能需要手动处理一些步骤,比如在备上创建相应的目录结构,或者解决文件路径的转换问题。因为主RAC,使用ASM存储,而备是单机,可能使用文件系统,需要确保STANDBY_FILE_MANAGEMENT参数设置正确,或者手动添加文件。 4. **验证同步结果**:检查备的状态,确认PDB是否成功同步并处于只读模式。可能需要打开备PDB进行只读查询测试。 接下来,我需要参考提供的引用内容。引用[1]提到ORACLE_BASE的设置和环境变量,引用[2]和[3]描述了RAC到单机ADG的环境配置,包括IP地址和服务名。这些信息可能涉及主和备的网络连接配置,比如TNSNAMES.ORA的设置,确保主创建PDB时能够正确传输日志到备。 在步骤中需要特别注意的地方包括:确保主PDB创建后生成的重做日志能够被ADG应用,备数据库是否处于MOUNT状态,以及文件路径的转换是否正确。如果备使用的是不同的文件系统结构,可能需要使用参数DB_FILE_NAME_CONVERT或ASM别名来转换文件路径。 此外,用户可能需要了解在创建PDB后如何验证ADG的同步状态,比如查询V$DATAGUARD_STATS视图,或者检查警报日志是否有错误信息。 最后,生成相关问题时要围绕用户可能遇到的后续问题,比如如何处理文件路径不一致,如何测试ADG同步,或者如何解决常见的同步错误。</think>### Oracle 19c RAC与单机ADG环境下创建PDB步骤 #### 1. **环境准备** - **确认ADG同步正常** 确保主RAC)与备(单机ADG)的Data Guard状态为`APPLYING`: ```sql SELECT PROCESS, STATUS FROM V$MANAGED_STANDBY; ``` 检查主备的归档传输和应用状态[^1][^2]。 - **配置主TNS服务** 在RAC的`tnsnames.ora`中添加备连接描述符,确保主可通过网络访问备: ```tnsnames STANDBY_DG = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 189.175.96.15)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = dbdg)) ) ``` #### 2. **在RAC创建PDB** - **使用SQL*Plus连接到主** 通过服务名连接RAC中的任一节点(例如`orcl`): ```bash sqlplus sys@orcl as sysdba ``` - **创建PDB** 示例通过克隆PDB种子创建新PDB`newpdb`: ```sql CREATE PLUGGABLE DATABASE newpdb ADMIN USER pdbadmin IDENTIFIED BY password FILE_NAME_CONVERT=('+DATA/ORCL/PDBSEED/','+DATA/ORCL/NEWPDB/'); ``` 若主使用ASM存储(如`+DATA`),需确认路径正确性[^3]。 - **同步到ADG备** 开启PDB并生成重做日志: ```sql ALTER PLUGGABLE DATABASE newpdb OPEN; ALTER SYSTEM ARCHIVE LOG CURRENT; ``` #### 3. **处理备文件路径** - **自动文件管理配置** 在备检查参数: ```sql SHOW PARAMETER STANDBY_FILE_MANAGEMENT; ``` 若为`MANUAL`,需手动转换文件路径: ```sql ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT='AUTO'; ``` 或在备执行: ```sql ALTER DATABASE CREATE DATAFILE '+DATA/ORCL/NEWPDB/system01.dbf' AS '/u01/app/oracle/oradata/dbdg/newpdb/system01.dbf'; ``` #### 4. **验证备PDB状态** - **检查备同步** 在备执行: ```sql SELECT NAME, OPEN_MODE FROM V$PDBS; ``` 正常状态下应显示`READ ONLY WITH APPLY`。 - **打开PDB只读模式**(可选) ```sql ALTER PLUGGABLE DATABASE newpdb OPEN; ``` #### 5. **注意事项** - **文件路径冲突** 若主使用ASM而备使用文件系统,需通过`DB_FILE_NAME_CONVERT`或`ASMCMD`手动映射路径。 - **日志传输延迟** 若PDB未同步,检查主日志传输状态: ```sql SELECT DEST_NAME, STATUS FROM V$ARCHIVE_DEST WHERE DEST_ID=2; ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值