`

shutdown abort关闭数据库的记录总结

阅读更多


环境:HP-UX , ORACLE 9I

这是电信的一个生产库。需要修改OS的时间。为了安全起见,需要重启DB。
登陆到数据库服务器之后,输入
sql>conn /  as sysdba
sql>shutdown immediate
就卡在这里,等了约一个多小时,db都停不下来。
查看oracle log,显示
Thread 1 advanced to log sequence 220616
  Current log# 2 seq# 220616 mem# 0: /dev/vgora/rlv_log2
Fri May 30 01:14:43 2008
Shutting down instance: further logons disabled
Shutting down instance (immediate)
License high water mark = 268
Fri May 30 01:19:55 2008
Active call for process 15693 user 'oracle' program
'oracle@BimsDB1 (J000)'       -----这个job在运行
SHUTDOWN: waiting for active calls to complete.
Fri May 30 01:20:23 2008
Thread 1 advanced to log sequence 220617
  Current log# 3 seq# 220617 mem# 0: /dev/vgora/rlv_log3
查看os top,发现一个进程号为15693的oracle job正在运行。
kill -9  15693
db还是停不下来。查看oracle log,还是和kill job之前一样。
已经折腾一个多小时了,只有使用最后一招:shutdown abort了
sql>conn / as sysdba
sql>shutdown abort
几秒的时间,db就停了下来。
调整了OS的时间之后,正常启动db,一切顺利。
启动时,oracle log
Fri May 30 01:53:38 2008
Shutting down instance (abort)
License high water mark = 268
Instance terminated by USER, pid = 19793
Fri May 30 02:40:08 2008
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
SCN scheme 1
Fri May 30 02:40:33 2008
Using log_archive_dest parameter default value
LICENSE_MAX_USERS = 0
SYS auditing is disabled
Starting up ORACLE RDBMS Version: 9.2.0.8.0.
System parameters with non-default values:
  processes                = 500
  sessions                 = 555
  timed_statistics         = TRUE
  shared_pool_size         = 536870912
  sga_max_size             = 10739491216
  large_pool_size          = 117440512
  java_pool_size           = 117440512
  control_files            = /dev/vgora/rlv_ctrl1, /dev/vgora/rlv_ctrl2, /dev/vgora/rlv_ctrl3
  db_block_size            = 8192
  db_writer_processes      = 2
  db_cache_size            = 8589934592
  compatible               = 9.2.0.0.0
  db_file_multiblock_read_count= 16
  fast_start_mttr_target   = 300
  transactions             = 500
  undo_management          = AUTO
  undo_tablespace          = UNDOTBS1
  undo_retention           = 43200
  remote_login_passwordfile= EXCLUSIVE
  db_domain                =
  instance_name            = BIMS
  job_queue_processes      = 10
  hash_join_enabled        = TRUE
  background_dump_dest     = /oracle/admin/BIMS/bdump
  user_dump_dest           = /oracle/admin/BIMS/udump
  core_dump_dest           = /oracle/admin/BIMS/cdump
  open_links               = 8
  open_links_per_instance  = 8
  sort_area_size           = 524288
  db_name                  = BIMS
  open_cursors             = 300
  star_transformation_enabled= FALSE
  query_rewrite_enabled    = FALSE
  pga_aggregate_target     = 2147483648
  aq_tm_processes          = 1
PMON started with pid=2, OS id=20212
DBW0 started with pid=3, OS id=20215
DBW1 started with pid=4, OS id=20218
LGWR started with pid=5, OS id=20220
CKPT started with pid=6, OS id=20224
SMON started with pid=7, OS id=20226
RECO started with pid=8, OS id=20230
CJQ0 started with pid=9, OS id=20232
QMN0 started with pid=10, OS id=20234
Fri May 30 02:40:34 2008
ALTER DATABASE   MOUNT
Fri May 30 02:40:38 2008
Successful mount of redo thread 1, with mount id 2048087522
Fri May 30 02:40:38 2008
Database mounted in Exclusive Mode.
Completed: ALTER DATABASE   MOUNT
Fri May 30 02:40:38 2008
ALTER DATABASE OPEN
Fri May 30 02:40:39 2008
Beginning crash recovery of 1 threads           --------oracle开始自动对REDO LOG进行恢复
Fri May 30 02:40:39 2008
Started redo scan
Fri May 30 02:40:41 2008
Completed redo scan
116710 redo blocks read, 18790 data blocks need recovery    ------还好,需要恢复的data blocks不是很多
Fri May 30 02:41:06 2008
Started recovery at
Thread 1: logseq 220617, block 95794, scn 0.0
Fri May 30 02:41:06 2008
Recovery of Online Redo Log: Thread 1 Group 3 Seq 220617 Reading mem 0
  Mem# 0 errs 0: /dev/vgora/rlv_log3
Fri May 30 02:41:07 2008
Recovery of Online Redo Log: Thread 1 Group 1 Seq 220618 Reading mem 0
  Mem# 0 errs 0: /dev/vgora/rlv_log1
Fri May 30 02:41:10 2008
Completed redo application
Fri May 30 02:41:11 2008
Ended recovery at
Thread 1: logseq 220618, block 82459, scn 4.938028078
18790 data blocks read, 18790 data blocks written, 116710 redo blocks read
Crash recovery completed successfully            ---------完成REDO LOG恢复
Fri May 30 02:41:12 2008
Thread 1 advanced to log sequence 220619
Thread 1 opened at log sequence 220619
  Current log# 2 seq# 220619 mem# 0: /dev/vgora/rlv_log2
Successful open of redo thread 1
Fri May 30 02:41:12 2008
SMON: enabling cache recovery
Fri May 30 02:41:12 2008
Successfully onlined Undo Tablespace 1.
Fri May 30 02:41:12 2008
SMON: enabling tx recovery
Fri May 30 02:41:12 2008
Database Characterset is ZHS16GBK
replication_dependency_tracking turned off (no async multimaster replication found)
Completed: ALTER DATABASE OPEN            -------------数据库成功OPEN
Fri May 30 02:44:30 2008
Thread 1 advanced to log sequence 220620


总结:在生产库中,需要关闭oracle数据库的时候,首先使用的应该是shutdown immediate.
(根据相关的帖子介绍,可以先运行alter system archive all,alter system switch logfile ,alter system checkpoint。
不过不知道花费的时间长不长。那天晚上我手忙脚乱,都没有得试这几个命令)
shutdown immediate会对当前正在运行的事务进行回滚,从而保证数据库的安全关闭。
要是在等待了较长时间,shutdown immediate还是无法关闭数据库,可以使用shutdown abort.
因为shutdown abort不会对事务进行回滚,因此可以迅速的关闭oracle。但是,也是因为没有
对事务进行回滚,启动数据库的时候,oracle会自动对REDO LOG进行recover。
为了减少recover的时间,shutdown abort之前,可以先运行alter system archive all,alter system switch logfile ,alter system checkpoint。
PS:这个数据库的redo log设置得较小,大概200M这样。这大概也是这次可以迅速恢复的原因吧。
本贴来自ZDNetChina中文社区
http://bbs.zdnet.com.cn ,本贴地址:http://bbs.zdnet.com.cn/viewthread.php?tid=461527

 

 

分享到:
评论

相关推荐

    Oracle日常运维操作总结-数据库的启动和关闭 数据库运维.pdf

    在实际运维中,DBA还需要关注数据库的日志文件,例如警告日志(alert_orcl.log),它记录了数据库启动、关闭和其他重要事件的信息,对于故障排查至关重要。 总结来说,Oracle数据库的启动和关闭涉及到多个步骤和...

    ORACLE数据库学习总结.pdf

    - 关闭数据库:`shutdown immediate`(立即关闭)/ `shutdown transactional`(事务完成后关闭)/ `shutdown abort`(强制关闭) - 查看当前连接用户:`show user` - 连接数据库:`connect scott/tiger` - 查看表...

    ORACLE数据库学习总结可用.pdf

    - 数据库关闭:`shutdown immediate`(立即关闭),`shutdown transactional`(等待事务完成后再关闭),`shutdown abort`(强制关闭) - 查看当前用户:`show user` - 连接数据库:`connect scott/tiger` - 查看表...

    oracle数据库的启动和关闭

    `SHUTDOWN IMMEDIATE`命令会立即结束所有活动的用户会话,而`SHUTDOWN ABORT`则强制终止,不等待用户事务完成。在执行关闭前,不要提前关闭SQL*NET,因为这会导致用户失去与数据库的连接。关闭数据库后,再关闭SQL*...

    备份与恢复测试

    - **shutdown abort**:使用此命令关闭数据库时会记录一个跟踪文件,该文件包含了数据库关闭过程中的一些异常信息。 - **shutdown immediate**:同样地,在立即关闭模式下也会产生相应的跟踪文件,这些文件可用于...

    实验10Oracle数据库备份与恢复.pdf

    *shutdown abort*:shutdown abort 命令用于强制关闭数据库,以便模拟数据库崩溃的情况。 实验 2:数据库是打开的,这时损坏的文件是用户的数据文件而不是 system 和 undo 文件 在这个实验中,我们将学习如何在...

    ORACLE 数据库入门.pdf

    - `shutdown abort`:强制关闭数据库,可能会导致数据不一致。 ##### 3. 启动和关闭数据库的过程图 启动过程大致如下: - 开机 - 读取参数文件`initoraid.ora` - 读取控制文件 - 仅启动实例(`nomount`) - 挂载...

    oracle数据库应用与开发总结范文.pdf

    SHUTDOWN命令则用于关闭数据库,有NORMAL、IMMEDIATE、TRANSACTIONAL和ABORT四种模式,分别对应不同的关闭策略。 总的来说,Oracle数据库应用与开发涉及的内容广泛,包括数据库的安装、配置、管理、优化以及应用...

    oracle数据库应用与开发总结范文.docx

    而SHUTDOWN命令用于关闭数据库,有NORMAL、IMMEDIATE、TRANSACTIONAL和ABORT四种模式,分别对应不同的关闭策略。 Oracle数据库的物理存储结构由数据文件、日志文件、控制文件和参数文件构成。数据文件是数据的实际...

    ORACLE 数据库入门.ppt

    启动数据库使用STARTUP命令,而关闭数据库则有多种模式,如SHUTDOWN IMMEDIATE立即关闭,SHUTDOWN TRANSACTIONAL等待所有当前事务完成后关闭,SHUTDOWN ABORT则是强制关闭,不等待任何活动。 综上所述,Oracle...

    Oracle试题.pdf

    1. 数据库关闭:在关闭数据库进行备份前,不应使用的命令是`SHUTDOWN ABORT`,因为这会导致不完全的事务回滚,可能使数据库在下次启动时需要恢复。 2. 角色定义:用户不能为具有对象权限的角色设置默认值,因为对象...

    oracle数据库故障紧急处理预案.doc

    - 确保数据库已经关闭,如果没有用下面的命令来关闭数据库:svrmgrl>shutdown immediate; - 查看初始化文件$ORACLE_BASE/admin/pfile/initORCL.ora,确定所有控制文件的路径。 - 用操作系统命令将其它正确的控制...

    Oracle数据库课程大作业.docx

    数据库关闭也有四种方式,分别是shutdown immediate(立即关闭,不等待事务结束)、shutdown normal(正常关闭,等待所有活动事务完成)、shutdown abort(强制关闭,可能会导致数据不一致)和shutdown ...

    ORACLE 数据库

    - **关闭**:在较新版本中,通常使用`shutdown immediate`或`shutdown abort`快速关闭数据库,而在旧版本中,可能需要使用`sqlplus /nolog`和`shutdown`命令。 Oracle数据库的复杂性在于其强大的功能和高度可配置...

    ORACLE数据库恢复实例

    - 使用`shutdown abort`命令关闭数据库,模拟数据文件丢失的场景。 3. **Mount数据库**: - 使用`startup mount`命令装载数据库,但不打开它。这样可以在数据文件脱机的情况下进行恢复操作。 4. **使损坏的数据...

    (完整word版)Oracle数据库系统紧急故障处理方法.doc

    1. 确保数据库已经关闭,如果没有用下面的命令来关闭数据库:svrmgrl〉shutdown immediate; 2. 查看初始化文件$ORACLE_BASE/admin/pfile/initORCL.ora,确定所有控制文件的路径。 3. 用操作系统命令将其它正确的...

    Oracle数据库恢复实例.pdf

    一致性恢复通常针对实例故障,例如电源中断或SHUTDOWN ABORT命令导致的非正常关闭。在这种情况下,Oracle会在下次启动时自动执行实例恢复,包括向前滚动以恢复未记录的数据、回滚未提交的事务、释放资源以及解决...

    Oracle 数据库备份恢复实例.doc

    可以通过执行`shutdown abort`命令来关闭数据库实例,然后再启动到mount状态,接着将指定的数据文件置为脱机状态。具体命令如下: ``` SQL> shutdown abort SQL> startup mount SQL> alter database datafile 'D:\...

    Orecal 数据库入门 ppt 44页

    数据库关闭通常对应于`Shutdown`命令,有多种模式(如Immediate、Transactional、Normal和Abort),根据不同的业务需求选择合适的关闭方式。 最后,我们要了解**Oracle数据的存储结构**。Oracle采用关系型数据模型...

Global site tag (gtag.js) - Google Analytics