首页 > 数据库 >成为MySQL DBA后,再看ORACLE数据库(十三、物理备份)

成为MySQL DBA后,再看ORACLE数据库(十三、物理备份)

时间:2024-07-10 22:41:28浏览次数:15  
标签:RMAN DBA 备份 MySQL 归档 ORACLE 日志 数据库

前面总结了ORACLE的逻辑备份,本文来总结以下ORACLE的物理备份。数据库的备份一般分为冷备份和热备份,其中冷备份是指将数据库彻底关闭后进行的一致性备份,由于需要关停数据库所以在实际应用中很少用到冷备份。而热备份是指在数据库运行的同时对数据库进行备份,本文主要总结的是ORACLE的热备份。ORACLE的热备份分为用户管理的热备份(user-managed backup and recovery)和ORACLE管理的热备份(Recovery Manager-RMAN)。

用户管理的热备份是指先将表空间置于热备份模式下,然后通过操作系统工具对文件进行复制备份,备份完成后再结束表空间的备份模式。Oracle管理的热备份是指通过RMAN对数据库进行联机热备份,RMAN备份不需要将表空间置于热备模式,减少了对数据库的影响,RMAN备份功能强大但是相对复杂,也是生产中用得最多的备份方式,本文讲的ORACLE物理备份主要针对的是RMAN备份。

一、NOCATALOG方式进行数据库备份

使用RMAN备份,需要将备份信息存起来,这些信息将用来恢复,默认情况下RMAN会将备份信息存储在控制文件中;ORACLE也支持把RMAN的备份信息存储在目录数据库中,叫做calalog database。首先,来看下不使用catalog方式进行数据库备份,这也是最基础的rman备份方式。使用nocatalog方式进行数据库备份,一般需要打开控制文件自动备份功能,打开该功能后ORACLE会在数据库发生重大变化之后(如增减表空间)自动进行控制文件和spfile文件的备份。进入rman管理器后执行configure controlfile autobackup on命令即可设置控制文件自动备份。

RMAN备份文件有两种存储方式:镜像拷贝和备份集。备份集只备份使用过的数据块而镜像拷贝是拷贝整个数据文件,一般默认的都是使用备份集。最简单的全库备份通过backup database命令即可完成。执行全库备份,加上tag即对备份打一个标签,可以看到rman备份完成,数据库的备份集默认存在了数据库的闪回区即快速恢复区内。因为数据库在完成备份后会写控制文件,所以在备份完成后触发了控制文件和参数文件的自动备份。

二、归档日志的备份

除了备份数据文件,为了保证数据库能恢复到指定的任意时间点,归档日志的备份在生产中也是必不可少的。我们可以直接执行backup archivelog或者在备份数据文件和控制文件的同时指定backup ... plus archivelog操作来一起备份归档日志。归档日志的备份支持备份全部也支持备份某个时间段的。

backup archivelog all;
backup archivelog from time 'sysdate-30' until time 'sysdate-7';

RMAN在备份归档前会先给数据库发出一个alter system archive log current命令归档所有的非当前redolog,然后再执行归档日志的备份。上面归档日志的备份针对的是全部归档日志,实际使用中,我们不可能每次都备份全部归档日志,这样将产生归档日志重复备份的情况。在RMAN的参数设置中,有一个备份优化选项,通过设置configure backup optimization on启用备份优化,这样可以避免归档日志的重复备份。此外,也可以在备份完归档日志后立即清理已备份的归档日志,这样也是更方便更节约空间的办法。在ORACLE中,删除归档日志的操作同样通过rman来完成,backup命令后面加上delete input即可以删除刚刚已备份的归档日志。还可以制定定时任务,删除指定时间的归档日志,noprompt参数表示不提示删除并且只会删除已备份的归档日志。

backup archivelog all delete input;
delete noprompt archivelog all before 'sysdate-6';

任何时刻,我都应通过rman去维护备份的相关操作,这样可以保证rman信息一致,否则会出现控制文件中的备份记录和实际备份不一致的现象。

三、RMAN的备份保留策略

使用rman对备份集进行管理一般需要设置备份的保留策略,备份保留策略可以基于冗余或恢复窗口。当备份不需要时会被标记为废弃(obsolete),但废弃的备份不会被删除,使用report obsolete命令可以查看已废弃的备份,通过delete obsolete命令可以删除废弃的备份。

configure retention policy to redundancy 3;
configure retention policy to recovery window of 7 days;
report obsolete;
delete noprompt obsolete;

四、RMAN恢复

在RMAN恢复中,主要依靠两个命令完成restore和recovery,restore一般称为转储指从备份集中恢复对应的文件,recovery称为恢复指利用归档日志和redo进行完全或基于时间点的恢复。当ORACLE的数据文件损坏或丢失后,如果数据库的参数文件和控制文件完好,那么就可以通过rman的备份集恢复数据文件,并应用归档日志,实现数据库的完全或不完全恢复。恢复数据库时需要把数据库启动到mount状态。

startup mount;
list backup summary;
restore database;
recovery database;
alter database open;

在进行数据库的不完全恢复时,一般可以指定到恢复的时间点,并在完成恢复后需要使用resetlog选项启动数据库重置redolog。在restore转储时加上tag可以指定备份集这样就可以指定恢复哪一天的备份。

recovery database until time '2024-07-10 16:00:00';
alter database open resetlogs;
restore database from tag='';#指定备份集恢复

标签:RMAN,DBA,备份,MySQL,归档,ORACLE,日志,数据库
From: https://www.cnblogs.com/coygfly/p/18288370

相关文章

  • Oracle 11g dg switchover切换操作流程
    主库切换为物理备库查看主库的状态--获取/确认主库的状态信息以及保护模式SQL> set linesize 720SQL> col name for a10SQL> col open_mode for a10SQL> col database_role for a14SQL> col switchover_status for a16SQL> col force_logging for a8SQ......
  • 宋红康MySQL笔记
    MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板https://www.bilibili.com/video/BV1iq4y1u7vj?p=43&vd_source=ecbebcd4db8fad7f74c518d13e78b165HAVING的使用#练习:查询各个部门中最高工资比10000高的部门信息#错误的写法:SELECTdepartment_id,MAX(salary)FROMem......
  • Oracle 使用append对insert大批量数据进行优化
    append介绍/+append/1、概念:append属于directinsert,归档模式下appendtablenologging会大量减少日志,非归档模式append会大量减少日志,append方式插入只会产生很少的undo。2、优势:使用append,一是减少对空间的搜索;二是有可能减少redolog的产生。所以append方式会快很多,一......
  • 基于SpringBoot + SpringCloud+ElasticSear的在线教育管理系统设计与实现(MySQL、Mongo
    本项目适合做计算机相关专业的毕业设计,课程设计,技术难度适中、工作量比较充实。完整资源获取点击下载完整资源1、资源项目源码均已通过严格测试验证,保证能够正常运行;2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通;3、本项目比较适合计算......
  • MySQL和Redis更新一致性问题
    1.先更新数据库,再更新缓存适用场景:适用于对数据一致性要求不是特别高,且缓存更新失败对系统影响较小的场景。例如,某些非关键数据的缓存更新。风险:如果缓存更新失败,会导致数据库和缓存数据不一致。//更新数据库updateMySQL(data);//更新缓存updateRedis(data);2......
  • MySQL中datetime和timestamp的区别
    #MySQL中datetime和timestamp的区别相同点两个数据类型存储时间的格式一致。均为YYYY-MM-DDHH:MM:SS两个数据类型都包含「日期」和「时间」部分。两个数据类型都可以存储微秒的小数秒(秒后6位小数秒)自动更新和默认值TIMESTAMP:支持默认值为当前时间,且在记录更新时可以......
  • mysql数据库中毒恢复
    一、立即隔离受感染的系统断开网络连接:首先,立即断开受感染系统的网络连接,以防止病毒进一步传播或黑客获取更多敏感信息。隔离受感染设备:将受感染的计算机或服务器从网络中隔离出来,以避免对其他系统造成影响。二、评估损害范围检查日志文件:查看系统日志和MySQL日志文件,了解病毒......
  • 在命令行中连接mysql
    1.在mysql官网下载mysql软件,下载界面:https://dev.mysql.com/downloads/installer/ 选择合适的版本,进行下载2.在安装完成mysql后,在命令行输入mysql会提示不是内部外部命令,此时需要对mysql的系统变量进行配置:3.配置系统变量:第一步,右键“我的电脑”,选择“属性”-“高级系统......
  • 阿里云普罗米修斯接入mysql监控
    打开https://arms.console.aliyun.com/?spm=5176.12818093_-1363046575.ProductAndResource--ali--widget-product-recent.8.5cfe16d07QgyJq#/home     点击后,就会进入这里就是你的mysql服务器监控数据了 ......
  • Rocky Linux 9.4安装MySQL:使用RPM安装包方式
    RockyLinux9.4安装MySQL:使用RPM安装包方式一、安装环境安装环境如下:服务器:RockyLinux9.4安装版本:MySQL8.0.38二、安装过程和细节1、在官网下载RPM安装包官网下载地址如下,这个地址里有各个版本的安装包,根据自己的版本选择,下载对应系统的安装包https://dev.mysql.com/dow......