【发布时间】:2017-07-19 10:12:00
【问题描述】:
我在一个包含大约 8000 万条记录的表上运行删除脚本,该脚本运行了两天,最终失败,硬盘空间(安装 Oracle 的)从 50GB(可用)减少到 300MB(可用) )。然后我截断了表格。直到此时,数据库已启动并运行。然后我重新启动了系统,之后 Oracle 服务启动了,但我无法从 SQL*Plus 或 SQL Developer 连接到数据库。当我尝试连接时出现以下错误:
ERROR: ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
之后我将我的 D 盘内存增加到 100GB(可用空间)并重新启动了 Oracle 服务,但仍然无法连接到 yjr 数据库。
然后我尝试了in this link喜欢的所有方法
1) 重启 Oracle 2)设置ORACLE_SID环境变量 3) 验证listener.ora 中的ORACLE_HOME 和系统属性中的ORACLE_HOME。 4) 清除windows事件日志
当我运行以下命令序列时:
set oracle_sid=DATABASE NAME
sqlplus /nolog
conn sys/sys as sysdba
shutdown abort
startup
启动步骤产生以下错误:
ORACLE instance started.
Total System Global Area 3892314112 bytes
Fixed Size 3084576 bytes
Variable Size 1388318432 bytes
Database Buffers 2361393152 bytes
Redo Buffers 139517952 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 6996
Session ID: 7 Serial number: 21027
我尝试连接的数据库的 SID 是 PSPRODDB。下面是我的环境变量截图:
这是我的listerner.ora 文件。
# listener.ora Network Configuration File: D:\oracle\product\12.1.0.2\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:\oracle\product\12.1.0.2\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:D:\oracle\product\12.1.0.2\dbhome_1\bin\oraclr12.dll")
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.244.45.240)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
如果您需要任何进一步的信息,请告诉我。请帮忙。
【问题讨论】:
-
警报日志显示什么?数据库中的所有内容是否都在 D: 驱动器上,或者在另一个已满的驱动器上是否还需要空间?
-
在多租户安装中连接到 Oracle 12 需要使用
SERVICE NAME而不是SID。 -
@AlexPoole:我是 Oracle 的初学者,你能告诉我如何查看警报日志吗?与 DB 相关的所有内容都在驱动器 D 上。驱动器 C 有 100GB 可用空间,E 驱动器有 30GB 可用空间。
-
@mathguy:我是 Oracle 的初学者,能否请您告诉我有关多租户安装以及如何/在何处使用 SERVICE NAME 的信息?
-
@AlexPoole :感谢您建议警报日志,基于它们我看到一些重置日志导致了问题。按照此dba-oracle.com/t_ora_01589_must_use_resetlogs.htm 链接中的步骤为我解决了这个问题。