chapter 7
1. Oracle数据库物理存储结构的组成及各个部分的功能、性质。
数据文件:用于存储数据库中的所有数据
控制文件:用于记录和描述数据库的物理存储结构信息
重做日志文件:用于记录外部程序(用户)对数据库的改变操作
归档文件:用于保存已经写满的重做日志文件
初始化参数文件:用于设置数据库启动时的参数初始化值
跟踪文件:用于记录用户进程、数据库后台进程等的运行情况
口令文件:用于保存具有SYSDBA,SYSOPER权限的用户名和SYS用户口令;
警告文件:用于记录数据库的重要活动以及发生的错误;
备份文件:用于存放数据库备份所产生的文件。
2.数据文件管理:
(1)数据文件与表空间的关系
从物理角度看,数据库由数据文件构成,数据存储在数据文件中;从逻辑角度看,数据库是由表空间构成的,数据存储在表空间中。一个表空间包含多个数据文件,但一个数据文件只能属于一个表空间。
在oracle数据库中,数据文件是依附于表空间而存在。一个表空间可以包含多个数据文件,但一个数据文件只能从属于一个表空间。在逻辑上,数据库对象都存放在表空间中,实质上是存放在表空间所对应的数据文件中。
(2)数据文件的添加、数据文件大小的修改autoextend on 、resize(操作)、数据文件的移植
添加:
向表空间添加一个大小为xMB的数据文件:
alter tablespace 表空间名add datafile ‘路径\*.dbf’ size xMB;
向表空间添加一个自动增长的数据文件:
alter tablespace 表空间名add datafile ‘路径\*.dbf’ size xMB
autoextend on next 1M maxsize 50MB;
向临时表空间添加一个大小为xMB的数据文件:
alter tablespace 表空间名 add tempfile‘路径\*.dbf’ size xMB;
修改:
① 修改大小
修改数据文件大小为yMB:
Alter database datafile ‘路径\*.dbf’ resize yMB;
修改文件的自动增长方式:
Alter database datafile ‘路径\*.dbf’ autoextend on next 1M maxsize
unlimited; 取消文件的自动增长方式:
Alter database datafile ‘路径\*.dbf’ autoextend off
② 修改可用性
归档模式下改变数据文件可用性:
归档模式下,将数据文件脱机:alter database datafile ‘路径\*.dbf’
offline;
将数据文件联机:首先进行恢复操作recover datafile ‘路径\*.dbf’;
然后联机alter database datafile ‘路径\*.dbf’ online;
非归档模式下改变数据文件可用性:
在非归档模式下,通常不能将数据文件脱机。
如果由于数据文件的损坏,需要将文件脱机,然后重启数据库,则需要语句:
Alter database datafile ‘路径\*.dbf’ offline for drop;
修改表空间所有数据文件可用性:
在归档模式下先将所有文件脱机后再联机:
Alter database 表空间名 datafile offline;
Recover tablespace 表空间名;
Alter tablespace表空间名datafile online;
③ 修改名称或位置
改变同一表空间的数据文件:
将包含数据文件的表空间设置为脱机状态:alter tablespace 表空间名offline;
重命名或移动数据文件:alter tablespace 表空间名 rename datafile
‘路径\*.dbf’ to新的‘路径\*.dbf’;
将表空间联机:alter tablespace 表空间名 online;
改变多个表空间的数据文件:
关闭数据库:shutdown immediate;
启动数据库到mount状态:startup mount;
重命名或移动数据文件:alter database rename file ‘路径\*.dbf’ to
新的‘路径\*.dbf’;
打开数据库:alter database pen;
删除:
删除表空间:alter tablespace 表空间名drop datafile‘路径\*.dbf’;
删除临时表空间:alter tablespace 表空间名 drop tempfile‘路径\*.dbf’;
查询:
查询动态信息:select name,file#,checkpoint_change# from 视图名;
查询详细信息:select tablespace_name,autoextensible,file_name from
视图名;
查询临时数据文件信息:select tablespace_name,file_name,auextensible
from 视图名;
3.控制文件的管理
(1)控制文件的基本性质 控制文件是oracle数据库最重要的物理文件,描述了整个数据库的物理结构信息。控制文件在创建数据库时创建,每个数据库至少有一个控制文件。在数据库启动时,数据库实例依赖初始化参数定位控制文件,然后根据控制文件的信息加载数据文件和重做日志文件,最后打开数据文件和重做日志文件。控制文件是一个二进制文件,DBA不能直接修改,只能由oracle进程读/写其内容。在数据库运行与维护阶段,数据文件与重做日志文件的结构变化信息都记录在控制文件中。
(2)控制文件存储的信息
数据库名称和标识
数据库创建的时间;
表空间的名称;
数据文件和重做日志文件的名称和位置;
当前重做日志文件序列号;
数据库检查点的信息;
回退段的开始和结束;
重做日志的归档信息;
备份信息;
数据库恢复所需要的同步信息、
(3)控制文件的数量、使用多个多路复用控制文件的必要性
Oracle建议最少有两个控制文件,通过多路镜像技术,将多个控制文件分散到不同的磁盘中。这样可以避免由于一个控制文件的故障而导致数据库的崩溃。在数据库运行的过程中,始终读取control_files参数指定的第一个控制文件,并同时写control_files参数指定的所有控制文件。如果其中一个控制文件不可用,则必须关闭数据库并进行恢复。
(4)控制文件的备份(两种方式)
将控制文件备份为二进制文件:
Alter database backup controlfile to ‘路径\*.BKP’;
将控制文件备份为文本文件:
Alter database backup controlfile to trace;
4.重做日志文件管理
(1)基本概念(保存什么信息)、
重做日志文件是有重做记录构成的,每个重做记录由一组修改向量组成。修改向量记录了对数据库中某个数据块所做的修改,包括修改对象。修改之前对象的值、修改之后对象的值、该修改操作的事务是否提交等信息。
(2)工作原理(循环写)
每个数据库至少需要两个重做日志文件,采用循环写的方式进行工作。这样就能保证,当一个重做日志文件在进行归档时,还有另外一个文件可用。当一个重做日志文件被写满后,后台进程LGWR开始写入下一个重做日志文件,同是产生一个日志序列号,并将这个号码分配给即将开始使用的重做日志文件。当所有的日志文件写满后,LGWR进程重新写入第一个重做日志文件。
(3)至少需要多少个重做日志文件组、每个组中至少需要多少个成员、成员之间有何关系
一个数据库至少需要使用两个重做日志文件组,每个重做日志文件组中至少要有一个可用的成员文件
5.归档文件
(1)归档的含义
Oracle数据库能够把已经写满了的重做日志文件保存到指定的一个或多个位置,被保存的重做日志文件的集合称为归档重做日志文件,这个过程称为归档。
(2)归档模式设置过程(操作)
关闭数据库:shutdown immediate;
启动数据库到mount状态:startup mount;
设置归档模式:alter database archivelog;
打开数据库:alter database open;
(3)归档路径设置
使用初始化参数log_archive_dest和log_archive_duplex_dest设置归档路径
Alter system set log_archive_dest=’d:\oracle\backup\archive’;
Alter system set
log_archive_duplex_dest=’e:\oracle\backup’scope=spfile;
使用初始化参数log_archive_dest_n设置归档路径:
Alter system set log_archive_dest_1=’location=d:\backup\archive’;
Alter system set log_archive_dest_2=’service=standby1’;
设置归档文件命名方式:
Alter system set log_archive_format=’arch_%t_%s_%r.arc’
chapter8
1. Oracle数据库逻辑存储结构的组成及相互关系
Oracle10g数据库的逻辑存储结构分为数据块、区、段、表空间4种。其中数据块是数据库中的最小I/O单元,由若干个连续的数据块组成的区是数据库中最小的存储分配单元,由若干个区形成的段是相同类型数据的存储分配区域,由若干个段形成的表空间是最大的逻辑存储单元,所有的表空间构成一个数据库。
2.表空间的管理
(1)数据库、表空间、数据文件、数据库对象之间的关系
一个数据库由一个或多个表空间构成,不同的表空间用于存放不同应用的数据,表空间的大小决定了数据库的大小。
一个表空间对应一个或多个数据文件,数据文件的大小决定了表空间的大小。一个数据文件只能从属于一个表空间。
表空间是存储模式对象的容器,一个数据库对象只能存储在一个表空间中(分区表和分区索引除外),但可以存储在该表空间所对应的一个或多个数据文件中。若表空间只有一个数据文件,则该表空间中所有对象都保存在该文件中;若表空间对应多个数据文件,则表空间中的对象可以分布在不同的数据文件中。