知识大全 数据字典表Truncate掉将导致数据库不可用

Posted 数据库

篇首语:古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据字典表Truncate掉将导致数据库不可用相关的知识,希望对你有一定的参考价值。

数据字典表Truncate掉将导致数据库不可用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在实际的工作环境下 如果你在操作时将数据库内的几个数据字典表Truncate掉 将会直接导致数据库不能再继续使用 本文将针对一个相关案例进行详细的讲解

  案例如下

  数据库环境 Oracle数据库 RAC (注 由于数据库的事务量体别大 所以数据库没有进行备份)

  检查后发现的被截断表

  SQL> select object_name object_type from dba_objects where object_name like IDL% ;  OBJECT_NAME            OBJECT_TYPE     IDL_CHAR$                 TABLE  IDL_SB $                  TABLE  IDL_UB $                  TABLE  IDL_UB $                  TABLE

  IDL_UB $表是特别重要的字典表 只要出现故障 数据库就会出现大量的ORA 错误 所有事务将不能进行

  ORA : internal error code arguments: [ ]   [ xC DDDFA ] [] [] [] [] [] []

  ORA 错误是一个特别难解决的问题 问题出现后数据库的某个跟踪日志很快就会出现暴涨的情况 因为IDL系列字典表是记录数据库对象编译信息的 丢失了其中的数据 所有过程 Package等都将无法执行

  字典表作用的说明

  IDL_UB $ is one of four tables that hold piled PL/SQL code:  IDL_UB $  IDL_CHAR$  IDL_UB $  IDL_SB $   PL/SQL is based on the programming language Ada As a result PL/SQL uses a  variant of Descriptive Intermediate Attributed Notation for Ada (DIANA) which  is a tree structured intermediate language It is defined using a meta notation  called Interface Definition Language (IDL) DIANA provides for munication  internal to pilers and other tools    At pile time PL/SQL source code is translated into machine readable  m code Both the DIANA and m code for a procedure or package are stored in the  database At run time they are loaded into the shared (memory) pool The DIANA is  used to pile dependent procedures; the m code is simply executed   These four tables hold the DIANA and the so code m code I think m code is  short for machine dependent byte code but there is a sizable machine indenpendent part  as well If you have a look at sql bsq you can see  that Oracle documents the type column of these tables as follows:  part number not null   /* part: = diana = portable pcode    = machine dependentpcode */

  如果出现更为严重的情况 它将导致大量系统DBMS包失效 其重新编译也将更为复杂

  恢复数据库 消除所有ORA 错误的方法

  恢复的方法是通过运行相关的脚本 重建和重新编译所有Procedure/Trigger/Package等对象 重新生成这些对象的DIANA和so code m code 主要包括catlog sql catproc sql等脚本

cha138/Article/program/SQL/201311/16346

相关参考

知识大全 Oracle数据字典(可用它动态获取字段名、长度、类型等)

Oracle数据字典(可用它动态获取字段名、长度、类型等)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 ORACLE主要的系统表和数据字典视图

ORACLE主要的系统表和数据字典视图  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  系统表  

知识大全 Oracle快速删除数据字典管理的表空间

Oracle快速删除数据字典管理的表空间  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  我的测试

知识大全 教你学会truncate和delete的区别

  一delete产生rollback如果删除大数据量的表速度会很慢同时会占用很多的rollbacksegmentstruncate是DDL操作不产生rollback速度快一些    Truncate

知识大全 oracle数据库删除数据Delete语句和Truncate语句的使用比较

oracle数据库删除数据Delete语句和Truncate语句的使用比较  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我

知识大全 Oracle数据库可用性和表空间容量

Oracle数据库可用性和表空间容量  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  很多人都有这

知识大全 建立了分区表后如果访问表中数据

  Quote:  对一张表建立了分区后在访问表中数据时是如何操作的  answer:  普通表呢像一个小学生用的新华字典分区表呢像一套博士们辞海在同一个漂亮的盒子里面(表名)有若干本辞海分册(每一册

知识大全 mysqldump用法数据库导出

  mysqldump客户端可用来转储数据库或搜集数据库进行备份或将数据转移到另一个SQL服务器(不一定是一个MySQL服务器)转储包含创建表和/或装载表的SQL语句  如果你在服务器上进行备份并且表

知识大全 Oracle数据字典与动态性能视图

Oracle数据字典与动态性能视图  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  常用的数据字典

知识大全 索引存储关系到数据库的运行效率

  在Oracle数据库中数据库管理员不仅在索引的选择上要花费一定的精力而且在索引的存储上也有所讲究因为索引与表一样不仅需要在数据字典中保存索引的定义还需要在表空间中为他分配实际的存储空间并为其设置存