【报错处理】ORA-00600: internal error code, arguments: [ktstgdi2], [], []...
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,错误原因:如果数据库中的参数文件或静态数据字典中产生了没有经过校验的错误数值,就会报出错误。经验总结:尽量不要直接修改数据库中的静态数据字典、尽量不要直接修改Oracle数据库相关文件,虽然Oracl
千家信息网最后更新 2025年11月08日【报错处理】ORA-00600: internal error code, arguments: [ktstgdi2], [], []...错误原因:
如果数据库中的参数文件或静态数据字典中产生了没有经过校验的错误数值,就会报出错误。
经验总结:
尽量不要直接修改数据库中的静态数据字典、尽量不要直接修改Oracle数据库相关文件,虽然Oracle也提供了诸如bbed等工具,对Oracle相关的物理文件进行直接修改,但这些工具都是救急修补用的。
问题分析:
以数据库配置信息的修改为例,可以通过直接修改database_properties中的列值来达到修改数据库配置信息的目的,也可以通过alter database句柄间接来修改数据库配置信息,区别是,直接修改静态数据字典是没有任何校验的,如果修改的数值不对,或修改后的数值可能会引起数据库出现宕库或部分功能无法使用,这些都不会提示。而使用alter database句柄,会在修改database_properties之前先校验要修改的值是否正确,评估修改后是否会引起数据库故障,还会做大写转换操作,确保安全正确的修改数据库配置
实验:
设计思路:修改数据库的一个配置属性,以修改数据库默认临时表空间组为例。分别使用alter database句柄和直接修改保存配置属性的静态数据字典两种方式进行修改,分别使用正确的配置属性值和错误的配置属性值进行修改,报出ORA-00600错误。
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SYS@PROD1>
SYS@PROD1>
SYS@PROD1>
SYS@PROD1>
SYS@PROD1>
创建两个临时表空间,并组成一个临时表空间组
SYS@PROD1> create temporary tablespace temp1
2 tempfile '/u01/app/oracle/oradata/PROD1/temp101.dbf'
3 size 50M
4 tablespace group temp_grp;
Tablespace created.
SYS@PROD1> create temporary tablespace temp2
2 tempfile '/u01/app/oracle/oradata/PROD1/temp201.dbf'
3 size 50M
4 tablespace group temp_grp;
Tablespace created.
查询静态数据字典,查看当前数据库默认的临时表空间组
SYS@PROD1> select * from database_properties where property_name= 'DEFAULT_TEMP_TABLESPACE';
PROPERTY_NAME PROPERTY_VALUE DESCRIPTION
---------------------------------------- ----------------------------------------
DEFAULT_TEMP_TABLESPACE TEMP Name of default temporary tablespace
1 rows selected.
使用alter database句柄修改数据库默认的临时表空间组
SYS@PROD1> alter database default temporary tablespace temp_grp;
Database altered.
查询静态数据字典,证明修改成功
SYS@PROD1> select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';
PROPERTY_NAME PROPERTY_VALUE DESCRIPTION
---------------------------------------- ---------------------------------------- ----------------------------------------------------------------------------------------------------
DEFAULT_TEMP_TABLESPACE TEMP_GRP Name of default temporary tablespace
使用alter database句柄修改数据库默认的临时表空间组,并输入一个命名规范错误的临时表空间组的值
SYS@PROD1> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE 'temp_grp';
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE 'temp_grp'
报错,修改失败 *
ERROR at line 1:
ORA-02216: tablespace name expected
使用alter database句柄修改数据库默认的临时表空间组,并输入一个根本不存在的临时表空间组的组名
SYS@PROD1> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TETE;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TETE
*
报错,修改失败
ERROR at line 1:
ORA-00959: tablespace 'TETE' does not exist
直接修改静态数据字典,来修改数据库默认的临时表空间组,并输入一个命名规范错误的临时表空间组的值
SYS@PROD1> UPDATE DATABASE_PROPERTIES SET PROPERTY_VALUE='temp_grp' where PROPERTY_NAME ='DEFAULT_TEMP_TABLESPACE';
没有报错,且修改成功,这就是说,直接修改静态数据字典,是没有任何校验的,这样操作非常不安全!
1 row updated.
再次修改数据库磨人的临时表空间组,发现无法修改,报错
SYS@PROD1> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [ktstgdi2], [], [], [], [], [], [], [], [], [], [], []
直接修改静态数据字典,并将错误的值修改回正确的值
SYS@PROD1> UPDATE DATABASE_PROPERTIES SET PROPERTY_VALUE='TEMP_GRP' where PROPERTY_NAME ='DEFAULT_TEMP_TABLESPACE';
1 row updated.
数据库恢复正常,又可以继续维护该配置属性
SYS@PROD1> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP;
Database altered.
如果数据库中的参数文件或静态数据字典中产生了没有经过校验的错误数值,就会报出错误。
经验总结:
尽量不要直接修改数据库中的静态数据字典、尽量不要直接修改Oracle数据库相关文件,虽然Oracle也提供了诸如bbed等工具,对Oracle相关的物理文件进行直接修改,但这些工具都是救急修补用的。
问题分析:
以数据库配置信息的修改为例,可以通过直接修改database_properties中的列值来达到修改数据库配置信息的目的,也可以通过alter database句柄间接来修改数据库配置信息,区别是,直接修改静态数据字典是没有任何校验的,如果修改的数值不对,或修改后的数值可能会引起数据库出现宕库或部分功能无法使用,这些都不会提示。而使用alter database句柄,会在修改database_properties之前先校验要修改的值是否正确,评估修改后是否会引起数据库故障,还会做大写转换操作,确保安全正确的修改数据库配置
实验:
设计思路:修改数据库的一个配置属性,以修改数据库默认临时表空间组为例。分别使用alter database句柄和直接修改保存配置属性的静态数据字典两种方式进行修改,分别使用正确的配置属性值和错误的配置属性值进行修改,报出ORA-00600错误。
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SYS@PROD1>
SYS@PROD1>
SYS@PROD1>
SYS@PROD1>
SYS@PROD1>
创建两个临时表空间,并组成一个临时表空间组
SYS@PROD1> create temporary tablespace temp1
2 tempfile '/u01/app/oracle/oradata/PROD1/temp101.dbf'
3 size 50M
4 tablespace group temp_grp;
Tablespace created.
SYS@PROD1> create temporary tablespace temp2
2 tempfile '/u01/app/oracle/oradata/PROD1/temp201.dbf'
3 size 50M
4 tablespace group temp_grp;
Tablespace created.
查询静态数据字典,查看当前数据库默认的临时表空间组
SYS@PROD1> select * from database_properties where property_name= 'DEFAULT_TEMP_TABLESPACE';
PROPERTY_NAME PROPERTY_VALUE DESCRIPTION
---------------------------------------- ----------------------------------------
DEFAULT_TEMP_TABLESPACE TEMP Name of default temporary tablespace
1 rows selected.
使用alter database句柄修改数据库默认的临时表空间组
SYS@PROD1> alter database default temporary tablespace temp_grp;
Database altered.
查询静态数据字典,证明修改成功
SYS@PROD1> select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';
PROPERTY_NAME PROPERTY_VALUE DESCRIPTION
---------------------------------------- ---------------------------------------- ----------------------------------------------------------------------------------------------------
DEFAULT_TEMP_TABLESPACE TEMP_GRP Name of default temporary tablespace
使用alter database句柄修改数据库默认的临时表空间组,并输入一个命名规范错误的临时表空间组的值
SYS@PROD1> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE 'temp_grp';
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE 'temp_grp'
报错,修改失败 *
ERROR at line 1:
ORA-02216: tablespace name expected
使用alter database句柄修改数据库默认的临时表空间组,并输入一个根本不存在的临时表空间组的组名
SYS@PROD1> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TETE;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TETE
*
报错,修改失败
ERROR at line 1:
ORA-00959: tablespace 'TETE' does not exist
直接修改静态数据字典,来修改数据库默认的临时表空间组,并输入一个命名规范错误的临时表空间组的值
SYS@PROD1> UPDATE DATABASE_PROPERTIES SET PROPERTY_VALUE='temp_grp' where PROPERTY_NAME ='DEFAULT_TEMP_TABLESPACE';
没有报错,且修改成功,这就是说,直接修改静态数据字典,是没有任何校验的,这样操作非常不安全!
1 row updated.
再次修改数据库磨人的临时表空间组,发现无法修改,报错
SYS@PROD1> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [ktstgdi2], [], [], [], [], [], [], [], [], [], [], []
直接修改静态数据字典,并将错误的值修改回正确的值
SYS@PROD1> UPDATE DATABASE_PROPERTIES SET PROPERTY_VALUE='TEMP_GRP' where PROPERTY_NAME ='DEFAULT_TEMP_TABLESPACE';
1 row updated.
数据库恢复正常,又可以继续维护该配置属性
SYS@PROD1> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP;
Database altered.
数据
数据库
空间
字典
静态
配置
错误
句柄
属性
信息
数值
文件
输入
安全
成功
可以通过
工具
查询
不对
两个
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
神农服务器
人力资源的数据库
复试数据库技术
中国生物数据库
北京农行软件开发中心有宿舍吗
软件开发成熟度认定标准
中关村修服务器
常见的数据库提权方法有
查看数据库的操作日志
hp服务器 黑屏
手机 免费代理服务器
网络技术讲座主持
北辰区辅助网络技术答疑解惑
怎么使用java连接数据库
小学园网络安全资料
有问必答网络安全竞赛
服务器系统管理和维护
服务器设置快捷键
数据库在数据更新时应该注意什么
暗黑不朽a测服务器
溧阳网络科技公司软件开发
职工网络安全意识欠缺
2022年网络安全工作总结
复旦网络安全保险
珠海视频会议服务器报价
三级分润数据库表设计
做一张网络安全手抄报怎么写
erp里面的数据库叫什么
网络安全走进校园黑板报
怎么看电脑服务器和数据库名称