您的位置:首页 > 数据库

数据库启动的三个台阶nomount,mount,open

2016-03-11 23:09 274 查看
        目的是明白细化启动数据库的三个步骤

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

force mount就等于是强制关闭数据库,然后将数据库启动到mount状态。

还有一个命令restricted为受限模式,当startup restricted以受限模式打开数据库后,只有具有restricted session 权限或DBA角色的用户可以访问数据库,当执行数据库结构维护或导出导入数据时为了禁止普通用户访问数据库可以使用受限模式启动数据库。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: