建站学 - 轻松建站从此开始!

建站学-个人建站指南,网页制作,网站设计,网站制作教程

当前位置: 建站学 > 数据库 > Oracle教程 >

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)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片