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: Java有八种基本数据类型,分别是byte、short、int、long、float、double、char、boolean。String不是基本类型数据,它是一个类。String类不能被继承,因为它被声明为final类。 ### 回答2: Java基本数据类型包括:byte、short、int、long、float、double、boolean和char这八种类型。这些数据类型是用来存储基本数据的,每种类型都有固定的取值范围和默认值。 String不是基本数据类型,它是Java的引用数据类型String表示字符串,用于存储文本类型的数据。在JavaString类提供了许多方法来操作字符串,例如连接、截取、查找等,这些方法使得处理字符串变得更加方便。 String类是Java的最终类,这意味着它不能被其他类继承。最终类是不能被其他类所继承的类,它的设计初衷是为了防止被修改或影响。因此,String类不能被继承,不能有子类。但是,我们可以使用String类创建对象并调用它的方法来进行字符串的操作。 ### 回答3: Java基本数据类型包括:整型(int)、浮点型(float和double)、字符型(char)、布尔型(boolean)。 String不是基本数据类型,它是引用类型。在JavaString是一个类,用于表示字符串类型的数据。它可以用来存储任意长度的字符序列。 在JavaString类是不可继承的,它被设计成了final类,即无法被其他类继承。这是因为String类在Java用途非常广泛,涉及到字符串的不可变性和安全性等方面考虑。通过将String类设置为final类,可以避免由于继承导致的不可控制的数据访问和修改,确保字符串对象的一致性和稳定性。即使不能继承String类,我们仍然可以通过创建String类的新实例来使用它的方法和属性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值