
ORACLE RMAN备份与恢复
Yushan Bai
目前仍热衷于ORACLE数据库,博客内容基本为原创,欢迎指点交流!
展开
-
数据库异常宕机导致的UNDO坏块修复
问题: 又一个夜半加班后的早上,刚睡着不久,客户来电有一个数据库环境异常宕机,之后无法启动。这时候顾不上睡意,抓紧连上环境,检查数据库ALERT日志,发现报错数据文件坏块,从ALERT日志中看是undotbs01.dbf上的坏块,报错ORA-01578及ORA-00600: internal error code, arguments: [2032], [12584268], [12584268]...原创 2020-10-16 09:34:32 · 731 阅读 · 0 评论 -
ORACLE 使用RMAN管理归档日志 archived log
oracle 归档日志通常使用rman进行管理,作为备份集的一部分正常情况下,可以根据方法删除1 过期策略crosscheck archivelog all;delete expired archivelog all;2 根据保留时间delete archivelog all complete before ‘sysdate – 7′ ;这个操作原创 2013-09-13 09:27:59 · 4104 阅读 · 0 评论 -
使用EXPDP/IMPDP导入导出表中数据/元数据测试
首先创建导出目录: --更详细命令及参数,见:http://blog.youkuaiyun.com/haibusuanyun/article/details/12584727BYS@ bys3>create directory dir_dp as '/home/oracle/';Directory created.BYS@ bys3>grant read,write on directory d原创 2013-12-18 13:30:01 · 10020 阅读 · 0 评论 -
丢失全部控制文件后从RMAN备份集中恢复示例
丢失全部控制文件 后用RMAN恢复的大致步骤可以写为:startup nomount;restore controlfile from autobackup;或者指定的有控制文件 备份的备份集alter database mount;recover database; alter database open resetlogs;1.先备份当前控制文件 [原创 2013-10-27 19:34:30 · 4909 阅读 · 0 评论 -
EXPDE/IMPDP使用详解
数据泵文件expdp介绍EXPDP命令行选项1. ATTACH该选项用于在客户会话与已存在导出作用之间建立关联.语法如下ATTACH=[schema_name.]job_nameSchema_name用于指定方案名,job_name用于指定导出作业名.注意,如果使用ATTACH选项,在命令行除了连接字符串和ATTACH选项外,不能指定任何其他选项,示例如下:Expdp原创 2013-10-10 19:38:16 · 5610 阅读 · 0 评论 -
RMAN常用配置命令解释
1.RMAN的登陆退出命令:方法一:$rman nocatalog 直接进入rman,以非 catalog 方式进行备份,也可以不要nocatalogrman〉 connect target / 连接到 target database 需要配置ORACLE的操作系统登陆认证方法二:rmantarget / rman target / nocatalog方原创 2013-09-12 16:18:01 · 2564 阅读 · 0 评论 -
RMAN多种备份脚本分享
1.相关参数介绍:命令行参数描述TARGET为目标数据库定义的一个连接字符串,当连接到一个目标数据库时,该连续是SYSDBA连接。该用户拥有启动和关闭数据库的权利,必须属于OSDBA组,必须建立一个口令文件允许SYSDBA连接。CATALOG连接到恢复目录。NOCATALOG原创 2013-09-12 16:56:55 · 9293 阅读 · 1 评论 -
转载-RMAN下CROSSCHECK命令详解
RMAN下CROSSCHECK命令详解 在用DELETE OBSOLETE 命令删除废弃的备份文件,如果出现如下错误(RMAN-06207 & RMAN-06208),那么需要用CROSSCHECK命令来解决:RMAN-06207: WARNING: 2 objects could not be deleted for DISK channel(s) dueRMAN-06208原创 2014-04-21 16:09:20 · 1665 阅读 · 0 评论 -
误删除数据文件、控制文件的非RMAN恢复方法
在Unix/Linux上删除所有的Controlfile控制文件后实例并不会在第一时间crash,相反居然还可以顺利完成FULL checkpoint 。这是为什么呢? ---注意这个问题仅适用于Unix/Linux, 在Windows平台上不允许删除 已经被其他进程打开的文件。究其根本原因是在Linux/Unix上Read 或 Write一个文件,进程都会打开一个与此文件相关联的 打开文件描述符 Open File Descriptors (a file descriptor (FD) is an原创 2014-03-07 12:26:41 · 2142 阅读 · 0 评论 -
表空间正在热备份时关闭实例重启报错的重现和解决
最近一个客户的库在OPEN时报错需要恢复,发现原因为当时一个表空间正在热备份-->ALTER TABLESPACE TEST1 BEGIN BACKUP; 然后实例异常关闭(可能为ABORT或KILL SMON等进程,这里据说为存储直接关闭导致),然后重启时遇到此错误。在ORACLE 10.2.0.1及11.2.0.4版本中重现了此错误,在这两个版本中同样的情况但是报错信息不太一样,具体情况原创 2014-11-11 23:14:37 · 2701 阅读 · 0 评论 -
验证控制文件、归档文件、不同BLOCK大小的数据文件对应的RMAN备份集不在同一PIECE
实验为了证明如下:RMAN备份中,归档日志、控制文件和数据文件不能放在同一个备份集里,因为数据文件所在的备份集以Oracel 数据块为最小单位,而控制文件块大小为作为16384,16K。归档日志文件所在的备份集也是以操作系统块为最小单位,此处为512字节。所以归档日志文件备份集、控制文件备份集和数据文件备份集不能在同一个备份集里面。---证明以上以后,创建不同块大小的表空间,测原创 2015-05-12 23:25:23 · 1148 阅读 · 0 评论 -
LINUX下使用crontab进行RMAN备份实验
之前写了脚本,手动执行可以,使用crontab总是无法运行成功,今天下午花了两个小时实验,完成如下:注意事项:脚本完成首先手动执行,确定可以正常执行。在crontab中使用,要注意以下几点:1.要定义环境变量,即使是使用的ORACLE用户crontab -e编辑的。source /home/oracle/.bash_profile或者直接将/home/oracle/.bash_prof原创 2013-09-12 17:03:37 · 4009 阅读 · 0 评论 -
ORACLE 11.2.0.4版本EXPDP不会导出回收站中数据
结论:在ORACLE 11.2.0.4版本数据库中,清理回收站与否,不影响EXPDP导出文件的大小-即EXPDP不会导出回收站中数据。1.正常导出SQL> select segment_name,bytes/1024/1024 mb from user_segments; SEGMENT_NAME MB------原创 2016-11-20 19:27:28 · 1335 阅读 · 0 评论 -
RAC12.1.0.2.161018PSU从RAC+ASM恢复到单实例非ASM遇到的BUG
RAC版本为:12.1.0.2.161018,使用ASM;恢复测试时,恢复到单实例非ASM环境时;在执行restore database命令时,alert日志中一直报错:WARNING: failed to start ASMB (connection failed) state=0x1 sid='',RMAN中restore database执行到分配通道后,也无法继续;此时查询v$se原创 2016-12-31 22:54:32 · 2129 阅读 · 1 评论 -
10G/11G/12cr1版本中backup archivelog命令是否会触发归档current logfile操作
被同事指出备份脚本中缺少手动切换日志的命令,事实上在10G及以上版本已经不需要此在脚本中加上此语句。主要通过查阅官方文档及实验,验证10G/11G/12cr1版本中backup archivelog命令是否会触发归档current logfile操作。结果如下;如果数据库在OPEN状态,运行BACKUP ARCHIVELOG命令时,如果不使用UNTIL/SEQUENCE关键字,会自动执行日原创 2017-01-21 19:06:38 · 2693 阅读 · 0 评论 -
在数据库各种状态下查询DBID的五大类十种方法汇总
关于DBID:DBID是DataBase IDentifier的缩写,意思就是数据库的唯一标识符。这个DBID在数据文件头和控制文件都是存在的,可以用于标示数据文件的归属。对于不同数据库来说,DBID应当不同,而db_name则可能是相同的。但是DBID是可变的,在进行数据库Clone等操作时,DBID可以被重置。dbid是一个根据db_name \ db create tim原创 2013-11-17 17:32:22 · 8531 阅读 · 0 评论 -
使用RMAN从相关的备份集、RMAN备份产生的日志等获取DBID的二种方法
方法一:从自动备份集中获取DBID--要求归档模式,并提前在RMAN中配置自动备份控制文件--此时有备份集产生就会自动备份控制文件自动备份控制文件入SPFILE文件缺省格式%F命名规则:如:C-IIIIIIII-YYYYMMDD-QQ 其中:C 控制文件;IIIIIIII DBID;YYYYMMDD 时间戳;QQ 序号00-FF。十六进制表示。关于RMAN备份,更多信息,原创 2013-11-17 17:21:54 · 3197 阅读 · 0 评论 -
从trace文件中查看rman备份操作的信息
1、执行RMAN备份脚本:脚本可以在博客里RMAN栏目下找到[oracle@bys001 ~]$ sh archback.sh RMAN> RMAN> 2> 3> 4> RMAN> [oracle@bys001 ~]$2.使用SYSDBA用户登陆并如下操作:[oracle@bys001 ~]$ sqlplus / as sysdbaSYS@bys1>show u原创 2013-09-13 09:59:06 · 1593 阅读 · 0 评论 -
RMAN备份相关的动态性能表
RMAN备份相关的动态性能表 V$ARCHIVED_LOG :本视图包含了所有归档重做日志文件的创建情况,备份情况以及其他信息。 V$BACKUP_CORRUPTION :这个视图显示了RMAN在哪些备份集中发现了损坏的数据坏。在你使用BACKUP VALIDATE命令对备份集进行检查时如果发现了损坏的数据块,RMAN将在这个视图中写入记录。V$COPY_CORRUPTIO :本视图显原创 2013-09-13 10:19:02 · 1192 阅读 · 0 评论 -
不同故障前景下的RMAN恢复方法列表及RMAN备份特点
各种故障背景下的恢复方法 丢失或损坏的文件 归档模式 数据库状态 恢复方法 一个或多个数据文件 不归档模式 关闭状态 利用一致的完全数据库备份修复整个数据库,自从备份之后发生的所有修改都将丢失;修复数据库后不需要进行恢复,利用RESETLOGS选项直接打开数据库;注意:在这种情况原创 2013-09-13 10:53:32 · 1428 阅读 · 0 评论 -
rman 使用catalog备份的演示
介绍了如何使用catalog方式做RMAN备份,以及如何取消以catalog方式做备份。第一步:创建RMAN CATALOG表空间及用户。[oracle@oel-01 ~]$ sqlplus / as sysdbaSQL> create tablespace catalog1 datafile '/u01/app/oracle/oradata/bys001/catalog1.dbf原创 2013-09-13 09:08:55 · 1900 阅读 · 0 评论 -
ORACLE模拟一个数据文件坏块并使用RMAN备份来恢复
1.创建一个实验用的表空间并在此表空间上创建表create tablespace block datafile '/u01/oradata/bys1/blocktest.dbf' size 1m;col name for a40select file#,name from v$datafile; FILE# NAME---------- ------------原创 2013-09-13 15:57:59 · 2356 阅读 · 0 评论 -
ORACLE使用RMAN对SYSTEM表空间进行介质恢复
注意:数据库应该支持在归档模式。1.对SYSTEMG表空间做一个备份[oracle@bys001 ~]$ rman target /Recovery Manager: Release 11.2.0.1.0 - Production on Tue Sep 17 10:42:18 2013Copyright (c) 1982, 2009, Oracle and/or its aff原创 2013-09-17 11:27:40 · 2046 阅读 · 0 评论 -
使用RMAN恢复全库、表空间、数据文件的方法总结
废话一句,恢复的前提是要有备份;所以说备份很重要。对数据库进行完全介质恢复 1、启动数据库到加载状态 RMAN> SHUTDOWN IMMEDIATE; RMAN> STARTUP MOUNT; 2、执行恢复操作RMAN> RESTORE DATABASE; RMAN> RECOVER DATABASE DELETE ARCHIVELOGS SKIP TABLESP原创 2013-09-13 16:34:49 · 3552 阅读 · 0 评论 -
使用EXP/IMP来进行数据库表的逻辑备份与恢复
1.数据库表的逻辑备份与恢复逻辑备份是指使用工具export将数据对象的结构和数据导出到文件的过程,逻辑恢复是指当数据库对象被误操作而损坏后使用工具import利用备份的文件把数据对象导入到数据库的过程。物理备份即可在数据库open的状态下进行也可在关闭数据库后进行,但是逻辑备份和恢复只能在open的状态下进行。 导出 导出具体的分为:导出表,导出方案,导出数据库三种方式。原创 2013-09-23 20:48:04 · 2125 阅读 · 0 评论 -
1RMAN备份概念
1.备份形式镜像复制imagecopies 实际上是把数据文件、控制文件或归档文件的复制,与用户通过操作系统命令复制实质一样。只不过直接应用操作系统的copy命令复制数据文件时,只是文件拷贝,而rman的copy则能够在复制的同时,验证数据的有效性。备份集 backupsets 通过RMAN创建逻辑备份对象,一个备份集中可以包含多个数据文件、控制文件或归档文件。备份集物理上由多个备份片转载 2013-09-12 16:14:59 · 1487 阅读 · 0 评论 -
比较数据泵和exp/imp对相同数据导出/导入的性能差异
1.创建测试表语句:128W条数据,216M。create table test as select * from dba_objects where rownumbeginfor i in 1 .. 7 loopinsert into test select * from test; commit;end loop; end;BYS@ bys001>s原创 2013-09-25 21:25:02 · 4211 阅读 · 0 评论 -
Oracle10g新特性——利用RMAN迁移表空间
转载自yangtingkun,感谢!Oracle10g对迁移表空间特性进行了进一步增强,利用RMAN进行表空间迁移,可以避免将源数据库的表空间置于READ ONLY状态。Oracle的迁移表空间是数据装载、迁移、升级的一个重要手段,利用这种方法,Oracle不再需要将表空间内所有表的数据导出到DMP文件,然后再通过导入工具导入到目标数据库中。Oracle从9i开始支持迁移表转载 2013-10-26 21:09:50 · 1637 阅读 · 0 评论 -
Oracle RMAN 兼容性 及 不同版本和不同平台之间使用 常见问题说明
注:转自DAVE的博客一.RMAN Catalog兼容性MOS的文档:RMAN Compatibility Matrix [ID 73431.1] 1.1 About RMAN CompatibilityThe RMAN environment can contain thefollowing components:--RMAN 环境由以下5部分组成:(1)转载 2013-10-26 20:55:07 · 3612 阅读 · 0 评论 -
使用sqlloader的直接加载方式和传统加载方式的性能差异
Direct 直接加载特点(1)数据绕过SGA直接写入磁盘的数据文件(2)数据直接写入高水位线HWM之后的新块,不会扫描HWM之前的空闲块(3)commit之后移动HWM他人才能看到(4)不对已用空间进行扫描(5)使用direct几乎不产生redo log,不是完全不产生(安全性差),但会产生undo数据(6)适用OLAP在线分析场景,增 删 改不频繁的场景Conv原创 2013-10-28 09:36:52 · 3669 阅读 · 0 评论 -
使用RMAN的不完全恢复-基于时间/SCN/日志序列
不完全恢复是指不完全的数据恢复,不完全恢复与完全恢复在许多方面是相同的,他们基本的命令集相同,但不完全恢复添加了一些其他命令。 引起不完全恢复的原因有很多,如丢失了联机重做日志或归档的重做日志,或者出现重大的用户错误。 不完全恢复会影响整个数据库,换句话,不能只对数据库的一部分执行不完全恢复操作,因为这个会使数据库的一部分具有与这个数据库其余部分不同的SCN和时间点。要将数据库数据还原到与数据原创 2013-10-11 17:46:48 · 3154 阅读 · 0 评论 -
归档模式下,使用RMAN的同一备份两次用于不完全恢复
实验理论基础:SCN的序列的递增性不随数据库的任何操作而改变,即使是RESETLOGS也如此。RESETLOGS清除所有联机日志文件中未应用的重做记录,RESETLOGS只重置日志文件的序列号为1,但对SCN无影响,SCN仍按原序列递增。在控制文件中保存resetlogs SCN和计数器,以便唯一地标识用RESETLOGS选项执行的每一次打开数据库的操作。这个值被写进每个数据文原创 2013-11-06 16:48:04 · 2493 阅读 · 0 评论 -
使用RMAN避免Split Block的产生
Split Block:热备份时(也就是OS命令拷贝cp,OS的cp单位不是data block而是os block)数据块刚好又在被用户修改,即,一个Oracle Block包含多个OS Block, OS Level的拷贝可能正拷贝的是一个Oracle Block的一部分(比如Header),而另一部分被用户更新,发生变化,这样导致一个Oracle Block内部的不一致,可能原创 2013-09-12 16:23:30 · 1295 阅读 · 0 评论