Oracle-20-控制文件管理

控制文件是一个跟踪数据库的物理组成的二进制文件,在数据库工作时至少需要一个控制文件,最多可以指定8个控制文件,在MOUNT时第一次被读取,OPEN之后时刻被使用,控制文件的位置和个数是由参数文件决定的(control_files)如果控制文件丢失,需要还原和恢复,所有控制文件都是镜像关系,读的时候读第一个控制文件(MASTER CONTROL FILE),写的时候所有的控制文件并行写。


控制文件相关数据字典

col name for a50
select * from v$controlfile;
STATUS  NAME                                               IS_ BLOCK_SIZE FILE_SIZE_BLKS
------- -------------------------------------------------- --- ---------- --------------
        +DATA/sundb/controlfile/current.260.974086781      NO       16384            594
        +FLASH/sundb/controlfile/current.256.974086781     YES      16384            594

Elapsed: 00:00:00.00
select TYPE,RECORD_SIZE,RECORDS_TOTAL,RECORDS_USED from v$controlfile_record_section;
TYPE                         RECORD_SIZE RECORDS_TOTAL RECORDS_USED
---------------------------- ----------- ------------- ------------
DATABASE                             316             1            1
CKPT PROGRESS                       8180            11            0
REDO THREAD                          256             8            1
REDO LOG                              72            16            3
DATAFILE                             520           100            5
FILENAME                             524          2298           12
TABLESPACE                            68           100            6
TEMPORARY FILENAME                    56           100            1
RMAN CONFIGURATION                  1108            50            0
LOG HISTORY                           56           292           49
OFFLINE RANGE                        200           163            0
ARCHIVED LOG                         584            28            0
BACKUP SET                            40           409            0
BACKUP PIECE                         736           200            0
BACKUP DATAFILE                      200           245            0
BACKUP REDOLOG                        76           215            0
DATAFILE COPY                        736           200            1
BACKUP CORRUPTION                     44           371            0
COPY CORRUPTION                       40           409            0
DELETED OBJECT                        20           818            1
PROXY COPY                           928           246            0
BACKUP SPFILE                        124           131            0
DATABASE INCARNATION                  56           292            2
FLASHBACK LOG                         84          2048            0
RECOVERY DESTINATION                 180             1            1
INSTANCE SPACE RESERVATION            28          1055            1
REMOVABLE RECOVERY FILES              32          1000            0
RMAN STATUS                          116           141            0
THREAD INSTANCE NAME MAPPING          80             8            8
MTTR                                 100             8            1
DATAFILE HISTORY                     568            57            0
STANDBY DATABASE MATRIX              400            31           31
GUARANTEED RESTORE POINT             212          2048            0
RESTORE POINT                        212          2083            0
DATABASE BLOCK CORRUPTION             80          8384            0
ACM OPERATION                        104            64            6
FOREIGN ARCHIVED LOG                 604          1002            0

37 rows selected.

Elapsed: 00:00:00.02

这里显示的控制文件内容的大小是实际控制文件大小的一半,因为控制文件在写内容的时候是由冗余的,防止因为某些坏块导致控制文件不可用。

查看参数文件中控制文件的信息

show parameter control_files
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      +DATA/sundb/controlfile/curren
                                                 t.260.974086781, +FLASH/sundb/
                                                 controlfile/current.256.974086
                                                 781


我们减少控制文件数量

alter system set control_files='+DATA/sundb/controlfile/current.260.974086781' scope=spfile;

另外,参数值得修改是静态的,需要重启数据库后才能生效

重启实例

shutdown immediate
startup

查询参数文件中控制文件参数

show parameter control_files
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      +DATA/sundb/controlfile/current.260.974086781
col name for a50
select * from v$controlfile;
STATUS  NAME                                               IS_ BLOCK_SIZE FILE_SIZE_BLKS
------- -------------------------------------------------- --- ---------- --------------
        +DATA/sundb/controlfile/current.260.974086781      NO       16384            594

Elapsed: 00:00:00.01


在grid用户下查看磁盘组状态

su - grid
sqlplus / as sysasm
select name,state from v$asm_diskgroup;
NAME                           STATE
------------------------------ -----------
DATA                           MOUNTED
FLASH                          MOUNTED

删除相应的控制文件

asmcmd
cd flash/orcl/controlfile
ls
Current.260.975082355
rm -rf Current.260.975082355

增加控制文件

alter system set control_files=
'+DATA/sundb/controlfile/current.260.974086781',
'+DATA/sundb/controlfile/control02.ctl'
scope=spfile;
shut immediate

然后切换到grid用户下对控制文件进行复制(这里需要注意的是,在数据库打开的状态下是无法对控制文件进行备份的)

asmcmd -p
cd data/sundb/controlfile
cp Current.260.974086781 +data/sundb/controlfile/control02.ctl

然后重新启动实例

startup
col name for a50
select * from v$controlfile;
STATUS  NAME                                               IS_ BLOCK_SIZE FILE_SIZE_BLKS
------- -------------------------------------------------- --- ---------- --------------
        +DATA/sundb/controlfile/current.260.974086781      NO       16384            594
        +DATA/sundb/controlfile/control02.ctl              NO       16384            594

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值