1、概念
Oracle有两类参数文件:
(1)pfile:文本格式的参数文件,文件名通常为init.ora;
(2)spfile:二进制格式的参数文件,不能直接修改,可以使用alter system修改,文件名通常为spfile.ora,支持RMAN备份。
参数文件详解请参考文章 Oracle 的参数文件
2、使用RMAN备份参数文件
2.1 备份参数文件
命令如下:
RMAN> backup spfile format '/app/rmanbak/spfile_%d_%I_%T_%t.ora';
2.2 查看备份集
RMAN> list backup of spfile completed before 'sysdate';
3、恢复参数文件
3.1 删除参数文件
--a.查询参数文件位置
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile
--b.查询数据库状态 string /app/oracle/product/19.3.0/db/dbs/spfileorcl.ora
SQL> select status from v$instance;
STATUS
------------------------------------
OPEN
--c.停止数据库
SQL> shutdown immediate
--d.删除参数
[oracle@node1 ~]$ cd $ORACLE_HOME/dbs
[oracle@node1 dbs]$ ll
总用量 11080
-rw-rw---- 1 oracle oinstall 1544 2月 3 11:02 hc_orcl.dat
-rw-r--r-- 1 oracle oinstall 3079 5月 14 2015 init.ora
-rw-r----- 1 oracle oinstall 24 1月 31 12:58 lkMYDB
-rw-r----- 1 oracle oinstall 24 1月 12 13:04 lkORCL
-rw-r----- 1 oracle oinstall 2048 12月 19 20:28 orapworcl
-rw-r----- 1 oracle oinstall 11321344 2月 3 10:00 snapcf_orcl.f
-rw-r----- 1 oracle oinstall 3584 2月 2 18:30 spfileorcl.ora
[oracle@node1 dbs]$ rm -rf spfileorcl.ora
3.2 重启数据库
重新启动数据库后提示无法打开参数文件
SQL> startup;
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/app/oracle/product/19.3.0/db/dbs/initorcl.ora'
由于缺少参数文件,无法启动实例,我们可以在RMAN中启动一个伪实例到nomount,代码如下:
RMAN> startup nomount;
3.3 使用RMAN还原参数文件
单机版还原参数文件命令如下:
RMAN> restore spfile from '/app/rmanbak/spfile_ORCL_1651659091_20230203_1127818641.ora';
RAC还原参数文件命令如下:
restore spfile to '+DATA/ORCL/PARAMETERFILE/spfile.ora' from '+DATA/ARCHIVELOG/spfileorcl20221212_02.old';
3.4 RMAN关闭数据库
RMAN> shutdown immediate;
3.5 启动数据库
SQL> startup
ORACLE instance started.
Total System Global Area 8002730448 bytes
Fixed Size 8915408 bytes
Variable Size 1308622848 bytes
Database Buffers 6677331968 bytes
Redo Buffers 7860224 bytes
Database mounted.
Database opened.
至此Oracle数据库参数文件恢复完成,