转载自:https://yq.aliyun.com/articles/582880 背景 一个较大的数据库,如何只恢复一部分数据(例如只恢复某个DB). 如果访问有坏块的表. 如何从无法启动的数据库中,恢复到有意义的数据. 如何正确的进行备份. 如何恢复到过去的某个时间点. 恢复部分数据库 <PostgreSQL Selectivity Tablespace PITR - 部分表空间恢复> 跳过坏块 zero_damaged_pages <PostgreSQL Developer Opt…
模拟数据块坏块: 对于发生数据块不一致的数据块,如果当前数据库有备份且处于归档模式,那么就可以利用rman工具数据块恢复功能 对数据块进行恢复,这种方法最简单有效,而且可以在数据文件在线时进行,不会发生数据丢失.对于被有备份的数据库 发生数据块损坏,可能会发生数据的丢失或数据不丢失,这要根据发生坏块的所在的对象决定的,如索引块发生损坏,数据 就不会丢失,重建索引就可以了,发生数据丢失的多发生在表或分区表数据块上. 1.不丢数据的恢复方法 ---使用rman工具的 blockrecover blo…
份的情况下可以直接使用备份来恢复. 对于通过备份恢复,Oracel为我们提供了很多种方式,冷备,基于用户管理方式,RMAN方式等等. 对于这几种方式我们需要实现基于数据库以及文件级别的恢复.RMAN同时也提供了基于块介质方式的恢复. 也就是说我们根本不需要还原数据文件,而是直接从备份文件基于块来提取以实现联机恢复. 可参考基于RMAN实现坏块介质恢复(blockrecover) .这是比较理想的情形.如果没有任何备份怎么办? 我们可以使用Oracle自带的DBMS_REPAIR包来实现修复.注意…
1.物理坏块和逻辑坏块 在数据库中有一个概念叫做数据块的一致性,Oracle的数据块的一致性包括了两个层次:物理一致性和逻辑一致性,如果一个数据块在这两个层次上存在不一致性,那就对应到了我们今天要要说的物理坏块和逻辑坏块. 在每一个数据块的头部有一个校验和字段,每当数据块要被写回磁盘前,Oracle都会重新计算 这个数据块的校验和,并记录到这个字段最终写会磁盘.下次数据块被读入内存,Oracle会重新 计算数据块的校验和,并和块头的字段相比较,如果有差异,Oracle就知道这个数据块有错误, 会…
oracle 数据库坏块--物理坏块 数据坏块的类型物理坏块:通常是由于硬件损坏如磁盘异常导致.内存有问题.存储链有问题. IO有问题.文件系统有问题. Oracle本身的问题等逻辑坏块:可能都是软件问题导致通常是由于oracle bug导致,比如data block和index block数据不一致第三方软件或者硬件造成的物理损坏物理数据坏块的场景常见的物理坏块(Physical Block Corruptions)有块头和块尾信息不一致(Fractured/Incomplete),check…
13 oracle数据库坏块-逻辑坏块 逻辑数据坏块的场景1)oracle bug也可能导致逻辑坏块的产生. 特别是parallel dml. 例如:Bug 5621677 Logical corruption with PARALLEL updateBug 6994194 Logical corruption from UPDATE DMLBug 15980234 ORA-1400 / logical corruption from direct path INSERT ALL(fail wi…
备份和恢复有三种不同的基本方法来备份PostgreSQL数据SQL转储文件系统级备份File system level backup连续归档 1. SQL转储 pg_dump dbname > outfile-n schema -t table-bash-4.2$ pg_dump --helppg_dump创建的备份在内部是一致的,在执行命令的时候对数据库的快照,运行过程中的数据不会被备份,备份的时候堵塞数据库的操作(但是会阻塞那些需要排它锁的操作,比如大部分形式的ALTERTABLE)-bas…
硬盘的故障情况可以分为以下几类: 1.控制电路故障 大部分外电路的问题是电源芯片或主轴驱动芯片烧坏引起的,由于硬盘电路板质量问题.设计缺陷.市电波动.突然断电.芯片老化或者散热不良.静电等原因造成芯片烧毁.击穿,严重的还会波及磁头芯片的损坏.这种情况基本上可以通过对外电路的修复来解决. 2.磁盘坏道 硬盘磁头在盘片上的某一扇区读取时间过长或者无法读取,那么这个扇区就可能是坏扇区,也就是通常所说的坏道. 坏道一般表现为: 无法启动.经常死机.读写困难等等. 3.固件信息丢失或损坏 固件是用来控制硬…
本文转自 惜纷飞 大师. 模拟基表事务未提交数据库crash,undo丢失恢复异常恢复,运维DBA反映Oracle数据库无法启动报错ORA-01157 ORA-01110,分析原因为Oracle数据库坏块导致 对于基表特别是bootstrap$中的表,如果进行了dml操作,但是没有提交,这个时候数据库crash,而且undo异常.对于类似的场景,都是很多数据库恢复的人都有畏惧,因为_corrupted_rollback_segments参数不能起作用.本实验dml修改seq$表,最终却引起了un…
PostgreSQL recovery.conf恢复配置 这一章描述recovery.conf 文件中可用的设置.它们只应用于恢复期.对于你希望执行的任意后续恢复, 它们必须被重置.一旦恢复已经开始,它们就不能被更改.recovery.conf中的设置以name = ’value’的形式指定. 每一行指定一个参数.井号(#)表示行的剩余部分是一段注释. 要在一个参数值中嵌入一个单引号,将其双写(”).在安装的share/目录中提供了一个例子文件, share/recovery.conf.samp…