`
jihongbin12329
  • 浏览: 40192 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
最近访客 更多访客>>
社区版块
存档分类
最新评论
阅读更多

数据文件,重做日志文件,控制文件。注:其中数据文件对应表空间,一个表空间至少有一个数据文件,数据库有多处表空间默认的是SYSTEM表空间。重做日志文件可以被备份做为归档日志文件归档文件又分为两种模式:非归档和归档。控制文件是数据库的核心,它包括了数据库的名称和编号,数据库的结构信息(数据文件和重做日志文件的地址)
数据库启动时查看它的SCN(system change number )看它是否同数据文件头上的SCN对应如果对应就启动数据库不对应就回滚数据。其它的物理文件有:初始化文件,同口令文件其中初始化文件中的信息是同实例有关而口令文件是特权身份信息的如SYS用户同密码具体来说口令中的信息可以在数据库打开之前使用进入数据库而其它的口令同用户只有数据库打开之后才可用

逻辑结构:
表空间,段,区,块.注:块是最小IO操作单位大于2k-32k之间,块分为标准块同非标准块标一个标准块同4个非标准块可以组成一个数据库在SYSTEM同TMPROAY表空间中一定要用标准块在数据库高速缓存中可以使用非标准块但非标准块参数不能同标准块参数一致,表空间创建时分配.段是相临区的组成可分为:表段,索引段,回滚段,临时段,引导段,簇表段.其中回滚段用于事务放原数据总的来说一个回滚段可以放几个事务而多个事务使用区不同但一个事务只能放于一个回滚段中,并且一个回滚段中只能有一个区是活的如果一个事务要使用几个区而当前的下面的区有事务时就会扩展一个区,回滚段至少要两个,但出现并发时可以从回滚段中取数据保持读写一致性.组成段的所有区是在段表空间上的数据文件中,索引段包含的是索引的字段以及对应行的值并不是对应行的ROWID,临时段是临时表主要用于排序工作当一个表段要进行排序时就可以在临时段中创建一个段用来存放一些排序信息,引导段是数据库启动时初始化时要用到的一个表段.区是段在表空间上连续使用的空间在创建段时进行区的分配也就是说对段的操作就是对区的操作.

回滚段:
回滚段有两种类型:NOSYSTEM,SYSTEM分别作用于两个表空间一个是SYSTEM一个是非SYSTEM表空间.NOSYSTEM中可以用两种管理模式:自动各手动.手动的要一个永久的回滚表空间可以设为私有或公有:私有只能被一个实例使用公有可能给多个

 


PMON   进程监视进程
 监视用户进程(客户端连接服务器的进程)到服务进程(在服务器端响应用户进程的进程)的连接。
 创建会话。
 监视会话是否异常中断,如果中断:PMON会回滚事务、解锁、释放资源。

SMON   系统监视进程
 任务:会检测SCN号,相等:启动
     不相等,实例恢复(1)前滚将日志应用
              (2)打开数据库
              (3)恢复数据库
   恢复的起点是走后一次CHECKPOINT的位置。
 每3秒合并空闲空间
 释放临时段
  临时段:暂时存放在排序时中没有空间的字段值。
   在排序中产生的。
   数据量大的时候,排序是分成若干块执行的,当字段值排好序之后就放到临时段中。


DBWR   数据库写进程
/DBW0/DBWn   n:0-9
 将脏数据写回到数据文件中。

当发生以下情况执行: 
 当发生检查点事件的时候,checkpoint
 脏块达到极限值;
 没有空间的缓冲空间
 超时
 RAC PING 请求
 表空间离线
 表空间只读
 在表执行DROP或TRUNCATE
 表空间上执行BEGIN BACKUP

   
LGWR    重作日志写进程
 把重做日志缓冲区的内容写出到日志文件(顺序写出,按时间)。
执行条件:
 事务提交
 先写日志后写数据的好处:
       最快地保证数据不丢失
       快  
 重作日志缓冲区三分之一满
 每3秒
 有一条超过1MB的重作日志记录
 DBWn进程操作前    

CKPT   检查点进程
 先执行DBWR,写数据,再进行同步。
 提供数据库同步性;
 在执行检查点时通知DBWn 执行写操作。 


ARCn   归档进程(可选)
保存数据库的所有修改记录
当数据库在ARCHIVELOG模式的时候自动归档当前

 

 

关于块区段的进一步论述:
把块或段认为是行或表是不正确的为了方便了解一开始是可以如些理解的。
块只不过是最小的IO块而己同逻辑上的列或行是不一样的块可以有几行数据也可以有不到一行的数据。
同理段也一样可以是几个表的集合也可以是一个表也可是不到一个表,它的形成只不过是相邻区集合的意义。正是如些才出现了行链接同行转移的术语:行链接是由于块中不能放入一行记录引起的再在块的空间区中定义一个指针来链接它们而行转移是说因为改动更新了字段出现原来的块不够入新的数据而使新的一部分的新数据出现在相邻的块中的,两者区别在于行链接是一开始由于块定义小了插入的新值不够放形成的而行转移是因为更新数据时数据大了只能放入到相邻的块只而形成的块中没有指针指到多余数据的地方。对于行链接的处理唯一的是可以通过扩大块的大小对于行转移的处理使用CHAINED_ROWSG的表先把数据放入一个临时表中在把原数据删除再导入新数据。可以修改块中的PCTFREE的值

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics