(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数据库的运行。因此,这种方式关闭的数据库处于不一致状态,下次启动时需要作实例恢复。
正常情况下应禁止使用这种关闭方式,只有在其他关闭方式无效时才使用这种方法。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。