启动数据库
启动数据库其实很简单,只需要用SYSDBA身份进入后,执行一个命令:STARTUP,直接执行STARTUP即可启动数据库,如果数据库已经启动,那么会报 ORA-01081错误,例如:
SQL> STARTUP ORA-01081: cannot start already-running ORACLE - shut it down first
STARTUP命令只有几个选项,组合使用可实现不同的功能:
NOMOUNT :只启动数据库实例
MOUNT:启动实例并加载数据文件
OPEN:启动实例,加载数据文件并打开(默认情况下,如果不加任何参数即是启动到open状态)
OPEN也有两个选项:
OPEN READ ONLY: 只读模式打开数据库
OPEN READ WRITE:读写模式打开数据库(默认是 READ WRITE)
FORCE:启动数据库,与OPNE选项的区别是:用FORCE选项启动,如果当前数据库已经启动不会报错,而是自动SHUTDOWN ABORT当前数据库,然后再启动,可以简单的理解成RESTART
RESTART:启动数据库,与OPEN选项的区别是,以这种方式启动后,只拥有RESTARCTED SESSION权限用户才能登陆数据库
PFILE:指定PFILE初始化参数文件启动数据库(9I 之后默认是SPFILE,PFILE应用已极有限)
启动数据库实际分多个步骤,前面列表中的前三种选项是数据库实际启动顺序,如启动到NOMOUNT状态后,再通过ALTER DATABASE命令一步步打开数据库,例如:
SQL> STARTUP NOMOUNT; ORACLE instance started. Total System Global Area 776646656 bytes Fixed Size 2232392 bytes Variable Size 503320504 bytes Database Buffers 264241152 bytes Redo Buffers 6852608 bytes SQL> ALTER DATABASE MOUNT; Database altered. SQL> ALTER DATABASE OPEN; Database altered.
注意:数据库加载到OPEN状态前。除了拥有SYSDBA/SYSOPER权限的账号,或者以操作系统认证方式登录外,其他用户均无法登录;
停止数据库
即使是windows环境的oracle数据库,我们也不建议以停止服务的方式停止数据库,推荐使用命令的方式手动停止,停止数据库只需要用一个命令---SHUTDOWN,改命令也有几个参数选项
NORMAL:正常方式关闭数据库,在执行SHUTDOWN命令不指定任何选项的情况下,默认应用该选项,这种方式关闭数据库会执行以下操作:
禁止用户创建新连接;
等待当前正在连接的用户断开连接(如果用户不主动断开,SHUTDOWN命令会一直等待,当然如果用户服务器断电,也算主动断开)
关闭数据库、卸载数据库、关闭实例;
这种方式关闭数据库非常被动,因此实际应用非常低。
IMMEDIATE:立即执行关闭,以这种方式关闭会执行以下操作:
所有未提交的事务全部回滚;
不允许创建新连接;
已经创建的连接,如果正在执行SQL语句,则等待完成,如果没有则立即断开该连接。
关闭数据库、卸载数据库、关闭实例;
TEANSACTIONAL:以实物为准的数据库关闭方式,介于上面两种中间,这种操作方式会执行一下操作:
不允许创建新连接;
已经创建的连接不允许产生新的事物;
等待未提交的事物提交,然后断开连接;
关闭数据库、卸载数据库、关闭实例;
这种方式在实际中也很少用。
ABORT:中止数据库,以这种方式关闭数据库会执行下列操作:
中止当前所有SQL;
所有连接断开;
未提交的事务不进行回滚(等到下次启动时,进行实例恢复)
关闭数据库、卸载数据库、关闭实例;
这种方式是最快速的数据库关闭方法,但是由于是中止数据库的方式进行关闭,下线启动数据库必须进行恢复实例,因此虽然中止快了,但是下次启动时会变慢。而且,由于回滚段数据与数据文件中可能不一致,增加了出问题的机率,因此这是一种不得已的关闭方式;
下面演示SHUTDOWN IMMEDIATE方式关闭,操作如下:
SQL> SHUTDOWN IMMEDIATE Database closed. Database dismounted. ORACLE instance shut down.
!评论内容需包含中文