Oracle 19c打开可插拔数据库报ORA-01219错误如何处理
错误产生原因
触发ORA-01219: database or pluggable database not open: queries allowed on fixed tables or views only的核心原因是你当前登录的CDB根容器(CDB$ROOT)本身没有处于正常OPEN状态,此时数据库仅允许查询部分固定视图/表,无法执行包括修改可插拔数据库状态在内的普通DDL操作。
常见触发场景:
- 数据库启动时仅执行了
STARTUP NOMOUNT或STARTUP MOUNT,未将CDB根容器启动到OPEN模式 - CDB根容器因异常宕机、介质故障、参数错误等原因停留在MOUNT或异常RESTRICTED状态,未完成正常启动流程
- 登录时误连到了未正常启动的数据库实例
解决操作步骤
- 使用SYSDBA权限用户登录数据库,先确认CDB根容器当前的启动状态,执行以下查询:
SELECT open_mode FROM v$database;
单实例生产环境正常状态返回值应为READ WRITE,ADG备库场景返回值应为READ ONLY,其他返回值均代表根容器未正常启动。
2. 若根容器处于NOMOUNT/MOUNT状态,先执行命令将CDB根容器启动到正常OPEN状态:
ALTER DATABASE OPEN;
如果数据库上次是异常关闭,这条命令会自动触发实例恢复,等待命令执行完成且无报错后再进行后续操作。如果执行该命令时抛出介质损坏、日志缺失类错误,需要先修复根容器对应的故障,才能继续操作可插拔数据库。
3. 确认当前操作容器为CDB根容器,避免在其他异常PDB内执行命令:
SHOW CON_NAME;
返回结果为CDB$ROOT即为正确位置。
4. 此时重新执行可插拔数据库打开命令即可成功:
ALTER PLUGGABLE DATABASE pdbname OPEN;
如果需要该PDB后续随CDB根容器启动自动打开,不需要每次手动执行启动命令,可以额外执行以下配置:
ALTER PLUGGABLE DATABASE pdbname SAVE STATE;
内容的提问来源于stack exchange,提问作者Feras Tamesh
相关产品推荐
相关产品推荐

