利用RMAN修改损坏的数据块
- 格式:docx
- 大小:23.13 KB
- 文档页数:5
Rman使用简明一、Rman备份概述1,含义RMAN可以用来备份和恢复数据库文件、归档日志和控制文件,在9i中也可以用来备份和恢复spfile。
也可以用来执行完全或不完全的数据库恢复。
RMAN启动数据库上的Oracle服务器进程来进行备份或还原。
备份、还原、恢复是由这些进程驱动的。
具有如下特点:1)功能类似物理备份,但比物理备份强大N倍,从下面的特点可以看到;2)可以压缩空块;3)可以在块水平上实现增量;4)可以把备份的输出打包成备份集,也可以按固定大小分割备份集;5)备份与恢复的过程可以自动管理;6)可以使用脚本(存在Recovery catalog中)7)可以做坏块监测2,概念备份集(backup sets):备份集顾名思义就是一次备份的集合,它包含本次备份的备份片,以oracle 专有的格式保存。
一个备份集根据备份的类型不同,可能构成一个完全备份或增量备份。
注:一次备份可能产生多个备份集,根据数据量的大小和参数设定不同而变化备份片(Backup pieces):每个备份片是一个单独的输出文件。
如果备份片没有大小的限制,一个备份集就只由一个备份片构成。
备份片的大小不能大于你的文件系统所支持的文件长度的最大值。
Image copies (映像备份)映像备份不压缩、不打包、直接COPY独立文件(数据文件、归档日志、控制文件),类似操作系统级的文件备份。
Full backup 全备份全备份是指对数据文件中使用过的数据块进行备份,没有使用过的数据块是不做备份的,也就是说,RMAN进行备份是进行压缩的。
Incremental backup 增量备份增量备份是指备份数据文件中自从上一次同一级别的或更低级别的备份以来被修改过的数据块。
与完全备份相同,增量备份也进行压缩。
增量备份虽然概念很好,备份也很简单,但恢复起来却是另外一回事,不仅麻烦而且容易出错,所以实际中越来越少使用,到了Oracle 9i已经建议不再使用,以后版本会逐渐取消对增量备份的支持。
rman 块恢复原理
RMAN(Recovery Manager)是Oracle数据库的备份和恢复工具,它提供了一种灵活、可靠的方式来管理数据库的备份和恢复操作。
RMAN的块恢复原理涉及到数据库中的数据块、日志文件和备份集,
下面我会从多个角度来解释RMAN的块恢复原理。
首先,RMAN的块恢复原理基于数据库中的数据块。
在Oracle
数据库中,数据以逻辑上相连的块进行存储,每个块都有一个唯一
的标识符。
当数据库发生损坏或数据丢失时,RMAN可以通过备份集
中的数据块来恢复受损的数据。
其次,RMAN的块恢复原理还涉及到日志文件。
Oracle数据库使
用重做日志和归档日志来记录数据库的变化,包括数据块的修改。
RMAN可以利用这些日志文件来确定损坏的数据块的变化历史,以便
进行恢复操作。
另外,RMAN的块恢复原理还包括备份集。
RMAN可以创建全量备
份和增量备份,备份集中包含了数据库的数据文件和控制文件的备份。
当数据库发生损坏时,RMAN可以利用备份集中的数据块来进行
恢复操作。
总的来说,RMAN的块恢复原理是基于备份集、日志文件和数据库中的数据块进行的。
它通过备份集中的数据块和日志文件来确定损坏数据块的变化历史,并利用这些信息来恢复受损的数据。
这种方式可以确保数据库在发生故障时能够快速、可靠地恢复到正常状态。
rman检查坏块的几种方法以rman检查坏块的几种方法为标题,写一篇文章。
一、引言在数据库管理中,坏块是指物理存储介质中出现的损坏或不可访问的数据块。
坏块可能会导致数据丢失或数据库无法正常运行。
因此,及时发现和修复坏块是数据库管理的重要任务之一。
本文将介绍使用rman工具检查坏块的几种方法。
二、检查数据文件中的坏块1. 使用RMAN的validate命令RMAN提供了validate命令来检查数据库中的坏块。
可以使用以下命令检查指定数据文件中的坏块:RMAN> validate datafile <datafile_number>;该命令将对指定的数据文件进行坏块检查,并输出检查结果。
如果存在坏块,将会显示相关的错误信息。
2. 使用RMAN的blockrecover命令blockrecover命令可以用于修复数据库中的坏块。
在使用该命令之前,需要先执行validate命令来检查坏块。
然后,可以使用以下命令来修复坏块:RMAN> blockrecover datafile <datafile_number> block<block_number>;该命令将尝试修复指定数据文件中指定块的坏块。
修复过程可能需要一定的时间,取决于坏块的数量和大小。
三、检查控制文件中的坏块1. 使用RMAN的validate命令除了数据文件,控制文件中的坏块也可能导致数据库无法正常运行。
可以使用RMAN的validate命令来检查控制文件中的坏块:RMAN> validate controlfile;该命令将对控制文件进行坏块检查,并输出检查结果。
如果存在坏块,将会显示相关的错误信息。
2. 使用RMAN的restore命令如果控制文件中存在坏块,可以使用RMAN的restore命令来恢复控制文件。
在执行恢复之前,需要先备份当前的控制文件。
可以使用以下命令进行恢复:RMAN> restore controlfile from '<backup_location>';该命令将从指定的备份位置恢复控制文件,并替换掉当前的坏块控制文件。
ORACLE数据库故障解决方案Oracle数据库是当前世界上应用最广泛的关系型数据库之一,但在日常运维中,难免会遇到各种故障,如数据损坏、数据库停机等。
因此,能够迅速、准确地解决数据库故障至关重要。
本文将介绍几种常见的Oracle数据库故障解决方案。
1.数据库无法启动当Oracle数据库无法启动时,往往是由于以下原因导致的:数据库实例未启动、数据库文件损坏或不完整、数据库连接问题等。
我们可以采取以下步骤来解决这个问题:- 检查错误日志:查看数据库的错误日志文件(alert.log)以获取详细的错误信息,确定故障原因。
- 检查数据库实例:在Oracle数据库中,数据库实例由后台进程(如后台进程和前台进程)组成。
如果实例未启动,可以使用SQL*Plus 工具来手动启动实例,并确保每个后台进程正常运行。
- 恢复数据库文件:如果数据库文件损坏或不完整,可以使用Oracle提供的RMAN工具来恢复文件,或者使用备份文件进行恢复。
- 检查数据库连接:使用SQL*Plus工具检查数据库连接是否正常,如果存在连接问题,可以尝试重新配置网络服务或重启数据库监听器。
2.数据损坏数据损坏是Oracle数据库常见的故障之一,可能由硬件故障、软件错误、人为操作错误等原因引起。
当发生数据损坏时,可以使用以下方案进行修复:-恢复备份数据:如果有备份数据,则可以通过将备份数据恢复到故障数据库来解决数据损坏问题。
尽量选择最新的备份数据,以尽可能减少数据丢失。
- 利用日志文件:如果无法恢复备份数据,可以使用Oracle的恢复管理工具RMAN来利用归档日志文件进行恢复。
RMAN可以将日志文件中的变更应用到数据库中,避免数据丢失。
-手动修复:在一些情况下,可能需要手动修复数据。
具体操作方法取决于数据损坏的程度和类型,需要根据具体的情况采取相应的措施。
3.性能问题Oracle数据库性能问题常常涉及到数据库的优化、调整和配置。
下面是解决性能问题的一些常见方法:-查询优化:通过优化SQL查询语句,可以提高查询的性能。
RMAN的备份与恢复步骤详解RMAN(Recovery Manager)是Oracle数据库备份和恢复技术的核心工具,提供了一种集中管理和自动化备份和恢复操作的方式。
下面将详细介绍RMAN的备份与恢复步骤。
备份步骤:1.配置RMAN环境:确定RMAN备份目标、备份库、目标库的连接信息,并设置环境变量。
2.创建RMAN备份目标:使用CREATECATALOG命令创建RMAN备份目标,以存储备份信息和恢复目标的元数据。
3.创建备份策略:确定备份类型(完全备份、增量备份、增量备份级别等),备份周期(每日、每周)、备份级别(全局备份、局部备份)以及备份介质(磁盘、磁带)等。
4.执行备份命令:使用BACKUP命令执行备份操作。
根据备份策略选择相应的备份类型,并指定备份集的存储位置。
可以使用全量备份、增量备份或归档日志备份等方式进行备份。
5.备份验证和测试:使用RESTORE命令验证备份集是否可恢复。
可以恢复到测试库中,检查数据的完整性以及备份恢复的过程和时间。
恢复步骤:1.准备恢复环境:确定系统状态,关闭数据库、归档日志模式,备份控制文件,以备份增量恢复,恢复目标数据库的连接信息,并设置环境变量。
2.恢复控制文件:将备份的控制文件还原到指定位置,以获取数据库的结构信息。
3.恢复数据库文件:使用RESTORE命令恢复需要的数据文件。
可以选择完全恢复(使用全量备份和归档日志进行恢复)、增量恢复(使用增量备份和归档日志进行恢复)或点恢复(使用时间点或SCN号进行恢复)的方式。
4.打开数据库:使用OPENRESETLOGS命令打开数据库,恢复数据库文件到最新的状态。
5.检查恢复结果:验证恢复后数据库的完整性和一致性。
使用相应的SQL语句检查数据的正确性、索引的可用性和对象的有效性。
常见问题处理:1.恢复失败的处理:RMAN提供了很多失败后的处理命令,比如RECOVER命令来恢复损坏的数据文件,CROSSCHECK命令来检查备份文件的完整性等。
OracleRMAN操作详解RMAN(Recovery Manager):恢复管理器RMAN概念:RMAN: Recovery Manager,是备份和恢复数据库的管理⼯具建⽴备份和恢复的server process,在oracle server上做备份和恢复具有如下特点:1 )功能类似物理备份,但⽐物理备份强⼤ N 倍,从下⾯的特点可以看到;2 )可以压缩空块;3 )可以在块⽔平上实现增量;4 )可以把备份的输出打包成备份集,也可以按固定⼤⼩分割备份集;5 )备份与恢复的过程可以⾃动管理;6 )可以使⽤脚本(存在 Recovery catalog 中);RMAN的组成概念:RMAM client (RMAN客户端)⽤来操作备份与恢复的客户端应⽤,可以通过⽹络连接到⽬标数据库;target database(⽬标数据库)RMAN备份和恢复的数据库,就是⽬标库;你的备份和恢复的⽬标,就叫做⽬标库auxiliary database(辅助数据库)主库的副本,⼀般⽤于测试,主库与辅助库的DBID不同,DB_NAME可以不同Catalog database(恢复⽬录数据库)存放RMAN备份的元数据信息,默认存放在控制⽂件中,由于控制⽂件中分为循坏重⽤记录与⾮循环重⽤记录,备份信息属于循环重⽤记录,会不断被覆盖重⽤,默认会保留7天,保存时间有限,可以使⽤恢复⽬录数据库实现RMAN备份元数据信息的长久保存。
media manager(介质管理器)如果想要把备份⽂件存放到其他设备(例如带库)就需要介质管理器。
fast recovery area(闪回恢复区)默认情况下,RMAN会将备份存放在闪回恢复区中。
db_recovery_file_destdb_recovery_file_dest_size视图:v$recovery_file_destv$recovery_area_usagechannel(通道):RMAN⼯具到存储设备的数据流叫通道。
恢复管理器(Recovery Manager)使用手册1. 介绍恢复管理器(Recovery Manager)是Oracle数据库的一个关键组件,它负责数据库的备份和恢复。
在数据库管理中,备份和恢复是非常重要的工作,它们可以保证数据库的安全性和可靠性。
本文将深入探讨恢复管理器的使用手册,帮助读者更好地了解和掌握数据库备份和恢复的技能。
2. 恢复管理器的基本概念在深入了解恢复管理器的具体使用方法之前,首先需要明确一些基本概念。
恢复管理器通过备份和恢复文件来保护数据库,它可以创建全量备份、增量备份和归档日志备份,同时支持不同的恢复策略和场景。
在使用恢复管理器之前,需要对数据库备份和恢复的基本原理有一定的理解,包括备份集、恢复集、备份件、恢复目录等概念。
3. 恢复管理器的使用流程恢复管理器的基本使用流程包括备份和恢复两个阶段。
在备份阶段,可以创建全量备份和增量备份,同时可以将备份文件存储到磁盘或者磁带等介质中。
在恢复阶段,可以根据需要选择恢复到某个时间点或者某个恢复集,同时可以应用归档日志进行恢复。
在实际操作中,恢复管理器提供了丰富的命令和选项,可以灵活地满足不同场景下的备份和恢复需求。
4. 恢复管理器的高级功能除了基本的备份和恢复功能外,恢复管理器还提供了许多高级功能,如备份优化、备份集复制、备份集压缩、备份集加密等。
这些功能可以提升备份效率和节省存储空间,同时可以加强备份文件的安全性。
在实际使用中,可以根据具体需求来选择是否使用这些高级功能,以达到更好的备份和恢复效果。
5. 个人观点和总结作为数据库管理人员,掌握恢复管理器的使用技巧是非常重要的。
通过合理地制定备份和恢复策略,可以保证数据库的安全和可靠性。
恢复管理器作为Oracle数据库的重要组件,其强大的功能和灵活的选项可以满足不同场景下的备份和恢复需求。
我建议对于数据库管理人员来说,深入学习和掌握恢复管理器的使用方法,将会极大地提升工作效率和数据库安全性。
利用RMAN修改损坏的数据块一、系统环境操作系统:Microsoft Windows XP [版本 5.1.2600]数据库:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Production二、实验步骤C:\>SET ORACLE_SID=MFC:\>SQLPLUS / AS SYSDBASQL*PLUS: RELEASE 10.2.0.1.0 - PRODUCTION ON MON AUG 15 16:54:59 2011COPYRIGHT (C) 1982, 2005, ORACLE. ALL RIGHTS RESERVED.连接到:ORACLE DATABASE 10G ENTERPRISE EDITION RELEASE 10.2.0.1.0 - PRODUCTIONWITH THE PARTITIONING, OLAP AND DATA MINING OPTIONS启用归档:SQL>SHUTDOWN IMMEDIATESQL>STARTUP MOUNTSQL>ALTER DATABASE ARCHIVELOG;查询归档:SQL> ARCHIVE LOG LIST数据库日志模式存档模式自动存档启用存档终点D:\ORACLE\PRODUCT\10.2.0\DB_1\RDBMS最早的联机日志序列 6下一个存档日志序列8当前日志序列8RMAN备份:SQL> HOST RMAN TARGET /恢复管理器: RELEASE 10.2.0.1.0 - PRODUCTION ON MON AUG 15 17:03:30 2011COPYRIGHT (C) 1982, 2005, ORACLE. ALL RIGHTS RESERVED.连接到目标数据库: MF (DBID=2242674473)RMAN> BACKUP TABLESPACE USERS;启动BACKUP 于15-AUG-11使用目标数据库控制文件替代恢复目录分配的通道: ORA_DISK_1通道ORA_DISK_1: SID=141 DEVTYPE=DISK通道ORA_DISK_1: 启动全部数据文件备份集通道ORA_DISK_1: 正在指定备份集中的数据文件输入数据文件FNO=00004 NAME=D:\ORACLE\PRODUCT\10.2.0\ORADATA\MF\USERS01.DBF通道ORA_DISK_1: 正在启动段1 于15-AUG-11通道ORA_DISK_1: 已完成段 1 于15-AUG-11段句柄=D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\02MK2N4T_1_1标记=TAG20110815T170429 注释=NONE通道ORA_DISK_1: 备份集已完成, 经过时间:00:00:03完成BACKUP 于15-AUG-11模拟坏块:SQL> DROP TABLE SCOTT.T1;表已删除。
SQL> CREATE TABLE SCOTT.T1 AS SELECT * FROM DBA_OBJECTS;表已创建。
SQL> SELECT COUNT(0) FROM SCOTT.T1;COUNT(0)----------50318SQL> SELECT SEGMENT_NAME,HEADER_FILE ,HEADER_BLOCK FROM DBA_SEGMENTS WHERE SEGMENT_NAME='T1' AND OWNER='SCOTT';SEGMENT_NAME HEADER_FILE HEADER_BLOCK-------------------- ----------- ----------------------- ----------------------T1 4 1315SQL> SELECT TO_CHAR(1315*8*1024, 'XXXXXXXXXXXXXXXXXXXXX') FROM DUAL;TO_CHAR(1315*8*1024,'X-----------------------------------A46000SQL> SELECT TO_CHAR(1316*8*1024, 'XXXXXXXXXXXXXXXXXXXXX') FROM DUAL;TO_CHAR(1316*8*1024,'X---------------------------------A48000可以用UE找出Table T01的段头块进行破坏,段头块是UE打开数据库文件如上图的A46000H---18000H,破坏这之间的数据,修改数据之前先进行三次日志切换或执行一次系全局检查点,让刚创建的表中的数据都正常地归档。
SQL> SELECT NAME FROM V$DATAFILE WHERE FILE#=4;NAME----------------------------------------------------------------------------D:\ORACLE\PRODUCT\10.2.0\ORADATA\MF\USERS01.DBF破坏了块头之后,再次进行查询,结果还是可以正常查询出结果:SQL> SELECT COUNT(0) FROM SCOTT.T1;COUNT(0)-------------------50318说明:由于之前查询过该表,而该表中的数据都在DB_BUFFER_CACHE中,所以以上查询是直接从BUFFER_CACHE中读取的,因而不会报错,当执行了下面的命令后,再次查询会报错。
SQL> ALTER SYSTEM FLUSH BUFFER_CACHE;SQL>SELECT COUNT(0) FROM SCOTT.T1;SELECT COUNT(0) FROM SCOTT.T1*第 1 行出现错误:ORA-01578: ORACLE 数据块损坏(文件号4, 块号1315)ORA-01110: 数据文件4: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\MF\USERS01.DBF'利用DBV检查坏块:SQL> HOST DBVFILE='D:\ORACLE\PRODUCT\10.2.0\ORADATA\MF\USERS01.DBF' BLOCKSIZE=8192; DBVERIFY: RELEASE 10.2.0.1.0 - PRODUCTION ON MON AUG 15 17:26:01 2011 COPYRIGHT (C) 1982, 2005, ORACLE. ALL RIGHTS RESERVED.DBVERIFY - 开始验证: FILE = D:\ORACLE\PRODUCT\10.2.0\ORADATA\MF\USERS01.DBF 页1315 标记为损坏CORRUPT BLOCK RELATIVE DBA: 0X01000523 (FILE 4, BLOCK 1315)BAD CHECK VALUE FOUND DURING DBV:DATA IN BAD BLOCK:TYPE: 35 FORMAT: 2 RDBA: 0X01000523LAST CHANGE SCN: 0X0000.000934A0 SEQ: 0X1 FLG: 0X04SPARE1: 0X0 SPARE2: 0X0 SPARE3: 0X0CONSISTENCY VALUE IN TAIL: 0X34A02301CHECK VALUE IN BLOCK HEADER: 0X6352COMPUTED BLOCK CHECKSUM: 0XA000DBVERIFY - 验证完成检查的页总数: 2080处理的页总数(数据): 1543失败的页总数(数据): 0处理的页总数(索引): 93失败的页总数(索引): 0处理的页总数(其它): 175处理的总页数(段) : 0失败的总页数(段) : 0空的页总数: 268标记为损坏的总页数: 1流入的页总数: 0最高块SCN : 603292 (0.603292)查询出坏块:CORRUPT BLOCK RELATIVE DBA: 0X01000523 (FILE 4, BLOCK 1315)RMAN恢复SQL> HOST RMAN TARGET /恢复管理器: RELEASE 10.2.0.1.0 - PRODUCTION ON MON AUG 15 17:27:49 2011COPYRIGHT (C) 1982, 2005, ORACLE. ALL RIGHTS RESERVED.连接到目标数据库: MF (DBID=2242674473)RMAN> BLOCKRECOVER DATAFILE 4 BLOCK 13152> ;启动BLOCKRECOVER 于15-AUG-11使用目标数据库控制文件替代恢复目录分配的通道: ORA_DISK_1通道ORA_DISK_1: SID=143 DEVTYPE=DISK通道ORA_DISK_1: 正在恢复块通道ORA_DISK_1: 正在指定要从备份集恢复的块正在恢复数据文件00004 的块通道ORA_DISK_1: 正在读取备份段D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\02MK2N4T_1_1通道ORA_DISK_1: 已从备份段1 恢复块段句柄= D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\02MK2N4T_1_1 标记= TAG20110815T170429通道ORA_DISK_1: 块恢复完成, 用时: 00:00:02正在开始介质的恢复介质恢复完成, 用时: 00:00:03完成BLOCKRECOVER 于15-AUG-11RMAN> EXIT恢复管理器完成。
恢复后再次查询没有问题了SQL> SELECT COUNT(0) FROM SCOTT.T1;COUNT(0)---------------------50318总结:当数据库在运行过程中出现坏块时,数据库可以在打开状态下可以使用RMAN来恢复,但是数据库必须是归档模式,同时必须有该块数据文件的备份以及所有的归档日志才能进行恢复。