实例管理及数据库的启动关闭

本文详细介绍了Oracle数据库中的实例和参数文件管理,包括pfile与spfile的区别、如何修改spfile参数,以及数据库启动与关闭的不同阶段和特殊选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 实例和参数文件

1、instance功能:用于管理和访问database。

2、init parameter files:管理实例相关启动参数。  位置:$ORACLE_HOME/dbs

3、pfile:(parameter file)静态参数文件
1)文本文件,必须通过编辑器修改参数。 2)修改参数下次重启实例才生效。3)pfile参数文件可以不再database sever上。

命名方式:init+SID.ora

4、spfile:(system parameter file)动态参数文件。  位置:show parameter spfile;
1)二进制文件,不可以通过编辑器修改。2)Linux下strings可以查看 。3)必须在database server段的指定路径下。

命名方式: spfile+SID.ora

在spfile读到内存后,有一部分参数是可以直接在内存中修改,并对当前instance立即生效,这样的参数叫动态参数。除了动态参数都是静态参数。静态参数修改spfile文件。动态参数在instance关闭后失效,而静态参数是下次instance启动后才生效。

如何修改spfile参数
alter system set 参数=值 [scope=memory|spfile|both]
alter system reset 参数 [scope=memory|spfile|both] SID='*' //恢复缺省值。

scope=memory 参数修改立刻生效,但不修改spfile文件。
scope=spfile 修改了spfile文件,重启后生效。
scope=both 前两种都要满足。 缺省

通过查看V$parameter,可以确定参数修改方式,制定scope

SQL> desc v$parameter;

 issys_modifiable:对应alter system命令,及系统级修改

SQL> select distinct issys_modifiable from v$parameter;

ISSYS_MODIFIABLE
----------------
IMMEDIATE
FALSE
DEFERRED

IMMEDIATE     //对应scope=memory
FALSE            //只能scope=spfile,即修改spfile文件,下次启动才生效。
DEFERRED      //其他session有效

ISSES_MODIFIABLE:对应alter session命令,即session级修改

SQL> select distinct isses_modifiable from v$parameter;

ISSES_MODIFIABLE
----------------
TRUE //表示可以修改
FALSE //表示不能修改

SQL> select name,ISSES_MODIFIABLE,ISSYS_MODIFIABLE from v$parameter where name='sql_trace';


NAME                                                                             ISSES ISSYS_MOD
-------------------------------------------------------------------------------- ----- ---------
sql_trace                                                                        TRUE  IMMEDIATE

这个结果表示 sql_trace参数在session级别可以改,在system级也可以both修改(动态参数)。

5、startup时读取初始化参数文件(initialization parameter file)或服务器参数文件(server parameter file)如果没有spfile可以从pfile启动。

pfile和spfile可以相互生成:

SQL>create pfile from spfile
SQL>create spfile from pfile(使用spfile启动后不能在线生成spfile,ORA-32002: 无法创建已由实例使用的 SPFILE)

可以通过当前内存参数生成pfile和spfile(11g新特性):

SQL>create pfile from memory;
SQL>create spfile from memory;

有了spfile,pfile一般留做备用,特殊情况也可以使用pfile启动,命令如下:
SQL> startup pfile=D:\oracle\product\10.2.0\admin\orcl\pfile\init.ora.2112014103048

SQL> show parameter spfile;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\SPFILEORCL.ORA

//如果value有值,说明数据库启动时读的是spfile 

二 、数据库启动与关闭

1.启动分为三个阶段
   
1)nomount阶段:读取init parameter 
                           
SQL> select status from v$instance;   (这条命令很实用,看当前数据库启动的状态,有三个 started,mounted,open)                                                                                          
STATUS
------------
STARTED


2)mount阶段:  读取控制文件
SQL> select status from v$instance;                                                                                             
STATUS
------------
MOUNTED              
             
3)open阶段:  1、检查所有的datafile、redo log、 group 、password file。   
      2、检查数据库的一致性(controlfile、datafile、redo file的检查点是否一致)

SQL> select file#,checkpoint_change# from v$datafile;   //从控制文件中读出

     FILE# CHECKPOINT_CHANGE#
---------- ------------------
         1            7877118
         2            7877118
         3            7877118
         4            7877118
         5            7877118
         6            7877118
         7            7877118
         8            7877118
         9            7877118
        10            7877118
        11            7877118
        12            7877118
        13            7877118


13 rows selected

SQL> select file#,checkpoint_change# from v$datafile_header;    从数据文件头中读出

     FILE# CHECKPOINT_CHANGE#
---------- ------------------
         1            7877118
         2            7877118
         3            7877118
         4            7877118
         5            7877118
         6            7877118
         7            7877118
         8            7877118
         9            7877118
        10            7877118
        11            7877118
        12            7877118
        13            7877118


13 rows selected

SQL>  select status from v$instance;

STATUS
------------
OPEN

2. 启动数据库时的特殊选项

SQL> alter database open read only;
SQL> startup force
SQL> startup upgrade (只有sysdba能连接)
SQL> startup restrict (有restrict session权限才可登录,sys不受限制)
SQL> alter system enable restricted session;  (open后再限制) 

3. 实例关闭
    shutdown normal: 拒绝新的连接,等待当前事务结束,等待当前会话结束,生成检查点
    shutdown transactional :拒绝新的连接,等待当前事务结束,生成检查点
    shutdown immediate:  拒绝新的连接,未提交的事务回滚,生成检查点
    shutdown abort(startup force) :事务不回滚,不生成检查点,下次启动需要做instance  recovery 



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28282660/viewspace-1417120/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28282660/viewspace-1417120/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值