oracle shutdown到nomount

oracle 从停止状态到nomount状态,首先需要参数文件,给oracle分配内存,来启动进程

而这些参数文件都是什么呢?

参数文件分为两种:

pfile和spfile

pfile/spfile区别
    pfile 默认的名称为“init+例程名.ora”文件路径:/u01/app/oracle/product/11.2.0/db_home1/dbs,这是一个文本文件,可以用任何文本编辑工具打开。
    spfile 默认的名称为“spfile+例程名.ora”文件路径:/u01/app/oracle/product/11.2.0/db_home1/dbs以二进制文本形式存在,不能用vi编辑器对其中参数进行修改。
两个文件可以用命令 CREATE PFILE FROM SPFILE或CREATE SPFILE FROM PFILE来互相创建

区别:
1、启动次序 SPfile优先于Pfile。
2、PFILE是静态文件,修改之后不会马上生效,数据库必须重新启动读取这个文件才行。
3、SPFILE是动态参数文件,是二进制文件,不可以直接用记事本等等程序做修改,可以用ALTER命令做修改,不用重起数据库也能生效。
修改方法:
#查看参数信息
sql>show parameter;
#修改参数
sql>alter system set 参数名=值 scope=参数2;
参数2取值有如下三种:
1. scope=spfile: 对参数的修改记录在服务器初始化参数文件中,修改后的参数在下次启动DB时生效。适用于动态和静态初始化参数。
2. scope=memory: 对参数的修改记录在內存中,对于动态初始化参数的修改立即生效。在重启DB后会丟失,会复原为修改前的参数值。
3. scope=both:   对参数的修改会同时记录在服务器参数文件和內存中,对于动态参数立即生效,对静态参数不能用这个选项。
   如果使用了spfile文件,则在执行alter system语句时,scope=both是default的选项。
   如果沒有使用spfile文件,而在执行alter system语句时指定scope=spfile|both都会出错。


oracle启动时,读取参数文件的顺序是:
1.spfile$ORACLE_SID.ORA(
创建数据库时创建的spfile)
2.spfile.ora(oracle
缺省spfile文件
)
3.init$ORACLE_SID.ora(
创建数据库时创建的
pfile)
4.init.ora(oracle
缺省pfile文件)



如何判断使用的是spfile还是静态参数文件?
SYS@abc> show parameter spfile

NAME                                 TYPE        VALUE
--------------------------------- -----------  -----------------------------------------------------------------------
spfile                                  string      /u01/app/oracle/product/11.2.0/db/dbs/spfileorcl11g.ora


如果是null值,就是pfile启动的。

指定初始参数文件启动数据库:startup pfile='/$ORACLE_HOME/dbs/init$ORACLE_SID.ora'

但是请注意,只能指定pfile,不 能指定spfile。


  参数文件之间的转换:
1、通过服务器参数文件spfile文件,创建静态参数文件pfile
SYS@orcl11g> create pfile from spfile;
SYS@orcl11g> create pfile='/home/oracle/init.ora' from spfile;

[oracle@db253 dbs]$ ls $ORACLE_HOME/dbs/initorcl11g.ora
/u01/app/oracle/product/11.2.0/db/dbs/initorcl11g.ora

[oracle@db253 dbs]$ file initorcl11g.ora
initorcl11g.ora: ASCII text

2、还可以通过对应的静态参数文件构建对应的spfile参数文件
SYS@orcl11g> shutdown immediate;
ORA-01507: database not mounted
ORACLE instance shut down.
SYS@orcl11g> create spfile from pfile;

3、还可以通过内存的状态,创建一个参数文件:(oracle 11g的功能)
SYS@orcl11g> create pfile from memory;
SYS@orcl11g> create spfile from memory;


通过一个简单的参数文件就能启动一个实例:

一个参数的参数文件
[oracle@db253 dbs]$ vi initabc.ora
[oracle@db253 dbs]$ cat initabc.ora
db_name=abc
[oracle@db253 dbs]$ export ORACLE_SID=abc
[oracle@db253 dbs]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Thu Jun 13 09:59:26 2013

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

Connected to an idle instance.

SYS@abc> startup nomount;
ORACLE instance started.

Total System Global Area 167395328 bytes
Fixed Size 1343640 bytes
Variable Size 113250152 bytes
Database Buffers 50331648 bytes
Redo Buffers 2469888 bytes
SYS@abc> 



  能够在nomount查看哪些信息?
V$PARAMETER / V$SPPARAMETER / V$SGA
V$SGASTAT / V$BH / V$INSTANCE / V$OPTION
V$VERSION / V$PROCESS / V$SESSION


  SYS@orcl11g>select name,value,isses_modifiable,issys_modifiable from v$parameter where name='nls_date_format';

NAME VALUE ISSES ISSYS_MOD
--------------------- -------------------- ----- ---------
nls_date_format (null) TRUE FALSE

SYS@orcl11g>desc v$parameter;
ISSES_MODIFIABLE VARCHAR2(5): -- 表示能否使用alter session修改这个参数,会话级别的参数修改(true/false)
ISSYS_MODIFIABLE VARCHAR2(9): -- 表示这个参数能够在实例级别进行修改alter system
■ IMMEDIATE -- 表示可以修改,并且立即生效
■ DEFERRED -- 表示可以修改,但是下一个会话生效,或是重启实例生效(alter system set..deferred)
■ FALSE -- 表示使用scope=spfile选项修改,但是下一次实例启动才生效

通过上述方式,来查看哪些参数可以使用会话级别修改,还是系统(实例)级别来修改,
需要查看 ISSES_MODIFIABLE,ISSYS_MODIFIABLE 在v$parameter里确定


  SYS@orcl11g> alter system set nls_date_format='yyyy-mm-dd hh24:mi:ss' scope=spfile; --此时重启实例即可实现日期格式的修改
SYS@orcl11g> alter system reset nls_date_format scope=spfile; --将参数改回默认值 

spfile和pfile参数文件内容是一样的,下面是他们的意思

*下面的参数描述了实例相关池的分配情况*/
    orcl.__db_cache_size=251658240
    orcl.__java_pool_size=4194304
    orcl.__large_pool_size=4194304
    orcl.__shared_pool_size=142606336
    orcl.__streams_pool_size=0
 
    *.audit_file_dest='/u01/app/oracle/admin/orcl/adump'            /*警告日志路径*/
    *.background_dump_dest='/u01/app/oracle/admin/orcl/bdump'   /*后台进程日志路径*/
    *.compatible='11.2.0.3.0'                                       /*版本兼容号*/
    *.control_files='/u01/app/oracle/oradata/orcl/control01.ctl'              /*控制文件的信息*/
    *.core_dump_dest='/u01/app/oracle/admin/orcl/cdump'            /*服务器进程相关的日志路径*/
    *.db_block_size=8192                                            /*内存块的大小*/
    *.db_create_file_dest='/u01/app/oracle/oradata/orcl'              /*tablespace ,datafile路径*/
    *.db_create_online_log_dest_1='/u01/app/oracle/disk1'             /*联机日志文件路径*/
    *.db_create_online_log_dest_2='/u01/app/oracle/disk2'            /*联机日志文件路径*/
    *.db_domain=''                                                 /域名/
    *.db_file_multiblock_read_count=16                             /*一次可读取块的大小:*8k = 128kb*/
    *.db_name='orcl'                                                /数据库标识符/
    *.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'   /*闪回路径*/
    *.db_recovery_file_dest_size=2147483648                        /*闪回区可使用的大小GB*/
    *.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'             /*共享服务器的配置参数*/
    *.job_queue_processes=10                                            /*当前作业进程数*/
    *.open_cursors=600                                                      /*可打开的游标数*/
    *.pga_aggregate_target=135266304                                   /*服务器进程大小*/
    *.processes=250                                                             /*描述当前可以运行的进程数*/
    *.remote_login_passwordfile='EXCLUSIVE'                        /*远程登陆是否要用密码文件*/
    *.sga_target=406847488                                                  /*定义了sga的大小*/
    *.undo_management='AUTO'                                              /*Undo表空间的管理方式为自动管理*/
    *.undo_tablespace='UNDOTBS1'                                       /*指定使用哪一个undo表空间*/
    *.user_dump_dest='/u01/app/oracle/admin/orcl/udump'            /*用户进程的调试追踪文件路径*/




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值