oracle startup mount nomount 区别

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

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

以下为转载:

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

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

详细介绍:

1、startupnomount

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

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

  2、startupmountdbname

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

  数据库日志归档、

  数据库介质恢复、

  使数据文件联机或脱机,

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

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

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

  3、startupopendbname

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

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

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

  startupnomount

  alterdatabasemount

  alterdatabaseopen

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

connsys/oracleassysdba
shtudownabort;
startupnomount;
selectinstance_name,statusfromv$instance;
启动数据库到第一个台阶nomount状态做了如下的工作
1.读参数文件
2.分配内存
3.启动后台进程
4.初始化部分v$视图

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

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

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

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


转自:http://hi.baidu.com/mecss/item/1fb3c949299a7392823ae125

mount区别是什么? 回答: startup nomount选项启动实例,但不安装数据库。当数据库以这个模式启动时,参数文件被读取;后台进程和内存结构被启动;但它们不被附加或数据库的磁盘结构进行通信。当实例处于这个状态时,数据库是不可使用的。\[2\]而startup mount选项启动实例,并加载了数据库,但是数据库没有打开。这意味着数据库的文件已经被读取并加载到内存中,但数据库的数据文件还没有被打开,因此数据库是不可用的。\[1\]所以,startup nomount只是启动了实例而没有启动数据库startup mount启动了实例,并加载了数据库,但是数据库没有打开。而startup则是最全的,实例、数据库加载和数据库打开都完成。 #### 引用[.reference_title] - *1* *3* [startup,startup mount,startup nomount之间的区别](https://blog.youkuaiyun.com/weixin_30444191/article/details/115781322)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [startup,startup mount,startup nomount之间的区别-Oracle](https://blog.youkuaiyun.com/weixin_42336364/article/details/116528920)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值