Windows中Oracle服务在“服务”中自动创建一个OracleService[SID_NAME]的服务名,我们可以通过对它的启动停止就可以实现对数据库的操作(不推荐).
Linux与Windows均支持手工操作数据库的启停
一、启动
通过sqlplus以SYSDBA的身份连接后,只需使用STARTUP命令就可以启动数据库
(如果数据库以启动则会报错ORA-01081)
STARTUP命令参数,可组合使用满足不同需求
NOMOUNT
只启动数据库实例
MOUNT
启动实例并加载数据文件
OPEN
启动实例,加载数据文件并打开(默认情况下,不加任何参数即是启动到OPEN状态)
OPEN有两个选项:
OPEN READ ONLY:只读模式打开数据库
OPEN READ WRITE:读写模式打开数据库(默认是READ WRITE)
FORCE
启动数据库,与OPEN选项的区别是,用FORCE选项启动,如果当前数据库已经启动并不会报错,而是自动强制关闭数据库(SHUTDOWN ABORT)后,然后再启动,可以理解FORCE参数等同于RESTART参数
RESTRICT
启动数据库,与OPEN选项的区别是,以这种方式启动数据库后,只有拥有RESTRICTED SESSION权限的用户才能登陆数据库
PFILE
指定PFILE初始化参数文件启动数据库
STARTUP等同于STARTUP NOMOUNT + ALTER DATABASE MOUNT; + ALTER DATABASE OPEN;
数据库加载到OPEN状态前,除了拥有SYSDBA/SYSOPER权限的账号和以操作系统认证方式登陆外,其他用户均无法登陆
二、关闭
停止数据库可以使用SHUTDOWN命令来进行操作
SHUTDOWN命令的参数用法
NORMAL(非常被动)
正常方式关闭数据库,在执行SHUTDOWN命令不指定任何参数的情况下默认应用该选项,这种方式会对数据库执行以下操作
1.禁止用户创建新连接
2.等待到正在连接的用户断开连接
3.关闭数据库、卸载数据库、关闭实例
IMMEDIATE(较为常用)
立刻关闭数据库,这种方式会对数据库执行以下操作
1.所有未提交的事物全部回滚
2.不允许创建新连接
3.已经创建的连接,如果有正在执行的SQL语句则等待其完成
4.关闭数据库、卸载数据库、关闭实例
TRANSACTIONAL
以事物为准的关闭方式,介于NORMAL和IMMEDIATE两者之间的方式,这种方式会对数据库执行以下操作
1.不允许创建新连接
2.已经创建的连接,不允许在产生新的事物
3.等待未提交的事物提交,然后断开连接
4.关闭数据库,卸载数据库,关闭实例
ABORT
中止数据库,这种方式会对数据库指定以下操作
1.中止当前所有执行的SQL
2.所有连接全部断开
3.未提交的事物不进行回滚(等到下次启动时,进行实例恢复)
4.关闭数据库,卸载数据库,关闭实例