数据库的启动与关闭(startup和shutdown)以及开机自启

一、启动数据库实例

数据库有四个状态,①shutdown;②nomount;③mount;④open

select open_mode from v$database;   //查看数据库的状态
//NOMOUNTED状态,shutdown、nomount阶段不可以使用该条sql;MOUNT状态;READ WRITE 是open阶段。
select instance_name,status from v$instance;  //也可以通过v$instance查看实例状态

启动数据库从状态①开始

1、nomount阶段

从①shutdown状态到达②nomount状态使用startup nomount,这个阶段读取spfile/pfile文件中的参数,启动数据库实例。

从②状态到达③mount状态使用alter database mount;

从②状态到达④open状态使用 alter database mount; alter database open;

不可直接从③mount或④open状态直接到②nomount状态,要先经过shutdown关闭数据库,再startup nomount;

查看v$database会出现错误,但是从v$instance看出实例处于started状态

2、mount阶段

从①shutdown状态到达③mount状态使用startup mount,会自动启动nomount,这个阶段读取控制文件,验证控制文件;这个阶段数据库的基本结构都能查询了,但是不能查询用户表的内容

从③mount状态到④open状态使用alter database open;不可直接从④open状态到②nomount状态或③mount状态,要先经过shutdown关闭数据库,重新开始

不可以查询user_users表。

3、open阶段

从①shutdown状态到达④open状态使用startup open,这个阶段打开数据文件和联机重做日志文件

可以查询user_users表。

 

二、关闭数据库实例

数据库实例关闭顺序是closed->dismounted->shut down

数据库关闭方式有四种①abort;②immediate;③transaction;④normal

abort模拟突然断电,内存被清空,没有检查点,没有写入数据文件(第四个NO);事务被中断(第三个NO),没有提交也没有回滚;会话被中断(第二个NO),当前会话界面关闭;不允许连接(第一个NO)。

immediate强制中断正在运行的事务,有检查点,写入数据文件(第四个YES);事务被中断(第三个NO),回滚;会话被中断(第二个NO),当前会话界面关闭;不允许连接(第一个NO)。

transactional等待正在运行的事务,有检查点,写入数据文件(第四个YES);等待事务结束(第三个YES),一直等到提交和回滚;等事务主动结束后,强行中断结束当前会话结束(第二个NO);不允许连接(第一个NO)。

normal等事务主动提交或回滚,等用户主动断开连接,有检查点,写入数据文件(第四个YES);等待事务结束(第三个YES);等用户主动断开连接结束当前会话(第二个YES);不允许连接(第一个NO)。

startup force=shutdown abort+startup;

 

三、设置数据库服务的开机自启

1、配置/etc/oratab文件,将后面的N改成Y,这里只设置chenmu开机重启,orclcdb和MDM19c没有设置开机重启。实例名和数据库名不一定要一样,实例名和存储结构、后台进程相关,实例名区分大小写;数据库名和物理文件存储路径相关。

2、修改$ORACLE_HOME/bin/dbstart,将ORACLE_HOME_LISTNER=$1改为ORACLE_HOME_LISTNER=$ORACLE_HOME

3、配置/etc/rc.d/rc.local文件,将监听和数据库启动设置成开机启动,以root用户身份修改

-lc是切换用户时也切换目录,c表示执行指令后恢复原来的身份

#####oracle auto start##########
su - oracle -lc "/u01/app/oracle/product/19.0.0/dbhome_1/bin/lsnrctl start"
su - oracle -lc "/u01/app/oracle/product/19.0.0/dbhome_1/bin/dbstart"

4、测试。将数据库关闭后重启服务器

shutdown immediate;  //关闭chenmu、orclcdb、mdm19c三个实例
reboot;  //重启服务器,要到root用户下才能重启

 

posted @ 2022-09-06 11:12  微风徐徐$  阅读(1972)  评论(0编辑  收藏  举报