数据库的关闭与启动

  • 格式:pdf
  • 大小:288.31 KB
  • 文档页数:13

数据库的关闭与启动

三、启动\关闭数据库启动和关闭oracle有很多种⽅法。这⾥只给出3种⽅法:l Sql*plus

l OEM控制台

l Windows 控制台

1.以sql*plus为例:

a.准备

⾸先我们⽤sql*plus来连接到Oracle

Sqlplus /nolog 是以不连接数据库的⽅式启动sql*plus Connect /as sysdba 是以DBA⾝份连接到oracle

b.启动启动还是⽐较简单的Startup就OK了。

不过oracle启动模式有3种:l Startup nomount (nomount模式)启动实例不加载数据库。

l Startup mount (mount模式)启动实例加载数据库但不打开数据库

l Startup (open 模式)启动实例加载并打开数据库,就是我们上⾯所⽤的命令Nomount模式中oracle仅为实例创建各种内存结构和服务进程,不会打开任何数据库⽂件,所以说:1)创建新数据库2)重建控制⽂件

这2种操作都必须在这个模式下进⾏。Mount模式中oracle只装载数据库但不打开数据库,所以说:

1)重命名数据⽂件

2)添加、删除和重命名重做⽇⼦⽂件

3)执⾏数据库完全恢复操作

4)改变数据库的归档模式

这4种操作都必须在这个模式下进⾏Open模式(就是我们上⾯的startup不带任何参数的)呵呵就不多说了,正常启动。

当然这3种模式之间可以转换:Alter database mount(nomount模式)—〉alter database open(mount 模式)—〉(open模式)

当然还有其它⼀些情况,在我们open模式下可以将数据库设置为⾮受限状态和受限状态

在受限状态下,只有DBA才能访问数据库,所以说:1)执⾏数据导⼊导出2)使⽤sql*loader提取外部数据

3)需要暂时拒绝普通⽤户访问数据库

4)进⾏数据库移植或者升级操作

这4种操作都必须在这个状态下进⾏在打开数据库时使⽤startup restrict命令即进⼊受限状态。

使⽤alter system disable restricted session命令即可以将受限状态改变为⾮受限状态。

使⽤alter system enable restricted session命令可以将⾮受限状态变为受限状态

使⽤alter database open read only可以使数据库进⼊只读状态。

使⽤alter database open read write 可以使数据库进⼊读写状态。

当然在某些情况下可能是⽤上述各种启动⽅式都⽆法成功启动数据库,这个时候就要使⽤startup force命令来强⾏启动数据库。当然谁都不想碰到这种情况:)c.关闭数据库

1)正常关闭shutdown

2) ⽴即关闭shutdown immediate

3) 关闭事务shutdown transactional

4) 强⾏关闭shutdown abort,当然谁都不想碰到这种情况。

“主机⾝份认证”处,填的是你的>计算机

或者是你服务启动状态不正确。参见3、4:

启动和关闭数据库所使⽤的服务有:OracleTNSListener 对应于数据库监听程序

OracleService 对应于数据库例程

OracleDBConsole 对应于OracleEnterpriseManagement或OEM

尽管3个服务都可以单独地启动和关闭,但它们之间的关系是:1·为了实现例程想监听程序的动态注册服务(⼀边⽀持其他监听端⼝,尤其是⽀持费默认监听程序),应该⾸先启动OracleTNSListener服务,然后再启动其他服务。否则,如果先启动例程再启动监听程序,动态注册服务就会有时间延时。2·⽐较传统的、好的启动次序是:OracleTNSListener -> OracleService -> OracleDBConsole。关闭次序反之。

3·如果不启动OracleTNSListener,但启动了OracleService,则可以在服务器中(但不能在客户机中)使⽤SQL*PLUs,即便此时已经启动了OracleDBConsle,在服务器中(在客户机中更是如此)不能使⽤OEM,负责会出现“登录操作失败”的错误提⽰信息。4·关闭并重新启动OracleTNSListener后最好关闭并重新启动OracleDBConsle,否则可能不能使⽤OEM,出现“登陆操作失败”的错误提⽰信息。==========================================关闭数据库=========================

1·通过关闭系统服务:上⾯已经说过。

2·在SQL*Plus中关闭数据库(命令⾏⽅式)

//前提:1.Windows服务中启动了OracleService服务。

//2.以具有SYSDBA或SYSOPER权限的数据库⽤户账户(如SYS或SYSTEM)⽤SYSDBA 的连接⾝份,启动SQL*Plus并同时登陆、连接到数据库。

关闭数据库:SHUTDOWN [ NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT ];

3·在OEM中启动和关闭数据库

step1:以SYS⽤户、SYSDBA连接⾝份登陆OEM;

step2:“主⽬录”->“⼀般信息”下,点击“关闭”,出现“启动/关闭:请指定主机和⽬标数据库⾝份证明”页;

step3:在“主机⾝份证明”标题下输⼊具有管理员权限的操作系统⽤户的⽤户名和⼝令,在“数据库⾝份证明”标题下输⼊具有SYSDBA权限的数据库⽤户的⽤户名和⼝令,选中“另存为⾸选⾝份证明”;

step4:“确定”,出现“启动/关闭:确认”页。在“⾼级选项”中选择指定关闭选项,“确定”,返回“启动/关闭:确认”页。单击“是”,出现“启动/关闭:活动信息”页。⼀段时间后刷新就可以看出数据库已经关闭了。

如何启动oracle2010-12-08 21:18

windows中:

⼀、启动OracleService[SID]

系统服务中有⼀个服务叫:OracleService[SID], SID是你安装oracle时候的实例名,如果没有改默认的是orcl,所以找OracleServiceORCL这个服务,启动它就ok了。不过⼀般装完oracle后它都是启动的,⽽且是开机⾃动启动。如果不想开机启动

可以不把它改成⼿动启动。

⼿动启动⽅式⼀:开始——控制⾯板——管理⼯具——服务找到OracleServiceORCL 右键——启动

⼿动启动⽅式⼆:开始——运⾏——输⼊net s tart Oracle ServiceORCL

启动OracleServiceORCL 后就可以在终端连接到数据库(s qlplus⽤户名/密码)

虽然终端能连上数据库了,但通过浏览器地址http://ip:port/is qlplus/ (例如:http://localhos t:5560/is qlplus/)来访问数据库

还是不⾏。

⼆、启动OracleOraDb10g_home1iSQL*Plus

启动⽅式与启动OracleService[SID]类似。启动完就能通过http://ip:port/isqlplus/连接到数据库。

或者http://ip:port/isqlplus/dba.uix以dba⾝份登录。登录时候需要⽤户名和密码。这⾥是登录机器的⽤户名和密码,

⽽且密码不能为空,若没设密码需要设密码。

可能遇到问题⼀:登陆时出现“ERROR ORA-12560: TNS: 协议适配器”

解决⽅法:Oracle_HOME/product/10.2.0/db_1/network/ADMIN/修改lis tener.ora 的port与本机⼀致

三、启动OracleOraDBConsoleorcl

启动⽅式同上。启动完就能通过http://ip/em(默认port 1158)打开Oracle Enterprise Manager了但是很多信息

还不能获得。所以要启动OracleOraDb10g_home1TNSListener可能遇到问题⼀:事件查看器中显⽰:Agent process exited abnormally during initialization.

若在服务界⾯启动提⽰错误代码为2。

原因⼤致有2个:

⼀个是你改了你的机器名,

⼀个是环境改变了,oracle不知道为什么会去使

⽤ip,⽽不是你的机器名。(我遇到的是这种)

我从公司的局域⽹到家⾥的局域⽹,环境不同,居然就启动不了了。。。

解决⽅法:

命令⾏⾥输⼊emctl start dbconsole

显⽰Environment variable ORACLE_SID not defined. Please define it.

然后根据它的说明设置oracle_sid

命令⾏⾥输⼊set oracle_sid=orcl (如果你的sid不是orcl,请⾃⼰更换)

再次敲⼊emctl start dbconsole

显⽰OC4J Configuration issue. D:\oracle\product\10.2.0\db_1/oc4j/j2ee/OC4J_DBConsole_192.168.1.101_orc l not found.

于是我到了该⽬录下发现有⼀个我的"OC4J_DBConsole_"+ 机器名+"_orcl"的⽬录

⽹上⼤家说如果你是修改了机器名的,那么你在这⾥把你的新机器名替换原来的机器名

变成——>"OC4J_DBConsole_"+ 新机器名+"_orcl"

如果你是像我⼀样,是因为环境改变⽽发⽣这个问题的,我建议你复制⼀个⽬录,进⾏更改。

复制⼀份"OC4J_DBConsole_"+ 机器名+"_orcl" 重命名为"OC4J_DBConsole_ 192.168.1.101_orcl

再次敲⼊emctl start dbconsole

有显⽰EM Configuration issue. D:\oracle\product\10.2.0\db_1/ 192.168.1.101 _orcl not found

我想聪明的你⼀定已经知道该怎么做了

如法炮制到相应⽬录下,复制⼀份重命名

再次敲⼊emctl start dbconsole

显⽰:Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0

Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved.

http://机器名:1158/em/console/aboutApplication

Starting Oracle Enterprise Manager 10g Database Control ...OracleDBConsoleorcl

服务正在启动......................................................OracleDBConsoleorcl 服务已经启动成功。

四、启动OracleOraDb10g_home1TNSListener

启动⽅式同上。