oracle不一致性关闭下次,Oracle11g备份与恢复-手工备份与恢复

第二章 手工备份与恢复

一)常用命令

1.备份和还原都会用到os命令,linux---cp

2.恢复:recover

二)备份前检查

1.检查需要备份的数据文件

SQL>col NAME FOR A100-----调整列显示长度

SQL>select name from v$datafile;----查看数据文件

aaab336c1e2b31edc5d77ea172862bc9.png

SQL> select file_id,file_name,tablespace_name from dba_data_files;

dba_data_files-----数据库数据文件信息表

d4faa99427fa89ae71be4a75e3a2517d.png

824fd84cb1dc658d830662fcabe75f38.png

2)检查要备份的控制文件

SQL> select name from v$controlfile;

85101c99b7cc8997a181895b872f8938.png

3)在线redo日志可以不做备份

如果是在线备份,肯定是归档模式

1、在线日志里面的内容,最后都会到归档日志里面的。所以只要备份归档日志就OK了。

2、所以,RMAN也不提供备份和RESTORE在线日志的命令。

如果是数据库关闭后备份,又是非归档模式的,没有干净shutdown的话,倒是应该备份在线日志的。

三)dbv检查坏块

在手工备份前,需要检查datafile是否存在坏块,在备份完成后也要对备份进行检查。

对某一个datafile进行坏块检查

1.没有参数,简单检查

2c1fd393e7762cf59df7dd570027856d.png

2.带有参数

ae1819b5bc42423df36837c3ebf50737.png

LOGFILE---可以指定输出日志,使用edit进行查看(ed 输出日志名)

四)冷备份的注意事项

1)必须要将数据库关闭干净,以保证数据的一致性;

SQL>shutdown immediate;

2)在os下必须备份所有的数据文件(完整备份)

3)在os下必须备份控制文件(至少备份一个)

4)非归档备份还原策略

恢复时还原所有的备份,重建所有在线日志,没有recover步骤

SQL>startup mount

SQL>alter database clear unarchived logfile group n;(n为所有在线日志组)查看有几个日志组select * from v$log;

SQL>alter database open;

五)手工非一致性备份(热备份)

1)在备份之前需要进入热备模式,备份后要结束热备模式

执行begin backup设置备份模式(在数据文件上生成检查点,写入scn,将来恢复的时候以这个写入的scn为起点)

对只读的表空间不能做热备份,临时表空间不需要进行备份,特别强调:NOARCHIVE模式下不支持手工热备

对整个数据库设置热备模式:alter database begin backup;

对整个数据库结束热备模式:alter database end backup;

对单个表空间设置热备模式:alter tablespace users begin backup;

对单个表空间结束热备模式:alter tablespace users end backup;

2)手工热备利用v$backup监控

例子:首先创建名为test_space的表空间以及名为test_user的用户,并将test_user用户的表空间指向test_space,之后将表空间test_space进行备份。

创建test_space表空间

SQL> create tablespace test_space datafile ‘/ora/oracle/oradata/orcl/test_space01.dbf‘ size 100M autoextend on next 10M;

883c514c514b774e692da6f50e6d86e2.png

查看创建的表空间

624b54338cb1588d3f51b9b3870445f7.png

(PS:区别:v$tablespace (v$视图) :是动态性能视图,存在于controlfile中,数据库在mount状态下可以查询;dba_tablespace (dba_数据字典) :是静态视图,存在于数据库中,只能在open时查询相同点:都是表示空间信息的)

创建用户并授权

SQL> create user test_user identified by 123123 default tablespace test_space

SQL> grant connect to test_user;

2f3dd2997205a1d12eb8373244836ae4.png

使用新建用户连接数据库,查看默认表空间个用户

938fc0235734bbe2f9597b1dc203657c.png

接下来将表空间test_space置于联机备份模式

SQL> alter tablespace test begin backup;

此时报错:ORA-01123: cannot start online backup; media recovery not enabled

原因是目前数据库处于非归档模式,所以无法进行在线备份,只有在归档模式的时候才可以进行在线备份,首先将数据库设置成归档模式。具体步骤参考博客:

https://blog.csdn.net/alen_liu_sz/article/details/77992430

d368fd1c33de53e82102d6997fd5e8dc.png

3fcbb5e4d552494546b0db707e6153a6.png

41c44709a4e3e59e4e5d89626b70863d.png

030e6c6d802215a2f0eb4b4069658660.png

SQL> select file#,checkpoint_change# from v$datafile_header;

在备份期间,SCN被冻结,当检查点发生时不受影响,他是恢复阶段运用日志的起点。

52978fce5c6ed619ffcb03c5b5052419.png

SQL> select * from v$backup;

这里的STATUS是ACTIVE,证明是可以备份相应的数据文件。

2dde6b408fc2322854a3b72eb705b7fc.png

此时就可以到服务器上,相应的数据文件路径下将文件进行备份。

[[email protected] orcl]$ cp test_space01.dbf /ora/test_space01.dbf.bak

备份完毕后,就可以关闭联机在线备份,需要尽快执行endbackup。

如果再end backup之前发生数据库abort(终止),那么可以在下次启动到mount时end backup,从而完成实例恢复。

0276fd40c86e36affe8a7b0a1ec9ec17.png

六)split block(fractured block)问题

一个Oracle block一般包含多个OS block,当手工热备时,OS的cp单位不是Oracle block而是OS block,而Oracle的DBWR又可能不时从内存中刷新Oracle block(脏块)到磁盘上,如此,OS的级的拷贝可能造成:一个Oracle block是由不同的版本组成,比如,未被DBWR刷新Header block加上另一部分被刷新的foot block,这样cp出来的Oracle block就是split block。

数据库的一致性是不允许oracle block是split的,split block实际上属于logical corruption Oracle采取的办法是:在backup mode后,如果发现首次DBWR要写脏块,则将该块被刷新之前的镜像数据记录到redo buffer,这样,虽然cp后的文件里仍然含有split block,而当需要恢复的时候,日志会前滚该块的前镜像,以保证所有被恢复的oracle block最终是一个完整的版本。

这也是我们常常发现在热备的时候日志文件会急剧增大的原因。

RMAN备份不会造成split block。RMAN备份时以oracle block为读取单元,并查验块的一致性,如果不一致会重复读,三次失败,将标注该块为逻辑坏块。

原文:https://www.cnblogs.com/KAJIA1/p/12623516.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值