oracle-参数文件的备份与还原

参数文件是实例启动到nomount状态的必要条件,规定了实例的行为特征,位置跟操作系统相关,一般unix类的系统在$ORACLE_HOME/dbs目录下

(windows在%ORACLE_HOME%\database目录下),启动会按照以下顺序寻找参数文件(SID表示实例名)

--1 spfileorcl.ora(orcl是实例名,SID)

--2 spfile.ora

--3 initSID.ora

其中spfileorcl.ora和spfile.ora是二进制文件,称为服务器参数文件(或者spfile)。InitSID.ora是文本文件。

YHQT@ orcl >show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /u01/app/oracle/product/11.2.0
/db_1/dbs/spfileorcl.ora

判断实例是通过哪一种参数文件启动的,上面查询结果显示实例启动所使用的spfile

1 参数文件损坏的后果

场景1:spfileorcl.ora\spfile.ora\initorcl.ora 3个文件在实例启动前已经损坏丢失了

若3个参数文件都损坏,实例无法启动到nomount状态,共享内存结构(SGA)和后台进程无法启动。启动时看到错误提示LRM-00109,

显示找不到initorcl.ora文件,实际上3个文件都没有找到(orcl为实例名)

[oracle@DSI ~]$ oerr ora 1078
01078, 00000, "failure in processing system parameters"
// *Cause: Failure during processing of INIT.ORA parameters during
// system startup.
// *Action: Further diagnostic information should be in the error stack.

场景2:实例通过spfileorcl.ora或spfile.ora启动,但该参数文件在实例启动后丢失或损坏

遇到这种情况,凡是涉及访问参数文件(spfile)的命令就会失败,实例不会有崩溃的危险,比如’alter system’修改参数文件,

或show parameter或查询v$parameter视图参数文件中的参数都会遇到ORA-01565无法识别文件的错误

-SQL> alter system set fast_start_mttr_target=600;
-SQL> show parameter db_name
-SQL> select * from v$parameter where name=’db_name’;
告警日志
ORA-01565:unable to open spfile /u01/app/oracle/product/11.2.0/db_1/dbs/spfileorcl.ora

2 备份

RMAN能够以备份集的形式备份spfile(不包括pfile),手动备份和自动备份。当然也可以使用操作系统级别的复制命令(cp)备份参数文件,恢复时只要复制dbs目录即可

-2.1 手动备份

RMAN> backup spfile; --只用来备份参数文件
Starting backup at 16-JUL-19
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=148 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 16-JUL-19
channel ORA_DISK_1: finished piece 1 at 16-JUL-19
piece handle=/u01/app/oracle/fra/ORCL/backupset/2019_07_16/o1_mf_nnsnf_TAG20190716T113012_gltk64cs_.bkp tag=TAG20190716T113012 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 16-JUL-19

这里使用了快速恢复区,在生成的备份集的文件名前半部分o1_mf_nnsnf_

-2.2 自动备份

在备份1号数据文件时或只要备份时包含了1号数据文件,RMAN就会将控制文件与参数文件备份至一个额外的备份集。

RMAN> backup datafile 1;

另外,若启用了控制文件的自动备份功能,参数文件和控制文件会在合适时机自动备份

用操作系统命令复制一下参数文件永远是一个简单可行的方案。

3 恢复

恢复参数文件实际上就是还原参数文件,参数文件的修改没有重做日志的支持,所以不存在恢复的操作。

若在之前已经使用操作系统命令复制过参数文件,那么最简单的方法是在复制回原来的地方

-3.1 实例启动时发现损坏

如果有使用 os命令复制参数文件,此时将它复制回去就好

若有参数文件的备份集,还原步骤如下:

--1 使用RMAN启动实例到nomount状态
--2 执行restore spfile命令,根据备份类型的区别使用对应的语句‘from autobackup’或‘from 备份片路径’,前者对应自动备份,后者对应手动备份
--3 重启实例,恢复完成

注意:在sqlplus下没有参数文件不能启动到nomount状态,但是在RMAN下可以。

RMAN> startup nomount;

命令输出中的LRM-00109错误显示RMAN也做了寻找参数文件失败的尝试。

RMAN具有内置的参数文件能够在没有参数文件的特殊情况下将实例启动到nomount状态。

RMAN>restore spfile from '/u01/app/oracle/fra/ORCL/backupset/2019_07_16/o1_mf_nnsnf_TAG20190716T113012_gltk64cs_.bkp';
SQL> startup force;
SQL> show parameter spfile

若之前是利用控制文件自动备份生成参数文件备份的,还原命令稍有不同,无须指定备份片的路径,给出数据库名和快速恢复区的路径即可(前提是使用了快速恢复区)

YHQT@ orcl >show parameter db_recovery
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /u01/app/oracle/fra
db_recovery_file_dest_size big integer 4G
RMAN> restore spfile from autobackup db_name=orcl db_recovery_file_dest='/u01/app/oracle/fra';

若管理员没有启用快速恢复区,控制文件自动备份保存在默认的’$ORACLE_HOME/dba’目录下,此时还原命令首先指定数据库的DBID

RMAN> set dbid 1534031567;
RMAN> restore spfile from autobackup;

如果使用了rman catalog和快速恢复区,那么from子句和dbid都可以不用管,直接执行restore spfile就可

[oracle@DSI ~]$ rman target sys/***@orcl catalog rcowner/***@orcl
RMAN> run {
startup nomount;
restore spfile;
startup force;
}

-3.2 实例运行时损坏

如果发现问题时数据库尚未关闭(实例处于运行中),则无序关闭实例而是应该直接执行RMAN命令的restore命令。不关闭实例的好处很多,

不但高可用性,并且不用通过rman启动到nomount状态, 不用设置dbid,只要记住如果实例是利用服务器参数文件(spfile不是pfile)启动的,还需指定to子句将其还原到其他路径才行

RMAN> restore spfile from autobackup;
--RMAN-06564: must use the to clause when the instance is started with spfile
RMAN> restore spfile to '/home/oracle/spfileorcl.ora' from autobackup;
$ mv /home/oracle/spfileorcl.ora $ORACLE_HOME/dbs ##最好不要直接restore到dbs路径

oracle-参数文件的备份与还原的更多相关文章

  1. Oracle 参数文件及相关操作介绍

    Oracle 参数文件及相关操作介绍 by:授客 QQ:1033553122 1.服务器参数文件 服务器参数文件是一个二进制文件,作为初始化参数的存储仓库.实例运行时,可用ALTER SYSTEM来改 ...

  2. Oracle 10g 数据库的备份和还原

    一.备份数据库 1.在图形工具中,如sqldeveloper,pl/sqldeveloper用以下这句查找空表 select 'alter table '||table_name||' allocat ...

  3. ORACLE参数文件

    一.oracle pfile/spfile区别    pfile 默认的名称为“init+例程名.ora”文件路径:E:\oracle\product\10.2.0\db_1\dbs,这是一个文本文件 ...

  4. Oracle 参数文件spfile

    pfile和spfile 概念 ORACLE中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件,可以分为两种类型.它们是在数据库实例启动时候加载的,决定了数据库的物理结构.内存.数据库的限制 ...

  5. Oracle 参数文件

    参数文件(10g中的参数文件) 主要用来记录数据库的配置文件,在数据库启动时,Oracle读取参数文件,并根据参数文件中的参数设置来配置数据库. 如内存池的分配,允许打开的进程数和会话数等. 两类参数 ...

  6. Oracle参数文件修改

    初始化参数文件有两种,文本初始化参数文件 pfile 和二进制初始化参数文件 spfile.   动态参数文件spfile 这是Oracle推荐的初始化参数文件类型.这是一个可以写入和读取的二进制文件 ...

  7. Oracle参数文件—pfile与spfile

    oracle的参数文件:pfile和spfile 1.pfile和spfile       Oracle中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件.它们是在数据库实例启动时候加载的, ...

  8. oracle参数文件spfile和pfile

    一.参数文件说明 PFILE(Initialiazation Parameter Files)初始化参数文件,是文本文件,可直使用文本编辑器查看.如果数据库使用的是初始化参数文件PFILE,要想永久修 ...

  9. sql server 备份与恢复系列六 文件组备份与还原

    一. 概述 文件备份是指备份一个或多个文件或文件组中的所有数据.使用文件备份能够只还原损坏的文件,而不用还原数据库的其余部份,从而加快恢复速度.例如,如果数据库由位于不同磁盘上的若干文件组成,在其中一 ...

随机推荐

  1. Nagios监控系统部署(源码)(四)

    Nagios监控系统部署(源码)   1. 概述2. 部署Nagios2.1 创建Nagios用户组2.2 下载Nagios和Nagios-plugin源码2.3 编译安装3. 部署Nagios-pl ...

  2. Hive的架构(二)

    02 Hive的架构 1.Hive的架构图 2.Hive的服务(角色) 1.用户访问接口 ​ CLI(Command Line Interface):用户可以使用Hive自带的命令行接口执行Hive ...

  3. Anaconda3安装及使用

    一.安装及环境变量配置 1.从这里下载Anaconda 2.根据提示安装即可 3.配置环境变量:%Anaconda%\Script 打开命令行,输入:conda --version,回显版本即完成安装 ...

  4. typedef int(init_fnc_t) (void)的理解

    typedef int(init_fnc_t) (void); 这个就是一个取别名的过程. 我们通常情况下会如下使用 typedef :typedef int MyInt;MyInt a; 这个时候我 ...

  5. json与string与map的理解

    json是一种特殊格式的string字符串,也就是json也是string类型,只是这种string是有格式的,那么他的格式就是类似map的格式[key:value] 举例子: Map map = r ...

  6. 'gbk' codec can't decode byte 0xad in position 12: illegal multibyte sequence

    原文链接:https://blog.csdn.net/shijing_0214/article/details/51971734 使用python的时候,经常会遇到文本编码的问题,其中最常见的就是“' ...

  7. 【NOIP2017提高组模拟12.17】环

    题目 小A有一个环,环上有n个正整数.他有特殊的能力,能将环切成k段,每段包含一个或者多个数字.对于一个切分方案,小A将以如下方式计算优美程度: 首先对于每一段,求出他们的数字和.然后对于每段的和,求 ...

  8. spark2.1.0 自定义AccumulatorV2累加少值(线程不安全)?

    一.踩坑经历 自定义的accumulator是线程不安全的,会造成累加结果不正确.自定找了很久没想到是线程不安全行成的. 二.解决方法 创建一个线程安全的集合变量(我用的是Java的Concurren ...

  9. html audio标签 语法

    html audio标签 语法 audio标签的作用是什么? 作用:<audio> 标签定义声音,比如音乐和视频或其他音频资源,使用audio标签可以不用Flash插件就可以听音乐看视频, ...

  10. Java面试题系列(六)优化tomcat配置

    序言 资料 如何优化tomcat配置(从内存.并发.缓存3个方面)优化