RMAN备份详解
1.7.1数据库备份与RMAN备份的概念
1.数据库完全备份:按归档模式分为归档和非归档
归档模式
打开状态,属于非一致性备份
关闭状态,可以分为一致性和非一致性
非归档模式
打开状态,非一致性备份无效
关闭状态,一致性备份,非一致性备份不被推荐
2.RMAN备份
RMAN使用服务器会话来完成备份操作,从RMAN客户端连接到服务器将产生一个服务器会话
RMAN备份内容包括:整个数据库,表空间,数据文件,指定的数据文件,控制文件,归档日志文件,参数文件等
3.RMAN备份的类型
完整备份(full) 或增量备份(incremental)
一致性备份(consistent)或不一致性备份(inconsistent)
热备(open)或冷备(closed),冷备时数据库必须处于mount状态,冷备可以为一致性备份或非一致性备份
完整备份
一个或多个数据文件的一个完整副本,包含从备份开始处所有的数据块.完整备份不能作为增量的基础
增量备份
包含从最近一次备份以来被修改或添加的数据块.可以分为差异增量备份和累计增量备份
差异增量备份仅仅包含n级或n级以下被修改过的数据块。备份数据量小,恢复时间长。
累计增量备份仅仅包含n-1级或n-1级以下被修改过的数据块。备份数据量大,恢复时间短。
0级增量备份相当于一个完整备份,该备份包含所有已用的数据块文件,与完整备份的差异是完整备份不能用作级增量备份的基础
一致性备份
备份所包含的各个文件中的所有修改都具备相同的系统变化编号(system change number,SCN)。
也就是说,备份所包含的各个文件中的所有数据均来自同一时间点。
一致性数据库完全备份(consis-tent whole database backup)进行还原(restore)后,不需要执行恢复操作(recovery)
非一致性备份
在数据库处于打开(open)状态时,或数据库异常关闭(shut down abnormally)后,对一个或多个数据
库文件进行的备份。非一致性备份需要在还原之后进行恢复操作
4.备份集与镜像副本
备份集
是包含一个或多个数据文件,归档日志文件的二进制文件的集合.备份集由备份片组成,一个备份集中可以包含一个或多个备份片
可以通过filesperset参数来设置备份集中可包含的备份片数,
也可以设定参数maxpiecesize来制定每个备份片的大小。
备份集中空闲的数据块将不会被备份,因此备份集可以支持压缩。备份集支持增量备份,可以备份到磁盘或磁带。
镜像副本
是数据文件或归档日志文件等的完整拷贝,未经过任何压缩等处理,不能备份到磁带,也不支持增量备份
恢复时可以立即使用实现快速恢复
等同于操作系统的复制命令
可以作为级增量备份
5.备份路径
可以备份到磁盘目录
可以备份到磁带
闪回区
6.备份限制
数据库必须处于mount或open状态
不能备份联机日志
在非归档模式下仅仅能作干净备份,即在干净关闭且启动到mount状态下备份
在归档模式下,current状态下数据文件可以备份
关于更多备份与恢复的概念请参考:Oracle 备份恢复概念
1.7.2使用RMAN进行备份
1.7.2.1备份数据库
RMAN> show all;
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/u01/app/oracle/rmanbak/df_%d_%U';
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/10g/dbs/snapcf_orcl.f'; # defaul
RMAN> backup database format '/u01/app/oracle/rmanbak/whole_%d_%U'; --备份整个数据库
RMAN> backup as compressed backupset database format '/u01/app/oracle/rmanbak/whole_%d_%U';--备份整个数据库并压缩备份集
rman>backup database plus archivelog;
rman>backup database plus archivelogdelete all input;
rman>backup as compressed backupset database include current controlfile plus archivelog delete all input;
RMAN> run{
allocate channel ch1 type disk --手动分配一个通道
maxpiecesize=2g; --指定备份片的大小为2g
backup as compressed backupset --压缩备份集
format '/u01/app/oracle/rmanbak/whole_%d_%U' filesperset=3--指定备份集中允许容纳的文件数为个
database;
release channel ch1;} --释放通道
RMAN> configure device type disk parallelism 3; --将并行度改为
old RMAN configuration parameters:
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET;
new RMAN configuration parameters:
CONFIGURE DEVICE TYPE DISK PARALLELISM 3 BACKUP TYPE TO BACKUPSET;
new RMAN configuration parameters are successfully stored
RMAN> backup as compressed backupset --并行度改为之后,自动启用了个通道
2> format '/u01/app/oracle/rmanbak/whole_%d_%U' filesperset=3
3> database;
Starting backup at 14-OCT-10
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=148 devtype=DISK --sid值对应v$session视图中的sid
allocated channel: ORA_DISK_2
channel ORA_DISK_2: sid=146 devtype=DISK
allocated channel: ORA_DISK_3
channel ORA_DISK_3: sid=144 devtype=DISK
RMAN> run{
2> allocate channel ch1 type disk
3> maxpiecesize=100m; --备份片大小设置为m,则一个备份集包含多个备份片,且每个备份片大小为100m
4> backup
5> format '/u01/app/oracle/rmanbak/whole_%d_%U'
6> database;
7> release channel ch1;}
RMAN> list backupset tag=TAG20101014T171115;
List of Backup Sets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
21 Full 690.30M DISK 00:01:39 14-OCT-10
List of Datafiles in backup set 21
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- ---------- ----
1 Full 1648791 14-OCT-10 /u01/app/oracle/oradata/orcl/system01.dbf
2 Full 1648791 14-OCT-10 /u01/app/oracle/oradata/orcl/undotbs01.dbf
3 Full 1648791 14-OCT-10 /u01/app/oracle/oradata/orcl/sysaux01.dbf
4 Full 1648791 14-OCT-10 /u01/app/oracle/oradata/orcl/users01.dbf
5 Full 1648791 14-OCT-10 /u01/app/oracle/oradata/orcl/example01.dbf
6 Full 1648791 14-OCT-10 /u01/app/oracle/oradata/orcl/tbs1.dbf
Backup Set Copy #1 of backup set 21
Device Type Elapsed Time Completion Time Compressed Tag
----------- ------------ --------------- ---------- ---
DISK 00:01:39 14-OCT-10 NO TAG20101014T171115
List of Backup Pieces for backup set 21 Copy #1
BP Key Pc# Status Piece Name
------- --- ----------- ----------
21 1 AVAILABLE /u01/app/oracle/rmanbak/whole_ORCL_0nlqemtj_1_1
22 2 AVAILABLE /u01/app/oracle/rmanbak/whole_ORCL_0nlqemtj_2_1
23 3 AVAILABLE /u01/app/oracle/rmanbak/whole_ORCL_0nlqemtj_3_1
24 4 AVAILABLE /u01/app/oracle/rmanbak/whole_ORCL_0nlqemtj_4_1
25 5 AVAILABLE /u01/app/oracle/rmanbak/whole_ORCL_0nlqemtj_5_1
26 6 AVAILABLE /u01/app/oracle/rmanbak/whole_ORCL_0nlqemtj_6_1
27 7 AVAILABLE /u01/app/oracle/rmanbak/whole_ORCL_0nlqemtj_7_1
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
22 Full 6.80M DISK 00:00:01 14-OCT-10
BP Key: 28 Status: AVAILABLE Compressed: NO Tag: TAG20101014T171115
Piece Name: /u01/app/oracle/rmanbak/whole_ORCL_0olqen0s_1_1
Control File Included: Ckp SCN: 1648817 Ckp time: 14-OCT-10
SPFILE Included: Modification time: 14-OCT-10
-----------------------------------------------------------------------------------------------------------------------
1.7.2.2备份数据文件
Oracle数据文件及表空间的管理请参考:Oracle 表空间与数据文件
RMAN> backup as copy datafile 4 --备份类型为镜像备份
2> format '/u01/app/oracle/rmanbak/df_%d_%U';
RMAN> list copy;
RMAN> backup datafile 4,5,6 format '/u01/app/oracle/rmanbak/df_%d_%U'; --备份类型为备份集
-----------------------------------------------------------------------------------------------------------------------
1.7.7.3备份表空间
Oracle数据文件及表空间的管理请参考:Oracle 表空间与数据文件
RMAN> backup tablespace users,example format '/u01/app/oracle/rmanbak/tb_%d_%U';
RMAN> backup tablespace temp; --临时表空间不需要备份
Starting backup at 14-OCT-10
using channel ORA_DISK_1
using channel ORA_DISK_2
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup command at 10/14/2010 18:56:12
RMAN-20202: tablespace not found in the recovery catalog
RMAN-06019: could not translate tablespace name "TEMP"
-----------------------------------------------------------------------------------------------------------------------
1.7.7.4备份控制文件
Oracle 控制文件的详细介绍请参考:Oracle 控制文件(CONTROLFILE)
RMAN> configure controlfile autobackup on;--自动备份控制文件置为on状态,将自动备份控制文件和参数文件
old RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters are successfully stored
注:在备份system01.dbf或system表空间时将会自动备份控制文件和参数文件,即使自动备份控制文件参数为off
--单独备份控制文件及参数文件
RMAN> backup current controlfile;
--备份数据文件时包含控制文件
RMAN> backup datafile 4 include current controlfile;
RMAN> sql "alter database backup controlfile to ''/tmp/orclcontrol.bak''";
sql statement: alter database backup controlfile to ''/tmp/orclcontrol.bak''
RMAN> sql "alter database backup controlfile to trace as ''/tmp/orclcontrol.sql''";
sql statement: alter database backup controlfile to trace as ''/tmp/orclcontrol.sql''
--单独备份spfile
RMAN> backup spfile format '/u01/app/oracle/rmanbak/sp_%d_%U';
RMAN> backup copies 2 device type disk spfile;
-----------------------------------------------------------------------------------------------------------------------
1.7.7.5备份归档日志文件
备份归档日志时仅仅备份归档过的数据文件(不备份联机重做日志文件)
备份归档日志时总是对归档日志做完整备份
RMAN对归档日志备份前会自动做一次日志切换,且从一组归档日志中备份未损坏的归档日志
RMAN会自动判断哪些归档日志需要进行备份
归档日志的备份集不能包含其它类型的文件
关于Oracle日志文件请参考:Oracle 联机重做日志文件(ONLINE LOG FILE)
关于Oracle归档日志请参考:Oracle 归档日志
RMAN> backup
2> format '/u01/app/oracle/rmanbak/lf_%d_%U'
3> archivelog all delete input; --delete input 删除所有已经备份过的归档日志
RMAN> backup --此种写法实现了上述相同的功能
2> archivelog all delete input
3> format '/u01/app/oracle/rmanbak/lf_%d_%U';
RMAN>backup archivelog sequence between 50 and 120 thread 1 delete input;
RMAN> backup archivelog from time "sysdate-15" until time "sysdate-7";
RMAN> backup
2> format '/u01/app/oracle/rmanbak/lf_%d_%U'
3> archivelog from sequence=80
4> delete input;
使用plus archivelog时备份数据库完成的动作(backup database plus archivelog)
1.首先执行alter system archive log current 命令(对当前日志归档)
2.执行backup archivelog all 命令(对所有归档日志进行备份)
3.执行backup database命令中指定的数据文件、表空间等
4.再次执行alter system archive log current
5.备份在备份操作期间产生的新的归档日志
--执行下面的命令,并观察备份列出的信息,可以看到使用plus archivelog时使用了上面描述的步骤来进行备份
RMAN> backup database plus archivelog
2> format '/u01/app/oracle/rmanbak/lg_%d_%U' delete input;
1.7.7.6备份闪回区
RMAN> backup recovery area;
使用backup recovery area时,将备份位于闪回区且未进行过备份的所有文件,这些文件包括完整、增量备份集、自动备份的
控制文件(假定使用闪回区作为备份路径时)、归档日志、数据文件的镜像副本等。闪回日志,当前的控制文件。
联机重做日志不会被备份
RMAN> backup recovery files;
使用backup recovery files时,将备份磁盘上未进行过备份的所有恢复文件,而不论是否位于闪回区
注:使用上述两条命令时,备份目的地必须是磁带
7.总结:
数据文件的备份集对于未使用的块可以执行增量备份,可以跳过未使用过的数据块来进行压缩备份
对于控制文件、归档日志文件、spfile文件则是简单的拷贝,并对其进行打包压缩而已
RMAN备份详解的更多相关文章
- RMAN 备份详解
一.数据库备份与RMAN备份的概念 1.数据库完全备份:按归档模式分为归档和非归档 归档模式 打开状态,属于非一致性备份 关闭状态,可以分为一致性和非一致性 非归档模式 打开状态,非一致 ...
- RMAN命令详解和常用汇总
RMAN命令详解和常用汇总转摘汇集,日后使用本文链接:https://blog.csdn.net/EVISWANG/article/details/50448370http://blog.itpub. ...
- MySQL数据库备份详解
原文:MySQL数据库备份详解 对于任何数据库来说,备份都是非常重要的 数据库复制不能取代备份的作用 比如我们由于误操作,在主数据库上删除了一些数据,由于主从复制的时间很短,在发现时,从数据库上的数据 ...
- rman命令详解(三)
1. Report 命令用户判断数据库的当前可恢复状态和提供数据库备份的特定信息1.1 指定最近没有备份的数据文件查询3天内没有备份过的表空间,可以用如下命令:RMAN> report need ...
- RMAN 参数详解
使用RMAN>show all;可以显示出RMAN 配置参数为: CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # defaultCONFIGURE B ...
- Mysqlbackup 备份详解(mysql官方备份工具)
A.1全库备份. 命令: mysqlbackup --defaults-file=/home/mysql-server/mysql3/my.cnf --user=root --password=ro ...
- Oracle rman 命令详解
一.list常用命令总结备忘 list命令列出控制文件.RMAN恢复目录中备份信息, 是我们对所有可见的数据库备份文件的一个最直观的了解的方法 list incarnation; list ba ...
- RMAN参数详解
在Oracle 10g中的配置情况使用RMAN>show all;可以显示出RMAN 配置参数为: CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # d ...
- mysqldump备份详解
-A 备份所有-B 恢复时会自动创建库 (同时支持导出多个库 -B db01 db02) -d 导出表结构 #库中有多个表导出时导出没加 –B参数,则要先导入结构,如果表结构没有备份,那就 ...
随机推荐
- 使用html2canvas实现超出浏览器部分截图
之前写过一篇关于 html2canvas如何在元素隐藏的情况下生成截图 的文章,后面发现还有个坑在等着我,就是如果合成图片太大,超出了浏览器的可视区域,那么超出部分是无法截图的.在网上找到了以下方法, ...
- tp-01 搭建过程
1:拷贝ThinkPHP框架系统文件夹自己的www目录中的tp-shop文件夹中 2:新建自己的项目文件(比如:shop)夹与ThinkPHP框架系统文件夹在同一级目录(当然也可以不同) 3: 在tp ...
- 'cl.exe' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
1.首先找到vcvars32.bat文件,一般在C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\bin文件夹下 2.打开cmd黑窗 ...
- linux pmap命令
pmap提供了进程的内存映射,pmap命令用于显示一个或多个进程的内存状态.其报告进程的地址空间和内存状态信息.Pmap实际上是一个Sun OS上的命令,linux仅支持其有限的功能.但是它还是对查看 ...
- thinkphp 操作mssql2008
配置文件 <?php return array( //'配置项'=>'配置值' //'USERNAME'=>'admin', //赋值 //数据库配置信息 'DB_TYPE' =&g ...
- Spring Boot 官方文档学习(二)特点
一.SpringApplication banner,就是启动时输出的信息,可以在classpath下添加 banner.txt,或者设置 banner.location 来指向特定的文件.(默认编码 ...
- 【Java面试题】18 java中数组有没有length()方法?string没有lenght()方法?下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d";
数组没有length()这个方法,有length的属性.String有有length()这个方法. int a[]; a.length;//返回a的长度 String s; s.length();// ...
- URAL 1203 Scientific Conference(贪心 || DP)
Scientific Conference 之前一直在刷计算几何,邀请赛连计算几何的毛都买见着,暑假这一段时间就做多校.补多校的题目.刷一下一直薄弱的DP.多校假设有计算几何一定要干掉-.- 题意:给 ...
- 恢复VS2013窗口的默认布局
打开VS2013 在菜单栏中找到“Window”即“窗口”选项 单击窗口中的“reset Window layout" 点击恢复窗口布局后会有如下提示,选择Yes即可 此时即 ...
- 关于NoSQL与SQL的区别
简单说来:sql是关系型数据库的结构化查询语言,而nosql,一般代指菲关系型数据库,sql语句就不能用来,不过有些有leisql的查询语言,且nosql数据库没有统一的查询语言. 相关参考文章阅读: ...