恢复参数文件spfile

Oracle启动的时候,一定会去查找一个参数文件,如果如下参数文件均未找到,数据库将无法启动,Oracle 查找参数文件的顺序如下:

spfile<sid>.ora---pfile<sid>.ora----init<sid>.ora

sid是你自己的数据实例名,参数文件保存路径在$ORACLE_HOME/dbs

如下,通过两种方式恢复参数文件

比较简单的一种方法,通过Alert日志恢复,如果你知道你的alert日志路径,跳过如下步骤:

oracle@linux:~/product/10.2.0/db_1/dbs> ls *.ora
initdw.ora  init.ora
oracle@linux:~/product/10.2.0/db_1/dbs>

一个参数文件都没有,我们尝试启动数据库

SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/home/oracle/product/10.2.0/db_1/dbs/initzxin.ora'
SQL>

提示找不到参数文件

首先在$ORACLE_HOME/dbs下创建一个init<sid>.ora的参数文件,内容如下

oracle@linux:~/product/10.2.0/db_1/dbs> cat initzxin.ora
db_name='zxin'
oracle@linux:~/product/10.2.0/db_1/dbs>

其中的zxin为你自己的实例名,然后,我们启动数据库到nomount状态:

SQL> startup nomount;
ORACLE instance started.

Total System Global Area  171966464 bytes
Fixed Size                  2082496 bytes
Variable Size             113248576 bytes
Database Buffers           50331648 bytes
Redo Buffers                6303744 bytes
SQL>

查一下alert日志的路径,如下红框内的路径即为alert日志的路径:

进入alert日志所在目录,查看alert日志:

oracle@linux:~/data/admin/zxin/bdump> vi alert_zxin.log

拷贝出红框中的内容,在$ORACLE_HOME/dbs下新建一个文件pfile<SID>.ora,把复制的内容贴进去,特别需要注意的是,所有数值和路径需要用单引号括起来,如下:

oracle@linux:~/product/10.2.0/db_1> vi pfilezxin.ora

然后使用pfile启动数据库:

SQL> startup pfile='/home/oracle/product/10.2.0/db_1/dbs/pfilezxin.ora';
ORACLE instance started.

Total System Global Area 1375731712 bytes
Fixed Size                  2083848 bytes
Variable Size             352322552 bytes
Database Buffers         1006632960 bytes
Redo Buffers               14692352 bytes
Database mounted.
Database opened.
SQL>

拷贝pfile<SID>.ora 为init<SID>.ora

oracle@linux:~/product/10.2.0/db_1/dbs> cp pfilezxin.ora initzxin.ora
oracle@linux:~/product/10.2.0/db_1/dbs>

然后通过pfile创建spfile

SQL> create spfile from pfile;

File created.

SQL>

重启数据库:

另一种方法,通过RMAN恢复参数文件:

oracle@linux:~> rman target /

Recovery Manager: Release 10.2.0.4.0 - Production on Thu Oct 20 16:53:55 2016

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

connected to target database: ZXIN (DBID=1579813944)

查看有控制文件的备份集:

RMAN> list backup of controlfile;

using target database control file instead of recovery catalog

List of Backup Sets
===================

BS Key  Type LV Size       Device Type Elapsed Time Completion Time   
------- ---- -- ---------- ----------- ------------ -------------------
24      Incr 2  6.80M      DISK        00:00:01     2016.10.17 17:15:09
        BP Key: 24   Status: AVAILABLE  Compressed: NO  Tag: TAG20161017T171501
        Piece Name: /home/oracle/product/10.2.0/db_1/dbs/0prijp8s_1_1
  Control File Included: Ckp SCN: 358638       Ckp time: 2016.10.17 17:15:08

RMAN>

模拟参数文件丢失:

oracle@linux:~/product/10.2.0/db_1/dbs> rm -rf spfilezxin.ora
oracle@linux:~/product/10.2.0/db_1/dbs>

恢复参数文件:

停止数据库:

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>

RMAN> startup nomount;

Oracle instance started

Total System Global Area    1375731712 bytes

Fixed Size                     2083848 bytes
Variable Size                352322552 bytes
Database Buffers            1006632960 bytes
Redo Buffers                  14692352 bytes

RMAN> restore spfile from '/home/oracle/product/10.2.0/db_1/dbs/0prijp8s_1_1';

Starting restore at 2016.10.20 16:57:41
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=156 devtype=DISK

channel ORA_DISK_1: autobackup found: /home/oracle/product/10.2.0/db_1/dbs/0prijp8s_1_1
channel ORA_DISK_1: SPFILE restore from autobackup complete
Finished restore at 2016.10.20 16:57:43

RMAN> alter database mount ;

database mounted
released channel: ORA_DISK_1

RMAN> alter database open;

database opened

RMAN>

重启数据库

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup;
ORACLE instance started.

Total System Global Area 1375731712 bytes
Fixed Size                  2083848 bytes
Variable Size             385876984 bytes
Database Buffers          973078528 bytes
Redo Buffers               14692352 bytes
Database mounted.
Database opened.
SQL> show parameter spfile;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /home/oracle/product/10.2.0/db
                                                 _1/dbs/spfilezxin.ora
SQL>




Oracle数据库的SPFILE(Server Parameter File)是一个二进制文件,它包含了数据库实例的配置参数。这些参数用于控制数据库的行为和性能。下面是一些常见的SPFILE参数及其解释: 1. `DB_NAME`:数据库实例的名称。 2. `DB_UNIQUE_NAME`:数据库实例的唯一名称,用于集群环境中区分不同实例。 3. `DB_DOMAIN`:数据库的域名,用于在网络中唯一标识数据库。 4. `CONTROL_FILES`:控制文件的路径和名称,控制文件记录了数据库的结构和元数据信息。 5. `LOG_ARCHIVE_DEST_n`:归档日志的存储位置,可以有多个归档目标。 6. `LOG_ARCHIVE_FORMAT`:归档日志的命名格式。 7. `SGA_TARGET`:系统全局区(SGA)的目标大小,SGA是Oracle数据库中的主要内存区域。 8. `PGA_AGGREGATE_TARGET`:PGA(Program Global Area)的目标大小,PGA用于存储会话和排序操作的临时数据。 9. `MEMORY_TARGET`:SGA和PGA的总目标大小,如果设置了该参数,则SGA_TARGET和PGA_AGGREGATE_TARGET会自动调整。 10. `FAST_START_MTTR_TARGET`:最小恢复时间目标,用于控制崩溃恢复的速度。 11. `PROCESSES`:允许的并发用户进程数量。 12. `SESSIONS`:允许的并发会话数量。 13. `REMOTE_LOGIN_PASSWORDFILE`:用于远程登录认证的密码文件。 14. `UNDO_MANAGEMENT`:事务回滚管理方式,可以是AUTO(自动管理)或MANUAL(手动管理)。 15. `COMPATIBLE`:数据库版本兼容性级别,控制数据库的行为以与特定版本兼容。 这只是一小部分SPFILE参数的示例,实际上还有很多其他参数可以配置。您可以通过查阅Oracle官方文档或使用`SHOW PARAMETER`命令来获取更详细的参数列表和解释。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值