理论教育 Oracle数据库实例的启动与关闭

Oracle数据库实例的启动与关闭

时间:2023-10-30 理论教育 版权反馈
【摘要】:首先请启动SQLPlus,并以一种管理权限连接:Oracle数据库实例启动过程如图4.5所示,启动过程中要依次经历以下4种状态:①关闭。Oracle提供不同的数据库启动状态,目的是让DBA可以执行相应的管理工作。4)异常关闭异常关闭命令如下:该命令通过立即中止数据库实例的方式关闭数据库。它将禁止新建连接,禁止已连接用户启动新的事务,Oracle数据库当前正在执行的SQL语句被立即中止,不回滚未提交的事务,也不执行检查点,而直接关闭数据库实例。

Oracle数据库实例的启动与关闭

(1)打开数据库

打开和关闭数据库需要具有SYSDBA或SYSOPER管理权限,可使用的工具包括SQL∗Plus、Recovery Manager、Oracle Enterprise Manager等。如果数据库由Oracle Database 11g新提供的Oracle Restart管理,则建议使用SRVCTL启动和关闭数据库。下面以常用的SQL∗Plus为例,执行打开和关闭数据库操作。首先请启动SQL∗Plus,并以一种管理权限连接:

Oracle数据库实例启动过程如图4.5所示,启动过程中要依次经历以下4种状态:

①关闭(CLOSE)。

②已启动(NOMOUNT)。

③已装载(MOUNT)。

④打开(OPEN)。

在SQL∗Plus中使用STARTUP命令启动实例,它可以把数据库从CLOSE状态直接启动到其他3种任意状态。例如,STARTUP NOMOUNT、STARTUP MOUNT、STARTUP OPEN(或者STARTUP)将分别把数据库从CLOSE状态启动到NOMOUNT、MOUNT和OPEN状态。但在数据库实例已启动之后,就不能再使用STARTUP命令改变数据库的状态,而只能使用ALTER DATABASE命令把数据库改变到下一个状态。例如,用STARTUP NOMOUNT命令启动实例之后,只能使用以下命令装载和打开数据库。

Oracle提供不同的数据库启动状态,目的是让DBA可以执行相应的管理工作。

①CLOSE:编辑和修改初始化参数文件。

②NOMOUNT:创建新的数据库,或者重新创建控制文件。

③MOUNT:重命名或移动数据文件、恢复数据库、改变数据库归档模式。

④OPEN:OPEN状态分为受限访问和不受限访问两种。只有在不受限模式下,普通用户才能访问数据库。而在受限模式下,只有同时具有CREATE SESSION和STRICTED SESSION权限的用户才能访问。在受限模式下,数据库管理员也只能从本地访问实例,而不能远程访问。受限模式主要用于执行数据的导入和导出操作、数据的装载、数据库的迁移和升级等操作。

在使用STARTUP命令启动数据库时,RESTRICT选项与NOMOUNT、MOUNT或OPEN选项组合使用,即可将数据库启动到受限访问模式。在执行STARTUP命令正常启动数据库之后,也可用下面命令进入受限访问模式:

受限访问操作执行之后,系统管理员用下列命令将系统修改为非受限访问模式:

(2)关闭数据库

在SQL∗Plus中,使用SHUTDOWN命令关闭数据库。该命令有以下4个选项,它们分别对应4种关闭方式。

①NORMAL:正常关闭。

②TRANSACTIONAL:事务关闭。

③IMMEDIATE:立即关闭。

④ABORT:异常关闭。

1)正常关闭

正常关闭命令语法如下:(www.daowen.com)

其中的NORMAL选项可以省略,因为这是SHUTDOWN命令的默认方法。

正常关闭命令执行后将禁止新建连接,并等待当前所有连接用户主动断开之后再关闭数据库。如果当前用户不主动断开连接,会导致该命令的执行因超时而失败。

2)事务关闭

事务关闭命令语法如下:

该命令将禁止新建连接,禁止已连接用户启动新的事务,但会等待已启动事务执行完成,然后断开用户连接,关闭数据库。所以,只要所有连接用户结束他们的当前事务,该命令即可成功关闭数据库。

3)立即关闭

立即关闭命令语法如下:

该命令发出后将禁止新建连接,禁止已连接用户启动新的事务,但未提交的事务被立即回滚,然后断开用户连接,关闭数据库。所以,该命令关闭数据库的速度比前两种更快。

在以上3种关闭方式中,用户事务都能完成(要么提交,要么回滚),在关闭数据库之前还会执行检查点,所以可以确保所关闭的数据库处于一致状态,下次启动时不需要做实例恢复。因此,这3种关闭方式也被称为一致性关闭。

4)异常关闭

异常关闭命令如下:

该命令通过立即中止数据库实例的方式关闭数据库。它将禁止新建连接,禁止已连接用户启动新的事务,Oracle数据库当前正在执行的SQL语句被立即中止,不回滚未提交的事务,也不执行检查点,而直接关闭数据库实例。这就像系统停电一样,立即中止Oracle数据库的运行。因此,这种方式关闭的数据库处于不一致状态,下次启动时需要作实例恢复。

正常情况下应禁止使用这种关闭方式,只有在其他关闭方式无效时才使用这种方法。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈