oracle 控制文件管理

最近要接手公司的Oracle (ERP EBS)系统,项目小组给了几个日常运维的课题,让我去完成。于是就想着能不能尝试写点东西,来完善下自己的知识库,此第一个课题包括oracle控制文件的各种管理方法 ,包括查看控制文件,增加控制文件,移动控制文件,还原控制文件,删除控制文件等

1、查看控制文件,目前公司的生产环境,开发环境,uat 环境,各种环境启动参数的方法各不相同 

有些通过spfile管理,有些通过 init.ora管理  , 首先确认下环境的启动参数方式,不通的启动方式,控制文件的管理也不尽相同

通过init.ora方式  测试环境
SQL> show parameter spfile

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string

通过spfile方式  生产环境
SQL> show parameter spfile;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /u01/prod/db/12.1.0/dbs/spfile
                                                 PROD.ora

查看目前控制文件的情况  
SQL> show parameter control_files

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      /u01/test/db/data/cntrl01.dbf,
                                                  /u01/test/db/data/cntrl02.dbf
                                                 , /u01/test/db/data/cntrl03.db
                                                 f

1、增加控制文件 

如果是init.ora控制,则直接在init.ora 上添加 

control_files                   = /u01/test/db/data/cntrl01.dbf,/u01/test/db/data/cntrl02.dbf,/u01/test/db/data/cntrl03.dbf,/u01/test/db/data/cntrl04.dbf

 在关闭 数据库的情况下,cp 一个新的控制文件 cntrl04.dbf

 cp /u01/test/db/data/cntrl03.dbf /u01/test/db/data/cntrl04.dbf

然后启动数据库 ,查看控制文件是否添加 成功 

SQL> startup

SQL> show parameter control_file  

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      /u01/test/db/data/cntrl01.dbf,
                                                  /u01/test/db/data/cntrl02.dbf
                                                 , /u01/test/db/data/cntrl03.db
                                                 f, /u01/test/db/data/cntrl04.d
                                                 bf

采用spfile方式的数据库,则通过

SQL> alter system set control_files='/u01/test/db/data/cntrl01.dbf','/u01/test/db/data/cntrl02.dbf','/u01/test/db/data/cntrl03.dbf,'/u01/test/db/data/cntrl04.dbf' scope=spfile;

关闭数据库
SQL> shutdown immediate  
也需要cp 新的控制文件 , cp控制文件需要在关数据库的时候操作 
 $ cp /u01/test/db/data/cntrl03.dbf /u01/test/db/data/cntrl04.dbf

删除、移动控制文件和增加控制文件很类似,无非就是alter 或修改init.ora到不同的值和位置   

控制文件的还原操作  之我的理解  

一般控制文件会采用自动备份的方式 ,其中需要更新下rman的配置,这样在每次控制文件变更的时候,oracle就会自动为系统备份好控制文件

确认下备份配置 

SQL> host rman target /     #连接到rman 

Recovery Manager: Release 12.1.0.2.0 - Production on Wed Jun 10 17:25:26 2020

Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.

connected to target database: TEMP 

查看目前rman 的备份配置  

RMAN> show all;

using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name TEMP are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'HIGH' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE;
CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/test/db/12.1.0/dbs/snapcf_TEMP.f'; # default

配置自动备份选项 

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;   #对,就这个命令 

new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters are successfully stored

不过这样配置后, 需要恢复的时候, 需要启动到nomount状态 再执行  restore controlfile from autobackup;  恢复控制文件, 就是这么操作

有错误的话,希望留言指正

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值