一、控制文件controlfile
1、定义
controlfile是一个小的二进制文件,定义了当前数据库的物理状态,并维护数据库的一致性、完整性。启动数据库到mount,可以对数据库进行操作。
一个controlfile只能连接一个数据库,丢失需要recover,大小有创建脚本决定。
2、ontrolfile的内容,contents
数据库的名字和标识符 database name and identifier
数据库的创建时间戳
表空间名字 tablespace_name
数据文件和日志文件的名字以及路径
当前redolog的文件序号 sequence number
Checkpoint information
Begin and end of undo segments
Redo log archive information
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
Alter system set control_files = '../../../','../../../' scope=spfile
Shutdown immediate;
增减实体控制文件
Open
5、在pfile情况下修改controlfile
Shutdown immediate;
增减实体控制文件
修改pfile
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 包含所有参数的nane和status
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、控制文件坏了怎么办?
没有全部坏,复制别的镜像进去。
全坏的话,如果有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';
由于控制文件中不包含临时表信息,可以通过以下两种办法解决。
①、重建 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; |