您的当前位置:首页ORACLE各项服务

ORACLE各项服务

2023-07-01 来源:六九路网


1 关于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>>, Oracle Corporation. All rights reserved.

SQL>; connect /as sysdba 已连接。 SQL>;

在进入后就可以进行下面的操作了! 先说关闭数据库

shutdown有四个参数,四个参数的含义如下: Normal 需要等待所有的用户断开连接 Immediate 等待用户完成当前的语句 Transactional 等待用户完成当前的事务 Abort 不做任何等待,直接关闭数据库

normal需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接

immediate在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。 transactional 在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。 abort 执行强行断开连接并直接关闭数据库。

前三种方式不回丢失用户数据。第四种在不的已的情况下,不建议采用! 数据库的启动

数据库启动使用startup命令,它有三种情况

第一种:不带参数,启动数据库实例并打开数据库,以便用户使用数据库,在多数情况下,使用这种方式!

第二种:带nomount参数,只启动数据库实例,但不打开数据库,在你希望创建一个新的数据库时使用,或者在你需要这样的时候使用!

第三种:带mount参数,在进行数据库更名的时候采用。这个时候数据库就打开并可以使

用了!

谢谢!不准确的地方请指教!

2 Linux下命令行启动oracle时报错的解决

在调试我们的测试服务器的时候,机器上的oracle总是启动不了,后来经过调试,问题总算解决了。

在linux下的命令行启动oracle时,会报TNS错误:the net service name is not incorrectly……,这个是由于环境变量没有设置SID的错误,或者已经设置了,但是切换到oracle用户时没有自动加载该环境变量,操作步骤如下:

#su oracle

$echo $ORACLE_SID //如果没有打印正确的SID,则表明环境变量设置错误或没有加载 $cd /home/oracle //进入到oracle用户的主目录 $source .bash_profile //加载oracle的个人属性文件

$echo $ORACLE_SID //如果还是没有打印,则肯定是没有设置SID变量了,直接VI这个文件,然后设置 $cd $ORACLE_HOME/bin //进入到oracle的安装目录下的bin目录 $./lsnrctl start //启动监听程序 $./sqlplus /nolog //登陆到sqlplus

SQL>startup //启动数据库实例,如果这里提示错误的话,则是没有权限,切换到sysdba用户 SQL>conn '/as sysdba' //切换到sysdba用户 SQL>startup //启动数据库实例

启动从后,即可exit,问题解决。

3 Window

http://www.popday.net/www/oracle/2007-10/184.html

lsnrctl [start|stop|status] --启动监听器,停止监听器,查看监听器的状态; net [start|stop] oracleserviceorcl

一、独立启动:

Microsoft Windows 2000 [Version 5.00.2195] (C) 版权所有 1985-2000 Microsoft Corp.

######################################################### 检查监听器状态:

#########################################################

E:\\>lsnrctl status

LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 28-6月 -2005 11:01:01 Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved. 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oyez)(PORT=1521))) TNS-12541: TNS:无监听器 TNS-12560: TNS: 协议适配器错误 TNS-00511: 无监听器

32-bit Windows Error: 61: Unknown error

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0))) TNS-12541: TNS:无监听器 TNS-12560: TNS: 协议适配器错误 TNS-00511: 无监听器

32-bit Windows Error: 2: No such file or directory

######################################################### 尝试登陆本地数据库:

#########################################################

E:\\>sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on 星期二 6月 28 11:01:09 2005 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. SQL> conn system/qqqqqq@oradb as sysdba ERROR:

ORA-12541: TNS: 没有监听器

--如果没有启动ORACLE服务的话,将出现下面的错误而不是上面: ERROR:

ORA-12560: TNS: 协议适配器错误

#########################################################

原因:监听器没有启动,无法解析“oradb”服务名,所以无法登陆数据库。 #########################################################

SQL> exit

######################################################### 启动监听器

#########################################################

E:\\>lsnrctl start

LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 28-6月 -2005 11:01:36 Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved. 启动tnslsnr:请稍候...

TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Production 系统参数文件为F:\\oracle\\ora92\\network\\admin\\listener.ora 写入F:\\oracle\\ora92\\network\\log\\listener.log的日志信息

监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oyez)(PORT=1521)))

监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\\\.\\pipe\\EXTPROC0ipc))) 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oyez)(PORT=1521))) LISTENER 的 STATUS ------------------------

别名 LISTENER

版本 TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Production 启动日期 28-6月 -2005 11:01:38 正常运行时间 0 天 0 小时 0 分 2 秒 跟踪级别 off 安全性 OFF SNMP   OFF

监听器参数文件 F:\\oracle\\ora92\\network\\admin\\listener.ora 监听器日志文件 F:\\oracle\\ora92\\network\\log\\listener.log 监听端点概要...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oyez)(PORT=1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\\\.\\pipe\\EXTPROC0ipc))) 服务摘要..

服务 \"OEMREP\" 包含 1 个例程。

例程 \"OEMREP\状态 UNKNOWN, 包含此服务的 1 个处理程序... 服务 \"PLSExtProc\" 包含 1 个例程。

例程 \"PLSExtProc\状态 UNKNOWN, 包含此服务的 1 个处理程序... 服务 \"oradb.eleaf.org\" 包含 1 个例程。

例程 \"oradb\状态 UNKNOWN, 包含此服务的 1 个处理程序... 命令执行成功

#########################################################

如果启动监听器时报“错误3 找不到可执行文件的路径”。

查 看[控制面板]=[服务]=OracleOraHome92TNSListener的属性,发现“可执行文件的路径项”是空的。打开注册表编辑器,搜索监 听服务对应的键值,终于在

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet(ControlSet001、

ControlSet002)/Services下找到了OracleOraHome92TNSListener服务。右击它选择“新建字符串值”,取名 ImagePath,并双击它在数值中输入监听程序的路径,此处为\"F:/oracle/ora92/bin/TNSLSNR.EXE\"。再执行就正常 了。

原因:“超级兔子”和“windows优化大师”等系统维护软件会误删除注册表中的该项键值。

######################################################### E:\\>sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on 星期二 6月 28 11:05:27 2005 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. SQL> conn system/qqqqqq@oradb as sysdba ERROR:

ORA-12500: TNS: 监听程序无法启动专用服务器进程

######################################################### 原因:本地数据库对应的服务没有打开

#########################################################

SQL> exit

#########################################################

打开本地数据库对应的服务,也可通过[控制面版]=[服务],选中相应服务,按工具栏上的[启动]按钮来启动。

#########################################################

E:\\>net start OracleServiceORADB

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

E:\\>sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on 星期二 6月 28 11:17:53 2005 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. SQL> conn system/qqqqqq@oradb as sysdba 已连接。 SQL>

SQL> desc user_views

名称 是否为空? 类型

----------------------------------------- -------- ---------------------------- VIEW_NAME NOT NULL VARCHAR2(30) TEXT_LENGTH NUMBER TEXT ; LONG

TYPE_TEXT_LENGTH NUMBER

TYPE_TEXT VARCHAR2(4000) OID_TEXT_LENGTH NUMBER

OID_TEXT VARCHAR2(4000) VIEW_TYPE_OWNER VARCHAR2(30) VIEW_TYPE VARCHAR2(30) SUPERVIEW_NAME VARCHAR2(30)

SQL> exit

从Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production With the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.1.0 - Production中断开 E:\\>oemapp console E:\\>

二、登陆到ManagerServer: E:\\>net stop OracleServiceOEMREP

OracleServiceOEMREP 服务正在停止........ OracleServiceOEMREP 服务无法停止。

#########################################################

打开资料档案库服务,也可通过[控制面版]=[服务],选中相应服务,按工具栏上的[启动]按钮来启动。

#########################################################

E:\\>net start OracleServiceOEMREP

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

在Windows上,使用net命令能否启动数据库,还受到一个注册表参数的影响,这个参数是:ORA__AUTOSTART

对于我的Oracle10g数据库,这个键值位于HKEY_LOCAL_MACHINE\\SOFTWARE\\ORACLE\\KEY_Ora10g,我的数据库SID为eygle,这个参数就是:ORA_EYGLE_AUTOSTART

当这个参数设置为True时,当我们启动服务时,Oracle数据库就会随之启动;反之,数据库就不会启动。 测试1,ORA_EYGLE_AUTOSTART=true时:

C:\\>net start oracleserviceeygle

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

C:\\>sqlplus \"/ as sysdba\"

SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 8月 22 09:27:35 2006 Copyright (c) 1982, 2005, Oracle. All rights reserved. 连接到:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options

SQL> select instance_name from v$instance; INSTANCE_NAME ---------------- eygle 测试2,ORA_EYGLE_AUTOSTART=FALSE时:

C:\\>net start oracleserviceeygle OracleServiceEYGLE 服务正在启动 . OracleServiceEYGLE 服务已经启动成功。 C:\\>sqlplus \"/ as sysdba\" SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 8月 22 09:30:03 2006 Copyright (c) 1982, 2005, Oracle. All rights reserved. 已连接到空闲例程。 ######################################################### 尝试用sqlplus直接连接资料档案库。

#########################################################

E:\\>sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on 星期二 6月 28 11:58:26 2005 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. SQL> conn /as sysdba 已连接。

SQL> conn system/qqqqqq@oemrep 已连接。 SQL> exit

从Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production With the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.1.0 - Production中断开

######################################################### 启动Agent

#########################################################

E:\\>agentctl start

DBSNMP for 32-bit Windows: Version 9.2.0.1.0 - Production on 28-6月 -2005 11:59:51 Copyright (c) 2002 Oracle Corporation. All rights reserved. 正在启动 Oracle Intelligent Agent....... 代理已启动

######################################################### 如果Agent不能成功启动,则:

转到%oracle_home%\\network\\agent\\下,删除所有后缀名为“.q”的文件。 如果还是不行,把services.ora也删除。

#########################################################

E:\\>oemctl start oms

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

#########################################################

Management Server启动过程中会要求输入用户名/密码,初始为sysman/oem_temp #########################################################

E:\\>oemapp console

因篇幅问题不能全部显示,请点此查看更多更全内容