oracle-参数文件的备份与还原
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-参数文件的备份与还原的更多相关文章
- Oracle 参数文件及相关操作介绍
Oracle 参数文件及相关操作介绍 by:授客 QQ:1033553122 1.服务器参数文件 服务器参数文件是一个二进制文件,作为初始化参数的存储仓库.实例运行时,可用ALTER SYSTEM来改 ...
- Oracle 10g 数据库的备份和还原
一.备份数据库 1.在图形工具中,如sqldeveloper,pl/sqldeveloper用以下这句查找空表 select 'alter table '||table_name||' allocat ...
- ORACLE参数文件
一.oracle pfile/spfile区别 pfile 默认的名称为“init+例程名.ora”文件路径:E:\oracle\product\10.2.0\db_1\dbs,这是一个文本文件 ...
- Oracle 参数文件spfile
pfile和spfile 概念 ORACLE中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件,可以分为两种类型.它们是在数据库实例启动时候加载的,决定了数据库的物理结构.内存.数据库的限制 ...
- Oracle 参数文件
参数文件(10g中的参数文件) 主要用来记录数据库的配置文件,在数据库启动时,Oracle读取参数文件,并根据参数文件中的参数设置来配置数据库. 如内存池的分配,允许打开的进程数和会话数等. 两类参数 ...
- Oracle参数文件修改
初始化参数文件有两种,文本初始化参数文件 pfile 和二进制初始化参数文件 spfile. 动态参数文件spfile 这是Oracle推荐的初始化参数文件类型.这是一个可以写入和读取的二进制文件 ...
- Oracle参数文件—pfile与spfile
oracle的参数文件:pfile和spfile 1.pfile和spfile Oracle中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件.它们是在数据库实例启动时候加载的, ...
- oracle参数文件spfile和pfile
一.参数文件说明 PFILE(Initialiazation Parameter Files)初始化参数文件,是文本文件,可直使用文本编辑器查看.如果数据库使用的是初始化参数文件PFILE,要想永久修 ...
- sql server 备份与恢复系列六 文件组备份与还原
一. 概述 文件备份是指备份一个或多个文件或文件组中的所有数据.使用文件备份能够只还原损坏的文件,而不用还原数据库的其余部份,从而加快恢复速度.例如,如果数据库由位于不同磁盘上的若干文件组成,在其中一 ...
随机推荐
- LDO ,开关电源DC-DC的优缺点
一般LDO电源自身的功耗为(Vin-Vout)*Iout,因此这两者越大,功耗也越大,效率也就越低. LDO ,开关电源DC-DC的优缺点(2008-11-06 22:40:23)转载标签: 电源杂谈 ...
- Codeforces Round #575 (Div. 3) E. Connected Component on a Chessboard(思维,构造)
E. Connected Component on a Chessboard time limit per test2 seconds memory limit per test256 megabyt ...
- Gym-100814K 数位DP 模拟除法
Johnny is a brilliant mathematics student. He loves mathematics since he was a child, now he is work ...
- imagecreatefromjpeg(): gd-jpeg: JPEG library reports unrecoverable
错误: imagecreatefromstring(): Empty string or invalid image 或者 imagesx() expects parameter 1 to be re ...
- stdarg的使用
// 可变参头文件 <stdarg.h> // 主要依赖五个宏: va_list,va_start, va_arg, va_end, va_copy // 其中 va_copy 是 c99 ...
- 动态树(Link-Cut-Tree)简单总结(指针版本)
Link-Cut-Tree(动态树 LCT) 1.定义 1. 偏爱子节点: 一颗子树内最后访问的点若在该子树根节点 X 的某个儿子节点 P 的子树中,则称 P 为 X 的偏爱子节点. 偏爱边:连向偏爱 ...
- java 实现 图片与byte 数组互相转换
package webgate; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import ja ...
- postgresql查询栅格数据范围(extent)
栅格数据: SELECT ST_Extent(rast::geometry) as bextent FROM tmean_19; 矢量数据: SELECT ST_Extent(way) as bext ...
- 22.从上往下打印二叉树(python)
题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. class Solution: # 返回从上到下每个节点值列表,例:[1,2,3] def PrintFromTopToBottom( ...
- [BZOJ2987]Earthquake:类欧几里得算法
分析 类欧的式子到底是谁推的啊怎么这么神仙啊orz! 简单说一下这道题,题目中的约束条件可以转化为: \[ y \leq \frac{c-ax}{b} \] 有负数怎么办啊?转化一下: \[ y \l ...