故障背景:

为服务器进行操作系统重启,因硬件问题,服务器重启后128GB内存丢失一半,导致应用进程处理数据缓慢。Oracle软件版本为10.2.0.5。特别之处在于,数据库数据文件使用共享卷组裸设备,spfile是共享卷组上裸设备。

紧急决定,将此服务器上历史数据库SGA内存配置减少一般。

突发问题:

修改sga_max_size和sga_target后,重启数据库实例,报错提示ORA-00821。

应急处置:

在shutdown状态下,由spfile生产pfile。编辑pfile文件,调小sga_max_size和sga_target参数值。以pfile启动数据库,在将pfile内容写入spfile

操作步骤:

(1)在open状态下,修改sga内存配置,原配置减少至一般

alter system set sga_max_size=12240m scope=spfile;

alter system set sga_target=12240m scope=spfile;


(2)启动数据库报ORA-00821错

SQL> shutdown immediate

SQL> startup

ORA-00821: Specified value of sga_target 3072M is too small, needs to be at least 12896M


(3)查看spfile为裸设备文件

$ more  /home/db/oracle/product/10.2.0/dbs/initwcmdb.ora

SPFILE='/home/db/oracle/oradata/wcmdb/rspfile_01_512M'

$ ls -l rspfileptdb_128m

lrwxrwxrwx 1 oracle dba 14 Jun 10 14:29 rspfileptdb_128m -> /dev/raw/raw10


(4)在shutdown状态下,由spfile生产pfile

SQL> create pfile='/tmp/pfile.0919' from spfile='/home/db/oracle/oradata/wcmdb/rspfile_01_512M';


(5)编辑pfile

$ vi /tmp/pfile.0919

将修改sga_max_size和sga_target参数值调小


(6)在shutdown状态下,以pfile启动数据库

SQL> startup pfile='/tmp/pfile.0919'


(7)在open状态下,由pfile生产spfile

create spfile='/home/db/oracle/oradata/wcmdb/rspfile_01_512M' from  pfile='/tmp/pfile.0919'

注意:spfile后必须写全路径