【报错处理】ORA-00600: internal error code, arguments: [ktstgdi2], [], []...
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,错误原因:如果数据库中的参数文件或静态数据字典中产生了没有经过校验的错误数值,就会报出错误。经验总结:尽量不要直接修改数据库中的静态数据字典、尽量不要直接修改Oracle数据库相关文件,虽然Oracl
千家信息网最后更新 2025年01月21日【报错处理】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安全错误
数据库的锁怎样保障安全
数据库系统概论三建工程项目
在日本用什么安全软件开发
合肥立志为信网络安全信息
格力软件开发好不好
淮安付霸互联网科技有限公司
进网站服务器
小程序关闭调试无法访问服务器
怎样打开数据库模型
数据库 部门班组
网络安全隔离型号
云厅网络技术
服务器管理器刷新失败
软件开发去哪里翰诺科技好
cssp网络安全认证
数据库养老金怎么领
汉中地区代理服务器的参数值多少
金蝶sql数据库下载
自走棋服务器dota2
数据库课程设计源文件
查询数据库最晚入职的员工
mc java版好玩的服务器
4g手机无线网络安全密钥
数据库 部门班组
威斯汀威力网络技术公司
古斯魔兽单机数据库密码
怀化导航软件开发
怎么通过ie进入数据库
爱旅行项目数据库表关系图
服务器怎样安装win7驱动
普洱市网络安全检查