文档章节

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基础知识-Oracle不同的启动关闭方式

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

青夜之衫
2017/12/04
0
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
python cx_Oracle基础使用方法

问题 使用python操作oracle数据库,获取表的某几个字段作为变量值使用。 使用+的方法需要对格式进行控制,通过流获取这几个字段值不简洁。(优点是能够使用的方法直接访问sql文件,不需要考虑...

莫显辉
2017/11/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JavaScript 继承使用解析

继承,通俗地说,之前你写过一些类,这些类中有一些是而你现在要写的类的功能的子集或者基本相同,那么你不用完全重新写一个新的类,你可以把之前写的类拿过来使用.这样的一种代码重用过程就叫做继...

前端攻城小牛
14分钟前
0
0
深入解析JavaScript 原型继承

JavaScript 原型继承,学习js面向对象的朋友可以看看。十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。 Object.prototype JavaScript是...

前端攻城老湿
16分钟前
0
0
2018阿里云双12——年末钜惠,低至2折

活动链接地址:https://m.aliyun.com/act/team1212/?params=N.JlJCGqQNL4

城市之雾
17分钟前
0
0
VMware前路难测,多个厂家群雄逐鹿

导读 以VMware为例,虚拟机巨头公布了第二财季报告所示,它第二财季收入同比增长13%,达到了21.7亿美元,而且该公司收入和每股收益均超出预期。 在人们高谈Salesforce、亚马逊等新兴云计算厂...

问题终结者
18分钟前
0
0
Vuex的初探与实战小结

1.概述 每一个 Vuex 应用的核心就是 store(仓库)。“store”基本上就是一个容器,它包含着你的应用中大部分的状态 (state)。 Vuex 和单纯的全局对象有以下两点不同: 1.Vuex 的状态存储是响...

peakedness丶
28分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部