分类: Oracle
2008-09-09 10:24:02
Oracle学习笔记
认识oracle的体系结构:
物理文件结构: 控制文件,数据文件,重做日志文件,归档文件,密码文件,参数文件
跟踪文件:
## 只有出现问题时,才创建跟踪文件,(*.trc)
## 跟踪文件名 含有后台进程名和后台进程pid,例如: orcl_ora_11889.trc
通过设定 BACKGROUND_DUMP_DEST参数来指定后台进程跟踪文件的位置
## 排除数据库故障时,跟踪文件是最重要的
## 影响后台进程的严重问题通常记录在数据库的alert log中,
位置:/admin/sid/bdump中
## 查看视图: v$BGprocess 来查看可用后台进程的完整清单
Sql>select * from v$BGprocess where pserial# = 1
PADDR PSERIAL# NAME DESCRIPTION ERROR
-------- ----------- ------- ------------------------------- --------
各个物理文件的详细说明:
控制文件:
文件名: controlfile01.ctl
controlfile02.ctl
controlfile03.ctl
路径: /u01/app/oracle/oradata/orcl/下(orcl为oracle_sid即oracle实例的名称)
作用: oracle数据库通过“controlfile(控制文件)”保持数据库的完整性,如果controlfile损坏,则数据库无法启动;所以需要采用多路控制文件,或者备份控制文件
修改: Controlfile(控制文件)是在数据库建立的时候自动生成的binary(2进制)文件格式,不能手工修改.只能实例下修改.否则database 不能正常工作.
Controlfile包括:
控制文件所属的数据库的名字,一个控制文件只能属于一个数据库.
数据库创建的时间.
数据文件的名称,位置,联机,脱机状态信息
所有表空间信息
当前日志序列号
最近检查点信息
# 控制文件的各类信息的建立时间:
数据库名称,标识,创建时间,在建库时写入controlfile;
数据文件,重做日志名称和位置在增加/重命名/删除 时更新;
表空间信息 在增加/删除 表空间的时候更新;
建立多路控制文件:
在初始化参数文件pfile中,control_file参数主要来描述控制文件的文件名和物理路径,如下所示:
Control_files=’/u01/app/orcl/oradata/orcl/control01.tcl’,
‘/usr/local/orcl/control02.ctl’,
‘/home/oracle/orcl/control03.ctl’
不同路径下都有control_file的做法叫做多路控制文件,oracle利用这种方法恢复被破坏的控制文件,最多允许设置8个多路控制文件
注意: 必须所有的控制文件都完整,正确. 数据库才能正常启动
对控制文件的管理原则:
明确控制文件的文件名/ 路径
参数设置错误-------无法打开数据库
数据库 open 后,实例将写入所有的控制文件,but 只读取第一个控制文件的内容
为数据库创建多路控制文件
多路的控制文件的内容必须一样; oracle实例将信息所有control_files设定的控制文件中.
初始化文件pfile中的control_files中列出的第一个控制文件是数据库运行期间唯一可读取的控制文件
创建/备份/恢复 控制文件必须关闭数据库, 这样才能保证操作过程中控制文件不被修改
数据库运行期间,如果控制文件不可用,那么,实例将不再运行.----因该中止这个实例,并对被破坏的控制文件进行修复
将多路控制文件放到不同的硬盘上保存
采用操作系统镜像方式备份控制文件
手工备份 控制文件:
当 添加/删除/重命名 数据文件时.
当 添加/删除 表空间时,改变表空间的读写状态时
当 添加/删除 重做日志时
如果手工备份控制文件不及时的话,就会使备份的control file 和 当前使用的control_file不一致;如果这时用备份的control_file启动数据库,那么就会丢失数据
甚至不能启动数据库.
创建多路control_file:
利用spfile建control_file
用sys帐号登陆sqlplus,查询一下文件信息视图
SQL> select name from v$controlfile;
回显如下:
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/control01.ctl
/u01/app/oracle/oradata/orcl/control02.ctl
/u01/app/oracle/oradata/orcl/control03.ctl
修改control_file的信息:
命令: alter system set control_files=’’ scope=spfile;
关闭数据库: shutdown immediate;
在操作系统中 将已有的控制文件 复制----à 重命名后保存到上面增加控制文件指定的位置.
restart database to enable spfile .
利用pfile建control_file
与spfile 建立 控制文件的方法差不多
进入sqlplus, 用命令: create pfile from spfile;生成pfile ,再修改pfile即可.
备份控制文件:
进入sqlplus
alter database backup controlfile to ‘存放路径/文件名’;
# 注意: 存放路径/ 一定得先建立.
命令: alter database backup controlfile to trace;
# 在$oracle_base/admin/$oracle_sid/udump/里生成跟踪文件.