oracle数据库的启动与关闭简述
时间:2011-04-19 17:20来源: 作者: 点击:
次
一个刚开始学习oracle数据库的朋友写的一篇教程,简单介绍了oracle数据库的启动与关闭。 首先谈谈数据库实例和数据库的区别。根据我的初步了解,数据库实例是指的进程和内存(SGA)的统称,没有持久的数据文件;数据库则是静态存在的,实际上磁盘上存储的物理文件。
&nbs
一个刚开始学习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很复杂,自己现在还是了解皮毛,要克制浮躁,沉下心来学习!
(责任编辑:admin) |
织梦二维码生成器
------分隔线----------------------------