oracle数据库的启动与关闭简述

2012-10-17来源 : 互联网

一个刚开始学习oracle数据库的朋友写的一篇教程,简单介绍了oracle数据库的启动与关闭。  *先谈谈数据库实例和数据库的区别。根据我的初步了解,数据库实例是指的进程和内存(SGA)的统称,没有持久的数据文件;数据库则是静态存在的,实际上磁盘上存储的物理文件。

接着简单的说一下数据库关闭的四种方式,** shutdown(正常关闭方式),这是*安全的关闭方式,他一直等待到*后一个用户自己断开与数据库的连接,但是这种方式存在一个弊病,如果一个用户一直连接在那里,却又没做什么操作,那么数据库将一直处于不能被关闭的状态。第二种 shutdown immediate方式,这种一直等待到当前的SQL语句执行完以后就关闭,即使用户没有断开与数据库的连接。第三种 shutdown transaction ,这种一直等待到当前事务处理完后关闭。第四种 shutdown abort ,这是***的一种关闭方式,直接强制关闭,可能会造成数据的丢失,但是当再次启动还是会从分析日志文件进行回滚或是重做。*后这四种方式执行过程中,都不允许用户增加新的连接。

 接着就是真正说到数据库实例数据库的启动和关闭了。*先是启动,一般步骤是   1.启动实例,2加载数据库,3打开数据库。

SQL>startup mount

 这里貌似还要设置什么日志归档模式,还不熟悉。

SQL>alter database open;

 然后是关闭数据库 就是刚才说的那四种方式

我这里用 shutdown immediate

 但是我在实践的时候直接用sys身份去执行shutdown正常关闭时,貌似就一直卡在那里了,我猜想是由于我这个sys用户没有与数据库断开而导致关闭命令一直在等待的原因。但我们又要需要一个用户去执行这个关闭命令,这时该怎么办呢?我想可能是用触发器吧(欢迎读者给我答案)

我们现在打开数据库和关闭数据库的*基本的完成了,然后我谈谈对打开数据库为什么是那三个步骤的理解:因为我们的数据库文件是存在磁盘上的,我们要操作肯定是要先load到内存,所以我们就先启动一个实例,实际上就是进程+内存区域,然后我们将数据库mount到实例里面(注意这里不能用startup nomount),为了接下来使用数据库里面的文件,于是就打开数据库 alter database open。

*后谈谈自己中间遇到的几个问题

1>当我们没有启动实例,或是关闭了实例,用户连接的时候就是提示connected to an idle instance(连接到一个空例程,感觉这翻译不好)。

2>ORA-01507:如果我们没有加载数据库就alter database open

3>ORA-01031:  insufficient privlieges 翻译过来就是权限不足

还有一些其他的常见错误,但那几个感觉都听容易解决的。在此就不罗列了

总结:oracle很复杂,自己现在还是了解皮毛,要克制浮躁,沉下心来学习!

 

渝ICP备2024022750号-1

Copyright©2004-2024 3158.CN. All Rights Reserved 重庆市上台九悟酒销售有限公司 版权所有

3158招商加盟网友情提示:投资有风险,选择需谨慎