如何用语句关闭oracle数据库

如何用语句关闭oracle数据库,第1张

1、正常关闭

正常关闭数据库所用的选项是normal,数据库在关闭前将检查所有的连接,并且发出命令后不允许再有新的用户连接,在等待所有连接都断开后再关闭数据库,再次启动数据库不需要任何恢复过程。

联入sys用户

sql>shutdown normal;

2、紧急关闭

方式用在某些紧急的情况下,比如通知马上停电,此时需要紧急关闭数据库以应付这些情况。这种方式用的选项是immediate,在这种方式下并不等待所有的用户断开连接再关闭,而是由系统断开连接,然后关闭数据库。

sql>shutdown immediate;

一旦执行了这条命令,则将当前正在处理的sql语句马上停止,然后将所有未提交的事务回退,并且不等待当前联入数据库的用户断开连接,而是由系统强行将各个联接断开。在下次启动数据库时要执行恢复动作,不过是由系统自动执行的,用户不必去了解它。

3、异常关闭

异常关闭选项是abort,此种方式下系统并不做任何检查和断开用户 *** 作以及回退 *** 作,而是直接将数据库现场撤销,这样现场中的数据库数据当然就无效了,数据库自然也就被关掉了。

sql>shutdown abort;

以abort方式关闭数据库时只有一行关闭信息表示关闭了数据库现场。以abort方式关闭的数据库再次启动时必须要进行恢复动作,这些恢复 *** 作同样是系统自动来完成的,需要的时间较长。

1在使用Oracle时候,一般启动OracleServiceORCL和OracleOraDb11g_home1TNSListener这两个服务Oracle就能正常运行;2要让局域网上的机子访问你的oracle,必须启动oracleora81homemanagermentserver服务。

3oracle服务启动、关闭脚本(windows下)

注:实例名:ORCL

(1)建立启动脚本dbstartcmd

cmd代码

dbstart

@echo halt oracle service

net stop OracleServiceORCL

net stop OracleDBConsoleorcl

net stop OracleOraDb11g_home1TNSListener

pause

(2)建立关闭脚本dbstopcmd

cmd代码

dbstop

@echo halt oracle service

net stop OracleServiceORCL

net stop OracleDBConsoleorcl

net stop OracleOraDb11g_home1TNSListener

pause

注:ORCL是Oracle实例名(安装Oracle时自定义)。

附:Oracle各服务介绍:

(1)OracleServiceSID

数据库服务,这个服务会自动地启动和停止数据库。如果安装了一个数据库,它的缺省启动类型为自动。服务。进程为ORACLEEXE,参数文件initSIDora,日志文件SIDALRTlog,控制台SVRMGRLEXE、SQLPLUSEXE。

(2)OracleHOME_NAMETNSListener

监听器服务,服务只有在数据库需要远程访问时才需要(无论是通过另外一台主机还是在本地通过 SQLNet 网络协议都属于远程访问),不用这个服务就可以访问本地数据库,它的缺省启动类型为自动。服务进程为TNSLSNREXE,参数文件 Listenerora,日志文件listenerlog,控制台LSNRCTLEXE,默认端口1521、1526。

(3)OracleHOME_NAMEAgent

OEM代理服务,接收和响应来自OEM控制台的任务和事件请求,只有使用OEM管理数据库时才需要,它的缺省启动类型为自动。服务进程为DBSNMPEXE,参数文件snmp_rwora,日志文件nmilog,控制台LSNRCTLEXE,默认端口1748。

(4)OracleHOME_NAMEClientCache

名字缓存服务,服务缓存用于连接远程数据库的Oracle Names 数据。它的缺省启动类型是手动。然而,除非有一台Oracle Names 服务器,否则没有必要运行这个服务。服务进程为ONRSDEXE,参数文件NAMESORA,日志文件ONRSDLOG,控制台 NAMESCTLEXE。

(5)OracleHOME_NAMECMAdmin

连接管理服务,是构建ConnectionManager服务器所用,只有服务器作为Connection Manager才需要,它的缺省启动类型是手动。服务进程为CMADMINEXE,参数文件CMANORA,日志文件CMADM_PIDTRC,控制台CMCTLEXE,默认端口1830。

(6)OracleHOME_NAMECMan

连接网关服务,是构建ConnectionManager服务器所用,只有服务器作为Connection Manager才需要,它的缺省启动类型是手动。服务进程为CMGWEXE,参数文件CMANORA,日志文件CMAN_PIDTRC,控制台 CMCTLEXE,默认端口1630。

(7)OracleHOME_NAMEDataGatherer

性能包数据采集服务,除非使用Oracle Capacity Planner 和 Oracle PerformanceManager,否则不需要启动,它的缺省启动类型是手动。服务进程为VPPDCEXE,日志文件alert_dglog,控制台 vppcntlexe。

(8)OracleHOME_NAME>

一、启动和关闭Oracle数据库

对于大多数Oracle

DBA来说,启动和关闭Oracle数据库最常用的方式就是在命令行方式下的Server Manager。从Oracle

8i以后,系统将Server

Manager的所有功能都集中到了SQLPlus中,也就是说从8i以后对于数据库的启动和关闭可以直接通过SQLPlus来完成,而不再另外需要Server

Manager,但系统为了保持向下兼容,依旧保留了Server Manager工具。另外也可通过图形用户工具(GUI)的Oracle

Enterprise Manager来完成系统的启动和关闭,图形用户界面Instance Manager非常简单,这里不再详述。

要启动和关闭数据库,必须要以具有Oracle

管理员权限的用户登陆,通常也就是以具有SYSDBA权限的用户登陆。一般我们常用INTERNAL用户来启动和关闭数据库(INTERNAL用户实际上是SYS用户以SYSDBA连接的同义词)。Oracle数据库的新版本将逐步淘汰INTERNAL这个内部用户,所以我们最好还是设置DBA用户具有SYSDBA权限。

二、数据库的启动(STARTUP)

启动一个数据库需要三个步骤:

1、 创建一个Oracle实例(非安装阶段)

2、 由实例安装数据库(安装阶段)

3、 打开数据库(打开阶段)

在Startup命令中,可以通过不同的选项来控制数据库的不同启动步骤。

1、STARTUP NOMOUNT

NONOUNT选项仅仅创建一个Oracle实例。读取initora初始化参数文件、启动后台进程、初始化系统全局区(SGA)。Initora文件定义了实例的配置,包括内存结构的大小和启动后台进程的数量和类型等。实例名根据Oracle_SID设置,不一定要与打开的数据库名称相同。当实例打开后,系统将显示一个SGA内存结构和大小的列表,如下所示:

SQL> startup nomount

ORACLE 例程已经启动。

Total System Global Area 35431692 bytes

Fixed Size 70924 bytes

Variable Size 18505728 bytes

Database Buffers 16777216 bytes

Redo Buffers 77824 bytes

2、STARTUP MOUNT

该命令创建实例并且安装数据库,但没有打开数据库。Oracle系统读取控制文件中关于数据文件和重作日志文件的内容,但并不打开该文件。这种打开方式常在数据库维护 *** 作中使用,如对数据文件的更名、改变重作日志以及打开归档方式等。在这种打开方式下,除了可以看到SGA系统列表以外,系统还会给出"数据库装载完毕"的提示。

3、STARTUP

该命令完成创建实例、安装实例和打开数据库的所有三个步骤。此时数据库使数据文件和重作日志文件在线,通常还会请求一个或者是多个回滚段。这时系统除了可以看到前面Startup

Mount方式下的所有提示外,还会给出一个"数据库已经打开"的提示。此时,数据库系统处于正常工作状态,可以接受用户请求。

如果采用STARTUP NOMOUNT或者是STARTUP

MOUNT的数据库打开命令方式,必须采用ALTER DATABASE命令来执行打开数据库的 *** 作。例如,如果你以STARTUP

NOMOUNT方式打开数据库,也就是说实例已经创建,但是数据库没有安装和打开。这是必须运行下面的两条命令,数据库才能正确启动。

ALTER DATABASE MOUNT;

ALTER DATABASE OPEN;

而如果以STARTUP MOUNT方式启动数据库,只需要运行下面一条命令即可以打开数据库:

ALTER DATABASE OPEN

4、其他打开方式

除了前面介绍的三种数据库打开方式选项外,还有另外其他的一些选项。

(1) STARTUP RESTRICT

这种方式下,数据库将被成功打开,但仅仅允许一些特权用户(具有DBA角色的用户)才可以使用数据库。这种方式常用来对数据库进行维护,如数据的导入/导出 *** 作时不希望有其他用户连接到数据库 *** 作数据。

(2) STARTUP FORCE

该命令其实是强行关闭数据库(shutdown abort)和启动数据库(startup)两条命令的一个综合。该命令仅在关闭数据库遇到问题不能关闭数据库时采用。

(3) ALTER DATABASE OPEN READ ONLY;

该命令在创建实例以及安装数据库后,以只读方式打开数据库。对于那些仅仅提供查询功能的产品数据库可以采用这种方式打开。

三、数据库的关闭(SHUTDOWN)

对于数据库的关闭,有四种不同的关闭选项,下面对其进行一一介绍。

1、SHUTDOWN NORMAL

这是数据库关闭SHUTDOWN命令的确省选项。也就是说如果你发出SHUTDOWN这样的命令,也即是SHUTDOWN NORNAL的意思。

发出该命令后,任何新的连接都将再不允许连接到数据库。在数据库关闭之前,Oracle将等待目前连接的所有用户都从数据库中退出后才开始关闭数据库。采用这种方式关闭数据库,在下一次启动时不需要进行任何的实例恢复。但需要注意一点的是,采用这种方式,也许关闭一个数据库需要几天时间,也许更长。

2、SHUTDOWN IMMEDIATE

这是我们常用的一种关闭数据库的方式,想很快地关闭数据库,但又想让数据库干净的关闭,常采用这种方式。

当前正在被Oracle处理的SQL语句立即中断,系统中任何没有提交的事务全部回滚。如果系统中存在一个很长的未提交的事务,采用这种方式关闭数据库也需要一段时间(该事务回滚时间)。系统不等待连接到数据库的所有用户退出系统,强行回滚当前所有的活动事务,然后断开所有的连接用户。

3、SHUTDOWN TRANSACTIONAL

该选项仅在Oracle 8i后才可以使用。该命令常用来计划关闭数据库,它使当前连接到系统且正在活动的事务执行完毕,运行该命令后,任何新的连接和事务都是不允许的。在所有活动的事务完成后,数据库将和SHUTDOWN IMMEDIATE同样的方式关闭数据库。

4、SHUTDOWN ABORT

这是关闭数据库的最后一招,也是在没有任何办法关闭数据库的情况下才不得不采用的方式,一般不要采用。如果下列情况出现时可以考虑采用这种方式关闭数据库。

1、 数据库处于一种非正常工作状态,不能用shutdown normal或者shutdown immediate这样的命令关闭数据库;

2、 需要立即关闭数据库;

3、 在启动数据库实例时遇到问题;

所有正在运行的SQL语句都将立即中止。所有未提交的事务将不回滚。Oracle也不等待目前连接到数据库的用户退出系统。下一次启动数据库时需要实例恢复,因此,下一次启动可能比平时需要更多的时间。

表1可以清楚地看到上述四种不同关闭数据库的区别和联系。

关闭方式 A I T N

允许新的连接 × × × ×

等待直到当前会话中止 × × × √

等待直到当前事务中止 × × √ √

强制CheckPoint,关闭所有文件 × √ √ √

其中:A-Abort I-Immediate T-Transaction N-Nornal

关闭时间较长一般是存在较长的事务未完成,使用shutdown normal会等待事务完成才会关闭数据库,所以最佳采用shutdown immediate,会结束事务,将未提交的事务全部回滚,尽量避免使用shutdown abort,会造成数据库的不一致,再次启动数据库会自动执行恢复,会造成等待时间较长。

以上就是关于如何用语句关闭oracle数据库全部的内容,包括:如何用语句关闭oracle数据库、如何定时关闭oracle的服务、Oracle启动和关闭方式的区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9794848.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存