mysql中的rman备份与恢复_使用RMAN备份与恢复数据库

news/2024/7/24 2:45:01 标签: mysql中的rman备份与恢复

一、备份信息

1.1、列出备份信息

列出数据库中所有文件的备份信息:

RMAN>LIST BACKUP OF DATABASE;

列出指定表空间的备份信息:

RMAN>LIST BACKUP OF TABLESPACE SYSTEM;

列出指定数据文件的备份信息:

RMAN>LIST BACKUP OF DATAFILE 4;

列出归档日志的备份信息:

RMAN>LIST BACKUP OF ARCHIVELOG ALL;

1.2、删除备份信息

1.删除陈旧备份

当使用RMAN 执行备份操作时,RMAN 会根据备份冗余策略确定陈旧备份。

RMAN> delete obsolete;

2.删除EXPIRED 备份

执行crosscheck 命令核对备份集,如果备份集丢失或者损坏,那么会将该备份集标记为EXPIRED 状态。为了删除相应的备份记录,可以执行delete expired backup 命令。

RMAN> delete expired backup;

3.删除EXPIRED 副本

RMAN> delete expired copy;

4.删除特定备份集

RMAN> delete backupset 19;

5.删除特定备份片

RMAN> delete backuppiece '/home/backup/DEMO_19.bak';

6.删除所有备份集

RMAN> delete backup;

7.删除特定映像副本

RMAN> delete datafilecopy '/home/backup/DEMO_19.bak';

8.删除所有映像副本

RMAN> delete copy;

9.在备份后删除输入对象

RMAN> delete archivelog all deleteinput;

RMAN> delete backupset 22 format = '/home/backup/%u.bak' delete input;

二、指令运行方式

2.1、批处理

RMAN>run{

......

......

}

2.2、运行脚本

[oracle@node1~]$ RMAN TARGET / @backup_db.rman

运行存储在恢复目录中的脚本(需要首先为rman 创建恢复目录)

RMAN> RUN { EXECUTE SCRIPT backup_whole_db };

2.3、操作系统脚本

[oracle@node1 ~]$rman target / cmdfile=/home/backup_db.rman

三、增量备份的机制

所谓增量备份,顾名思义即是每次备份仅操作那些发生了"变化"的数据块。RMAN 中增量备份有两种:Differential 方式和Cumulative 方式。

3.1、差异备份Differential ( DEFUALT )

备份上级及同级以来所有变化的数据块

876a286091715a1df767cbdb580b4254.png

3.2、累积增量备份Cumulative

备份上级以来所有变化的数据块

e0ea78afb4a313a284355d4bf514c11c.png

所有增量备份要以0级备份为基础,0级备份指对数据库做全备。

0 级备份和全库备份的区别:

1)全库备份不能作为1 级备份的基础

2)全库备份会对unused 数据库做备份

0 级备份

RMAN>backup incremental level 0 database;

1 级差异增量

RMAN>backup incremental level 1 database;

1 级累积增量

RMAN>backup incremental level 1 cumulative database;

四、备份数据库命令

4.1、对数据库全备

RMAN>backup database;

执行上述命令后将对目标数据库中的所有数据文件进行备份,由于没有显式指定FORMAT 参数,rman 会自动为每个备份片段命名。

当然,也可以通过显式指定format 参数来自定义备份片段的命令规则,比如:

RMAN> BACKUP DATABASE FORMAT '/home/backup/%U';

全备数据库的同时可以包含控制文件,比如:

RMAN> BACKUP DATABASE FORMAT '/home/backup/%U' include current controlfile;

4.2、备份表空间

RMAN> backup tablespace users;

4.3、备份数据文件

首先可以先通过数据字典DBA_DATA_FILES 查询出表空间对应的数据文件及其序号,例如:

select file_name,file_id,tablespace_name from dba_data_files;

然后再通过BACKUP DATAFILE 备份指定序号的数据文件,例如:

RMAN> BACKUP DATAFILE n;

注:n=指定的的数据文件序号,如果需要备份的数据文件有多个, n=多个序号,中间以逗号分隔即可。

4.4、备份控制文件

控制文件在ORACLE 中的重要性是毋庸置疑的,你看,连RMAN 都给予特殊的照顾,在RMAN 中备份控制文件的方式是最多的。

1.最简单的方式,通过CONFIGURE 命令将CONTROLFILE AUTOBACKUP 置为ON。

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;

然后你再通过rman 做任何备份操作的同时,都会自动对控制文件做备份。

2.对编号为1 的数据文件,即SYSTEM 表空间的数据文件做备份时,RMAN 也会自动对控制文件做备份。

3.手动执行备份命令。

RMAN> BACKUP CURRENT CONTROLFILE;

4.执行BACKUP 时指定INCLUDE CURRENT CONTROLFILE 参数,例如:

RMAN> BACKUP DATABASE INCLUDE CURRENT CONTROLFILE;

4.5、备份归档日志

归档日志对于数据库介质恢复相当关键,其虽然不像控制文件那样一旦损坏则数据库马上崩溃,但重要性丝毫不减。归档日志文件能确保我们将数据库恢复到备份之前的任意时刻。

在RMAN 中备份归档日志有两种方式:

1、利用BACKUP ARCHIVELOG 命令备份

RMAN> BACKUP ARCHIVELOG ALL;

2、在BACKUP 过程中利用PLUS ARCHIVELOG 参数备份,例如:

RMAN> BACKUP DATABASE PLUS ARCHIVELOG;

则在备份数据库的同时自动对所有归档文件进行备份。这种方式与上种有什么区别呢,区别太明显了,BACKUP.....PLUS ARCHIVELOG 命令在备份过程中会依次执行下列步骤:

1>.运行ALTER SYSTEM ARCHIVE LOG CURRENT 语句对当前redolog 进行归档。

2>.执行BACKUP ARCHIVELOG ALL 命令备份所有已归档日志。

3>.执行BACKUP 命令对指定项进行备份。

4>.再次运行ALTER SYSTEM ARCHIVE LOG CURRENT 对当前redolog 归档。

5>.对新生成的尚未备份的归档文件进行备份。

在完成归档日志文件备份后,我们通过需要删除已备份过的归档文件(归档文件记录下了数据库进行过的所有操作,如果您的数据库操作频繁而且量大,那归档文件大小也是相当恐怖,备份后删除释放存储空间是相当有必要地)。RMAN 提供了DELETE ALL INPUT 参数,加在BACKUP 命令后,则会在完成备份后自动删除归档目录中已备份的归档日志。

RMAN> BACKUP DATABASE PLUS ARCHIVELOG DELETE ALL INPUT;

综述:比如查看备份基本都是LIST BACKUP OF 备份项名称,如果想自定义片段的话则在备份命令后加上FORMAT 参数。

五、恢复命令

5.1、数据库恢复

RMAN> restore/revover database;

5.2、表空间恢复

RMAN> restore/revover tablespace xx ;

5.3、只读表空间的恢复

默认情况下,即使丢失了只读的数据文件,RMAN 也不会在执行完全数据库还原操作时候还原只读的数据文件。要在完全恢复期间还原只读的数据文件,就必须在RESTORE命令中使用CHECK READONLY

RMAN> RESTORE DATABASE CHECK READONLY;

5.4、恢复SPFILE/控制文件

#使用自动备份恢复SPFILE/控制文件

RMAN>startup nomount;

RMAN> set dbid=153910023RMAN> restore controlfile fromautobackup

RMAN> restore spfile/controlfile to '/xx/xx' fromautobackup ;

RMAN> restore controlfile from '/arch/ct_c-2347671489-20060630-00';

5.5、恢复归档日志

RMAN> RESTORE ARCHIVELOG ALL;

RMAN> RESTORE ARCHIVELOG FROM LOGSEQ=1 UNTIL LOGSEQ=20;

RMAN> RESTORE ARCHIVELOG FROM LOGSEQ=1;

也可以用SET命令来指定归档日志的还原位置,例如:

RMAN>run{set archivelog destination to "/home/backup/";restore archivelog all;

}

5.6、数据文件副本还原

RMAN> sql "alter datafile 5offline";

RMAN> restore (datafile 5) fromdatafilecopy;

RMAN> recover datafile 5;

RMAN> sql "alter datafile 5 online";

请注意,上面的圆括号很重要

5.7、还原检查与恢复测试

与备份检查一样,还原操作也可以检查是否能正常restore 或者是否该备份集是否有效。如:

RMAN> RESTORE DATABASEVALIDATE;

RMAN> VALIDATE BACKUPSET 218;

RMAN> RESTORE DATABASE VALIDATE CHECK LOGICAL ;

5.8、从指定的tag 恢复

RMAN> RESTORE FROM tag=’xxxx’;

5.9、不完全恢复的还原:

RMAN> restore database until scn 1000;

RMAN>restore database "to_date('2005/08/01 13:00:00','yyyy/mm/dd hh24:mi:ss')";

RMAN> restore database until sequence 100 thread 1;

5.10、块级别的恢复

恢复块的时候,必须指定具体的块号,如:

RMAN> blockrecover datafile 6 block 3;


http://www.niftyadmin.cn/n/1468425.html

相关文章

python中比较运算符用于比较两个数_Python运算符:算术,逻辑,比较,赋值,按位和优先...

运算符用于对值和变量执行操作。操作员可以操纵单个项目并返回结果。数据项称为操作数或参数。运算符由关键字或特殊字符表示。例如,对于身份运算符,我们使用关键字“is”和“is not”。在本文中,我们将学习各种操作符算术运算符比较运算符Py…

被动套接字 主动套接字_了解网络套接字及其可能性

被动套接字 主动套接字介绍 (Introduction) As users of web applications, we are accustomed to being able to quickly and seamlessly interact with others via chat, text messaging or some other form of digital communication method. What most consumers think is …

excel转换为mysql数据格式_一种将Excel表格数据转换为数据库格式的方法与流程

本发明涉及一种电子数据格式的转换方法,属于计算机软件领域。背景技术:EXCEL具有操作简单等优点被广泛应用于原始数据录入,虽然EXCEL自身具有简单的数据处理功能,但要进行复杂、庞大的数据处理,就需要使用专业的数据库…

rest post无法取到request_架构风格:你真的懂REST吗?

本文探讨如下几个问题:什么是RESTREST包含哪些约束什么是RESTful纯RESTful API的难点在哪里如果你去搜索「什么是REST」的话,大部分情况下,你看到的基本都是RESTful!这类内容主要说的是:资源URL应该怎么写要用GET来获取…

AWS网站托管与cloudformation指南

This article aims at offering a progressive introduction to hosting static website with AWS CloudFormation from a simple bucket to more complex configuration.本文旨在逐步介绍如何使用AWS CloudFormation从简单的存储桶到更复杂的配置来托管静态网站。 Quick summ…

python往c语言传指针_为C语言中的函数指针回调函数编写PythonC类型

我正试图编写python代码来调用dll函数,并停留在下面的函数上,我认为这与typedef回调函数或函数指针有关。我已经测试了下面的代码,当调用回调函数时,python崩溃(窗口通知——python.exe停止响应),没有调试消息。我深感…

冒名顶替上大学罗彩霞_冒名顶替综合症是我生存的祸根

冒名顶替上大学罗彩霞It’s been a while since I blogged about my professional journey but now is as good a time as ever since many of you (including myself) may be having these feelings now more than ever. Let’s start with a little story. I have had quite …

python cookbook 自营_Python Cookbook总结 1-6 章

看这本书的过程中各种茅塞顿开,但开完后记住的并不多。。。写总结把自己不熟悉的记下来。其中大部分都可以在python2上用,少数python3的。第一章 数据结构和算法1.1 保存最后 N 个元素 collections.dequedeque(max_lenN) 创建了一个固定长度的序列&#…