oracle 各种文件的作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 各种文件的作用相关的知识,希望对你有一定的参考价值。

一.控制文件

1、控制文件在数据库启动的作用对于dna来讲,oracle数据库控制文件是非常重要的文件,他是数据库创建的时候自动生成的二进制文件,其中记录了数据库的状态信息。其它任何用户都无法修改控制文件,只有数据库运行过程中,数据库实例可以修改控制文件中的信息。控制文件主要包括以下内容:

数据库名称,一个控制文件只能属于一个数据库。

数据库创建时间。

数据文件的名称、位置、联机、脱机状态信息。

重做日志文件的名称、位置及归档信息。

所有表空间信息。

当前日志序列号。

最近检查点信息。

2.控制文件在数据库启动的mount阶段被读取,数据库启动与控制文件的关系如下图:

技术分享

3.

控制文件中存放了创建数据库的信息、重做日志信息、数据文件及归档日志文件记录等信息。这些有价值的信息用于数据维护和管理,很多数据字典视图是从控制文件中获得的信息。

4.

3、存储多重控制文件

由于控制文件非常重要,所以要求控制文件不能只有一个,通常数据库中控制文件要多于3个,并且存放在不同的磁盘上,这种使用控制文件的方法也称为控制文件的多路复用。实现多重的一个方法就是通过复制控制文件到多个位置并修改初始化参数文件中的CONTROL_FILES参数,使之包含所有控制文件名称。

 

 

二、管理重做日志文件

1.作用:

为了提高磁盘效率和防止重做日志文件损坏

 

2.原理:

重做日志文件也称联机重做日志,目的是恢复数据。

在数据库运行过程中,用户更改的数据会暂时存放在数据库的高速缓冲区中。为了提高写数据库的速度,并不是一旦有数据变化,就把变化的数据写到数据库文件中。频繁的读写磁盘会使数据库系统效率降低,所以,要等到数据库高速缓冲区中的数据达到一定的量或满足一定条件时,DBWR进程才会将变化了的数据写到数据文件中。这种情况下,如果DBWR把变化了的更改写到数据文件之前发生了宕机,那么数据库高速缓冲区中的数据就会全部丢失。如果在数据库服务器重启动后无法恢复这部分用户更改的数据,显然是不可以的。

重做日志就是把变化了的数据首先保存起来,其中LGWR进程负责把用户更改的数据先写到重做日志文件中,这样数据库重新启动时,数据库系统从重做日志文件中读取这些变化了的数据,将用户更改的数据提交到数据库中,写入数据文件。

3.

种重做日志文件结构,如图:

技术分享

上图可以看出有3个重做日志组,每组包含两个重做日志成员。当第一个日志组写满之后,就会停止写入,而转向第二个日志组,第二个写满后,转向第三个日之组,第三个写满就向第一个日志组写入,oracle以这种循环方式使用重做日志组。

Oracle规定每个数据库至少有两个日志组,每组至少包含一个或者多个日志成员。

使用新的重做日志之前,DBWR进程需要将所有的数据更改写到数据文件中。如果数据库处于归档模式下,当发生日之组切换时,归档进程ARCH会把当前已满的重做日志文件中的数据复制到归档日志中。

日志文件大小一般在10M-50M比较合适。

三.

日志切换和检查点事件

日志切换就是停止当前日志组,转而写另外一个新的日志组,系统可以自动切换,也可以手工切换,当发生日志切换时,系统会在后台完成检查点的操作,以减少实例的恢复时间。
检查点是一个事件,用于减少实例恢复的时间,当检查点发生时,它会触发DBWR进程,把数据高速缓冲中变化了的数据写入数据文件,同时检查点进程更新控制文件和数据文件头部,以使它们保持一致。检查点其实是一个后台进程,用来保证所有修改过的数据库缓冲区的东西都写入数据库文件。

检查点时间越频繁,则一旦数据库发生故障,需要数据库恢复的重用日志中的数据就越少(因为在恢复时,就不必检查恢复检查点之前的重用日志中的数据),所以就减少实例恢复的时间。

启动时间:

每隔三秒(或更加频繁)

发生日志切换

立即选项关闭例程时

手动请求

负责以下事项:

使用检查点信息更新数据文件标题

使用检查点信息更新控制文件

在完成检查点向DBWn发出信号

技术分享

五.管理归档日志文件

 

1、归档日志介绍

Oracle数据库有两种运行方式,归档(ARCHIVELOG)方式和非归档(NO ARCHIVELOG)方式。在非归档方式下,日志切换时直接覆盖以前的重做日志文件,不产生归档日志。数据库在归档方式下运行,在日志切换后,ARCH进程会对自己写满的重做日志文件进行存档。默认情况下,oracle采用非归档的运行方式,主要因为归档方式会给系统带来一定的性能问题,只有当数据库运行在归档方式时,ARCH进程才存在,ARCH进程是oracle的可选后台进程,将日志存档,以便保存对数据库做的所有修改,这样,及时在数据文件磁盘损坏的情况下,数据库管理员也能将对数据库恢复至故障发生时的状态。

 

1)归档进程

是可选的后台进程

为数据库设置ARCHIVELOG(归档)模式时会自动归档联机重做日志文件

 保留对数据库所有更改的记录

2)归档日志文件

数据库在允许覆盖重做日志信息之前生成联机重做日志组的副本。

这些副本又称为“归档日志”。

 

技术分享

、配置数据库归档日志步骤:

查询数据库归档方式,确定当前不处于归档方式

关闭数据库并启动数据库到MOUNT状态

将数据库设置位归档模式,并验证

六.数据字典

 

1、数据字典定义

数据字典是oracle存储关键信息的表和视图的集合。是数据库的说明,包含数据库中所有对象的名称和属性。

 

1、数据字典的构成

数据字典分为数据字典表和数据字典视图。数据字典中的表不可以直接被访问,但是可以访问数据字典中的视图。数据字典视图分为两类:静态数据字典视图和动态数据字典视图。

 

 

1)数据字典表

数据字典表中的数据是oracle系统存放的系统数据,而普通表存放的是用户的数据。为了方便的区别这些表,这些表的名称都是用$结尾,这些表属于SYS用户。

为了方便对数据字典表的查询,oracle对这些数据字典都分别建立了用户视图,这样既容易记住,还隐藏了数据字典表之间的关系。

2)静态数据字典视图

静态数据字典中的视图分为3类,他们分别由3个前缀构成:USER_*ALL_*DBA_*

USER_*:该视图存储了当前用户所拥有的对象的信息(既所有在该用户模式下的对象)。

ALL_*:该视图存储了当前用户能够访问的对象的信息,(与USER_*相比,ALL_*并不需要拥有该对象,只需要具有访问该对象的权限即可)。

DBA_*:该视图存储了数据库中所有对象的信息,(前提是当前用户具有访问权限,一般来说必须具有管理员权限)。

 

七、动态数据字典视图及使用

1、概念

 除了静态数据字典中的3类视图,其他的字典视图中主要是V$视图,之所以这样命名是因为他们都是以V$GV$开头的,这些视图会不断地进行更新,可以反映出当前实例和数据库的运行状况。动态性能表用于记录当前数据库的活动,只存在于数据库运行期间,实际的信息都取自内存和控制文件dba可以使用动态视图来监视和维护数据库。

本文出自 “梁明月” 博客,请务必保留此出处http://lmy666.blog.51cto.com/12495477/1921921

以上是关于oracle 各种文件的作用的主要内容,如果未能解决你的问题,请参考以下文章

oracle 体系结构怎么样 去理解?

oracle的参数文件(pfile,spfile)

Oracle控制文件的作用

oracle警告日志文件ALERT.LOG的作用及其存储位置等

oracle数据库的物理存储结构有那些,它们各自的作用?

在oracle里写各种语句得心应手,但是在mybatis.xml文件里呢?