rman管理3 对数据库进行备份

RMAN备份类:

1)backupset:只备份datafile里已经使用过的块( segment HWM以下)、可以实现增量备份(可以备份到disk和tape)。如果只启用一个channel,默认会把所有备份的datafile放入到一个backupset里,并且生成一个备份片(backup piece,在OS下看到的备份文件)恢复时速度慢,需要从备份集里先释放数据文件

backup piece :由backupset 生成的备份文件,保存在os下

2) copy(immage 镜像):实际上和手工cp 是类似的,备份datafile 所有的数据块,不能实现增量备份(但可以作为增量备份的0级备份),只能备份到disk ,不能备份到tape,恢复时速度快 ,不需要做restore。

RMAN备份命名方式:

RMAN备份文件可以自定义各种各样的格式,如下:

%c 备份片的拷贝数

%D 位于该月中的第几天 (DD)

%M 位于该年中的第几月 (MM)

%F 一个基于DBID 唯一的名称,这个格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,

%d 数据库名称其中IIIIIIIIII 为该数据库的DBID,YYYYMMDD 为日期,QQ 是一个1-256 的序列

%n 数据库名称,向右填补到最大八个字符

%u 一个八个字符的名称代表备份集与创建时间

%p 该备份集中的备份片号,从1 开始到创建的文件数

%U 一个唯一的文件名,代表%u_%p_%c

%s 备份集的号

%t 备份集时间戳

%T 年月日格式(YYYYMMDD)

增量备份:只备份发生变化的block(rman通过在备份时记录datablock的scn,下次备份时通过比较上次备份的数据块上的scn来确定数据块是否发生变化)

1)差异增量备份(Differential incremental backup):下次备份时比较上次以来同级别或低级别的备份,为备份基础

2)累积增量备份的区别:只比较比自己级别低的作为备份基础

实验一:

在归档模式下对数据库进行level 0全备:

RMAN>  run{
2>  sql ‘alter system archive log current‘;
3>  allocate channel c1 type disk;
4>  allocate channel c2 type disk;
5>  backup  incremental level 0 database format ‘/ora_data/prod/full_bk_L0_%c%U.dbf‘;
6>  release channel c1;
7>  release channel c2;
8>  }

sql statement: alter system archive log current

released channel: ORA_DISK_1
allocated channel: c1
channel c1: SID=17 device type=DISK

allocated channel: c2
channel c2: SID=22 device type=DISK

Starting backup at 01-JUL-15
channel c1: starting incremental level 0 datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/prod/system01.dbf
input datafile file number=00006 name=/u01/app/oracle/oradata/prod/test02.dbf
input datafile file number=00007 name=/u01/app/oracle/oradata/prod/test1.dbf
channel c1: starting piece 1 at 01-JUL-15
channel c2: starting incremental level 0 datafile backup set
channel c2: specifying datafile(s) in backup set
input datafile file number=00002 name=/u01/app/oracle/oradata/prod/sysaux01.dbf
input datafile file number=00003 name=/u01/app/oracle/oradata/prod/undotbs01.dbf
input datafile file number=00004 name=/u01/app/oracle/oradata/prod/users01.dbf
input datafile file number=00005 name=/u01/app/oracle/oradata/test01_new.dbf
channel c2: starting piece 1 at 01-JUL-15
channel c1: finished piece 1 at 01-JUL-15
piece handle=/ora_data/prod/full_bk_L0_12tqav7h3_1_1.dbf tag=TAG20150701T143515 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:45
channel c2: finished piece 1 at 01-JUL-15
piece handle=/ora_data/prod/full_bk_L0_12uqav7h3_1_1.dbf tag=TAG20150701T143515 comment=NONE
channel c2: backup set complete, elapsed time: 00:00:45
Finished backup at 01-JUL-15

Starting Control File and SPFILE Autobackup at 01-JUL-15
piece handle=/ora_data/rman/ctl_bk_c-293516844-20150701-00.dbf comment=NONE
Finished Control File and SPFILE Autobackup at 01-JUL-15

released channel: c1

released channel: c2

备份归档日志,删除备份后的日志

RMAN> run{
2>      allocate channel c1 type disk;
3>      allocate channel c2 type disk;
4>      backup archivelog all delete all input format ‘/ora_data/prod/archbak_L0_%d_%T_%U.arc‘;
5>      release channel c1;
6>      release channel c2;
7> }

allocated channel: c1
channel c1: SID=17 device type=DISK

allocated channel: c2
channel c2: SID=22 device type=DISK

Starting backup at 01-JUL-15
current log archived
channel c1: starting archived log backup set
channel c1: specifying archived log(s) in backup set
input archived log thread=1 sequence=2 RECID=1 STAMP=883542071
input archived log thread=1 sequence=3 RECID=2 STAMP=883542302
input archived log thread=1 sequence=4 RECID=3 STAMP=883542338
input archived log thread=1 sequence=5 RECID=4 STAMP=883562459
input archived log thread=1 sequence=6 RECID=5 STAMP=883564921
channel c1: starting piece 1 at 01-JUL-15
channel c2: starting archived log backup set
channel c2: specifying archived log(s) in backup set
input archived log thread=1 sequence=7 RECID=6 STAMP=883923635
input archived log thread=1 sequence=8 RECID=7 STAMP=883924495
input archived log thread=1 sequence=9 RECID=8 STAMP=883924514
input archived log thread=1 sequence=10 RECID=9 STAMP=883924896
input archived log thread=1 sequence=11 RECID=10 STAMP=883924897
input archived log thread=1 sequence=12 RECID=11 STAMP=883924899
input archived log thread=1 sequence=13 RECID=12 STAMP=883924899
input archived log thread=1 sequence=14 RECID=13 STAMP=883924899
channel c2: starting piece 1 at 01-JUL-15
channel c2: finished piece 1 at 01-JUL-15
piece handle=/ora_data/prod/archbak_L0_PROD_20150701_31qav7td_1_1.arc tag=TAG20150701T144149 comment=NONE
channel c2: backup set complete, elapsed time: 00:00:03
channel c2: deleting archived log(s)
archived log file name=/oracle/arch1/1_7_883536782.dbf RECID=6 STAMP=883923635
archived log file name=/oracle/arch1/1_8_883536782.dbf RECID=7 STAMP=883924495
archived log file name=/oracle/arch1/1_9_883536782.dbf RECID=8 STAMP=883924514
archived log file name=/oracle/arch1/1_10_883536782.dbf RECID=9 STAMP=883924896
archived log file name=/oracle/arch1/1_11_883536782.dbf RECID=10 STAMP=883924897
archived log file name=/oracle/arch1/1_12_883536782.dbf RECID=11 STAMP=883924899
archived log file name=/oracle/arch1/1_13_883536782.dbf RECID=12 STAMP=883924899
archived log file name=/oracle/arch1/1_14_883536782.dbf RECID=13 STAMP=883924899
channel c2: starting archived log backup set
channel c2: specifying archived log(s) in backup set
input archived log thread=1 sequence=15 RECID=14 STAMP=883924899
input archived log thread=1 sequence=16 RECID=15 STAMP=883924905
input archived log thread=1 sequence=17 RECID=16 STAMP=883924908
channel c2: starting piece 1 at 01-JUL-15
channel c1: finished piece 1 at 01-JUL-15
piece handle=/ora_data/prod/archbak_L0_PROD_20150701_30qav7td_1_1.arc tag=TAG20150701T144149 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:04
channel c1: deleting archived log(s)
archived log file name=/oracle/arch1/1_2_883536782.dbf RECID=1 STAMP=883542071
archived log file name=/oracle/arch1/1_3_883536782.dbf RECID=2 STAMP=883542302
archived log file name=/oracle/arch1/1_4_883536782.dbf RECID=3 STAMP=883542338
archived log file name=/oracle/arch1/1_5_883536782.dbf RECID=4 STAMP=883562459
archived log file name=/oracle/arch1/1_6_883536782.dbf RECID=5 STAMP=883564921
channel c2: finished piece 1 at 01-JUL-15
piece handle=/ora_data/prod/archbak_L0_PROD_20150701_32qav7th_1_1.arc tag=TAG20150701T144149 comment=NONE
channel c2: backup set complete, elapsed time: 00:00:00
channel c2: deleting archived log(s)
archived log file name=/oracle/arch1/1_15_883536782.dbf RECID=14 STAMP=883924899
archived log file name=/oracle/arch1/1_16_883536782.dbf RECID=15 STAMP=883924905
archived log file name=/oracle/arch1/1_17_883536782.dbf RECID=16 STAMP=883924908
Finished backup at 01-JUL-15

Starting Control File and SPFILE Autobackup at 01-JUL-15
piece handle=/ora_data/rman/ctl_bk_c-293516844-20150701-01.dbf comment=NONE
Finished Control File and SPFILE Autobackup at 01-JUL-15

released channel: c1

released channel: c2

检查备份有效性

RMAN> crosscheck backup;

allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=17 device type=DISK
crosschecked backup piece: found to be ‘AVAILABLE‘
backup piece handle=/ora_data/prod/full_bk_L0_12uqav7h3_1_1.dbf RECID=79 STAMP=883924515
crosschecked backup piece: found to be ‘AVAILABLE‘
backup piece handle=/ora_data/prod/full_bk_L0_12tqav7h3_1_1.dbf RECID=80 STAMP=883924515
crosschecked backup piece: found to be ‘AVAILABLE‘
backup piece handle=/ora_data/rman/ctl_bk_c-293516844-20150701-00.dbf RECID=81 STAMP=883924561
crosschecked backup piece: found to be ‘AVAILABLE‘
backup piece handle=/ora_data/prod/archbak_L0_PROD_20150701_31qav7td_1_1.arc RECID=82 STAMP=883924909
crosschecked backup piece: found to be ‘AVAILABLE‘
backup piece handle=/ora_data/prod/archbak_L0_PROD_20150701_30qav7td_1_1.arc RECID=83 STAMP=883924909
crosschecked backup piece: found to be ‘AVAILABLE‘
backup piece handle=/ora_data/prod/archbak_L0_PROD_20150701_32qav7th_1_1.arc RECID=84 STAMP=883924913
crosschecked backup piece: found to be ‘AVAILABLE‘
backup piece handle=/ora_data/rman/ctl_bk_c-293516844-20150701-01.dbf RECID=85 STAMP=883924913
Crosschecked 7 objects

对数据库进行level 2备份

RMAN> run{
2>      allocate channel c1 type disk;
3>      allocate channel c2 type disk;
4>      backup incremental level 2 database format ‘/ora_data/prod/prod_bk_L2_%d_%U.dbf‘;
5>      release channel c1 ;
6>      release channel c2;
7> }

released channel: ORA_DISK_1
allocated channel: c1
channel c1: SID=17 device type=DISK

allocated channel: c2
channel c2: SID=22 device type=DISK

Starting backup at 01-JUL-15
channel c1: starting incremental level 2 datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/prod/system01.dbf
input datafile file number=00006 name=/u01/app/oracle/oradata/prod/test02.dbf
input datafile file number=00007 name=/u01/app/oracle/oradata/prod/test1.dbf
channel c1: starting piece 1 at 01-JUL-15
channel c2: starting incremental level 2 datafile backup set
channel c2: specifying datafile(s) in backup set
input datafile file number=00002 name=/u01/app/oracle/oradata/prod/sysaux01.dbf
input datafile file number=00003 name=/u01/app/oracle/oradata/prod/undotbs01.dbf
input datafile file number=00004 name=/u01/app/oracle/oradata/prod/users01.dbf
input datafile file number=00005 name=/u01/app/oracle/oradata/test01_new.dbf
channel c2: starting piece 1 at 01-JUL-15
channel c1: finished piece 1 at 01-JUL-15
piece handle=/ora_data/prod/prod_bk_L2_PROD_34qav8d1_1_1.dbf tag=TAG20150701T145008 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:25
channel c2: finished piece 1 at 01-JUL-15
piece handle=/ora_data/prod/prod_bk_L2_PROD_35qav8d1_1_1.dbf tag=TAG20150701T145008 comment=NONE
channel c2: backup set complete, elapsed time: 00:00:25
Finished backup at 01-JUL-15

Starting Control File and SPFILE Autobackup at 01-JUL-15
piece handle=/ora_data/rman/ctl_bk_c-293516844-20150701-02.dbf comment=NONE
Finished Control File and SPFILE Autobackup at 01-JUL-15

released channel: c1

released channel: c2

当数据库crash后可以用RMAN备份片恢复数据库到数据库宕机状态。

时间: 2024-10-07 20:53:58

rman管理3 对数据库进行备份的相关文章

《SQL Server企业级平台管理实践》读书笔记——关于SQL Server数据库的备份方式

数据备份一直被认为数据库的生命,也就是一个DBA所要掌握的主要技能之一,本篇就是介绍SQL Server备份原则,SQL Server数据库分为数据文件和日志文件.为了使得数据库能够恢复一致点,备份不仅需要拷贝数据数据文件里的内容,还要拷贝日志文件里的内容.那么根据每次备份的目标不同,我们可以将备份分为数据备份和日志备份. 数据备份的范围可以是完整的数据库.部分数据库.一组文件或文件组.所以根据备份下来的数据文件的范围,又分为了完整数据库备份.文件备份和部分备份. 完整数据库备份 完整数据库备份

使用RMAN工具克隆生产数据库

一.概述 复制数据库即使用RMAN工具的DUPLICATE命令从源数据库拷贝所有或者一部分的数据到目标数据库.复制数据库技术在多种场景都是特别有用的,如创建standby数据库,创建用于不同目的地测试环境,数据库迁移等. 使用DUPLICATE命令复制数据库能自动配置与源数据库不同的DBID,确保目标数据库和源数据库能一起存放在相同的恢复目录数据库中. RMAN支持两种复制类型:活动数据库复制和基本备份的复制.RMAN能在源数据库和恢复目录数据库存在或者不存在的情况下执行基于备份的复制. 活动数

Oracle如何实现创建数据库、备份数据库及数据导出导入的一条龙操作

Oracle如何实现创建数据库.备份数据库及数据导出导入的一条龙操作 Oracle中对数据对象和数据的管理,无疑都是使用PL/SQL Developer来进行管理,该工具也提供给我们很多方便.快捷的操作,使得我们不再为Oracle本身丑陋.难用的UI而抱怨.由于我们一般都是建建表.查查数据的操作居多,较少会考虑系统的整个Oracle的完整备份操作.但是在我们一些发布操作中,我们必须考虑如何把Oracle的对象.表数据导出到Sql脚本中,并且把创建Oracle表空间.创建Oracle数据库的操作也

window自动任务实现数据库定时备份

原理:利用window定时任务定时cmd加载mytask.bat文件,bat运行php.exe程序编译运行mytask.php文件 ,从而实现了数据库的备份 mytask.bat 内容: D:\phpStudy\php53\php.exe D:\www\mytask.php mytask.php 内容: $filename=date('YmdHis',time()); $command="D:\phpStudy\MySQL\bin\mysqldump -u root -proot -d sx &

数据库的备份和恢复(学习笔记学习中)

--**********************数据泵技术------oracle 10G之后出现 --创建目录 create directory dump_dir as 'e:/backup'; --查询数据库所有有目录 select * from dba_directories; --删除数据库目录 drop directory dump_dir; drop directory dump_file; --创建表空间 create tablespace tbs_test datafile 'e

SQL Server2008数据库自动备份步骤

一,  在电脑开始菜单中选择“SQL Server Management Studio”双击.在出现的界面中点击“连接”按钮. 二,  在出现的“ Microsoft SQL Server Management Studio”界面中选择“管理”下的“维护计划”右击维护计划,点击“维护计划向导”, 三,  在出现的“SQL Server维护计划向导”界面中点击“下一步” 四,  在出现的界面中把名称和说明写上.然后点击“更改”设顶备份计划 五,  在出现的“作业计划属性”界面中,更改执行时间,也就

分页优化+表锁和库存优化+数据库的备份和导入

一.分页优化技术 代码参看: php/classic.php 把50331651记录进行分页,每页显示2条记录,于是我们用传统php编码方式,编写分页代码如下: 上传到/var/www/html下进行测试,结果如下: 如果访问第1页和第4页,返回语句: 使用explain执行计划查询比较靠前的页数,发觉速度很快因为可以使用上索引: 如果访问第4100000页,返回语句: 使用explain分析结果如下: 发觉这时如果分页到了中间的页数,这时我们既需要排序又要分页检索数据的时候,就会出现Using

设置mysql数据库自动备份

由于项目需要,在windows下的mysql实现数据库自动备份.经资料查询和尝试,得出方法有两种: 1.使用windows自带的任务计划,然后定时执行一个数据库备份的脚本. 2.使用mysql管理工具navicat配置数据库的备份 这里,由于第二种方法比较简单实用,我就简单描述下第二种方法(因为简单). 工具: navicat for mysql mysql 5.5 步骤: 1.打开navicat客户端,连上mysql后,双击左边你想要备份的数据库.点击“计划”,再点击“新建批处理作业”. . 

用phpmyadimn来连接管理多个数据库

用phpmyadimn来连接管理多个数据库要修改配置文件,挺不爽的,并且连接远程数据库,速度不行.可以使用其他数据库管理工具, 请参考,navicat 结合快捷键 非常好用,开源,好用mysql 管理工具 HeidiSQL.如果非要用phpmyadmin,下面有二种方法连接,管理多个mysql服务器. 方法一,修改phpMyAdmin/libraries/config.default.php 修改配置文件前,最好先备份一下,万一改错地方了,显示不了,就郁闷了. /** * allow login