oracle 控制文件在哪里设置_oracle的controlfile控制文件

参数文件中定义控制文件位置及个数,建议控制文件放在不同位置,最多可以创建8个,多个控制文件间是镜像的关系.

控制文件包含:

数据库名字及标识

数据库创建的时间戳

表空间名字

数据文件和联机重做日志文件的位置和名字

当前联机重做日志文件的sequence号码

检查点信息

回滚段的开始和结束

联机重做日志的归档信息

备份信息

控制文件视图

V$CONTROLFILE

V$PARAMETER

V$CONTROLFILE_RECORD_SECTION

SHOW PARAMETER CONTROL_FILES

select name,value from v$parameter where

name='control_files';

select name ,status from v$controlfile;

控制文件内容查看

strings $ORACLE_BASE/oradata/control01.ctl

alter database backup controlfile to trace;

alter database backup controlfile to trace as

'/home/oracle/control.bak'

desc v$control_record_section

select type,record from v$control_record_section;

转储控制文件内容

alter session set events 'immediate trace name CONTROLF level

1';

show parameter user_d

控制文件的管理(DBA)

1、规划原则:多路复用

2、个数和位置管理

spfile或pfile都可以实现对控制文件个数位置管理

spfile步骤:

修改spfile参数control_files

alter system set

control_files='u01/app/oracle/oradata/control01.ctl','u01/app/oracle/oradata/control02.ctl','u01/app/oracle/oradata/control01.ctl'

scope=spfile;

一致性关不数据库

shutdown immediate

增加或减少控制文件文件

cp u01/app/oracle/oradata/control01.ctl

u01/app/oracle/oradata/control03.ctl

启动数据库使用spfile

验证结果

show parameter conf

pfile步骤

一致性关闭数据库

修改pfile参数

增减或者减少控制文件文件

启动数据库使用pfile

验证结果

3、状态管理

ls /u01/app/oracle/oradata/*.ctl --确认文件都在

df -h

ll -h /u01/app/oracle/oradata/*.ctl

--控制文件物理大小要在100M内,如果接近100M应采取减少控制文件大小的措施处理

4、备份管理

热备:

alter database backup controlfile to '';--热备控制文件,归档下才有效

alter database backup controlfile to trace as

'';--得到建立控制文件的脚本

rman备:

backup current controlfiles;

backup database include current controlfiles;

或者设置控制文件自动备份

RMAN>configure CONTROLFILE AUTOBACKUP on;

5、恢复管理

控制文件不一致,需要找到新的替换旧的或者直接修改control_file使用新的

ORA-00214 控制文件版本不一致

方法1:

show parameter control

cp u01/app/oracle/oradata/control01.ctl

u01/app/oracle/oradata/control02.ctl

alter database mount;

alter database open;

方法2(不推荐使用,不符合多个文件管理):

show parameter control

alter system set

control_files='/u01/app/oracle/oradata/control01.ctl'

scope=spfile;

showdown immediate;

startup;

解决丢失:

确认数据库是否归档模式

不是归档:先全备,然后建立新的控制文件

<1>ORA-00205 控制文件丢失,查看oracle日志可知道哪个控制文件丢失

<2>show parameter control --查看控制文件个数

<3>确认数据库是否归档,无归档,在数据库日志中查找重建控制文件脚本

<4>只是丢失控制文件 非归档 日志全

create controlfile reuse dabatase orcl noarchivelog no

resetlogs

maxlogfiles 16

maxinstances 8

maxlogmembers 3

maxloghistory 1

datafile

'u01/app/oracle/oradata/system01.dbf',

'u01/app/oracle/oradata/example01.dbf',

'u01/app/oracle/oradata/sysux01.dbf',

'u01/app/oracle/oradata/users01.dbf',

'u01/app/oracle/oradata/undotbs01.dbf'

logfile

group 1 '/u01/app/oracle/oradata/redo01.log' size 52M,

group 2 '/u01/app/oracle/oradata/redo02.log' size 52M,

group 3 '/u01/app/oracle/oradata/redo03.log' size 52M

character set ZHS16GBK #以前的字符集

/

<5>alter database open;

<6>recover database;

归档且日志都在:先全备,使用备份的控制文件恢复即可

<1>RMAN>alter database backup controlfile to

'u01/oracle/ctl2018.ctl';

<2>ORA-00205 控制文件丢失,查看oracle日志可知道哪个控制文件丢失

<3>备份全部文件

<4>拷贝文件

cp '/u01/oracle/ctl2018.ctl'

/u01/oracle/oradata/control01.ctl

cp '/u01/oracle/ctl2018.ctl'

/u01/oracle/oradata/control01.ctl

cp '/u01/oracle/ctl2018.ctl'

/u01/oracle/oradata/control01.ctl

<5>alter database mount;

<6>alter database open;提示报错ORA-01589

使用老的控制文件恢复

alter database recover database using backup

controlfile;

shutdown immediate

startup;

alter database recover database using backup controlfile until

change 1071696;

alter database open resetlogs;

--此时报错

ORA-01194

ORA-01110  ##此时调整参数,应急情况下,比较极端慎用,不建议操作

alter system

set"_allow_resetlogs_corrupttion"=true

scope=spfile;

startup;

alter database open resetlogs;##切记日志无效,全库备份

##正常操作

*************************************************************

show parameter control_f

ho ls /u01/oracle/oradata/*.ctl

ho cp '/u01/oracle/ctl2018.ctl'

/u01/oracle/oradata/control01.ctl

ho cp '/u01/oracle/ctl2018.ctl'

/u01/oracle/oradata/control01.ctl

ho cp '/u01/oracle/ctl2018.ctl'

/u01/oracle/oradata/control01.ctl

alter database mount;

alter database open;

alter database open resetlogs;

ORA-01152 ORA-01110

alter database recover database using backup

controlfile;

showdown immediate;

startup;

alter database open resetlogs

ORA-00113 ORA-01110

recover database;

ORA-00283 ORA-01610

alter database recover database using backup

controlfile;

ORA-00279 ORA-00189 ORA-00280

Specify

log:{=suggested|filename|AUTO|CANCEL}

/u01/oracle/oradata/redo01.log

#此时一直输入redolog的路径直至找到相应文件

提示Media recovery complete

alter database open;

alter database open resetlogs;##切记旧日志无效,需要全库备份

archive log list;

************************************************************

show parameter control_f

ho ls /u01/oracle/oradata/*.ctl

ho cp '/u01/oracle/ctl2018.ctl'

/u01/oracle/oradata/control01.ctl

ho cp '/u01/oracle/ctl2018.ctl'

/u01/oracle/oradata/control01.ctl

ho cp '/u01/oracle/ctl2018.ctl'

/u01/oracle/oradata/control01.ctlbase

alter database mount;

alter database open;

ORA-01589

alter database recover database using backup

controlfile;

ORA-00283 ORA-19909 ORA-01110

recover database;

ORA-00283 ORA-01610

alter database recover database using backup

controlfile;

ORA-00279 ORA-00189 ORA-00280

##此处未出现Specify log:{=suggested|filename|AUTO|CANCEL}

执行alter system set"_allow_relogs_corrupttion"=true

scope=spfile;

alter database open resetlogs;

startup;

archive log list;

show parameter _allow

alter system reset"_allow_resetlogs_corrupttion"

scope=spfile sid=*;

**********************************************************

归档但日志不全:先全备,然后建立新的控制文件

6、新建控制文件语句

可以在数据库运行在mount或open的时候

可以执行alter database backup controlfile to trace as '

'得到建立语句

但要注意【no】archivelog 【no】resetlogs 2个参数的区别

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值