oracle第二次打开没有表了,Oracle undo 表空间数据文件丢失强制启动数据库(没有未提交的事务)...

环境:RHEL 6.5   Oracle 11.2.0.3

如果有RMAN备份的话,如果恢复数据文件就可以完成,本次我们测试在没有备份的情况下如何拉起数据库

重命名UNDO表空间的数据文件

[oracle@test-db orcl]$ mv undotbs02.dbf undotbs02.dbf_bak

启动数据库

SYS@orcl> startup

ORACLE instance started.

Total System Global Area  784998400 bytes

Fixed Size                  2232472 bytes

Variable Size             591400808 bytes

Database Buffers          188743680 bytes

Redo Buffers                2621440 bytes

Database mounted.

ORA-01157: cannot identify/lock data file 7 - see DBWR trace file

ORA-01110: data file 7: '/u01/app/oracle/oradata/orcl_data/orcl/undotbs02.dbf'

根据提示信息数据 7  有问题,查看alert.log文件

ALTER DATABASE OPEN

Errors in file /u01/app/oracle/diag/rdbms/primary_orcl/orcl/trace/orcl_dbw0_2532.trc:

ORA-01157: cannot identify/lock data file 7 - see DBWR trace file

ORA-01110: data file 7: '/u01/app/oracle/oradata/orcl_data/orcl/undotbs02.dbf'

ORA-27037: unable to obtain file status

Linux-x86_64 Error: 2: No such file or directory

Additional information: 3

Block change tracking file is current.

Errors in file /u01/app/oracle/diag/rdbms/primary_orcl/orcl/trace/orcl_ora_2621.trc:

ORA-01157: cannot identify/lock data file 7 - see DBWR trace file

ORA-01110: data file 7: '/u01/app/oracle/oradata/orcl_data/orcl/undotbs02.dbf'

ORA-1157 signalled during: ALTER DATABASE OPEN...

Sun Jan 13 15:32:08 2019

Checker run found 1 new persistent data failures

日志文件中也显示 7号数据文件找不到了

###########################################################################

开始强制拉起数据库

启动数据库至MOUNT状态

SYS@orcl> shutdown immediate

ORA-01109: database not open

Database dismounted.

ORACLE instance shut down.

SYS@orcl> startup mount;

ORACLE instance started.

Total System Global Area  784998400 bytes

Fixed Size                  2232472 bytes

Variable Size             591400808 bytes

Database Buffers          188743680 bytes

Redo Buffers                2621440 bytes

Database mounted.

将 文件号为 7 的数据库文件offline 并 打开数据库

SYS@orcl> alter database datafile 7 offline drop;

Database altered.

SYS@orcl> alter database open;

Database altered.

创建新的UNDO表空间,并设置为数据库默认表空间

SYS@orcl> create undo tablespace undotbs1 datafile '/u01/app/oracle/oradata/orcl_data/orcl/undotbs1.dbf' size 500m ;

Tablespace created.

SYS@orcl> show parameter undo

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

undo_management                      string      AUTO

undo_retention                       integer     900

undo_tablespace                      string      UNDOTBS2

SYS@orcl> alter system set undo_tablespace='UNDOTBS1' scope=spfile;

System altered.

重启数据库

SYS@orcl> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SYS@orcl> startup

ORACLE instance started.

Total System Global Area  784998400 bytes

Fixed Size                  2232472 bytes

Variable Size             591400808 bytes

Database Buffers          188743680 bytes

Redo Buffers                2621440 bytes

Database mounted.

Database opened.

SYS@orcl> show parameter undo

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

undo_management                      string      AUTO

undo_retention                       integer     900

undo_tablespace                      string      UNDOTBS1

SYS@orcl>

总结:

这是最简单的一种情况下恢复undo表空间丢失的情况,也是很容易的。

直接  offile 相关数据文件,打开数据库重新创建UNDO表空间并默认为数据库默认表空间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值