Oracle数据库的启动/关闭
公司使用的oracle的数据库 和 Mysql的启动方式还是有很多地方不一样的,这里记录一下
环境检查
启动oracle数据库的前提是必须使用实例用户登录
su - oracle
这里注意一下 "-" 的两边是有空格的
检查有关环境变量SID
env | grep SID
SID的值决定了启动哪个数据库,如下,在/home/app/oracle/ordata目录中
里面可以看到我们的数据库实例
启用和关闭监听
oracle需要启动监听程序才能够提供外部连接, 命令如下 (需要再oracle用户下运行)
lsnrctl start
lsnrctl stop
以DBA身份登录
sqlplus / as sysdba
四种启动方式
用上面的方法进入sqlplus之后,就可以启动数据库了,下面是四种启动方式 和 对应的说明
启动方式 | 说明 |
---|---|
startup nomount alter database mount; | 启动数据库实例, 此时读取参数文件,但是不加载数据库; 更改为mount状态 |
startup mount alter database open | 启动数据库实例,加载数据库,但是数据库处于关闭状态; 切换为open状态 |
startup open dbname | 启动数据库实例,加载并打开数据库; |
startup force | 终止实例并重启数据库,这种模式在数据库关闭或者启动遇到问题时使用 |
这里我们选用 startup open dbname 打开数据库
关闭数据库
使用SHUTDOWN命令关闭数据库
正常方式(NORMAL)
立即方式(IMMEDIATE)——最常用的数据库关闭方式
事务处理方式(TRANSACTIONAL)
中止方式(ABORT)
正常方式(SHUTDOWN NORMAL)
正常方式(SHUTDOWN NORMAL(normal可省略))
发出该命令后,任何新的连接都不 允许连接到数据库。在数据库关闭 之前,Oracle将等待目前连接的所 有用户从数据库中退出后才开始关 闭数据库。
采用这种方式关闭数据库,在下一次启动时不需要进行任何的实例恢复。
shutdown normal
立即方式(SHUTDOWN IMMEDIATE)
发出该命令后,当前正在被Oracle 处理的SQL立即中断,系统中任何 没有提交的事务全部回滚。系统不 等待连接到数据库的所有用户退出 系统,强行回滚当前所有的活动事 务,然后断开所有的连接用户。
shutdown immediate
事务处理方式(SHUTDOWN TRANSACTIONAL)
发出该命令后,任何新的连接和事 务都是不允许的,在当前连接到数 据库且正在活动的事务执行完毕后, 数据库将和shutdown immediate同样的方式关闭数据库。
该命令常用来计划关闭数据库。
shutdown transactional
中止方式(SHUTDOWN ABORT)
发出该命令后,所有正在运行的SQL 语句都将立即中止,所有未提交的事 务将不回滚,Oracle强行断开所有连 接,关闭数据库。下次启动数据库时 需要实例恢复。
一般不使用这种方式关闭数据库。
shutdown abort