作者:枫涵笑 | 来源:互联网 | 2014-07-13 17:52
Oracle启动数据库的三个台阶nomount,mount,open简析connsys/sysassysdbaShutdownabort;Startupnomount;selectinstance_name,statusfromv$instance;www.2cto.com将数据库带到mount状态select...
Oracle启动
数据库的三个台阶nomount,mount,open简析
conn sys/sys as sysdba
Shutdown abort;
Startup nomount;
select instance_name,status from v$instance;
www.2cto.com
将数据库带到mount状态
select value from v$spparameter where name='control_files';
Alter database mount;
Mount数据库的过程是读参数文件中描述的控制文件,校验控制文件的正确性,将控制文件的内容读入到
内存,mount是挂接的意思,是操作
系统中的概念.一旦mount之后,就是将一个没有意义的实例和一个
数据库发生了联系.因为实例是空壳.没有任何数据库和该实例发生关系,我们可以理解为实例是水泵,放
到哪个水塘里就会抽取哪里的数据,实例是通用的.mount的意思是将一个通用的水泵放入到指定的水塘.
mount是读控制文件,控制文件中有数据文件和日志文件的信息.
select instance_name,status from v$instance;
打开数据库
Alter database open;
读控制文件中描述的数据文件
验证数据文件的一致性,如果不一致,使用日志文件将数据库文件恢复到一致的状态.
数据库open后,普通用户才可以访问数据库
用户的表才为可见 www.2cto.com
只读方式open数据库
Alter database open read only;
select OPEN_MODE from v$database;
默认的open方式为read write
想改read only为read write 必须重新启动数据库
我们现在回想一下数据库启动的三个台阶,我们先读的是参数文件,参数文件可以有我们来编写.读完参数
文件后又读了控制文件,控制文件描述了数据文件和日志文件的信息,如果控制文件丢失可以重新建立,最
后是读数据文件.数据文件里才存放了我们的数据.数据库将启动分为三个台阶,目的是我们可以准确的知
道哪里有问题,迅速的排除.有点象老鼠拖木钎,大头在后面.由最开始的一个1k的参数文件,最后到几个t
的大型数据库.当我们只打startup而不加任何参数的时候.默认是到open,等于startup open;
SQL> startup
ORACLE instance started.
摘自 tanzugan的专栏