Oracle RAC / ODA 生产环境指定 PDB 启动 SOP

Oracle RAC / ODA 生产环境指定 PDB 启动 SOP 一、生产启动顺序Oracle RAC / ODA 环境启动顺序建议如下Grid / Clusterware ↓ ASM ↓ Listener / SCAN Listener ↓ CDB / RAC 实例 ↓ PDB 1. 确认 Grid / Clusterware 正常 2. 确认 ASM 正常 3. 确认 Listener / SCAN Listener 正常 4. 启动 CDB 数据库资源 5. 进入 CDB$ROOT 打开指定 PDB 6. 最终确认 RAC 实例和 PDB 状态核心原则srvctl 管 CDB / RAC 数据库资源 / ASM / Listener SQL*Plus 管数据库内部状态 / PDB 打开状态srvctl是Server Control Utility的缩写中文可理解为Oracle 服务器/集群资源控制工具。在 Oracle RAC / ODA / Grid Infrastructure 环境中srvctl主要用于管理数据库、实例、监听、服务、ASM 等集群资源。二、切换到 oracle 用户su - oracle确认当前用户whoami正常应为oracle三、查看集群资源总状态crsctl stat res -t crsctl Cluster Ready Services Control stat status查看状态 res resource资源 -t table以表格形式显示重点关注ora.asm ora.LISTENER.lsnr ora.LISTENER_SCAN*.lsnr ora.数据库名.db正常状态应为ONLINE如果整体资源状态正常再继续启动 CDB 和 PDB。四、确认 ASM 状态查看 ASM 状态srvctl status asm正常类似ASM is running on node teierp1 ASM is running on node teierp2如果 ASM 没起来怎么办如果 ASM 未运行先启动 ASMsrvctl start asm如果只需要启动某个节点 ASM可以指定节点srvctl start asm -node 节点名启动后再次确认srvctl status asm也可以查看集群资源状态crsctl stat res -t确认ora.asm为ONLINE后再继续后续步骤。说明ASM 是数据库文件、控制文件、redo、归档等底层存储管理组件。 如果 ASM 未正常运行CDB 数据库通常无法正常启动。五、确认监听状态查看本地监听srvctl status listener查看 SCAN 监听srvctl status scan_listener正常应看到 Listener / SCAN Listener 正常运行。如果监听没起来怎么办启动本地监听srvctl start listener启动 SCAN 监听srvctl start scan_listener启动后再次确认srvctl status listener srvctl status scan_listener说明监听未启动时数据库本身可能已经打开但客户端、应用或远程连接可能无法正常访问。 RAC 环境建议同时确认本地 Listener 和 SCAN Listener。六、查询 RAC 中有哪些数据库资源srvctl config database示例输出erpcdb mesadg UTF8ADG z16cdb这里查出来的就是srvctl -d后面要填写的数据库资源名通常也是 CDB / DB_UNIQUE_NAME。七、查看目标 CDB 状态以erpcdb为例srvctl status database -d erpcdb正常可能看到Instance erpcdb1 is running on node teierp1 Instance erpcdb2 is running on node teierp2如果实例未运行则继续启动 CDB。八、启动 CDB 数据库资源srvctl start database -d erpcdb说明该命令用于启动整个 erpcdb 数据库资源。 只需要在任意一个正常节点执行一次不需要两个节点分别执行。 Oracle Clusterware 会根据数据库配置自动启动该数据库对应的 RAC 实例。启动后确认srvctl status database -d erpcdb九、设置 ORACLE_SID 并进入 SQL*Plus查看当前节点上的实例名ps -ef | grep pmon | grep -v grep示例ora_pmon_erpcdb1设置当前实例export ORACLE_SIDerpcdb1进入数据库sqlplus / as sysdba确认当前容器show con_name;如果不是CDB$ROOT切换到根容器alter session set containerCDB$ROOT;十、确认数据库角色和打开状态select name, db_unique_name, database_role, open_mode from v$database;如果是主库通常应看到PRIMARY READ WRITE如果是 ADG / 备库例如PHYSICAL STANDBY不要按主库方式强行打开 PDB 为读写状态需先确认业务要求。十一、查看 PDB 状态查看当前实例 PDB 状态show pdbs;RAC 环境建议查看所有实例上的 PDB 状态set lines 200 col name for a30 col open_mode for a20 select inst_id, con_id, name, open_mode from gv$pdbs order by name, inst_id;说明RAC 两个实例访问的是同一个 CDB因此看到的 PDB 名称是一致的。 但 PDB 在不同实例上的打开状态可能不同所以建议用 gv$pdbs 查看所有实例。十二、打开指定 PDB例如要打开IETQMSalter pluggable database IETQMS open instancesall;说明instancesall 表示在 RAC 所有实例上打开该 PDB。 RAC 环境建议加上 instancesall避免只在当前实例打开。十三、保存 PDB 自动打开状态如果希望下次 CDB 启动后该 PDB 自动打开alter pluggable database IETQMS save state instancesall;十四、最终确认 PDB 状态select inst_id, con_id, name, open_mode from gv$pdbs where name IETQMS order by inst_id;正常应看到各实例上该 PDB 为READ WRITE退出 SQL*Plusexit十五、快速命令汇总1. 检查集群、ASM、监听su - oracle crsctl stat res -t srvctl status asm srvctl status listener srvctl status scan_listener2. ASM 未启动时srvctl start asm srvctl status asm3. 监听未启动时srvctl start listener srvctl start scan_listener srvctl status listener srvctl status scan_listener4. 查询并启动 CDBsrvctl config database srvctl status database -d erpcdb srvctl start database -d erpcdb srvctl status database -d erpcdb5. 进入数据库ps -ef | grep pmon | grep -v grep export ORACLE_SIDerpcdb1 sqlplus / as sysdba6. 打开指定 PDBshow con_name; alter session set containerCDB$ROOT; select name, db_unique_name, database_role, open_mode from v$database; show pdbs; select inst_id, con_id, name, open_mode from gv$pdbs order by name, inst_id; alter pluggable database IETQMS open instancesall; alter pluggable database IETQMS save state instancesall; select inst_id, con_id, name, open_mode from gv$pdbs where name IETQMS order by inst_id; exit十六、一句话总结RAC 环境启动指定 PDB 的生产顺序 先确认 Grid 正常 再确认 ASM 正常 再确认 Listener / SCAN Listener 正常 然后 srvctl start database -d CDB资源名 启动 CDB 最后进入 CDB$ROOT 执行 alter pluggable database PDB名 open instancesall。需要替换的内容只有三个CDB资源名例如 erpcdb 当前节点实例名例如 erpcdb1 PDB名例如 IETQMS这版就是生产速查版重点够用不绕。实际干活时就按顺序先看底座再拉 CDB最后开 PDB。