控制文件管理

控制文件概念

oracle数据库的文件是以文件的头64个字节标识文件的属性,并不是以文件名的扩展名为标识的。

控制文件记录了数据库所有的物理信息的二进制文件。

控制文件的本质是所有数据文件头的信息的2倍;

 

1. 很小的二进制

2. 预先留好固定空间

3. 位置由参数文件中的control_files决定

4. 1-8个  最少1个 一般都是多个 镜像关系

5. 多个镜像关系,容灾,并行读写

6. Mount读

7. Open一直在用

8. 如果坏了必须修复

9.记录数据库的属性和结构


 

//查看控制文件信息

select TYPE,RECORD_SIZE,RECORDS_TOTAL,RECORDS_USED  from v$controlfile_record_section;

//查看控制文件的信息

select * from v$controlfile;   

//查询版本号
select CONTROLFILE_SEQUENCE# from v$database; 

修改控制文件

修改控制文件先要清楚的两点:

1、查看参数文件使用的是pfile还是 spfile

方式一:

SQL> select distinct isspecified from v$spparameter;    //true使用的是spfile,false使用的是pfile

方式二:

SQL> show parameter spfile  //value有值 说明使用spfile,否则使用的是pfile

 

2、是修改动态还是修改静态参数(control关键字的参数)

SQL> select name,issys_modifiable from v$system_parameter where name like '%control%';

 

 

练习1.增加控制文件    

control_files参数是静态参数

1改参数文件

2关库

3. 拷贝正确的控制文件到新的位置

4. 启库

5. 验证

 

spfile  文件时

第一步:在线修改参数control_files,增加一个新指针!

sys@YIDB>

alter system set control_files='/u01/app/oracle/oradata/demo/control01.ctl','/u01/app/oracle/oradata/demo/control02.ctl' scope=spfile;

  

第二步:正常停止数据库:

shutdown immediate

 

第三步:使用现有的控制文件复制出新的控制文件

注:数据库没有关闭时,请不要复制控制文件,否则控制文件的版本会不一致,导致数据库不能开启

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

 

第四步:启动数据库

startup

 

pfile文件时

第一步:正常停止数据库:

第二步:修改参数文件,添加指针;复制新的控制文件

第三步:启动数据

 

练习2.减少控制文件

步骤:

1. 修改参数文件中control_files;

2. 关库

3. 开库

确保是二进制

 

 

spfile

第一步:在线修改指针

SQL> alter system set control_files='/export/home/oracle/orcl/oradata/demo/control01.ctl' scope=spfile;

第二步:重启后生效

 

pfile

第一步:关闭数据库

第二步:修改pfile文件

 

练习3.移动控制文件

--步骤与增加控制文件一样

练习4.控制文件改名

--步骤与增加控制文件一样

 

练习5:创建控制文件

第一步:获取数据文件、日志文件的路径

SQL> startup mount

SQL> select name from v$datafile;

SQL> select member from v$logfile;

 

方式一:数据文件和联机日志文件都存在的情况下

SQL> startup nomount

SQL>

create controlfile reuse database demo noresetlogs

maxinstances 8

maxloghistory 1

maxlogfiles 16

maxlogmembers 3

maxdatafiles 100

datafile

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

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

'/u01/app/oracle/oradata/demo/sysaux01.dbf'

logfile

group 1 '/u01/app/oracle/oradata/demo/redo01.log' size 50m,

group 2 '/u01/app/oracle/oradata/demo/redo02.log' size 50m

character set zhs16gbk;

 

SQL> select status from v$instance;  //此时的状态为mount状态

SQL> alter database open;

SQL> alter tablespace temp add tempfile '/u01/app/oracle/oradata/demo/temp01.dbf' reuse;

 

 

方式二:数据文件存在,但联机日志文件丢失 

SQL> startup nomount

SQL>

create controlfile reuse database demo resetlogs

maxinstances 8

maxloghistory 1

maxlogfiles 16

maxlogmembers 3

maxdatafiles 100

datafile

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

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

'/u01/app/oracle/oradata/demo/sysaux01.dbf'

logfile

group 1 '/u01/app/oracle/oradata/demo/redo01.log' size 50m,

group 2 '/u01/app/oracle/oradata/demo/redo02.log' size 50m

character set zhs16gbk;

SQL> alter database open resetlogs;

SQL> alter tablespace temp add tempfile '/u01/app/oracle/oradata/demo/temp01.dbf' reuse;

 


alter database backup controlfile to trace as '/home/oracle/1.sql';

导出控制文件


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30024909/viewspace-1344129/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/30024909/viewspace-1344129/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值