物理结构是指组成数据库的物理文件,oracle数据库的文件总重要的有3类:
数据文件、控制文件、日志文件;次要的文件包括参数文件、密码文件、归档日志文件、Alter日志、Trace文件等。==============================================
1.Instances
2.Database
==============================================
The Physical Structure of Oracle Database
===============================================
1.datafile
----------------------
2.control file
----------------------
Oracle database使用control file来管理数据库的状态。
控制文件中记录着数据库的名称,数据库的物理布局,包括:数据文件位置,联机日志文件,备份文件,以及数据库当前SCN等重要信息。每当启动数据库实例时,Oracle就要读取控制文件内容,以确定数据文件,联机日志文件的位置及状态信息。这些信息还用来检验数据库的一致性,并进一步用来恢复过程。
Oracle在实例启动的第二个阶段打开控制文件,读入其内容。
---------------------------------------------------------------
3.log file
---------------------
Oracle log file 按照时间顺序记录数据库内发生的所有改变。
日志文件中记录的是Redo Records,后者又是由Change Vectors(改变向量)组成的,每个Redo Records代表着一个数据块发生的变化。一个事务会涉及多个数据块内容改变,所以会包含多个Redo Records。这些Redo Records记录事务的如下内容:
1.事务的开始时间
2.事务的名称
3.对象的名称
4.数据被更新前的状态,也叫前镜像(Before Image)
5.数据被修改后的状态,也叫后镜像(After Image)
6.Commit标记,事务是否被提交(包括Commit,Rollback)
--------------------------------------------------------------------***注意1:每次日志缓冲区被写到磁盘的时候,缓冲区的内容同时混杂有已经结束的事务和未结束事务。
***注意2:"前滚"和"回滚"两个动作的区别。"前滚"是利用日志内容完成的,"回滚"是以Undo表空间为为基础的。
---------------------------------------------------------------
***撤消表空间(Undo tablespace)
-----------------------------------------
当对数据执行(insert,update,delete等)操作时,Oracle系统使用撤消段存放那些修改之前的数据,
当用户提交(commit)后,相应的表空间被释放。
-------------------------------------------------------------------------
***临时表空间
-------------------------------
用于存放用户排序等操作的临时数据,不包含任何永久对象。临时段占有的空间会在下次系统启动的时候全部被释放。
----------------------------------------------------------------
前滚:
---------------------
如果数据库宕机,日志中的内容(包括已经结束的事务和未结束的事务)都要重新应用到数据文件上,
这个过程叫做"前滚 Roll-forward" ,这个动作相当于把用户操作重作了一遍,只是这次不是由用户而是Oracle自己模拟重做。"前滚"的结果是把数据库恢复到数据库宕机时的状态。
--------------------------------------------------------------------
回滚:
---------------------
但是在数据库宕机时刻,数据库里还有很多没有完成的用户事务--未决事务,对于这些事务,
Oracle不会猜测用户动作,而是统一做回滚处理,这个过程叫做"回滚 Roll-back"
--------------------------------------------------------------------
联机日志(组)
----------------------
Oracle的联机日志是以组为单位进行管理的,每一个组叫做一个联机日志组(Redo Log Group)
每个联机日志组可以包含多个成员,成员之间互为镜像。Oracle要求,每个数据库必须要有两个
联机日志组,其重要性不压于控制文件。
Oracle的联机日志采用循环写入的工作方式,当一组日志文件被写满时,就会触发一次日志切换,
然后LGWR继续向另一组日志写入,而且LGWR必须确保向组内所有成员的写操作都是成功的。
--------------------------------------------------------------------
归档日志
-----------------------
Oracle根据是否启用了"归档"而把数据库分成两种模式:归档模式(Archived Mode)和非归档模式(Noarchived Mode)。所谓"归档",就是在一组联机日志被写满后,在触发日志切换的同时,还要触发ARCn进程的工作,这个进程的工作就是把之前写满的联机日志做一份拷贝保存到另外一个位置,这份拷贝叫做"归档日志(Archived Log File)",这个拷贝的过程就叫做"归档",使用这种机制的数据库就叫作运行在"归档模式"下的数据库。
在归档模式下,LGWR进程能够覆盖一组联机日志文件也多了一个条件:这组联机日志文件必须已经完成归档。
--------------------------------------------------------------------
日志线程
------------------------
一个数据库实例使用的联机日志就叫做一个日志线程(Redo Thread)。
在RAC环境下,因为有多个实例存在,因此也会有多个日志线程。每个实例对应一个日志线程。
--------------------------------------------------------------------
alert日志文件
------------------------
Oracle使用这个文件来记录数据库发生的重大事件,如启动,关闭,日志切换,添加数据文件,在数据库启动阶段,还会记录所有的参数值,因此管理员可以根据alert日志重建参数文件。该文件位于backgroup_dump_dest指定的目录下,文件名的格式为alert_dbname.log,可以使用如下命令来检索数据库发生的错误:
grep ORA- alert_dbname.log
这个文件是管理分析的最佳起点。
---------------------------------------------------------------
Trace文件
------------------------
Oracle有3类跟踪文件:
------------------------------
1.内核跟踪文件
内核文件通常是数据库内核运行中生成的
--------------------------------------------------------------------------------------------------------------------------
2.后台跟踪文件
由DBWR,LGWR等后台进程产生,通常是在进程发生异常时产生,这时不仅会产生Trace文件,
在alert文件中也会有记录。
------------------------------------------------------------------------------------------------------------------------
3. 用户跟踪文件
该文件更多的是由用户主动触发产生,比如用户跟踪Event,审计等产生的就是用户跟踪文件。
-------------------------------------------------------------------------------------------------------------------------
分别用如下参数定义:
-------------------------
1.core_dump_dest
2.background_dump_dest
3.user_dump_dest
------------------------------------------------------------------------------------------------------------------
Trace文件的内容通常都是一些Oracle Internal的内容,对于Oracle支持是必不可少的。
-----------------------------------------------------------------------------------------------------------------
Change Tracking文件
---------------------------
在Oracke 10g中引入的一个新的文件--数据块变化跟踪文件(Block Change Tracking File),
Oracke利用这个文件来记录上次全量备份以来所有发生变化的数据块,这样在RMAN再做增量备份时,就不必扫描整个数据库,只需要通过这个文件就可以找到所有需要备份的数据块,真正达到了
增量备份的预期效果。
这个文件是一个可选项,缺省是关闭的,用户如果需要必须使用命令手工设置。
-----------------------------------------------------------------------------------------------------------------------------------
Flashback Log
---------------------------
Oracke 10g的高可用架构中引入的一个新技术Flashback Database(闪回数据库),这个功能是解决由人为错误导致的数据库的逻辑损坏,是不完全恢复的一个替代手段。传统的备份恢复依赖于联机日志,归档日志。Flashback Database利用了一种新的日志机制,即Flashback Log。这种全新的日志文件必须放到一个特殊的位置,并且这些文件也是由Oracle自动维护的,不需要DBA的参于。
================================================
参数文件
----------------------------------------------
PFILE/SPFILE(前者是文本文件,后者是二进制文件)
----------------------------------------------
nomount阶段任务:
读入参数文件,根据参数文件进行必要的初始化。
----------------------------------------------
Oracle获得参数文件的方法如下:
1.当前的环境变量ORACLE_SID的值;……
2.在$ORACLE_HOME/dbs/目录下寻找参数文件
-------------------------------------------------------------------------
参数文件读入顺序:
1.spfile.ora
2.spfile.ora(通用spfile)
3.init.ora
说明:如果这些参数文件丢失或损坏,管理员可以从其它计算机上拷贝一个参数文件,或者对Oracle自带的模版文件init.ora基础上略做修改就可以。
-------------------------------------------------------------------------
几组重要的参数
(1)这一组参数必须和数据库的实际情况完全匹配,不能随便更改,包括:
undo_management
undo_tablespace
do_block_size
db_name
instance_name
(2)control_files
(3)这一组参数全部是定义目录位置
audit_file_dest
background_dump_dest
core_dump_dest
user_dump_dest
-------------------------------------------------------------------------
管理员可以使用PFILE或者利用PFILE创建的SPFILE来启动数据库
-------------------------------------------------------------------------------------
使用指定的参数文件启动数据库:
startup pfile='……';
-------------------------------------------------------------------------
利用PFILE来创建SPFILE:
create spfile [= spfile_name] from pfile='……';
create pfile [= pfile_name] from spfile='……';
-------------------------------------------------------------------------
参数文件中参数分静态参数和动态参数,静态参数必须是重启以后生效,动态参数立即生效。
-------------------------------------------------------------------------
修改参数文件参数:
alter system set parameter=value[scope=spfile|memory|both]
--------------------------------------------------------------------
***注意:静态参数只能使用scope=spfile
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25963200/viewspace-700397/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25963200/viewspace-700397/