看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强制启动数据库,等于强制停止数据库再启动数据库。

转载于:https://blog.51cto.com/huangmangguo/1117576

oracle startup mount nomount 区别相关推荐

  1. 数据库——startup,startup mount,startup nomount有什么区别

    在oracle中,你会遇到startup,startup mount,startup nomount这三个不同的命令,startup,startup mount,startup nomount有什么区 ...

  2. startup,startup mount,startup nomount之间的区别

    startup nomount选项:(读初始化参数文件,启动实例) startup nomount选项启动实例,但不安装数据库.当数据库以这个模式启动时,参数文件被读取:后台进程和内存结构被启动:但它 ...

  3. ORACLE启动到NOMOUNT状态

    在Windows上要把oracle启动到nomount状态,于是在没用启动oracle服务的情况之下,输入下述命令: C:\>sqlplus /nolog SQL*Plus: Release 1 ...

  4. Oracle RESETLOGS 和 NORESETLOGS 区别说明

    Oracle RESETLOGS 和 NORESETLOGS 区别说明 一.创建控制文件时:Resetlogs和Noresetlogs > > & >             ...

  5. Oracle与mongodb的区别

    oracle与mongodb的区别 1. 从概念上 Oracle中的许多概念与MongoDB中的类似.下表概述了Oracle和MongoDB中的常见概念. Oracle mongodb ACID Tr ...

  6. Oracle primary,unique,foreign 区别,Hibernate 关联映射

    Oracle primary,unique,foreign 区别 转:http://www.cnblogs.com/henw/archive/2012/08/15/2639510.html NOT N ...

  7. ORACLE与PostgreSql的区别

    http://blog.itpub.net/post/2316/10994 ORACLE与PostgreSql的区别 本文档主要从数据库开发角度来对比二者的区别,有一些二者相同之处,这里不再专门提出. ...

  8. Oracle 与 MySQL 的区别

    为什么80%的码农都做不了架构师?>>>    Oracle 与 MySQL 的区别 1.在 ORACLE中用select * from all_users显示所有的用户,而在MYS ...

  9. oracle语法和sql的区别吗,ORACLE和SQL语法区别归纳

    ORACLE和SQL语法区别归纳 数据类型比较 类型名称 Oracle SQLServer 比较 字符数据类型 CHAR CHAR 都是固定长度字符资料但oracle里面最大度为2kb,SQLServ ...

最新文章

  1. 2022-2028年中国内衣行业研究及前瞻分析报告
  2. linux windows 编译安装,Windows下编译安装OpenEXR(x86版本)
  3. 你竟然还不懂变分自编码机?这个16岁的OpenAI天才实习生讲得可透彻了
  4. python3.5.3下载安装教程_在Python3.5下安装和测试
  5. 倪光南:中国网络安全为何要强调“自主可控”?
  6. python做自动化测试的优点_乐搏讲自动化测试-python语言特点及优缺点(5)
  7. 第九十三节,html5+css3移动手机端流体布局,基础CSS,头部设计,轮播设计,底部设计...
  8. python天天向上每十天休息一天_Python基础第十天
  9. CodeForces 1110H. Modest Substrings
  10. java 的23种设计模式 之单身狗和隔壁老王的故事
  11. 使用gensim训练word2vec模型
  12. java用gui如何写退格_emWin(ucGui)的Edit控件退格处理方法 worldsing
  13. php无线级输出数据,thinkphp5.0无限极分类及格式化输出
  14. GNN | 最新2022综述
  15. mysql gtid 错误_MySQL 5.6 GTID常见错误解决一例
  16. 《K-means聚类算法研究综述》笔记
  17. 公众号H5运营如何激发用户的打开H5商城欲望?
  18. CSS半透明磨砂效果实现
  19. Google翻译插件不能用解决方案
  20. Excel求和怎么操作?如何运用sum函数进行求和

热门文章

  1. 干货|浅谈强化学习的方法及学习路线
  2. id: cannot find name for user ID xxx处理办法
  3. Swift反射API及其用法
  4. 程序、进程、线程的关系
  5. cdoj 题目简单分类
  6. Linux vsftp服务
  7. 随笔——js中的this指向,apply()与 call()
  8. crossdomain.xml配置错误导致登录不了
  9. Linux集群部署和ipvsadm命令的使用
  10. 一些我们码代码过程中有用的小技巧