Oracle启动和停止的方式详解

简介: Oracle启动和停止的方式详解

概述

只有具备sysdba和sysoper系统特权的用户才能启动和关闭数据库。

在启动数据库之前应该启动监听程序,否则就不能利用命令方式来管理数据库,包括启动和关闭数据库。

虽然数据库正常运行,但如果没有启动监听程序,客户端就不能连接到数据库。

oracle用户下: 启动监听程序 lsnrctl start 关闭监听程序lsnrctl stop

查询监听程序状态lsnrctl status


startup

支持参数

STARTUP options | upgrade_options

options为:[FORCE] [RESTRICT] [PFILE=filename] [QUIET] [ MOUNT [dbname]

| [ OPEN [open_options] [dbname] ] | NOMOUNT ],

NOMOUNT、MOUNT、OPEN为startup的三个阶段,不能在命令中同时存在。其中,open_options为:READ {ONLY

| WRITE [RECOVER]} | RECOVER。

upgrade_options为:[PFILE=filename] {UPGRADE | DOWNGRADE} [QUIET]


启动过程

启动数据库的步骤:

  • 1,创建并启动例程,内存和服务进程得到分配,初始化和启动,初始化参数文件。由参数文件中初始化参数决定如何启动例程 startup nomount
  • 2,装载数据库,打开数据库控制文件,并从中获取数据库名称,数据文件的位置和名称等关于数据库物理结构的信息,由参数文件找到控制文件,以便装载数据库startup mount
  • 3,打开数据库,例程将打开所有处于联机状态的数据文件和重作日志文件。如果载控制文件中列出的任何一个数据文件或重作日志文件无法打开,数据库将返回错误信息,这时需要进行数据库恢复。startup open

启动数据库过程中,文件的使用顺序是:参数文件,控制文件,数据文件和重做日志文件。这些文件都正常时,数据库才能正常启动。


启动参数解释

startup nomount

以NOMOUNT方式打开实例

非安装启动,这种方式启动下可执行:重建控制文件、重建数据库、读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。

startup mount dbname

以MOUNT方式打开实例,如果未指定dbname,则打开以参数文件中DB_NAME参数指定的数据库。

安装启动,这种方式启动下可执行:


  • 数据库日志归档、
  • 数据库介质恢复、
  • 使数据文件联机或脱机,
  • 重新定位数据文件、重做日志文件。

执行“nomount”,然后打开控制文件,确认数据文件和联机日志文件的位置,但此时不对数据文件和日志文件进行校验检查。

startup open dbname

先执行“nomount”,

然后执行“mount”,

再打开包括Redo log文件在内的所有数据库文件,

这种方式下可访问数据库中的数据。

startup

以默认参数文件(SPFILE)开启实例,装载默认的数据库,并打开数据库。

等于以下三个命令

startup nomount
alter database mount
alter database open

STARTUP会分三步开启数据库,分别为:

1、Start and instance(NOMOUNT);

2、Mount the database(MOUNT);

3、Open the database(OPEN)

startup restrict

约束方式启动

以此模式打开的数据库只有拥有RESTRICTED SESSION系统权限的用户才能连接。 非特权用户访问时,会出现以下提示:  

 ERROR:  
 ORA-01035: ORACLE 只允许具有 RESTRICTED SESSION 权限的用户使用

打开后,可以使用ALTER SYSTEM命令将该状态设为disable,以关闭restricted将数据库正常打开。

startup pfile=参数文件名

带初始化参数文件的启动方式 先读取参数文件,再按参数文件中的设置启动数据库

使用指定的文件中的参数打开实例。在未使用PFILE的情况下,startup以默认参数文件中的参数打开。

startup force

当不能关闭数据库时,可以用startup force来完成数据库的关闭,先关闭数据库,再执行正常启动数据库命令。

强制打开数据库,在open之前会先执行shutdown,相当于shutdown abort; startup

open。在当前实例正在运行的情况下,如果不使用FORCE的话,startup时会报错。FORCE可以在调试环境或非生产环境中使用,需慎用。


shutdown

支持参数

shutdown的四个参数:normal、transactional、immediate、abort

缺省不带任何参数时表示是normal方式

关闭过程

关闭数据库步骤:

  • 1,关闭数据库,oracle将重做日志高速缓存中的内容写入重做日志文件,并且将数据库高速缓存中被改动过的数据写入数据文件,然后再关闭所有的数据文件和重做日志文件,这时数据库的控制文件仍然处于打开状态,但是由于数据库处于关闭状态,所以用户无法访问数据库
  • 2,卸载数据库,关闭数据库后,例程才能被卸载,控制文件再这个时候被关闭,但例程仍然存在
  • 3,终止例程,进程终止,分配给例程的内存sga区被回收。

停止参数解释

shutdown normal

正常方式关闭数据库。

不允许新的连接、等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。

shutdown immediate

立即方式关闭数据库。 在SVRMGRL中执行shutdown immediate,数据库并不立即关闭, 而是在Oracle执行某些清除工作后才关闭(终止会话、释放会话资源),

当使用shutdown不能关闭数据库时,shutdown immediate可以完成数据库关闭的操作。

不允许新的连接、不等待会话结束、不等待事务结束、做一个检查点并关闭数据文件。没有结束的事务是自动ROLLBACK的。启动时不需要实例恢复。

shutdown abort

直接关闭数据库,正在访问数据库的会话会被突然终止, 如果数据库中有大量操作正在执行,这时执行shutdown abort后,重新启动数据库需要很长时间。

shutdown transactional

不允许新的连接、不等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。

使用shutdown的时候 normal和immediate可能都因为连接没有释放而造成数据库无法重启的现象。

SQL>shutdown abort;  --这个方法是不等待会话结束就直接关闭掉数据库,一般情况下事不推荐使用的。实在关不掉的话,一般也没有什么问题。跟直接KILL进程差不多。
 SQL>startup     --shutdown abort以后在启动数据库。
 SQL>startup force;  --这个方法是直接关闭掉数据库然后再重启数据库,这个方式也可以达到关闭并重启的目的。


相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
Oracle 安全 关系型数据库
实战篇:Linux 安装 Oracle 11GR2 数据库保姆级教程(一)
实战篇:Linux 安装 Oracle 11GR2 数据库保姆级教程(一)
实战篇:Linux 安装 Oracle 11GR2 数据库保姆级教程(一)
|
Ubuntu Linux
在Linux中如何解压 .xz 和 tar.xz 文件?
【4月更文挑战第17天】
15588 6
在Linux中如何解压 .xz 和 tar.xz 文件?
|
存储 SQL 缓存
Hadoop入门(一篇就够了)
Hadoop入门(一篇就够了)
39111 5
Hadoop入门(一篇就够了)
|
8月前
|
存储 缓存 监控
MySQL服务器配置优化:my.cnf参数调优指南
本文深入解析了MySQL核心配置参数及性能优化技巧,涵盖内存结构、调优原则、存储引擎优化、查询性能优化等内容,通过实战案例帮助读者构建高性能MySQL服务器配置,解决常见的性能瓶颈问题。
1144 0
|
缓存 Linux 开发工具
CentOS 7- 配置阿里镜像源
阿里镜像官方地址http://mirrors.aliyun.com/ 1、点击官方提供的相应系统的帮助 :2、查看不同版本的系统操作: 下载源1、安装wget yum install -y wget2、下载CentOS 7的repo文件wget -O /etc/yum.
272057 0
|
12月前
|
人工智能 Java API
Spring AI 实战|Spring AI入门之DeepSeek调用
本文介绍了Spring AI框架如何帮助Java开发者轻松集成和使用大模型API。文章从Spring AI的初探开始,探讨了其核心能力及应用场景,包括手动与自动发起请求、流式响应实现打字机效果,以及兼容不同AI服务(如DeepSeek、通义千问)的方法。同时,还详细讲解了如何在生产环境中添加监控以优化性能和成本管理。通过Spring AI,开发者可以简化大模型调用流程,降低复杂度,为企业智能应用开发提供强大支持。最后,文章展望了Spring AI在未来AI时代的重要作用,鼓励开发者积极拥抱这一技术变革。
4094 71
Spring AI 实战|Spring AI入门之DeepSeek调用
|
监控 Oracle 关系型数据库
Linux平台Oracle开机自启动设置
【11月更文挑战第8天】在 Linux 平台设置 Oracle 开机自启动有多种方法,本文以 CentOS 为例,介绍了两种常见方法:使用 `rc.local` 文件(较简单但不推荐用于生产环境)和使用 `systemd` 服务(推荐)。具体步骤包括编写启动脚本、赋予执行权限、配置 `rc.local` 或创建 `systemd` 服务单元文件,并设置开机自启动。通过 `systemd` 方式可以更好地与系统启动过程集成,更规范和可靠。
1204 2
|
SQL 运维 关系型数据库
MySQL Binlog 日志查看方法及查看内容解析
本文介绍了 MySQL 的 Binlog(二进制日志)功能及其使用方法。Binlog 记录了数据库的所有数据变更操作,如 INSERT、UPDATE 和 DELETE,对数据恢复、主从复制和审计至关重要。文章详细说明了如何开启 Binlog 功能、查看当前日志文件及内容,并解析了常见的事件类型,包括 Format_desc、Query、Table_map、Write_rows、Update_rows 和 Delete_rows 等,帮助用户掌握数据库变化历史,提升维护和排障能力。
|
消息中间件 监控 Kafka
查询Kafka集群中消费组(group)信息和对应topic的消费情况
查询Kafka集群中消费组(group)信息和对应topic的消费情况
7372 0