In this Document


@ Oracle Confidential (INTERNAL). Do notdistribute to customers
@ Reason: has internal information

@ (AuthWiz 2.5.1)

Applies to:

Oracle Server – Enterprise Edition –Version:
Information in this document applies to any platform.
Oracle RDBMS Server

Purpose

What is bootstrap?
What happens during database startup?
Which objects are classified as bootstrap objects in oracle database?
How the dictionaries are loaded?
Why bootstrap (ORA-00704) process failure is so serious if it occurs on startupor while recovery?

Scope and Application

This article intend to explain thebootstrap operations of oracle.

Understanding Bootstrap Of Oracle Database

What is bootstrap?

In general, Bootstrap is a technique forloading the first few instructions of a computer program into active memory andthen using them to bring in the rest of the program.

What is bootstrap in Oracle ?

In Oracle, Bootstrap refers to loading of metadata (data dictionary) before we OPEN the database.
Bootstrap objects are classified as the objects (tables / indexes / clusters)with the object_id below 56 as bootstrap objects.
These objects are mandatory to bring up an instance, as this contains the mostimportant metadata of the database.

What happens on database startup?

This shall be explained by setting theSQL_TRACE while opening the database.

Connect as sysdba and do the following

STARTUP MOUNT;
ALTER SESSION SET EVENTS ’10046 TRACE NAME CONTEXT FOREVER, LEVEL 12′;
ALTER DATABASE OPEN;
ALTER SESSION SET EVENTS ’10046 TRACE NAME CONTEXT OFF’;
SHOW PARAMETER USER_DUMP_DEST
ORADEBUG SETMYPID
ORADEBUG TRACEFILE_NAME

The sql_trace of the above process explainsthe following operations behind startup.
The bootstrap operation happens between MOUNT stage and OPEN stage.

1. The first SQL after in the above trace shows the creation of the bootstrap$ table.
Something similar to the following:

———————————————–
create table bootstrap$ ( line# number not null, obj# number not null, sql_textvarchar2(4000) not null) storage (initial 50K objno 56 extents (file 1 block377))
———————————————–

This sys.bootstrap$ table contains theDDL’s for other bootstrap tables (object_id below 56).

-> Actually these tables were createdinternally by the time of database creation (by sql.bsq), The create DDL passedbetween MOUNT and OPEN stage will be executed through different driverroutines. In simple words these are not standard CREATE DDLs.
While starting up the database oracle will load these objects into memory(shared_pool),(ie) it will assign the relevant object number and refer to thedatafile and the block associated with that.
And such operations happen only while warm startup.

@ The internals of the above explained in‘kqlb.c’.

2. Now a query executedagainst the sys.bootstrap$ table, which holds the create sql’s for other basetables.

select line#, sql_text from bootstrap$where obj# != :1 (56)

Subsequently it willcreate those objects by running those queries.

Object number 0 – (System Rollback Segment)
Object number 2 to 55 (Other base tables)
Object number 1 is NOT used by any of the objects.

3. Performs variousoperations to keep the bootstrap objects in consistent state.

- Upon the successful completion ofbootstrap the database will do the other tasks like recovery and will open thedatabase.

Which objects are classified as bootstrapobjects in oracle database?

Objects with data_object_id less than 56are classified as core bootstrap objects.

The objects are added tothe bootstrap. The objects affected are:

hist_head$
histgrm$
i_hh_obj#_col#
i_hh_obj#_intcol#
i_obj#_intcol#
i_h_obj#_col#
c_obj#_intcol#

From 10.1 the followingobjects have been added:
fixed_obj$
tab_stats$
ind_stats$
i_fixed_obj$_obj#
i_tab_stats$_obj#
i_ind_stats$_obj#
object_usage

These additional objectsshall be re-classified (or) ignored by following methods.
1. Opening the database in migrate mode
2. Using event 38003

Event 38003 affects the bootstrap process of loading the fixed cache in kqlblfc(). Per default certain objects are marked as bootstrap objects (eventhough they are not defined as such in sys.bootstrap$) but by setting the eventthey will be left as non-bootstrapped.

What is bootstrap process failure?ORA-00704

This ORA-00704 error SERIOUS if reported atstartup. This error refers to some problem during bootstrap operation.
Any ORA-00704 error on STARTUP / RECOVER is serious, this error normally rosedue to some inconsistency with the bootstrap segments (or) data corruption onbootstrap$ (or) any of the base tables below object_id 56. After this error itmight not allow to open that database.

When ORA-00704 shall occur?

1. There is a probable of this error whenany unsupported operations are tried to force open the database.
2. This error can also occur when system datafile has corrupted blocks.(ORA-01578)
3. In earlier releases of oracle (prior to 7.3.4 and 8.0.3) this issue shallarise due to Bug 434596

The option is to restore it from a goodbackup and recover it.
-> If the underlying cause is physical corruption that is due to hardwareproblems then do complete recovery.
-> If the issue is not relating to any physical corruption, then the problemcould be due some unsupported actions on Bootstrap, and a Point In TimeRecovery would be an option in such cas

-------------------------------------------------------------------------------------------------------

Blog: http://blog.csdn.net/tianlesoftware

Weibo: http://weibo.com/tianlesoftware

Email: dvd.dba@gmail.com

DBA1 群:62697716(满);   DBA2 群:62697977(满)  DBA3 群:62697850(满)

DBA 超级群:63306533(满);  DBA4 群:83829929(满) DBA5群: 142216823(满)

DBA6 群:158654907(满)   DBA7 群:69087192(满)  DBA8 群:172855474

DBA 超级群2:151508914  DBA9群:102954821     聊天 群:40132017(满)

--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请

转载于:https://www.cnblogs.com/hibernate315/archive/2011/09/26/2398940.html

Understanding Bootstrap Of Oracle Database相关推荐

  1. oracle 11g circuits 参数,递归:在 Oracle Database 11g 第 2 版中查询层次结构数据

    开发人员:SQL 递归: 在 Oracle Database 11g 第 2 版中查询层次结构数据的快速入门 作者:Tim Hartley 2010 年 2 月发表 递归数据库处理,也称为材料清单 或 ...

  2. Installing Oracle Database 18c Using RPM Packages

    Oracle官方已放出18c企业版的RPM安装包,但仅限于单机版.相对于之前的版本,省去了前期规划配置的繁琐步骤. 1.下载Oracle RPM安装包 从官网选择rpm格式的安装包,下载即可.如下图: ...

  3. oracle database link mysql_oracle database link使用说明

    oracle database link使用说明 作用: 将多个oracle数据库逻辑上看成一个数据库,也就是说在一个数据库中可以操作另一个数据库中的对象. 简易语法: CREATE [PUBLIC] ...

  4. Oracle Database 11g的使用

    ----------------------------Oracle Database 11g-网络配置 ----------------------------使用SQL*PLUS访问数据库 Sys ...

  5. php连接oracle10g,php连接Oracle Database 10g Express Edition

    Oracle Database 10g Express Edition,它提供了一个非常容易使用的基于浏览器的控制台,也提 供了非常详细友好的教程,不过,一些高级的操作还是需要使用命令行的,下面是使用 ...

  6. Oracle Database 11.2.0.1(静默安装)

    http://www.cnblogs.com/ylqmf/archive/2012/04/16/2451211.html 本文档是Oracle Database 11.2.0.1 for RHEL5 ...

  7. Oracle Database Appliance ODA开箱视频

    Oracle Database Appliance ODA开箱视频    

  8. oracle Database 10g后:闪回表

    使用 Oracle Database 10g 中的闪回表特性,可以毫不费力地恢复被意外删除的表 以下是一个不该发生却经常发生的情况:用户删除了一个非常重要的表 - 当然是意外地删除 - 并需要尽快地恢 ...

  9. oracle database firewall 配置 保护 db,Oracle DB control配置启动

    今天打算启用一下Oracle Database 11g的Database Control,发现初始并未安装: [Oracle@test126 ~]$ emctl start EM Configurat ...

  10. oracle rac服务供应商,【Oracle Database】Oracle RAC(八):服务资源管理

    [Oracle Database]Oracle RAC(八):服务资源管理 发布时间:2020-07-24 15:02:47 来源:51CTO 阅读:210 作者:NOGYMS Service资源 每 ...

最新文章

  1. IE安全系列:脚本先锋(4)
  2. beyond compare 不自动比较解决办法(没解决,可以ctrl + F5手动比较)
  3. [好消息]博客园期刊第二期发布
  4. 《CUDA高性能并行计算》----2.2 需要知道的CUDA API和C语言拓展
  5. lua菜鸟教程_Lua语言学习
  6. flash位图技术研究篇(8):扫描像素点
  7. HihoCoder 1527 动态规划,贪心
  8. 金融评分卡项目—4.GBDT模型在流失预警模型中的应用
  9. git基本命令、提交pr
  10. 数据分析之数据分类了解
  11. js 获取两个数组的交集,并集,补集,差集(转载+收藏)
  12. Linux文件打包与解压缩
  13. Box2d源码学习一之Box2d简介
  14. android客户端功能,推荐一个功能齐全的【玩Android客户端】
  15. 2018 焦作 onsite E - Resistors in Parallel(数学或规律+大数)
  16. 行转换html,块级、行内、行内元素相互转换
  17. 如何分析个股基本面_如何从基本面判断个股?
  18. Pr学习DAY2-----详解“项目面板“与“时间轴面板“
  19. UE4 报错 missing type specifier - int assumed
  20. MPD软件工作坊上海站本周末在上海举行

热门文章

  1. [CERC2017]Intrinsic Interval(神仙+线段树)
  2. Spring+webservice(cxf框架)
  3. 【nodejs】使用put方式向后端提交数据
  4. load data file使用详解
  5. OSPF建立邻居、邻接关系 学习笔记
  6. vue 中获取select 的option的value 直接click?
  7. ORACLE TRUNC()函数
  8. OC NSNumber NSValue
  9. HTML中IE条件注释判断语句(!--[if XX IE X]![endif]--)
  10. Java多线程学习笔记-线程的状态