文档章节

Oracle基础篇 --- 数据库关闭

wangbinbin0326
 wangbinbin0326
发布于 2015/05/27 14:43
字数 1043
阅读 16
收藏 0

###2. 关闭Oracle DB 实例

关闭模式

此处输入图片的描述

此处输入图片的描述

####2.1 SHUTDOWN NORMAL

  • 不可以建立新连接。
  • Oracle 服务器待所有用户断开连接后再完成关闭。
  • 数据库和重做缓冲区被写入磁盘。
  • 后台进程终止,并从内存中删除SGA。
  • Oracle 服务器在关闭并断开数据库后关闭实例。
  • 下一次启动不需要进行实例恢复。
#查看当前的连接Session
SQL> select username, MACHINE from v$session where program like '%TNS%';

USERNAME                       MACHINE
------------------------------ --------------------
HR                             hzvscmdb
SYS                            hzvscmdb

#以normal的方式关闭数据库
SQL> shutdown normal;

#发现数据库关闭不掉,等待所有的session关闭,然后,不关闭所有的session,则数据库关闭掉。
SQL> shutdown normal;
Database closed.
Database dismounted.
ORACLE instance shut down.

####2.2 SHUTDOWN TRANSACTIONAL

采用TRANSACTIONAL 关闭方式可防止客户机丢失数据,其中包括客户机当前活动的结果。执行事务处理数据库关闭时会发生以下情况:

  • 任何客户机都不能利用这个特定实例启动新事务处理。
  • 会在客户机结束正在进行的事务处理后断开客户机。
  • 完成所有事务处理后立即执行关闭。
  • 下一次启动不需要进行实例恢复。
#查看当前的连接Session
SQL>  select username, MACHINE from v$session where program like '%TNS%';

USERNAME                       MACHINE
------------------------------ --------------------
SYS                            hzvscmdb
HR                             hzvscmdb
HR                             hzvscmdb

#以transactional方式关闭数据库,不等待session的结束直接关闭
SQL> shutdown transactional;
Database closed.
Database dismounted.
ORACLE instance shut down.

#实例二
SQL>  select username, MACHINE from v$session where program like '%TNS%';

USERNAME                       MACHINE
------------------------------ --------------------
SYS                            hzvscmdb
HR                             hzvscmdb

SQL>  select username, MACHINE, prev_sql_id from v$session where program like '%TNS%';

USERNAME                       MACHINE              PREV_SQL_ID
------------------------------ -------------------- -------------
SYS                            hzvscmdb             atqym7kmvc9g5
HR                             hzvscmdb             41763gv0cwkm7

SQL> select sql_text from v$sql where sql_id = '41763gv0cwkm7';

SQL_TEXT
--------------------------------------------------------------------------------
update employees set email = 'TonyTest1' where employee_id = 199

SQL> shutdown transactional;

#此时数据库关闭不掉,需要等待所有的事务提交结束。
SQL> shutdown transactional;
Database closed.
Database dismounted.
ORACLE instance shut down.

####2.3 SHUTDOWN IMMEDIATE

采用IMMEDIATE 关闭模式会出现以下情况::

  • Oracle DB 正在处理的当前SQL 语句不会完成。
  • Oracle 服务器不会等待当前连接到数据库的用户断开连接。
  • Oracle 服务器会回退活动的事务处理,而且会断开所有连接用户。
  • Oracle 服务器在关闭并断开数据库后关闭实例。
  • 下一次启动不需要进行实例恢复。
SQL> select username, machine, prev_sql_id from v$session
  2  where program like '%TNS%';

USERNAME                       MACHINE              PREV_SQL_ID
------------------------------ -------------------- -------------
HR                             hzvscmdb             4xqvumnntxj29
SYS                            hzvscmdb             65trwptd32czm

SQL> select sql_text from v$sql where sql_id = '4xqvumnntxj29';

SQL_TEXT
--------------------------------------------------------------------------------
update employees set email = 'TonyTest2' where employee_id = 200

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup;
ORACLE instance started.

Total System Global Area 6714322944 bytes
Fixed Size                  2239192 bytes
Variable Size            6526338344 bytes
Database Buffers          167772160 bytes
Redo Buffers               17973248 bytes
Database mounted.
Database opened.
SQL>

###check update 的数据,发现数据丢失,通过 shutdown immediate 方式关闭数据。
SQL> select email from employees where employee_id = 200;

EMAIL
-------------------------
JWHALEN

此处输入图片的描述

####2.4 SHUTDOWN ABORT

如果NORMAL、TRANSACTIONAL 和IMMEDIATE 关闭模式都不起作用,则可以中止当前的数据库实例。中止实例时会发生以下情况:

  • Oracle DB 正在处理的当前SQL 语句会立即终止。
  • Oracle 服务器不会等待当前连接到数据库的用户断开连接。
  • 数据库和重做缓冲区未写入磁盘。
  • 不回退未提交的事务处理。
  • 实例终止,但未关闭文件。
  • 数据库未关闭或未卸载。
  • 下一次启动时需要进行实例恢复,实例恢复是自动进行的。

**注:**建议不要备份处于不一致状态的数据库。

SQL> select username, machine, prev_sql_id from v$session
  2  where program like '%TNS%';

USERNAME                       MACHINE              PREV_SQL_ID
------------------------------ -------------------- -------------
HR                             hzvscmdb             2kr7fuxvsa5kc
SYS                            hzvscmdb             1h50ks4ncswfn

SQL> select sql_text from v$sql where sql_id = '2kr7fuxvsa5kc';

SQL_TEXT
--------------------------------------------------------------------------------
update employees set email = 'Tonytest2' where employee_id = 200

SQL> shutdown abort;
ORACLE instance shut down.

#If a SHUTDOWN ABORT or abnormal termination occurs, then the instance of an open database closes and shuts down the database instantaneously. Oracle Database does not write data in the buffers of the SGA to the data files and redo log files. The subsequent reopening of the database requires instance recovery, which Oracle Database performs automatically.

SQL> startup;
ORACLE instance started.

Total System Global Area 6714322944 bytes
Fixed Size                  2239192 bytes
Variable Size            6526338344 bytes
Database Buffers          167772160 bytes
Redo Buffers               17973248 bytes
Database mounted.
Database opened.

###check update 的数据,发现数据丢失,通过 shutdown immediate 方式关闭数据。

SQL> select email from employees where employee_id = 200;

EMAIL
-------------------------
JWHALEN

© 著作权归作者所有

共有 人打赏支持
wangbinbin0326
粉丝 7
博文 39
码字总数 43554
作品 0
杭州
数据库管理员
Oracle 基础篇 --- Oracle Network配置

第二. Oracle Network配置 配置和管理Oracle Network 的工具: * Enterprise Manager 的“Net Services Administration(网络服务管理)”页 1. Oracle Net Manager * 提供一个图形用户界面(...

wangbinbin0326
2015/05/29
0
0
Oracle基础知识

一、初始化参数文件 1、pfile文件的默认名称: init.ora spfile文件的默认名称: spfile.ora 2、初始化参数文件的优先级(oracle默认的搜寻过程) spfile.ora---->spfile.ora--->init.ora 3、...

我就叫你女王吧
2016/05/23
41
0
经典Oracle常用技巧荟萃

height:32.25pt;width:525pt">第一部分 安装优化篇 height:29.25pt;width:525pt">第二部分 基础管理篇 collapse;width:333pt"> collapse;width:333pt"> height:29.25pt;width:525pt">第三部分......

51cto_bbs
2013/04/02
0
0
Oracle基础知识-Oracle不同的启动关闭方式

Oracle中不同启动和关闭方式的区别 Oracle数据库提供了几种不同的数据库启动和关闭方式,本文将周详介绍这些启动和关闭方式之间的区别连同他们各自不同的功能。 一、启动和关闭Oracle数据库 ...

青夜之衫
2017/12/04
0
0
centos安装和使用oracle11G R2

centos安装和使用oracle11G R2 安装主要参考下面三篇文章: http://www.linuxidc.com/Linux/2016-04/130559.htm http://www.cnblogs.com/kerrycode/p/5717908.html http://www.linuxidc.com......

那年二十三
2017/10/23
0
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Go语言_通神之路(2)

1、包 每个Go程序都是由包构成,从main包开始运行,就是我上一篇讲到的,都是从main函数开始执行,但是必须在main包下面! package mainimport ( "fmt" "math/rand")func ...

木九天
昨天
4
0
51.php-fpm的pool 慢日志 open_basedir 进程管理

12.21 php-fpm的pool 12.22 php-fpm慢执行日志(测试时报错) 12.23 open_basedir 12.24 php-fpm进程管理 12.21 php-fpm的pool: php-fpm里的pool也叫池子,咱们之前加入过www的配置,这个w...

王鑫linux
昨天
0
0
java内存模型概述

1、Java虚拟机运行时数据分区图 程序计数器:线程私有,是一块较小的内存空间,它是当前线程所执行的字节码文件的行号指示器 java虚拟机栈:线程私有,其生命周期与线程相同,这也就是我们平...

京一
昨天
1
0
shell学习之test语法

因为if-then语句不能测试退出状态码之外的条件,所以提供了test, 如果test命令中列出的条件成立,test命令就会退出并返回退出状态码0;如果条件不成立,test命令就会退出并返回非零的退出状态...

woshixin
昨天
0
0
openJDK之如何下载各个版本的openJDK源码

如果我们需要阅读openJDK的源码,那么需要下载,那么该去哪下载呢? 现在JDK已经发展到版本10了,11已经处于计划中,如果需要特定版本的openJDK,它们的下载链接在哪呢? 1.openJDK的项目 链接...

汉斯-冯-拉特
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部