My FAQ,最新最全的IT技术FAQ
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 未整理篇 | 技术讨论
  当前位置: > 程序开发 > 数据库开发 > Oracle
关于Oracle数据库的启动和停止
作者:未知 时间:2005-09-13 19:02 出处:ChinaUnix.net 责编:My FAQ
              摘要:关于Oracle数据库的启动和停止

Oracle9I开始,取消了服务器管理器(svrmgl)和internal用户,数据库的启动和停止都是通过sql*plus来完成!Oracle10g可以通过浏览器来启动和停止数据库服务!这里主要说说9I下的启动和停止服务,下面的命令在8i下也可以使用
要启动或者停止服务,必须拥有sysdba的权限。可以使用两中方式连接
第一种,以sys用户连接
c:\>sqlplus sys/change_on_install as sysdba;
进入sql*plus环境;(注意,ORACLE9I在安装的时候需要你自己设定sys和system的口令,并且不能才用ORACLE9I以前这两个用户的默认口令,这主要是为了保证数据库系统的安全,我为了好记忆,在安装完成后立刻恢复了默认的口令)
第二种:
C:\>sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on 星期一 4月 26 09:42:00 2004

Copyright (c) 1982, 2002[/img][/img], Oracle Corporation.  All rights reserved.

SQL> connect /as sysdba
已连接。
SQL>
在进入后就可以进行下面的操作了!
[b:6084efcb65]先说关闭数据库[/b:6084efcb65]
shutdown有四个参数,四个参数的含义如下:
Normal 需要等待所有的用户断开连接
Immediate 等待用户完成当前的语句
Transactional 等待用户完成当前的事务
Abort 不做任何等待,直接关闭数据库
normal需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接
immediate在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。
transactional 在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。
abort 执行强行断开连接并直接关闭数据库。
前三种方式不回丢失用户数据。第四种在不的已的情况下,不建议采用!
[b:6084efcb65]数据库的启动[/b:6084efcb65]
数据库启动使用startup命令,它有三种情况
第一种:不带参数,启动数据库实例并打开数据库,以便用户使用数据库,在多数情况下,使用这种方式!
第二种:带nomount参数,只启动数据库实例,但不打开数据库,在你希望创建一个新的数据库时使用,或者在你需要这样的时候使用!
第三种:带mount参数,在进行数据库更名的时候采用。这个时候数据库就打开并可以使用了!
谢谢!不准确的地方请指教!

 txfy 回复于:2004-04-26 12:12:26
鼓励原创,其中startup的3种模式startup nomount,mount,open详细写一下每步都做了什么更好些!

 liugr3988 回复于:2004-04-26 13:25:07


 新手上路samson 回复于:2004-04-26 19:32:54
好贴,我觉得已经很详细了, txfy 老大我给你提点意见别不嗳听, 我觉得有点鸡蛋里挑骨头了,呵呵

 dudo 回复于:2004-04-26 23:14:29
8错8错!!

 ruknow 回复于:2004-04-27 11:30:30
startup foece : 强制启动实例并打开数据库
startup recover : 数据库恢复
startup restrict : 阻止除DBA以外的用户连接

 giant 回复于:2004-04-27 11:34:43
不错,这些基本而有经典的问题,应当支持发扬,向楼主学习

 txfy 回复于:2004-04-27 11:43:07
[quote:38e8109af7="新手上路samson"]好贴,我觉得已经很详细了, txfy 老大我给你提点意见别不嗳听, 我觉得有点鸡蛋里挑骨头了,呵呵[/quote:38e8109af7]
也许吧,我只是觉得很多人都分不清这三步都做什么了,所以分不清恢复或者创控制文件等应该在哪一种状态做,这些都是比较关键的,作为原创,当然不能是太简单的阐述一点东西,我想我也是为了楼主好,多学习,多研究把这个搞得更清楚没什么坏处,很多时候研究的方向也是门学问,至于是否鸡蛋里挑骨头了,就不是我所关心的!无所谓的!

 renxiao2003 回复于:2004-04-27 13:36:14
坛主txfy说得对,做技术就是要在鸡蛋里挑骨头,我没有什么意见!谢谢坛主给予我这篇文章“原创”的荣誉,我还要学习;可能是因为我的技术确实还不到家,所以某些没有讲清楚的地方还请大家指正!

 txfy 回复于:2004-04-27 14:46:43
我的一点看法,不正确请指正:
Shutdown
normal:等待所有用户断开连接时,关闭数据库、卸载数据库和关闭实例。
immediate:回滚所有用户事务,关闭数据库、卸载数据库和关闭实例.
                (注意是回滚)。
transactional:当所有用户事务结束时,关闭数据库、卸载数据库和关闭实例
abort:立即终止实例。对用户末交事务,下次启动数据时恢复。

实际上我不是说楼主写得有问题或者错误,而是觉得更详细,对大家帮助更大些。
----------------------------------------------------------------------------
statup
startup nomount 启动实例,如果在此状态下打开数据库需要的操作:
Alter database mount
Alter database open
nomount是非安装启动,做的操作主要是读取init.ora文件,启动instance,即启动SGA和后台进程,划分内存,进程。这种启动只需要读init.ora文件。这种启动方式下可执行:重建控制文件、重建数据库,因为还没有读控制文件。 
-------------------------------------------------------
startup mount  启动实例>装载数据库,如果在此状态下打开数据库需要的操作:
Alter database open
mount是安装启动,做的操作主要是:打开控制文件,确认数据文件和联机日志文件的位置,但此时不对数据文件和日志文件进行一致性,正确性等校验检查。这种启动下可执行: 
   数据库日志归档、 
   数据库介质恢复、 
   使数据文件联机或脱机, 
   重新定位数据文件、重做日志文件。 
------------------------------------------------------
statup open/startup启动实例>装载数据库>打开数据库
这种方式又执行了打开包括Redo log文件在内的所有数据库文件,并检查一致性等,进行crash恢复,这种方式下可访问数据库中的数据。
-----------------------------------------------------
statup force 强制重启数据库
------------------------------------------------------------------------------
使用非缺省参数文件起动
STARTUP PFILE=参数文件
注:远程启动数据时,系统寻找本地计算机的参数文件。
----------------------------------------------------
以限制方式打开数据
STARTUP RESTRICT
ALTER SYSTEM [ENABLE|DISABLE] RESTRICTED SESSION
只有RESTRICTED SESSION权限的用户才能登录。
-----------------------------------------------------
只读方式打开数据
ALTER DATABASE OPEN READ ONLY

 liangxinf 回复于:2004-04-27 17:25:16
好贴。

 jackylau 回复于:2004-04-28 08:52:24
估计是我们初学oracle的经典了。楼主和斑竹辛苦了!致敬!!!!!

 lhftonny 回复于:2004-04-28 14:24:25
对,我一般用的是第一种方法,有点老哦,不过还是顶一下

 yuanfly 回复于:2004-04-29 19:12:02
启动的几个选项9i和8i好像没有什么区别吧!?

 congrd 回复于:2004-05-01 12:50:20
一直用shutdown abort,用了这么久也没见出过什么问题

 doni 回复于:2004-05-01 21:12:30
[quote:138299b99b="congrd"]一直用shutdown abort,用了这么久也没见出过什么问题[/quote:138299b99b]
不是好习惯。Oracle给出不同的shutdown方式,当然各有用途,如果都用shutdown abort,还要其它的作什么。

 yuanfly 回复于:2004-05-03 09:58:34
就相当于PC直接关机,没有按照步骤来,但是下次也能用阿:)

 shishy 回复于:2004-05-04 09:30:40
shutdown abort很危险

 jassika 回复于:2004-05-06 23:24:56
一次数据库出现问题了,很心急
shutdown abort 
结果再也起不来了,
shutdown abort 关闭数据库,需要在startup时做数据回滚,
当时就好像是redo.log出现了问题,
是这样的吗?
请问遇到这种情况该怎么处理了?

 ohwww 回复于:2004-05-07 21:48:10
请问一下,我的数据库是8i的,关闭数据库的时候需要先su - root 下(是以令一个用户名登陆的,不过也是有操作系统的管理员权限的),再su - oracle,然后通过服务器管理器(svrmgl)关闭。可是启动的时候怎么就不需要先su - root呢??情大家指教,我不太懂。

 wuleeford 回复于:2004-05-14 14:59:32
:shock:  顶!

 Jerrybuct 回复于:2004-05-14 16:20:35
Saloris里操作oracle的命令大全谁有?
包括界面操作的启动命令,比如:oemapp之类的。

 可怜的小妹 回复于:2004-05-14 16:30:40
钦佩斑竹!道声辛苦了

 text2002 回复于:2004-05-14 20:08:33
[quote:65daa3000b="congrd"]一直用shutdown abort,用了这么久也没见出过什么问题[/quote:65daa3000b]

因为重做日志缓冲区很小啊。oracle提供很健全的数据保护机制,允许你犯错误:)
不过shutdown abort还是有可能数据丢失的。

 zhp111992 回复于:2004-05-14 21:55:48
sysdba 是sys默认带有的权限吗?

 zcjzcx 回复于:2004-05-19 23:03:05
那位高手能指教一下
如何在系统启动时启动数据库实例,并启动监听。
我按ORACLE的文档能启动数据库但不能启动监听,
还望那位有高手指点一下

 ririyi 回复于:2004-05-28 22:03:15
看了就要顶

 renxiao2003 回复于:2004-05-28 22:22:58
[quote:74785422f5="zcjzcx"]那位高手能指教一下
如何在系统启动时启动数据库实例,并启动监听。
我按ORACLE的文档能启动数据库但不能启动监听,
还望那位有高手指点一下[/quote:74785422f5]

是在Linux下吧,那样你要修改/etc/rc.d/rc.local文件!如果是其它系统,如Sun Solaris我就不是很明白了啊!

 hepeng 回复于:2004-05-29 10:06:15
首先我们的搞清楚, 是os认证还是oracle认证,这一点的搞清楚的啊。

 deche-stone 回复于:2004-06-01 10:53:50
up

 renxiao2003 回复于:2004-07-17 22:47:24
建议大家看看使用OEM来管理和使用数据库啊。

 ohwww 回复于:2004-07-19 10:08:18
oem是什么东西呢?不要笑

 natalie_ho 回复于:2004-07-19 11:40:19
[quote:40994eb225="ohwww"]oem是什么东西呢?不要笑[/quote:40994eb225]
oracle enterprise manager

 hixi 回复于:2004-07-19 14:49:55
顺便说多一个 OMS  Oracle Managment Server !
小朋友,好好学习,天天向上。
(坚持天天学习某种知识,就是你对这种知识的胜利!)

 wclbjh 回复于:2004-07-21 10:07:08
我是第一次在linux下装oracle9(linux7.3 oracle 9)装上后,不会启动oracle 
请哪位帮帮忙,我具体说明一下: 当我装上后重新启动机器,我在 oracle用户下输入sqlplus显示 输入用户名,我输入system再输入密码后,出现如下的错误: 

这是第一个错误: 
ORA-01034 ORACLE not available 


这是第二个错误: 

ORA-27101 shared memory realm does not exist 

请问,这样的问题该怎么解决啊!!请各位高手给小弟点指点, 
我的QQ号是:44934668 多谢!!!

 renxiao2003 回复于:2004-07-21 12:17:48
这是因为你的ORACLE还没有启动,运行下面的步骤:
sqlplus /nolog
connect /as sysdba
shutdown abort
startup

 wind315 回复于:2004-07-21 17:08:59
怎么我的问题就没人能答??
[url]http://bbs.chinaunix.net/forum/19/20040109/240607.html[/url]

 renxiao2003 回复于:2004-07-23 21:35:52
大家说说用shutdown abort停止数据库的后果?

 西藏喇嘛 回复于:2004-07-23 22:06:46
txfy斑竹说得对!
其实知道startup的几种模式是很有帮助的,他可以帮助你知道在数据库出现问题时,什么样的状态下可以做什么样文件的恢复!
另外,如果不是万不得已,千万不要做shutdown abort操作,平时可能不觉得,好像没什么影响,但是一旦出现问题时,就会知道abort得不安全性了!
一般用shutdown 
如果想快点,用shutdown immediate

 silverwang 回复于:2004-07-24 01:31:23
[quote="renxiao2003"]菘馄舳褂胹tartup命令,它有三种情况
第一种:不带参数,启动数据库实例并打开数据库,以便用户使用数据库,在多数情况下,使用这种方式!
第二种:带nomount参数,只启动数据库实例,但不打开数据库,在你希望?.........[/quote]

找oracle的<<concept>>和<<sql reference>>仔细看一下就行了!

 xiaofei8127 回复于:2004-07-24 15:48:43
真棒,以前我也分不清楚呢

 renxiao2003 回复于:2004-07-25 21:27:41
UP

 renxiao2003 回复于:2004-07-25 21:30:22
置顶啊。

 renxiao2003 回复于:2004-07-28 12:49:52
是啊。用shutdown abort,立马就能看到效果,而用其它选项,好像没有效果啊!

 renxiao2003 回复于:2004-07-28 13:03:20
test一下啊.

 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 myfaq.com.cn All rights reserved. www.myfaq.com.cn 版权所有