【报错处理】ORA-00600: internal error code, arguments: [ktstgdi2], [], []...
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,错误原因:如果数据库中的参数文件或静态数据字典中产生了没有经过校验的错误数值,就会报出错误。经验总结:尽量不要直接修改数据库中的静态数据字典、尽量不要直接修改Oracle数据库相关文件,虽然Oracl
千家信息网最后更新 2026年11月01日【报错处理】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安全错误
数据库的锁怎样保障安全
互联网科技海报
喔噻互联网科技有限公司
互联网科技公司起名
互联网科技公司税收优惠
互联网品科技
河南真二互联网科技有限公司
易互联网科技有限公司
互联网科技排名
奇士达互联网科技
丰台科技园 互联网
狮子座互联网科技培训
成都铂石互联网科技做什么的
洛阳昕诺飞互联网科技有限公司
如何创新互联网科技
世界互联网领先科技成果获奖
电子商务与互联网科技的关系
有人说阿里系是互联网科技企业
东营紫格互联网科技
北京互联网科技类企业分布
山东蛋芒互联网科技有限公司
咖啡
火传媒上海互联网科技
四个字互联网科技公司取名
新华互联网科技2019
上海宁丞科技互联网
知域互联网科技有限公司大骗子
银川新华互联网科技学校联系电话
华中科技大学互联网的牛人
互联网营销推广黑科技
宇信科技在杭州互联网排第几