oracle学习笔记(13)——数据库的启动与关闭

1、常用的服务

(1)OracleServiceSID

          数据库服务,这个服务会自动地启动和停止数据库。如果安装了一个数据库,它的缺省启动类型为自动。服务进程为ORACLE.EXE,参数文件initSID.ora,日志文件SIDALRT.log,控制台SVRMGRL.EXE、SQLPLUS.EXE。

          注:SID - 数据库标识  如Orcl

(2)OracleHOME_NAMETNSListener

         监听器服务,服务只有在数据库需要远程访问时才需要(无论是通过另外一台主机还是在本地通过 SQL*Net网络协议都属于远程访问),不用这个服务就可以访问本地数据库,它的缺省启动类型为自动。服务进程为TNSLSNR.EXE,参数文件Listener.ora,日志文件listener.log,控制台LSNRCTL.EXE,默认端口1521、1526。

(3)OracleDBConsoleorcl--可以不启动,用于管理Oracle的企业管理器的服务.

(4)OracleJobSchedulerORCL--通常不启动,用于定期操作任务的服务

(5)OracleOraDb10g_home1iSQL*Plus--可以不启动,这是isqlplus服务,用于用网页执行sql执行,11g已经取消了这个功能

(6)OracleSNMPPeerMasterAgent

          SNMP服务代理,用于支持SNMP的网管软件对服务器的管理,除非你使用网管工具监控数据库的情况,否则不需要启动,它的缺省启动类型是手动。服务进程为AGNTSVC.EXE,参数文件MASTER.CFG,默认端口161。

(7)OracleSNMPPeerEncapsulater

         SNMP协议封装服务,用于SNMP协议转换,除非你使用一个不兼容的SNMP代理服务,否则不需要启动,它的缺省启动类型是手动。服务进程为ENCSVC.EXE,参数文件ENCAPS.CFG,默认端口1161。

(8)OracleHOME_NAMEManagementServer

        OEM管理服务,使用OEM时需要,它的缺省启动类型是手动。服务进程为OMSNTSVR.EXE,日志文件oms.nohup。

2、  数据库启动的步骤

        分3步,对应3个状态:

         ①     创建并启动实例(初始化参数文件)

                  根据数据库初始化参数文件,为数据库创建实例,启动一系列后台进程和服务进程,并创建SGA区等内存结构。

         ②     装载数据库(控制文件)

                  实例打开数据库的控制文件,从中获取数据库名称、数据文件和重做日志文件的位置、名称等数据库物理结构信息,为打开数据库做好准备。如果控制文件损坏,实例将无法装载数据库。

         ③     打开数据库(数据文件与重做日志文件)

                  实例将打开所有处于联机状态的数据文件和重做日志文件。如果任何一个数据文件或重做日志文件无法正常打开,数据库将返回错误信息,这时数据库需要恢复。

3、  数据库启动的三种模式

        NOMOUNT:创建并启动数据库实例,对应数据库启动的第一个步骤

        MOUNT:启动实例并装载数据库,对应数据库启动的第二个步骤

        OPEN:启动实例、装载并打开数据库,对应数据库启动的第三个步骤

       启动数据库的基本语法 :

        STARTUP [NOMOUNT|MOUNT|OPEN|FORCE][RESTRICT][PFILE=filename]

(1)STARTUP  NOMOUNT

       读取数据库初始化参数文件,创建并启动数据库实例。在NOMOUNT模式下可以执行下列操作:

       创建一个新的数据库

       重建数据库的控制文件

(2)STARTUPMOUNT

       根据CONTROL_FILES参数找到数据库的控制文件,读取控制文件获取数据库的物理结构信息,实现数据库的装载 。在MOUNT模式下可以执行下列操作:

        重命名数据文件

        添加、删除或重命名重做日志文件

        改变数据库的归档模式

        执行数据库完全恢复操作

(3)STARTUP[OPEN]

       任何具有CREATE SESSION权限的用户都可以连接到数据库,并可以进行基本的数据访问操作。

(4)STARTUPFORCE

       用于当各种启动模式都无法成功启动数据库时强制启动数据库。

       在下列情况下,需要使用STARTUP FORCE命令启动数据库:

       1)无法使用SHUTDOWN NORMAL,SHUTDOWN IMMEDIATE或SHUTDOWN TRANSACTION语句关闭数据库实例。

       2)在启动实例时出现无法恢复的错误。

(5)STARTUPRESTRICT (以受限方式打开数据库)

       只有具有CREATE SESSION和RESTRICTED SESSION(通常只有DBA具有)系统权限的用户才可以连接数据库。下列操作需要使用STARTUPRESTRICT方式启动数据库:

       执行数据库数据的导出或导入操作;

       执行数据装载操作;

       暂时阻止普通用户连接数据库;

       进行数据库移植或升级操作。

(6)STARTUPPFILE[=path\filename] (使用非默认的初始化参数文件)

       若不指定,则打开默认服务器端初始化参数文件;若没有,则打开默认文本文件 ;如果还没有,则启动失败。

4、数据库关闭的步骤

      和启动数据库对应的也分为3步,对应三个状态:

      ①   关闭数据库 (关闭数据文件与重做日志文件)

             Oracle将重做日志缓冲区内容写入重做日志文件中,并且将数据高速缓存中的脏缓存块写入数据文件,然后关闭所有数据文件和重做日志文件。

      ②   卸载数据库 (关闭控制文件)

             数据库关闭后,实例卸载数据库,关闭控制文件。

      ③   关闭实例  (释放内存、关闭后台进程)

             卸载数据库后,终止所有后台进程和服务器进程,回收内存空间。

5、关闭数据库的各种方式

      关闭数据库的基本语法

      SHUTDOWN [ NORMAL | TRANSACTION | IMMEDIATE |ABORT ]

(1)SHUTDOWN[ NORMAL ] (对关闭无时间限制)

           阻止任何用户建立新的连接;等待当前所有正在连接的用户主动断开连接;一旦所有用户断开连接,则关闭数据库;数据库下次启动时不需要任何实例的恢复过程。

(2)SHUTDOWNIMMEDIATE (尽可能在短时间内关闭)

           阻止任何用户建立新的连接,也不允许当前连接用户启动任何新的事务;回滚所有当前未提交的事务;终止所有用户的连接,直接关闭数据库;数据库下一次启动时不需要任何实例的恢复过程。

(3)SHUTDOWNTRANSACTION(尽可能在短时间内关闭,并保证行动事务可以提交)

          阻止所有用户建立新的连接,也不允许当前连接用户启动任何新的事务;等待用户回滚或提交任何当前未提交的事务,然后立即断开用户连接;关闭数据库;数据库下一次启动时不需要任何实例的恢复过程。

(4)SHUTDOWNABORT(前3种方法无法成功关闭数据库,则用。会丢失一部分数据,对数据库完整性造成损害)

          阻止任何用户建立新的连接,同时阻止当前连接用户开始任何新的事务;立即结束当前正在执行的SQL语句;任何未提交的事务不被回滚;中断所有的用户连接,立即关闭数据库;数据库实例重启后需要恢复。

6、数据库状态转换

      数据库启动后,可根据数据库管理或维护的需要,将数据库由一种状态转换到另一种状态。

(1)启动模式间转换

          SQL>STARTUP NOMOUNT;

          SQL>ALTER DATABASE MOUNT;

          SQL>ALTER DATABASE OPEN ;

(2)读写状态转换

          SQL>ALTER DATABASE OPEN READ WRITE ;

          SQL>ALTER DATABASE OPEN READ ONLY;

(3)受限/非受限状态转换(启动时默认是非受限的)

          SQL>ALTER SYSTEM ENABLE RESTRICTEDSESSION;

          SQL>ALTER SYSTEM DISABLE RESTRICTEDSESSIOIN;

(4)静默状态/非静默状态转换

          所谓的静默状态是指只允许DBA用户(在Oracle10g中,只允许SYS用户和SYSTEM用户)在数据库中执行查询、更新等事务操作,以及运行PL/SQL程序,而其他所有用户都不能在数据库中执行任何操作。

          下列操作需要在静默状态下进行:

          ① DBA在执行操作的过程中,如果有其他用户访问操作的对象,那么将导致DBA操作失败。

          ② DBA的某些操作在执行过程中所产生的中间结果不应当被其他用户看到。 

         1)进入静默状态(等所有非DBA用户会话主动终止后才进入静默状态)

               SQL>ALTER SYSTEM QUIESCE RESTRICTED;

         2)退出静默状态

              SQL>ALTER SYSTEM UNQUIESCE;

         3)查询静默状态

               查询动态性能视图V$INSTANCE的ACTIVE_STATE列查看数据库的当前状态:

              SQL>SELECT ACTIVE_STATE FROM V$INSTANCE;

              NORMAL:正常非静默状态;

              QUIESCING:正在进入静默状态,等待非DBA会话进入停止状态;

              QUIESCED:静默状态,所有非DBA会话都进入停止状态。

(5)挂起与非挂起状态转换

          当数据库处于挂起状态时,对数据库的数据文件和控制文件的I/O操作都被暂停。可以保证在没有I/O冲突状态下进行数据库的备份操作。与静默状态不同,挂起状态不禁止非DBA用户进行数据库操作,只是暂时停止所有用户的I/O操作。当前所有的I/O可以继续完成。当数据库处于挂起状态时,可以为系统中的磁盘或文件创建镜像,然后分离镜像,从而为数据库的备份与恢复提供了一种可选方案。

         1)进入挂起状态

               SQL>ALTER SYSTEM SUSPEND;

         2)退出挂起状态

              SQL>ALTER SYSTEM RESUME;

         3)查询挂起状态

               查询动态性能视图V$INSTANCE的DATABASE_STATUS列查看数据库是否处于挂起状态:

             SQL>SELECT DATABASE_STATUS FROMV$INSTANCE;

             DATABASE_STATUS列的取值有两种。SUSPENDED:挂起状态; ACTIVE:正常状态。


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值