exclusive、startup nomount和mountopen的区别是什么

79次阅读
没有评论

共计 2249 个字符,预计需要花费 6 分钟才能阅读完成。

行业资讯    
数据库    
exclusive、startup nomount 和 mountopen 的区别是什么

今天就跟大家聊聊有关 exclusive、startup nomount 和 mountopen 的区别是什么,可能很多人都不太了解,为了让大家更加了解,丸趣 TV 小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

看 oracle 入门书,其中一句话说,使用 startup nomount  命令启动例程,不可以和 mount open  和 exclusive 一起使用,这个命令适用于建立数据库或是维护数据库时使用。

于是查了一下,为什么不能同时使用,以及他们之间的区别。

以下为转载:

nomount:读初始化参数文件,启动实例。
mount: 打开控制文件
open:  打开数据文件,日志文件

简单来说,nomount 是用来创建数据库的状态,在此情况下可以执行 create database…. 
 mount 是用来维护数据库的,比如数据库出现了问题,数据文件被误删除,就无法 open,这时可在 mount 状态下将数据文件从数据库中去除。 
 open 是数据库可以对全体用户提供服务了。

详细介绍:

 1、startup nomount

非安装启动,这种方式启动下可执行: 重建控制文件、重建数据库

读取 init.ora 文件,启动 instance,即启动 SGA 和后台进程,这种启动只需要 init.ora 文件。

2、startup mount dbname

安装启动,这种方式启动下可执行:

数据库日志归档、

数据库介质恢复、

使数据文件联机或脱机,

重新定位数据文件、重做日志文件。

执行“nomount”,然后打开控制文件,确认数据文件和联机日志文件的位置,

但此时不对数据文件和日志文件进行校验检查。

3、startup open dbname

先执行“nomount”,然后执行“mount”,再打开包括 Redo log 文件在内的所有数据库文件,

这种方式下可访问数据库中的数据。

4、startup,等于以下三个命令

startup nomount

alter database mount

alter database open

数据库启动的三个台阶 nomount,mount,open  目的是明白细化启动数据库的三个步骤
  启动数据库到 nomount 状态的条件如下。如果你是非 windows OS 就没有注册表,而有环境变量服务中的 OracleService 必须启动
服务的名称和注册表中的 oracle_sid 相匹配
存在正确的密码文件和参数文件
有足够的内存
参数文件中描述的路径必须存在
数据库产品安装正确

conn sys/oracle as sysdba
shtudown abort;
startup nomount;
select instance_name,status from v$instance;
启动数据库到第一个台阶 nomount 状态做了如下的工作
1. 读参数文件
2. 分配内存
3. 启动后台进程
4. 初始化部分 v$ 视图

将数据库带到 mount 状态
select value from v$spparameter where name= control_files
alter database mount;
mount 数据库的过程是读参数文件中描述的控制文件,校验控制文件的正确性,将控制文件的内容读入到内存中,mounu 是挂接的意思,是操作系统中的概念。一旦 mount 之后,就是将一个没有意义的实例和一个数据库发生了联系。因为实例是空壳。没有任何数据库和该实例发生关系,我们可以理解为实例是水泵,放到哪个水塘里就会抽取哪里的数据,实例是通用的。mount 的意思是将一个通用的水泵放入到一个指定的水塘。mount 是读控制文件,控制文件中有数据文件和日志文件的信息。
select instance_name,status from v$instance;

打开数据库
alter database open;
读控制文件中描述的数据文件
验证文件的一致性,如果不一致,使用日志文件将数据库文件恢复到一致的状态。
数据库 open 后,普通用户才可以访问数据库
用户的表才为可见

只读方式 open 数据库
startup mount;
alter database open read only;
select open_mode from v$database;
默认的 open 方式为 read write
想改 read only 为 read write 必须重新启动数据库
我们现在回想一下数据库启动的三个台阶,我们先读的是参数文件,参数文件可以由我们来编写。读完参数文件后又读了控制文件,控制文件中描述了数据文件和日志文件的信息,如果控制文件丢失了我们可以重新建立,最后是读数据文件。数据文件里才存放了我们的数据。数据库将启动分为三个台阶,目的是我们可以准确的知道哪里有问题,迅速排除。有点象老拖木钎,大头的在后面。由最开始的一个 1K 的参数文件,最后到几个  T 的大型数据库。当我们只打 startup 而不加任何参数的时候,默认是到 open,等于 startup open;

我们从屏幕显示的结果可以清楚的看出,有三个台阶。
还有一个命令是 startup force 强制启动数据库,等于强制停止数据库再启动数据库。

看完上述内容,你们对 exclusive、startup nomount 和 mountopen 的区别是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注丸趣 TV 行业资讯频道,感谢大家的支持。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-15发表,共计2249字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)