ORACLE使用数据泵定时执行备份

前言:随着多个系统的逐步上线,作为运维人员,数据库备份显得尤为重要,考虑到当前系统资源有限,数据库处于非归档模式,使用数据泵每天进行全备,网上备份脚本很多,本人也是参考网上一些脚本分享并根据现有环境适当修改。

原文参考链接:http://www.osyunwei.com/archives/5960.html

操作系统环境:AIX 7.1.0.0

数据库版本:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

1.准备工作

数据库创建directory

CREATE [OR REPLACE] DIRECTORY directory AS ‘/ogg/dumpfile‘;

创建备份路径/ogg/dumpfile 修改所属用户和用户组为oracle.oinstall

2.备份脚本

res_zhejiang_bk.sh

#!/bin/bash

export ORACLE_BASE=/app/oracle

export ORACLE_SID=resdb1

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export ORACLE_TERM=xterm

export PATH=$PATH:$ORACLE_HOME/bin

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

#以上代码为oracle用户的系统环境变量设置

#获取系统当前日期时间

export BAKUPTIME=`date +%Y%m%d%H%M`

#设置删除7天之前的备份文件

export DELETE_DAYS=7

#指定directory路径

export BAK_DIR=/ogg/dumpfile

#备份省份用户

export BAK_USER=res_zhejiang

# 执行浙江存量备份

expdp system/systemres directory=DUMP_DIR schemas=${BAK_USER} dumpfile=${BAK_USER}_%U_${BAKUPTIME}.dmp logfile=${BAK_USER}_${BAKUPTIME}.log parallel=4 cluster=no

#压缩备份文件和日志文件

tar -cvf ${BAK_DIR}/${BAK_USER}_${BAKUPTIME}.dmp.tar ${BAK_DIR}/${BAK_USER}_*.dmp ${BAK_DIR}/${BAK_USER}_*.log

#删除7天前的备份文件

find ${BAK_DIR}/*  -type f -name "${BAK_USER}*.dmp" -exec rm {} \;    #删除备份文件

find ${BAK_DIR}/*  -type f -name "${BAK_USER}*.log" -exec rm {} \;    #删除日志文件

3.脚本赋予执行权限

$chood a+x res_zhejiang_bk.sh

4.添加执行计划

打开执行计划

crontab -e

crontab: you are not authorized to use cron.  Sorry.

处理:

root用户操作,添加oracle

vi /var/adm/cron/cron.allow

root

unionmon

oracle

使用crontab -e指定执行计划

30 01 * * * /home/oracle/scripts/res_zhejiang_bk.sh

#查看执行计划

crontab -l

5.验证备份,查看备份日志

时间: 2024-10-19 08:50:29

ORACLE使用数据泵定时执行备份的相关文章

Oracle使用数据泵 (expdp/impdp)实施迁移

Oracle使用数据泵 (expdp/impdp)实施迁移 实验环境: 1.导出环境:RedHat6.4+Oracle 11.2.0.4.0,利用数据库自带的scott示例用户进行试验测试. Directory:wjq  à /tmp/seiang_wjq 2.导入环境:Centos7.1+Oracle 12.2.0.1.0   Oracle12c默认没有scott用户 Directory:imp_wjq  à /tmp/imp_comsys 一.导出数据: 特别注意:如果后续要导入的数据库版本

Oracle利用数据泵迁移用户

一.利用数据泵将数据导出 1.1.确定字符集: select * from v$nls_parameters; 或 select userenv('language') from dual; 1.2.设置客户端字符集(Windows) set NLS_LANG = NLS_LANGUAGE_NLS_TERRITORY.NLS_CHARACTERSET 1.3.确定schema的对象所占用表空间 SQL> Select distinct segment_type,tablespace_name S

Oracle之数据泵导入/导出数据

以前习惯用imp/exp导入导出数据,现在我们来搞一把数据泵导入导出的方法.它比之于imp/exp的方式的优点自不必说---速度快! 但是很不幸,我在导出数据的时候报错了,我擦,这特么就尴尬了.于是,神技乍现,康哥就擅长解决问题有木有?呀?乍一看这报错也是没谁了,完全看不懂啊!别害怕,遇到这样的报错就是文件问题,与文件相关的要么权限要么路径,这里是指数据库内部不存在这个文件,但是我在Oracle用户下面创建了啊.没用的,你要在数据库内部创建哦,记住是内部.来,我们操作一把. 来吧朋友,开始我们的

oracle 数据泵 每天自动备份

@echo off echo 删除10天前的备分文件和日志 forfiles /p "e:\app\back" /m *.dmp /d -5 /c "cmd /c del @path" forfiles /p "e:\app\back" /m *.log /d -5 /c "cmd /c del @path" echo 正在备份 Oracle 数据库,请稍等…… expdp sxybyj/[email protected] d

Mysql数据库每天定时执行备份方法

此数据库备份方法是简单的数据库备份方法,就是从Mysql的数据文件下,将数据库文件拷贝到指定的文件夹目录下 1.创建txt文件,添加脚本 net stop mysql xcopy D:\MySql\Data\*.* D:\MySqlDataBack\%date:~0,10%-data\ /y net start mysql 其中 此脚本是拷贝数据的表文件 net stop mysql:停止mysql服务: xcopy D:\MySql\Data\*.* D:\MySqlDataBack\%dat

Oracle 用数据泵导入导出数据

oracle expdp导出数据 expdp username/[email protected] dumpfile=1.dmp 在数据库服务器的命令行中执行上面的命令,会在app\hisense_jtpt\admin\orcl\dpdump生成一个1.dmp文件 其中orcl是SID名称 oracle impdp导入数据 impdp newUser/[email protected] dumpfile=1.dmp remap_schema=oldUser:newUser

转:windows下定时执行备份数据库

上一篇写了linux下定时任务,这一篇转发一个windows下定时备份数据库. 第一种:新建批处理文件 backup.dat,里面输入以下 net stop mysql xcopy "C:\Program Files\MySQL\MySQL Server 5.0\data\piaoyi\*.*" D:\db_backup\%date:~0,10%\ /y net start mysql 注意:批处理命令中路径里有空格的话,必须在路径上加上双引号! 关于时间参数的参考: %date:~0

『ORACLE』 数据泵Data Pump中expdp导出(11g)

[[email protected] ~]$ mkdir datadump[[email protected] ~]$ cd datadump/[[email protected] datadump]$ pwd/home/oracle/datadump SQL> create or replace directory dir_dp as '/home/oracle/datadump'; Directory created. SQL> grant read,write on directory

ORACLE使用数据泵导入导出部分表

1.导出名字为A的表(这里会导出SEQUENCES及FUNCTION等内容) expdp TEST/TEST@orcl schemas=TEST dumpfile=TEST.dmp DIRECTORY=db_bak EXCLUDE=TABLE:\"NOT IN\(\'A\')\" 2.导出名字不为A的表(去掉NOT与我们习惯的正好相反) expdp TEST/TEST@orcl schemas=TEST dumpfile=TEST.dmp DIRECTORY=db_bak EXCLUD