一、实验环境
服务器环境:
-
[oracle@LINUX10 ~]$ lsb_release -a
-
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
-
Distributor ID: OracleServer
-
Description: Oracle Linux Server release 6.5
-
Release: 6.5
- Codename: n/a
-
SQL> select * from v$version;
-
-
BANNER
-
--------------------------------------------------------------------------------
-
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
-
PL/SQL Release 11.2.0.3.0 - Production
-
CORE 11.2.0.3.0 Production
-
TNS for Linux: Version 11.2.0.3.0 - Production
- NLSRTL Version 11.2.0.3.0 - Production
-
SQL> show parameter spfile;
-
-
NAME TYPE VALUE
-
------------------------------------ ----------- ------------------------------
- spfile string +DATA/orcl/spfileorcl.ora
-
-
SQL> select file_name from dba_data_files;
-
-
FILE_NAME
-
--------------------------------------------------------------------------------
-
+DATA/orcl/datafile/users.259.876759593
-
+DATA/orcl/datafile/undotbs1.258.876759593
-
+DATA/orcl/datafile/sysaux.257.876759593
-
+DATA/orcl/datafile/system.256.876759593
-
+DATA/orcl/datafile/example02.dbf
-
+DATA/orcl/datafile/tbstest01.dbf
- +DATA/orcl/datafile/undotbs2_01
修改memory_target,使其值大于memory_max_target的值,模拟下次数据库启动时无法启动状态,及修改 memory_target(2G)> memory_max_target(804M)
-
SQL> show parameter memory
-
-
NAME TYPE VALUE
-
------------------------------------ ----------- ------------------------------
-
hi_shared_memory_address integer 0
-
memory_max_target big integer 804M
-
memory_target big integer 804M
-
shared_memory_address integer 0
-
SQL>
-
SQL>
-
SQL> alter system set memory_target=2G scope=spfile;
-
- System altered.
-
SQL> shutdown immediate;
-
Database closed.
-
Database dismounted.
-
ORACLE instance shut down.
-
SQL> startup nomount
- ORA-00845: MEMORY_TARGET not supported on this system
1、进入参数文件所在的目录
-
[oracle@LINUX10 trace]$ ls $ORACLE_HOME/dbs/
- hc_orcl.dat init.ora initorcl.ora lkORCL orapworcl snapcf_orcl.f
2、查看 initorcl.ora 文件内容
-
[oracle@LINUX10 trace]$ more /u01/app/oracle/product/11.2.3/oracle/dbs/initorcl.ora
- SPFILE='+DATA/orcl/spfileorcl.ora'
说明下面我需要将ASM磁盘中的“+DATA/orcl/spfileorcl.ora” 文件进行修改还原 memory_target<=804M 即可
五、拷贝ASM下面的参数文件
应用ASM实例的环境变量,例如 "[oracle@LINUX10 ~]$ echo $ORACLE_SID" 的值是 +ASM,进入 asmcmd,对服务器参数文件进行拷贝到操作系统上
-
[oracle@LINUX10 ~]$ asmcmd
-
ASMCMD> cp +DATA/orcl/spfileorcl.ora /tmp/spfile.ora
- copying +data/orcl/spfileorcl.ora -> /tmp/spfile.ora
将环境变量切换回来,使其成为数据库实例相关的环境变量 ,例如 "[oracle@LINUX10 ~]$ echo $ORACLE_SID" 的值是 orcl
-
[oracle@LINUX10 ~]$ sqlplus / as sysdba
-
-
SQL*Plus: Release 11.2.0.3.0 Production on Sun May 10 00:01:11 2015
-
-
Copyright (c) 1982, 2011, Oracle. All rights reserved.
-
-
Connected to an idle instance.
-
-
SQL> create pfile='/tmp/orcl.ora' from spfile='/tmp/spfile.ora';
-
- File created.
七、根据/tmp/orcl.ora 启动数据
-
SQL> startup pfile=/tmp/orcl.ora
-
ORACLE instance started.
-
-
Total System Global Area 835104768 bytes
-
Fixed Size 2232960 bytes
-
Variable Size 629149056 bytes
-
Database Buffers 201326592 bytes
-
Redo Buffers 2396160 bytes
-
Database mounted.
-
Database opened.
-
-
SQL> show parameter spfile
-
-
NAME TYPE VALUE
-
--------------------- ----------- ------------------------------
-
spfile string
- SQL>
八、创建spfile文件(spfile放在ASM磁盘组上),并通过spfile启动数据库
-
SQL> create spfile='+DATA/orcl/spfileorcl.ora' from pfile='/tmp/orcl.ora';
-
-
File created.
-
-
SQL> shutdown immediate
-
Database closed.
-
Database dismounted.
-
ORACLE instance shut down.
- SQL> startup
-
ORACLE instance started.
-
-
Total System Global Area 835104768 bytes
-
Fixed Size 2232960 bytes
-
Variable Size 633343360 bytes
-
Database Buffers 197132288 bytes
-
Redo Buffers 2396160 bytes
-
Database mounted.
- Database opened.
本实验主要是记录如何修改ASM磁盘组上的服务器参数文件,与普通操作系统上的文件系统上的修改spfile稍微有点差别,需要先将asm磁盘组上的参数文件cp下来,再来创建pfile。