该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
【问题】:
在登录oracle报错时提示ORA-12514的错误 【分析】使用telnet 127.0.0.1 1521 命令能正常执行,说明监听程序是正常的,端口正常,此时怀疑是数据库出现了问题
使用SQLPLUS工具CONN / AS SYSDBA登录数据库,提示“已连接到空闲实例”,说明问题就是出现在数据库上面
先使用STARTUP MOUNT命令将数据库启动到MOUNT状态,此操作无报错
再使用ALTER DATABASE OPEN 打开数据库,此时数据库报如下错误:
ORA-00607: Internal error occurred while making a change to a data block
ORA-00600: internal error code, arguments: [kddummy_blkchk], [8], [565129], [18021], [], [], [], []
此时已明确数据库是因为ORA-00607错误导致的。(这里用分步启动数据库是为了更好的发现问题是出在哪个环节)
在网上百度了一下,资料上说问题是由于UNDO表空间内存在逻辑错误导致的 【处理】
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 603979776 bytes
Fixed Size 1250380 bytes
Variable Size 83889076 bytes
Database Buffers 511705088 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
SQL> show parameter undo;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1
SQL> alter system set undo_management=manual scope=spfile;
系统已更改。
SQL>
SQL> shutdown immediate
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 603979776 bytes
Fixed Size 1250380 bytes
Variable Size 83889076 bytes
Database Buffers 511705088 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
数据库已经打开。
SQL> create undo tablespace undo2 datafile *D:\oracle\oradata\oral\undotb
* size 100m;
表空间已创建。
SQL> alter system set undo_tablespace=undo2 scope=spfile;
系统已更改。
SQL> alter system set undo_management=auto scope=spfile;
系统已更改。
SQL> show parameter undo;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------
undo_management string MANUAL
undo_retention integer 900
undo_tablespace string UNDOTBS1
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 603979776 bytes
Fixed Size 1250380 bytes
Variable Size 83889076 bytes
Database Buffers 511705088 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
数据库已经打开。