物理存储结构
一个oracle dabatase是一组文件,一个oracle instance是管理文件的一组内存结构。
执行create database后,会创建下列文件
Data files(存储表,索引等), temp files(临时表空间)
Control files
Online redo log files
管理数据库文件的机制:
ASM – Automatic Storage Management
OS file system
Raw device 磁盘分区或者逻辑卷,没有被文件系统格式化
一个cluster file system是一个软件,可以让多台电脑共享文件存储,并且同时保证空间分配和文件内容的一致性。这样一个电脑的failure不会导致文件系统不可用。
存储机制是可以混合搭配使用的,比如可以将控制文件和online redo log file放在传统文件系统中,一些用户数据文件在raw partitions中,其余文件在oracle ASM,存档的redo log files在cluster file system中。
ASM管理磁盘空间,均衡i/o夫在,优化性能。
跳过ASM专题几页
表空间和data file:
一个表空间可以包含一个或多个数据文件
一个段可以跨越一个或多个数据文件,但不可跨越多个表空间
一个数据库必须有SYSTEM,SYSAUX表空间,在数据库建库阶段,oracle自动将数据文件分配在SYSTEM表空间。
System表空间包含数据字典,包含了元数据。一个数据库通常还有undo表空间和临时表空间。
持久表空间、临时表空间
临时表空间包含只在一个session中的对象,比如hash, sort的数据,当内存不够时,临时文件也可能存放一些数据。
永久数据对象从不存放在临时文件中。
临时文件总是NOLOGGING模式
临时文件不能read only
不能用ALTER DATABASE创建临时文件
当你创建或者resize临时文件时,它们并不总被保证有足够的磁盘空间分配。
临时文件信息在DBA_TEMP_FILES, V$TEMPFILE中
每个数据文件要么online要么offline。Offline的文件不可访问。同样的,表空间也可以online或offline。
Oracle 给数据文件分配空间时,不仅要分配指定空间,还要分配一个数据文件头。文件头包含了数据文件大小,checkpoint SCN号。还包含了绝对文件号和相对文件号。绝对文件号唯一的标识了整个数据库中的这个文件,相对文件号唯一标识了该表空间中的这个文件。
oracle创建数据文件时,就会把指定的空间预留出来。
控制文件包含:
数据库名和数据库唯一标识
数据库创建时间戳
数据文件,online redo log file和 归档日志文件的信息
表空间信息
RMAN备份
控制文件的作用:
1。包含一些文件的信息
2.包含在数据库未打开时的元数据信息,包含checkpoint信息
控制文件中包含两类信息:
1.可循环重用纪录:不是关键信息,在需要的时候可以覆写,比如归档重做日志文件和RMAN备份
2.不可循环重用纪录:关键信息,不可覆写,比如表空间,数据文件,在线重做日志文件。
对控制文件的读写和对数据块的读写是不同的。Oracle直接把控制文件信息从磁盘上读到PGA中,每个进程为控制文件分配一小块它自己的PGA。
在线重做日志:当数据库实例发生错误时,在线重做日志可以帮助恢复那些已经提交,但还未写到数据文件中的操作。
数据库把每个操作同步的写到重做日志缓存,然后写到在线重做日志。日志的内容包含未被提交的事务,undo数据,schema和object管理与据。在线重做日志可以通过LogMiner的接口去访查询。
一个在线重做日志包含两个或多个重做日志文件,最少要有两个。
oracle每次写一个日志文件,当前被LGWR写的那个文件被称为当前在线重做日志文件。
Log switch发生在数据库停止写一个文件,而转向写另一个日志文件。通常情况下,log switch是因为当前文件写满了。当然,你也可以配置以多久的时间间隔来log switch,或者手动的强制log switch。
Log file是循环写的,比如log writer写完最后一个文件后,就会转到第一个文件继续写。
写满的日志文件是否可以重用取决于归档模式:
1.如果没有归档,那么在该文件中被修改的纪录被DBWn写到磁盘后,该日志文件就可以被覆写了。
2.如果开启了归档,那么当被修改的纪录被DBWn写到磁盘,且日志文件被归档后,该日志文件才可以重用。
在线重做日志文件可以有多个备份,并且多个备份最好在不同的磁盘上。
比如:
DiskA DiskB
Group1: redo01a.log redo01b.log
Group2: redo02a.log redo02b.log
01a 和01b的内容是相同的,在一个group中。
LGWR先同时写group1中的两个文件,再写group2中的文件,再group1。
归档日志文件堆数据库备份和恢复很重要,可以用来:
恢复一个数据库备份
更新一个standby数据库
用LogMiner获取数据库历史信息
在线重做日志文件中的条目包含如下信息:
Change的SCN号和时间戳
事务的事务号
事务提交时的SCN和时间戳
操作的类型
修改的数据段的名字和类型
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11903161/viewspace-681863/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/11903161/viewspace-681863/