logo资料库

Oracle数据库备份方案.docx

第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
资料共7页,全文预览结束
Oracle数据库备份方案
一、概要
二、备份方式介绍
三、备份前的工作
1、确认数据库的归档方式
2、归档目录
3、更改数据库相关参数
4、修改数据库为归档模式并打开数据库
四、备份数据库
1.备份数据库策略
2.备份数据库脚本
五、备份归档日志
六、数据库的恢复
Oracle 数据库备份方案 一、概要 数据安全对一个系统来说,尤其的重要。在我们日常工作中,不但要极力保障数据库平 稳运行,还要尽量保证数据不丢失不被破坏。但是,为了应对一些突发事件,数据库的数据 备份工作也显得尤为重要,数据备份可以保证将损失降低到最低限度,使数据库系统再次恢 复到平稳运行状态。在一个完备的应用系统设计方案中,数据库备份工作必不可少,其重要 性不言而喻。数据备份是我们系统的最后一道防线,做一份好的备份策略可以最大限度的保 证我们的数据安全。 二、备份方式介绍 数据库备份,分为物理备份和逻辑备份两种,其中物理备份又分为冷备份和热备份,如 下表: 备份方式 优点 冷备份 1、 技术实现简单,只需拷贝文件 2、 备份速度非常快 3、 高安全性 4、 可与归档结合,作数据库“最新状态”的恢 复。 5、 恢复简单,只需把文件拷回原位置即可 热备份 ipm/exp 命令 1、 可以单独备份表空间、数据文件 2、 在线备份,数据库不需要关闭 3、 可以恢复数据库到最新状态(秒级) 4、 可以提供在线恢复 5、 可以选择增量备份 1、 灵活,快速 2、 技术成本低 3、 可以按用户、表进行备份 4、 提供增量备份方式 物 理 备 份 逻 辑 备 份 缺点 1、 停止服务(停止数据库) 2、 不能提供按用户、按表进行 恢复(只能全部恢复) 3、 单独使用时,只能恢复数据 库到最近备份时间。 4、 若磁盘空间有限,只能拷贝 到磁带等其它外部存储设备 上,速度会很慢。 5、 不能提供增量备份方式 1、 技术成本相对较高 2、 若热备份不成功,所得结果 不可用于时间点的恢复 3、数据库必须是归档模式 1、 大数据量时数据库压力会比 较大 2、 只能恢复到备份时的状态 基于上表的描述,我们可以看出,热备份还是有很大优势的;逻辑备份在面对大数据操 作的时候,会对数据库造成比较大的压力,并且不提供恢复数据库到最新状态;冷备份虽然 比较安全、快速,但是需要停机进行维护,这些都是我们不能接受的。 因此,本文档采用热备份+归档日志的方式进行设计。
三、备份前的工作 采用热备份进行数据库备份,数据库必须处于归档模式,下面是数据库更改归档模式已 经确认的方法,如下: 1、确认数据库的归档方式 SQL>archive log list; 使用上面命令可以查看当前数据库的归档模式,如果返回如下内容的话,则表示当 前数据库为非归档模式,需要修改为归档模式: Database log mode Automatic archival Archive destination Oldest online log sequence Current log sequence No Archive Mode Disabled USE_DB_RECOVERY_FILE_DEST 12 13 2、归档目录 归档功能要求必须提供一个目录存放归档文件,为了方便管理,最好提供一个共享存储 来存放归档日志,两个节点目录名一致,要求如下: 归档目录 归档目录大小 /archlog 1Tb 3、更改数据库相关参数 打开归档功能前需要先设置几个相关参数,如下: SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/archlog' SCOPE=SPFILE SID='*'; SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1=ENABLE SCOPE=SPFILE SID='*'; 修改完数据库参数之后,可以通过 spfile 导出 pfile 查看参数设置是否正确: SQL>create pfile=’/home/oracle/p1.ora’ from spfile; $grep log_archive /home/oracle/p1.ora --根据 spfile 创建 pfile 文件 --查看参数设置是否正确 检查完参数设置之后,将数据库关闭: 在所有节点杀掉 Oracle Session 进程 $ps –ef|grep LOCAL=YES|grep –v grep|awk ‘{print $2}’|xargs kill -9 在所有节点 sqlplus 中切换几次在线日志: SQL>alter system switch logfile; SQL>/
关闭数据库: $srvctl stop database –d UPAY 4、修改数据库为归档模式并打开数据库 下面步骤在一个节点操作: 打开数据库为 mount 状态: $sqlplus / as sysdba SQL>startup mount 修改数据库为归档模式,打开数据库(所有节点) SQL>alter database archivelog; SQL>alter databae open; 检查归档是否设置成功: SQL>archive log list; 另外,可以通过切换日志,然后查看归档目录是否生成归档日志来确认归档设置成功: SQL> alter system switch logfile; SQL>exit $cd /archlog $ls -l 四、备份数据库 1.备份数据库策略 这里我们通过 RMAN 对数据库进行备份,采用 level0+1+2 的方式进行全量、增量备份。 方案如下: 方案一: 备份时间 周日晚上 0 点 周一晚上 0 点 周二晚上 0 点 周三晚上 0 点 周四晚上 0 点 周五晚上 0 点 Level 1 Level 2 Level 1 Level 2 Level 1 周六晚上 0 点 Level 2 备份级别 恢复时需要恢复的文件 Level 0 上周日的 Level 0 备份 + 周五的 Level 1 备份+ 周六的 Level2 备 份+ 当天的归档日志 周日的 Level 0 备份 + 当天的归档日志 周日的 Level 0 备份 + 周一的 Level 1 备份 + 当天的归档日志 周日的 Level 0 备份 + 周一的 Level 1 备份+ 周二的 Level2 备份+ 当天的归档日志 周日的 Level 0 备份 + 周三的 Level 1 备份+ 当天的归档日志 周日的 Level 0 备份 + 周三的 Level 1 备份+ 周四的 Level2 备份+ 当天的归档日志 周日的 Level 0 备份 + 周五的 Level 1 备份+ 当天的归档日志
方案二: 备份时间 周日晚上 0 点 周一晚上 0 点 周二晚上 0 点 周三晚上 0 点 周四晚上 0 点 周五晚上 0 点 周六晚上 0 点 备份级别 恢复时需要恢复的文件 Level 0 Level 1 Level 1 Level 1 Level 1 Level 1 Level 1 上周日的 Level 0 备份 + 周六的 Level1 备份+ 当天的归档日志 周日的 Level 0 备份 + 当天的归档日志 周日的 Level 0 备份 + 周一的 Level 1 备份 + 当天的归档日志 周日的 Level 0 备份 + 周二的 Level 1 备份 + 当天的归档日志 周日的 Level 0 备份 + 周三的 Level 1 备份 + 当天的归档日志 周日的 Level 0 备份 + 周四的 Level 1 备份 + 当天的归档日志 周日的 Level 0 备份 + 周五的 Level 1 备份 + 当天的归档日志 方案一每次恢复最多需要恢复三个文件 + 当天的归档日志,方案二每次恢复最多需要 恢复两个文件 + 当天的归档日志,但是方案二占用空间稍大于方案一,两个方案均使用 incremental 方式进行备份。 Oracle 数据文件 (4 亿+天猫查询的量大约是充值交易的三分之一 1.3 亿笔 )* 3K(包含 索引文件)= 1516G。 每周日产生的数据库备份约 1.5T,每天产生的新数据约为 50G,周一到周六增量备份约 占用空间为 300G,一周的备份文件加上一周内产生的归档数据约为 2.1T。带库保存一个月 的数据,约占空间 8.5T。 rman 在开始做备份之前,删除前一天的备份数据;做完备份以后,由 TS3310 带库客户 端写入磁带服务器。 2.备份数据库脚本 Level 0 备份脚本: RMAN> run { CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backup/Ctl_%F'; CONFIGURE DEFAULT DEVICE TYPE TO disk; CONFIGURE DEVICE TYPE DISK PARALLELISM 4; allocate channel c1 device type disk format '/backup/upay/upay-%d_%T_set%s_piece%p_%c.bak'; allocate channel c2 device type disk format '/backup/upay/upay-%d_%T_set%s_piece%p_%c.bak'; allocate channel c4 device type disk format '/backup/upay/upay-%d_%T_set%s_piece%p_%c.bak'; allocate channel c4 device type disk format '/backup/upay/upay-%d_%T_set%s_piece%p_%c.bak'; backup incremental level=0 as compressed backupset database; delete noprompt expired backup; crosscheck archivelog all; delete noprompt expired archivelog all; delete noprompt obsolete; } Level 1 备份脚本:
RMAN> run { CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backup/Ctl_%F'; CONFIGURE DEFAULT DEVICE TYPE TO disk; CONFIGURE DEVICE TYPE DISK PARALLELISM 4; allocate channel c1 device type disk format '/backup/upay/upay-%d_%T_set%s_piece%p_%c.bak'; allocate channel c2 device type disk format '/backup/upay/upay-%d_%T_set%s_piece%p_%c.bak'; allocate channel c4 device type disk format '/backup/upay/upay-%d_%T_set%s_piece%p_%c.bak'; allocate channel c4 device type disk format '/backup/upay/upay-%d_%T_set%s_piece%p_%c.bak'; backup incremental level=1 as compressed backupset database; delete noprompt expired backup; crosscheck archivelog all; delete noprompt expired archivelog all; delete noprompt obsolete; } Level 2 备份脚本: RMAN> run { CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backup/Ctl_%F'; CONFIGURE DEFAULT DEVICE TYPE TO disk; CONFIGURE DEVICE TYPE DISK PARALLELISM 4; allocate channel c1 device type disk format '/backup/upay/upay-%d_%T_set%s_piece%p_%c.bak'; allocate channel c2 device type disk format '/backup/upay/upay-%d_%T_set%s_piece%p_%c.bak'; allocate channel c4 device type disk format '/backup/upay/upay-%d_%T_set%s_piece%p_%c.bak'; allocate channel c4 device type disk format '/backup/upay/upay-%d_%T_set%s_piece%p_%c.bak'; backup incremental level=2 as compressed backupset database; delete noprompt expired backup; crosscheck archivelog all; delete noprompt expired archivelog all; delete noprompt obsolete; } 数据库通过 RMAN 将数据备份写到本地磁盘,然后通过 IBM 客户端将备份数据写入磁带机。
五、备份归档日志 归档日志数据库直接写在本地磁盘系统,由 IBM 磁带机客户端直接读取写入磁带服务器。 归档目录:/archlog 归档日志写入策略: 1. 没半个小时检查是否有新归档生成,备份所有的最近半个小时的归档日志文件。 2. 当归档目录使用率超过 50%的时候,备份新生成的归档日志文件。 3. 本地保存最近一个星期的归档日志,每天凌晨删除一周前的归档日志。 4. 当归档日志目录使用率超过 80%的时候,删除最前面的归档日志,保证有空间可以完成 新的归档日志存放。 六、数据库的恢复 数据库恢复情况很多,下面只简单列出几种简单的场景,如下: 1. 恢复控制文件 RMAN>restore controlfile from autobackup 2. 恢复 spfile RMAN>restore spfile from autobackup 3. 恢复表空间 RMAN> run{ 2> sql 'alter tablespace tbs1 offline immediate'; 3> set newname for datafile 6 to '+DATA/upay/datafile/tbs01.dbf'; 4> restore tablespace tbs1; 5> switch datafile all; 6> recover tablespace tbs1; 7> sql 'alter tablespace tbs1 online';} 4. 恢复数据文件 RMAN> run{ 2> sql 'alter database datafile 6 offline immediate'; 3> set newname for datafile 6 to '+DATA/upay/datafile/tbs01.dbf'; 4> restore datafile 6; 5> switch datafile all; 6> recover datafile 6; 7> sql 'alter databaes datafile 6 online';} 5. 恢复数据库 RMAN> connect target / RMAN> startup mount; RMAN> restore database;
RMAN> recover database; RMAN> alter database open;
分享到:
收藏