故障背景:
为服务器进行操作系统重启,因硬件问题,服务器重启后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后必须写全路径