Linux系统Oracle实现自动备份与FTP自动上传

**环境说明**

操作系统:Centos
环境:Oracle11g
FTP: 192.168.148.121 用户:dell 密码:123
解决方案:利用Linux crontab-自动化的任务 实现自动备份

**详细的操作步骤如下**

**1、完成 Linux下自动备份Oracle数据库详细操作步骤 http://www.111cn.net/sys/CentOS/80724.htm

**2、创建shell文件 tianshanbaktoftp.sh**
{{{
(详细的代码解释) #!/bin/sh
FTP_IP=192.168.148.121 #ftp地址
FTP_USER=dell #ftp用户名
FTP_PASS=123 #ftp密码
FTP_backup=/oraclebackup #ftp上存放备份文件的目录,需要先在FTP上面建好
BK_DR=/backup/oracledata/tsbak #备份文件存放路径
DB_DR=/backup/oracledata/ts #已经存在文件
DAYS=7 #DAYS=7代表删除7天前的备份,即只保留最近7天的备份
LINUX_USER=root #系统用户名
date=` date +%Y%m%d `
tar zcvf $BK_DR/TianShan$date.tar.gz $DB_DR
chown -R $LINUX_USER:$LINUX_USER $BK_DR #更改备份数据库文件的所有者
find $BK_DR -name "TianShan*" -type f -mtime +$DAYS -exec rm {} \; #删除7天前的备份文件(注意:{} \;中间有空格)
deldate=` date -d -7day +%Y%m%d ` #删除ftp服务器空间7天前的备份
ftp -i -v -n $FTP_IP << END #打开ftp服务器。21为ftp端口 <<END 和最后的 END:术语叫:当前文档here documents. here document 就是一段特殊目的的代码块
【#它使用I/O重定向的形式来将一个命令序列传递到一个交互程序或者命令中,比如ftp、cat,或者ex文本编辑器. 本句可以理解从<<END开始以非对话模式的ftp连接,直到输入END为止的所有命令. 当然END这个名字是可以随便取的,不一定必须是END,可以取其它的名字。 】
user $FTP_USER $FTP_PASS #用户名、密码
binary #设置二进制传输
cd $FTP_backup #进入ftp目录
lcd $BK_DR #列出本地目录
mput TianShan$date.tar.gz TianShan$date.tar.gz #上传目录中的文件
mdelete TianShan$deldate.tar.gz TianShan$deldate.tar.gz #删除ftp空间7天前的备份
bye
END

如果手动执行 sh没有问题的话,而放到crontab 执行报错话,请把上面的注释删掉,在执行试试。可以直接用下面【【】】里面的代码即可。
【【 #!/bin/sh
FTP_IP=192.168.148.121
FTP_USER=dell
FTP_PASS=123
FTP_backup=/oraclebackup
BK_DR=/backup/oracledata/tsbak
DB_DR=/backup/oracledata/ts
DAYS=7
LINUX_USER=root
date=` date +%Y%m%d `
tar zcvf $BK_DR/TianShan$date.tar.gz $DB_DR
chown -R $LINUX_USER:$LINUX_USER $BK_DR
find $BK_DR -name "TianShan*" -type f -mtime +$DAYS -exec rm {} \;
deldate=` date -d -7day +%Y%m%d `
ftp -i -v -n $FTP_IP << END
user $FTP_USER $FTP_PASS
binary
cd $FTP_backup
lcd $BK_DR
mput TianShan$date.tar.gz
mdelete TianShan$deldate.tar.gz
bye
END

】】
}}}
**3、修改文件属性,使其可执行**
{{{ chmod +x /backup/oracledata/tsbak/tianshanbaktoftp.sh}}}
**4、修改/etc/crontab vi /etc/crontab 最下面添加**
{{{ 5 2 * * * root /backup/oracledata/tsbak/tianshanbaktoftp.sh >> /backup/oracledata/tsbak/mylog.log 2>&1 #表示每天凌晨2点5分执行备份,并添加对应日志记录}}}
**5、重新启动crond使设置生效**
{{{ service crond restart #启动 }}}

时间: 2024-09-20 05:35:59

Linux系统Oracle实现自动备份与FTP自动上传的相关文章

讲解Linux系统下如何自动备份MySQL数据的基本教程_Mysql

1.先创建一个数据库备份目录: mkdir backup cd backup mkdir mysqlbackup cd mysqlbackup 2.创建备份脚本 vi mysqlautobackup 3.编写脚本: filename=`date +%Y%m%d` /mysql的bin目录/mysqldump --opt 数据库名 -u(mysql账号) -p(mysql密码) | gzip > /备份到哪个目录/name$filename.gz 说明:以上采用gzip压缩,name可随意写,注意

Linux下通过脚本自动备份Oracle数据库并删除指定天数前的备份_oracle

说明: Oracle数据库服务器 操作系统:CentOS IP:192.168.0.198 端口:1521 SID:orcl Oracle数据库版本:Oracle11gR2 具体操作: 1.root用户登录服务器 mkdir -p /backup/oracledata #新建Oracle数据库备份目录 chown -R oracle:oinstall /backup/oracledata -R #设置目录权限为oinstall用户组的oracle用户(用户oracle与用户组oinstall是在

实现Linux中Mysql数据库自动备份并上传到远程FTP服务器

这篇文章很有分享价值,因为我们在实际的生产环境中需要将数据库进行自动备份,然后上传到指定的位置,当然也可以像以下文章中所讲的一样,上传到你指定的FTP服务器中,从而实现Mysql数据库自动备份并上传到远程FTP服务器的部署,在Linuxhttp://www.aliyun.com/zixun/aggregation/31093.html">技术交流群中,也有朋友会遇到这方面的问题,可以将此文分享给群友共益. 注意:任何的操作都会具有风险性,请在本机实际测试通过之后再部署到服务器环境,这样即熟

Linux下oracle如何定时备份并删除几天前的数据

问题描述 Linux下oracle如何定时备份并删除几天前的数据 在linux环境下的,oracle数据的备份删除,应该怎么操作 解决方案 写一个shell脚本就可以,这样可以把数据传输到远程 today td=`date '+%Y%m%d'` backpath=/home/oracle/backup/ backfilename tfile=${backpath}${td}data.sql your backup command .... delete 10 days ago backfile

Linux系统本地文件资料备份策略示例

引示例为Linux系统本地文件资料备份的策略,希望正在寻找备份方案的朋友提供一些参考,如果你有其它方面的备份策略,也欢迎你与大家一起来分享,点击以下链接传送门,开启分享: http://www.ithov.com/member/article_add.php 我这里要把/home/wwwroot目录下面的所有http://www.aliyun.com/zixun/aggregation/18449.html">文件备份到/home/wwwrootbak里面,并且保存为wwwroot2012

linux下mysql如何自动备份shell脚本_linux shell

Linux 服务器上的程序每天都在更新 MySQL 数据库,于是就想起写一个 shell 脚本,结合 crontab,定时备份数据库.其实非常简单,主要就是使用 MySQL 自带的 mysqldump 命令. #!/bin/bash # Shell script to backup MySql database # To backup Nysql databases file to /backup dir and later pick up by your # script. You can s

Linux VPS主机定时自动备份网站及MYSQL数据库的脚本

从我们开始学习建站开始,不论我们是用免费的虚拟主机,还是省吃俭用购买的付费主机,以及我们在更大的项目需要转向VPS或者服务器存储:不论我们是不是技术科班出身,还是跟老左一样,看到网友们都有自己的网站于是热情澎湃的也搭建一个玩玩:不论我们的网站是大还是小,有盈利还是没有盈利,都要学会基本的自我维护,尤其是网站数据的备份.   我们不要过分的依赖和信任主机商给我们提供的备份,即便我们购买的很牛.很贵的服务商的产品,他们也可能会由于各种的可能性导致数据丢失或者奔溃的情况,我们可以选择定期手工备份或者用

linux&amp;windows中exp自动备份教程

大概思路: 1,分不同的用户进行exp,每个用户一个exp执行文件. 2,保留策略 3,用一个总文件调用(1,2)二个文件. on linux /u02/orabak:用于存放DMP文件的目录 /u02/scripts/autoexp:用于存放exp这些sh脚本的目录 记得对目录,文件赋于相应的WRX权限. autoexp.sh:自动备份的总文件,用crontab里面的sh文件. exp_plms.sh:每个用户一个sh文件,分用户备份 exp_weishi.sh:每个用户一个sh文件,分用户备

深入内核:从Oracle ASM自动备份头块到ASMFD

张乐奕 云和恩墨副总经理 Oracle ACE 总监 ITPUB Oracle数据库管理版版主.Oracle高可用版版主.ACOUG联合创始人 在 Oracle 10.2.0.5 之前,ASM 磁盘的头块并没有自己的备份,因此一旦头块损坏,如果没有以前 kfed read 备份出来的信息,也就没有办法使用 kfed merge来作头块恢复,特别是如果一个磁盘组中所有的磁盘头块都出现问题(比如被人为地创建了 PV ),恢复 ASM 磁盘头块的操作就会非常麻烦. 但是从 Oracle 10.2.0.