oracle数据库-参数文件学习总结

在开始之前,我们还是先简单的介绍一下oracle数据库的组成,从整体上有一个了解。

oracle数据库主要由两部分组成:实例和数据库。实例是逻辑的,有oracle的内存和后台进程组成。由于存放在实例中的数据不会被永久保存,所以在数据库或系统重启之后,实例中的数据将会被清空,这时需要oracle完善的恢复机制来保证业务数据不丢失。数据库是物理的,由存储在磁盘中的文件组成,如控制文件、数据文件、日志文件等。所以在数据库或者系统重启之后,保存在数据库中的数据并不会丢失。

这次我们来学习数据库的参数文件(parameter file)。数据库在启动到nomount状态时会读取参数文件来分配内存结构,启动后台进程。

一、参数文件

从设置数据库参数是否及时生效来讲,可以分为静态参数和动态参数

静态参数指设置的参数在当前实例不生效,实例重启后才能生效

动态参数指设置的参数在当前实例立即生效,重启后是否生效则视配置而定。

从参数的生效范围来区分,有可以分为实例级别和会话级别两种。

还有两类特殊参数,推导参数和操作系统依赖参数

推导参数指的是参数的取值主要依赖于其他参数。最典型的就是sessions参数,其取值依赖于processes参数,公式(1.1*processes) + 5.

操作系统依赖参数指的是参数的默认值随操作系统硬件配置的不同而不同。最典型的就是cpu_count.


二、参数文件类型

数据库参数文件主要用于保存数据库的非默认参数。

参数文件的存放位置:

linux&unix环境,$ORACLE_HOME/dbs 

windows环境,$ORACLE_HOME/database

参数文件主要分为两类

1)文本类型参数文件,即pfile参数文件。该文件可以使用操作系统命令直接修改

2)二进制类型参数文件,即spfile参数文件。该文件不可以使用操作系统命令修改,可以使用strings命令来查看。

数据库启动使用参数的顺序 spfile$ORACLE_SID.ora > spfile.ora > init$ORACLE_SID.ora > init.ora


三、参数设置

检查数据库是否使用spfile参数启动

SYS@testdb>show parameter spfile;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /oracle/ora10g/product/10.2.0/
                                                 db_1/dbs/spfiletestdb.ora
value列有值,说明数据库是使用spfile启动的。

参数设置语法

alter system set parameter=value <comment='text'> <deferred> <scope=both|spfile|memory> <sid='sid|*'>

说明:

parameter=value 分别表示参数名和参数值

comment='text' 表示对参数的注释。注释可以省略

deferred 表示设置参数对当前会话不生效,对以后的会话生效。

scope=both|spfile|memory 表示设置参数的作用范围。其中both表示设置参数在当前实例中生效,并将参数值修改后的值保存在spfile中。spfile表示设置的参数值仅保存在spfile文件中,要重启才能生效。memory表示设置参数值仅仅作用于当前实例。

sid='sid|*' 主要用于RAC环境


四、参数文件之间的转换

spfile -> pfile

SYS@testdb>create pfile='/home/ora10g/pfile.ora' from spfile;

File created.

pfile -> spfile

SYS@testdb>create spfile from pfile='/home/ora10g/pfile.ora';

五、参数文件的备份

1) 使用pfile来备份spfile文件,例如上面的参数文件之间的转换方法

2)rman 配置中开启CONTROLFILE AUTOBACKUP 这样spfile会同controlfile一同备份。

开启自动备份

RMAN> configure controlfile autobackup on;

old RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters are successfully stored

备份数据库,从输出日志中,我们看到controlfile和spfile全部都备份了。

RMAN> backup database format '/ora_data/backup/database_full_%U';

Starting backup at 26-MAR-14
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=147 devtype=DISK
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00004 name=/oracle/ora10g/oradata/users01.dbf
input datafile fno=00008 name=/oracle/ora10g/oradata/system02.dbf
input datafile fno=00001 name=/oracle/ora10g/oradata/system01.dbf
input datafile fno=00003 name=/oracle/ora10g/oradata/sysaux01.dbf
input datafile fno=00002 name=/oracle/ora10g/oradata/undotbs01.dbf
channel ORA_DISK_1: starting piece 1 at 26-MAR-14
channel ORA_DISK_1: finished piece 1 at 26-MAR-14
piece handle=/ora_data/backup/database_full_2kp464ou_1_1 tag=TAG20140326T215645 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:35
Finished backup at 26-MAR-14

Starting Control File and SPFILE Autobackup at 26-MAR-14
piece handle=/ora_data/backup/controlfile_c-2622586788-20140326-00 comment=NONE
Finished Control File and SPFILE Autobackup at 26-MAR-14

六、参数文件的恢复

如果spfile文件丢失,可以使用pfile文件来启动数据库,在重新创建spfile文件,重启数据库即可。

create spfile from pfile='/home/ora10g/pfile_20140303.ora';

使用rman来恢复spfile文件

1)使用rman将数据库启动到nomount状态

RMAN> startup nomount;

startup failed: ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/oracle/ora10g/product/10.2.0/db_1/dbs/inittestdb.ora'

starting Oracle instance without parameter file for retrival of spfile
Oracle instance started

Total System Global Area     159383552 bytes

Fixed Size                     2165968 bytes
Variable Size                 81654576 bytes
Database Buffers              71303168 bytes
Redo Buffers                   4259840 bytes

2)使用controlfile文件的备份集恢复spfile文件

RMAN> restore spfile to '/oracle/ora10g/product/10.2.0/db_1/dbs/spfiletestdb.ora' from '/ora_data/backup/controlfile_c-2622586788-20140303-00';

Starting restore at 03-MAR-14
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=16 devtype=DISK

channel ORA_DISK_1: autobackup found: /ora_data/backup/controlfile_c-2622586788-20140303-00
channel ORA_DISK_1: SPFILE restore from autobackup complete
Finished restore at 03-MAR-14

3)重启数据库,使用spfile文件

RMAN> shutdown immediate;

Oracle instance shut down

RMAN> startup ;

connected to target database (not started)
Oracle instance started
database mounted
database opened

Total System Global Area    2147483648 bytes

Fixed Size                     2168928 bytes
Variable Size                496887712 bytes
Database Buffers            1644167168 bytes
Redo Buffers                   4259840 bytes

SYS@testdb>show parameter spfile;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /oracle/ora10g/product/10.2.0/
                                                 db_1/dbs/spfiletestdb.ora

到这里参数文件我们就学习总结完了。


***********************************

说明:转载请注明出处,谢谢

***********************************

--END--

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值