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

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

时间:2023-08-27 11:01:41浏览次数:44  
标签:状态 13 启动 数据库 用户 文件 SQL oracle


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:正常状态。


标签:状态,13,启动,数据库,用户,文件,SQL,oracle
From: https://blog.51cto.com/u_5173797/7251476

相关文章

  • oracle学习笔记(10)——逻辑存储结构——段
    段是由一个或多个扩展区组成的逻辑存储单元,数据库模式对象在逻辑上是以段来占据表空间的大小,段代表特定数据类型的数据存储结构。1、 段的类型    段分为:数据段、索引段、临时段、回滚段    1)数据段       数据段用来存储表或簇的数据,可以细分为表......
  • oracle学习笔记(14)——安全管理
        数据库的安全性主要包括两个方面的含义:一方面是防止非法用户对数据库的访问,未授权的用户不能登录数据库;另一方面是每个数据库用户都有不同的操作权限,只能进行自己权限范围内的操作。Oracle数据库的安全可以分为两类:    1)系统安全性       系统安全......
  • oracle学习笔记(12)——数据库服务器工作模式与数据字典
    1、 专用服务器工作模式    1)概念:       专用服务器模式是指Oracle为每个用户进程启动一个专门的服务器进程,该服务器进程仅为该用户进程提供服务,直到用户进程断开连接时,对应的服务器进程才终止。    2)特点:       服务器进程与客户进......
  • 数据库基本语法四 数据库查询(DQL)
    数据查询语言(DQL)是SQL语言中的一部分,主要用于查询数据库中的数据。DQL允许用户根据特定的条件来检索表中的数据,并且可以包含一些基本的操作和条件。语法结构:SELECT列名称1,列名称2FROM表名称;其中,SELECT指定要检索的列,FROM指定要查询的表,WHERE指定筛选条件。以下是一些......
  • ORACLE递归用法
     ......
  • CMU 15-213:DataLab(整数部分)
    本笔记仅仅只是用于记录,内容为提示性,题主做的不一定完全符合规范!!!!。本实验中,只有整型只能使用“+”和位运算符。后面浮点数可以用控制循环。1.异或运算直接用公式,或者像我这样利用真值表凑的/**bitXor-x^yusingonly~and&*Example:bitXor(4,5)=1*Lega......
  • 【主席树】CF813 E. Army Creation
    【主席树】CF813E.ArmyCreation题目链接:https://codeforces.com/contest/813/problem/E题意多次询问,求一个区间内,所有数个数的总和,但相同的数最多被计算k次,强制在线。题解这道题和牛客一道题很像,是那道题的加强版,链接在这:题解链接。那道题可以离线,所以离线处理+树状数组......
  • 数据库的类型
    一说到数据库,大多数人可能像我一样,首先想到的就是MySQL、Oracle这样的关系型数据库。因为我们平时接触的最多,而且大学课程中有关于数据库的,也是以关系型数据库为主的。其实,除了关系型数据库外,还有其他类型的用作数据存储的结构,也可以叫做数据库。有些我们平时也经常用到,有的呢,......
  • 【13.0】sqlalchemy 集成到Flask框架
    【在Flask中集成SQLAlchemy】在Flask中集成SQLAlchemy可以通过使用第三方扩展包flask-sqlalchemy来实现,以下是详细的步骤和说明:首先,需要导入SQLAlchemy类以及flask_sqlalchemy模块:fromflask_sqlalchemyimportSQLAlchemy实例化SQLAlchemy对象:db=SQLAlchemy()这个......
  • 1300亿参数,国内首个数学大模型MathGPT上线!多项基准赶超GPT-4
    前言 数学的命运齿轮从此开始转动。国内首个专为数学打造的千亿级大模型MathGPT正式上线,在多项基准测试中碾压GPT-4,刷新SOTA。本文转载自新智元仅用于学术分享,若侵权请联系删除欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。......