一、控制文件controlfile

1、定义

controlfile是一个小的二进制文件,定义了当前数据库的物理状态,并维护数据库的一致性、完整性。启动数据库到mount,可以对数据库进行操作。

一个controlfile只能连接一个数据库,丢失需要recover,大小有创建脚本决定。

2、ontrolfile的内容,contents

  1. 数据库的名字和标识符 database name and identifier

  2. 数据库的创建时间戳

  3. 表空间名字 tablespace_name

  4. 数据文件和日志文件的名字以及路径

  5. 当前redolog的文件序号 sequence number

  6. Checkpoint information

  7. Begin and end of undo segments

  8. Redo log archive information

  9. Backup information 备份信息

3、备份控制文件

1、Alter database backup controlfile to trace ;备份控制文件的脚本到trace文件,可以VI打开;

Alter database backup controlfile to '/path';备份出来的是二进制文件.

Alter database backup controlfile to traceas '../../../';备份出来控制文件脚本到指定路径及文件名.

2、实体拷贝,拷贝出来的是二进制文件。

3、为什么要备份控制文件

  • 当从备份中恢复数据库时,需要同事restore控制文件。

  • 没有备份控制文件时就可以通过第一步中的方式备份。

  • 如果备份文件过新或者过旧,通过备份控制文件到trace,然后根据脚本在nomout下重新创建控制文件。

4、在spfile启动的时候修改controlfile

  1. Alter system set control_files = '../../../','../../../' scope=spfile

  2. Shutdown immediate;

  3. 增减实体控制文件

  4. Open

5、在pfile情况下修改controlfile

  1. Shutdown immediate;

  2. 增减实体控制文件

  3. 修改pfile

  4. Open

6、获得controlfile信息 obtain controlfileinformation

v$controlfile:

liststhe name and status of all control files associated with the instance 结合实例列举了包含所有控制文件的名字\状态

v$parameter:

listsstatus and location of all parameters 包含所有参数的nanestatus

v$controlfile_record_section:

provides information about the control file record section 提供控制文件的记录段信息

Show parameter control_files:

lists the name,status,location of all controlfiles 列举所有控制文件的名字,状态以及位置

7、控制文件坏了怎么办?

  1. 没有全部坏,复制别的镜像进去。

  2. 全坏的话,如果有trace,trace下的脚本重建.没有trace就从其它地方down一个过来,可以是旧版本的,网上的,然后开库,resetlogs.

trace文件路径,11g可以用select value from v$diag_info where name ='Default Trace File';

11g以前需要人工查找,showparameter BACKGROUND_DUMP_DEST;trace文件的目录

最好的办法是在备份的时候tail -f alert.log,里面会显示出备份到哪个文件,直接VI打开.

alert告警日志的路径,11g查询方式如下:

XML位于 select value from v$diag_info wherename ='Diag Alert';

LOG位于 select value from v$diag_info wherename ='Diag Trace';

  1. 由于控制文件中不包含临时表信息,可以通过以下两种办法解决。

①、重建 create temporary tablespace TEMPT2S tempfile'/u01/app/oracletempts2.dbf' size 50m;

Alter default temporary tablespace temp2;

②、重新指定原来的临时文件

create temporary tablespace TEMPTS2 tempfile '/u01/app/oracle/tempts2.dbf' size 50m reuse;

alter database default temporary tablespace tempts2;

二、PFILE 、SPFILE 初始化参数文件

PFILE SPFILE
查看 文本文件,可以VI直接打开 二进制文件,不能用文本编辑器查看
启动方式

数据库第一次启动时,必须由PFILE启

,然后创建SPFILE

SPFILE是缺省的启动方式
创建

VI直接创建

create pfile from spfile

create spfile from pfile

路径

LINUX : $ORACLE_HOME/dbs

WINDOWS : $ORACLE_HOME/database

启动顺序

缺省的spfileORACLE_SID > spfile.ora > initORACLE_SID.ora

优先级最高的是在startup 后面加参数如:

startup pfile='E:\Oracle\admin\eyglen\pfile\init.ora'

更改
直接VI编辑

1.通过系统更改

alter system set db_cache_size=24M scope=both

scope后面有both,spfile,memory三种参数。

both表示默认=spfile+memory,内存及spfile的任荣都修改,只对动态参数有效。

对于静态参数,scope=spfile,修改后memory的值不变,也就是说需要重启数据库才会生效。

2.修改pfile,通过pfile启动数据库,然后

create spfile from pfile;