oracle startup mount nomount 区别
看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强制启动数据库,等于强制停止数据库再启动数据库。
相关文章
- 【RAC】Oracle RAC环境的日志体系
- 《oracle每日一练》免安装Oracle客户端使用PL/SQL
- oracle: 分割字符串,或者查找字段里面的关键字(关键字1,关键字2,关键字3)
- Cannot create an instance of OLE DB provider "OraOLEDB.Oracle" for linked server "xxxxxxx".
- Windows Server 2008 下ASP程序连接ORACLE数据库驱动错误
- ORACLE动态采样分析
- ORACLE关于锁表查询的部分SQL
- Oracle中Instr用法
- PostgreSQL Oracle 兼容性之 - 字符编码转换 CONVERT
- cx_Oracle连接oracle数据库
- Oracle v$sql,v$sqlarea,v$sqltext区别
- 如何利用JDBC启动Oracle 自动追踪(auto trace)
- Oracle中会话与事务有什么区别?
- EnterpriseDB (PPAS) Oracle兼容性Virtual Private Database(VPD) 数据隔离以及当前缺陷
- Atitit oracle新特性5 6 7 8 9 10 11 12 18 19 20 attilax总结 目录 1.1. :ora 20c1 1.2. Oracle Database 19c 的
- Oracle中添加虚拟列(emp是oracle自带表)
- 从DML角度看ADS和ORACLE的区别
- Install Oracle 10g on Red Hat Linux 5.3 Step by Step
- oracle 表连接 - hash join 哈希连接
- PostgreSQL的学习心得和知识总结(八十三)|词法级自上而下完美实现Oracle数据库的 q转义 的实现方案
- Oracle 数据库 JOB 失败后解密法重试
- Mysql和Oracle的区别
- Oracle数据库表空间与用户的关系是 ( )
- Mysql与Oracle八大区别
- 解密 Oracle 数据库 SQL 执行历史:掌握多种实现方式,轻松实现 SQL 监控与性能优化
- 【Mysql异构实时同步Oracle】OGG12异构同步mysql到oracle(windows mysql实时同步数据到linux oracle)详细文档