如何实现oracle exp增量备份

分类:编程技术 时间:2024-02-20 15:53 浏览:0 评论:0
0
本文主要讲解“如何实现Oracle的exp增量备份”。文章中的讲解内容简单明了,易学易懂。请大家按照小编的思路慢慢深入,一起研究学习《Oracle的exp增量备份如何实现》。现在就“exp增量备份”!

Oracle exp增量备份实验

https://blog.csdn.net/sinat_16741503/article/details/72876092

Oracle数据库有三种标准备份方式,它们是导出/导入(EXP/IMP、EXPDP/IMPDP)、热备份和冷备份。

备件导出是逻辑备份,冷备份、热备份是物理备份。

exp支持增量备份,但expdp不支持增量备份。

exp/imp增量导出是一种常用的数据备份方式。只能针对整个数据库实现,并且必须导出为SYSTEM。

此导出不会提出任何问题。默认导出f文件名称是export.dmp。如果您不希望输出文件命名为

export.dmp,则必须指定要在命令行上使用的文件名。

增量导出包括全量备份、累积备份、增量备份三种。

进行增量备份必须满足以下条件:

1、仅对完整数据库备份有效,首次需要full=y参数,且以后需要 inctype=incremental 参数。

2. 用户必须具有系统角色EXP_FULL_DATABASE。

以下三种简单备份的用法和区别:

1、全量备份:顾名思义,导出整个数据库的所有数据

exp system/oracle inctype=complete file=full.dmp log=full.log

2、累积备份:导出上次“全量备份”后数据库变化的信息

exp system /oracle inctype=累积文件=cumulative_1.dmp log=sys_cumulative_1.log

3.增量备份:备份上次“备份”后更改的信息

exp system/oracle inctype=incremental file=sys_cumulative_3.dmp log=sys_cumulative_3.log

比如我设置了一个Oracle备份策略:

周六:全量备份

周日:增量备份

p>

周一:增量备份

< p> 星期二:增量备份

星期三:累积备份

星期四:增量备份

星期五:增量备份

那么当我的数据库周六被破坏了(备份前),恢复数据库的过程是怎样的,即:

首先,使用命令CREATE DATABASE重新生成数据库结构。

其次,创建一个足够大的附加循环段。

三、全量备份导入(周六)

imp system/oracle inctype=RESTORE FULL=y FILE=周六全量备份文件

四、累计备份导入(星期三)

impsystem/oracle inctype=RESTORE FULL=y FILE=星期三累计备份文件

五、增量备份导入(周四)

impsystem/oracle inctype=RESTORE FULL=y FILE=周四的累积备份文件

六、增量备份import (星期五)

impsystem/oracle inctype= RESTORE FULL=y FILE=星期五的累积备份文件

注意:使用这种方法备份Oracle数据库有一个缺点,也就是说,数据库宕机前最后一次备份的数据将会丢失。

--以下是博主自己写的全量备份策略脚本。可以修改累积备份和增量备份的一些参数:

#!/bin/bash

#Oracle数据库备份脚本,该脚本备份整个数据库,每周六执行一次1:00

################################

##作者--------***###

### ##########################

如果 [ -f ~/.bash_profile ];然后

< p> 。 ~/.bash_profile

fi

set -e

last_day=`date -d "-7 天" +%Y%m%d `

#Last数据备份时间

stime=`date +%s`

echo `date +"%F %T"`### ########## ###### 完整数据库备份开始##################

cd /mnt/sd02 /oracle_bak_68/

#备份数据存储目录

/data/app/oracle/product/11.2.0/dbhome_1/bin/exp system/oracle inctype=complete

file=sys_all_`date +%Y %m%d`.dmp log=sys_all_`date +%Y%m%d`.log

#声明exp路径,部分环境未声明 定时任务中执行该命令报错找不到

rm sys_all_${last_day}.dmp

rm sys_all_${last_day}.log

#删除每周完整备份文件

etime=`日期 +%s`

s=`echo "scale=0; ($etime - $stime)%60" | bc`

m=`echo "scale=0; ($etime - $stime)/60%60" | bc`

h=`echo "scale=0; ($etime - $ stime)/60/60" | bc`

echo `date +"%F %T"`################完整数据库备份结束## ######## ###########

echo `date +"%F %T"` end 脚本执行耗时 $h 小时 $m 分钟 $s 秒

--备份策略设置定时任务中的ngs如下:

####数据库全备份脚本,每周六凌晨1点执行

01 01* * 6 sh /home/ oracle/zcb/oracle_all_bak.sh >>/h​​ome/oracle/zcb/log/oracle_a

ll_`日期 +"\%Y\%m\%d"`。 log 2>&1

####增量备份脚本,每周日、周一、周二、周四、周五执行

00 01 * * 0 sh /home/ oracle/zcb /oracle_incremental_bak.sh >>/h​​ome/oracle/zcb/log/oracle_in

cremental_`date +"\%Y\%m\%d"`.log 2>&1

00 01 * * 1 sh /home/oracle/zcb/oracle_incremental_bak.sh >>/h​​ome/oracle/zcb/log/oracle_in

cremental_`日期 +"\%Y\%m \%d "`.log 2>&1

00 01 * * 2 sh /home/oracle/zcb/oracle_incremental_bak.sh >>/h​​ome/oracle/zcb/log/oracle_in

< p>cremental_ `date +"\%Y\%m\%d"`.log 2>&1

00 02 * * 4 sh /home/oracle/zcb/oracle_incremental_bak.sh >>/h​​ome /oracle/ zcb/log/oracle_in

cremental_`date +"\%Y\%m\%d"`.log 2>&1

00 01 * * 5 sh / home/oracle /zcb/oracle_incremental_bak.sh >>/h​​ome/或acle/zcb/log/oracle_in

cremental_`date +"\%Y\%m\%d"`.log 2>&1

####累积备份脚本,每周三执行

00 01 * * 3 sh /home/oracle/zcb/oracle_cumulative_bak.sh >>/h​​ome/oracle/zcb/log/oracle_cu

mulative_`date +" \%Y\%m\%d"`.log 2>&1

感谢您的阅读,以上就是《如何实现“Oracle的exp增量备份”》,学习完后文章相信大家对如何实现oracle的exp增量备份有了更深入的了解,具体的用法需要在实践中验证,这里小编会为大家推送更多相关知识点的文章,欢迎关注!< /p>

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何实现oracle exp增量备份

用户评论