网络安全防护与全方位灾备 6月26日 星期四 15:00 云祺视频号准时直播
云祺直播二维码
扫码预约直播,观看精彩内容! 扫码预约直播,观看精彩内容!
关闭按钮
云祺Logo 云祺Logo
关于我们

技术分享

技术分享 记一次linux下oracle的本地和异地备份

记一次linux下oracle的本地和异地备份

2015-10-20

客户服务器环境:rhel-server-5.4-x86_64+oracle10g

异地备份服务器环境:windows server 2008 

网络环境:正式服务器在外网,异地备份服务器在内网(无法映射到外网)

要求:在本地服务器、异地服务器上需要每天对网站工程和数据库进行备份,需要保留前5天的备份

方案1:在windows server 2008 安装serv-u 等软件,将Linux服务器中备份的工程包和数据库压缩包上传(推送)至异地备份服务器,但异地服务器是内网且无法映射到外网,无法搭建FTP服务器,所以该方案不可行。

方案2:在Linux服务器上搭建FTP服务器,异地备份服务器通过flashfxp等软件进行定时download

在Linux上安装FTP包


  1. [root@yinyong ~]# rpm -ivh ftp-0.17-35.el5.i386.rpm   

  2. warning: ftp-0.17-35.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186  

  3. Preparing...                ########################################### [100%]  

  4.    1:ftp                    ########################################### [100%]  

  5. [root@yinyong ~]# service vsftpd start  

  6. vsftpd: unrecognized service  

  7. [root@yinyong ~]# vi /etc/xinetd.d/gssftp   

  8. defaultoff

  9. # description: The kerberized FTP server accepts FTP connections \  

  10. #              that can be authenticated with Kerberos 5.  

  11. service ftp  

  12. {  

  13.         flags           = REUSE  

  14.         socket_type     = stream  

  15.         wait            = no

  16.         user            = root  

  17.         server          = /usr/kerberos/sbin/ftpd  

  18.         server_args     = -l   

  19.         log_on_failure  += USERID  

  20.         disable         = no

  21. }  

  22. [root@yinyong ~]# service xinetd restart  

  23. Stopping xinetd:                                           [  OK  ]  

  24. Starting xinetd:                                           [  OK  ]  

  25. [root@yinyong ~]# netstat -tnl  

  26. tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LIST  

 vi /etc/xinetd.d/gssftp 将disable=yes改成no,然后打开ftp服务

把server_args  = -l -a  改成 server_args = -l  把 -a 去掉,这样系统的用户才有权限用ftp登陆

然后启动FTP服务,在这里我用的是service xinetd restart ,用service vsftpd restart报vsftpd: unrecognized service,不知道为什么。21端口启动了,我也测试了FTP能用root登录。

编辑网站工程包,数据库备份及删除文件等脚本:db_back.sh ,web_back.sh,clear.sh


  1. [root@yinyong /]# mkdir -p /bak/temp     //创建数据库、日志等备份路径  

  2. [root@yinyong /]# mkdir -p /bak/db_bak   //创建数据库本地备份路径  

  3. [root@yinyong /]# mkdir -p /var/ftp/pub  //创建异地备份数据库存放路径  

  4. [root@yinyong ~]# vi /home/oracle/db_back.sh   

  5. su - oracle "-c exp hbskjt_0113/password file=/bak/temp/hbskjt_db.$(date +%Y%m%d).dmp owner=hbskjt0113 log=/bak/temp/hbskjt_db.$(date +%Y%m%d).log"

  6. cd /bak/temp  

  7. tar zcf /bak/db_bak/hbskjt_db$(date +%Y%m%d).tar.gz hbskjt_db.$(date +%Y%m%d).* //数据库和日志一起打包本地备份 

  8. tar zcf /var/ftp/pub/hbskjt_db$(date +%Y%m%d).tar.gz hbskjt_db.$(date +%Y%m%d).*//数据库和日志一起打包异地备份

  9. [root@yinyong oracle]# chmod 777 db_back.sh

  10. [root@yinyong oracle]# ./db_back.sh

  11. [root@yinyong db_bak]# ls
    hbskjt_db20120911.tar.gz

  12. [root@yinyong pub]# ls
    hbskjt_db20120911.tar.gz

  13. 本地验证脚本成功。

 编写web_back.sh脚本


  1. [root@yinyong /]# mkdir -p /bak/web_bak //创建备份路径  

  2. 工程路径在/home/tomcat/webapps/oa 下  

  3. [root@yinyong ~]# vi /home/oracle/db_web.sh  

  4. cd /home/tomcat/webapps  

  5. tar zcf /bak/web_bak/oa_$(date +%Y%m%d).tar.gz oa/  //本地工程备份存放路径  

  6. tar zcf /var/ftp/pub/oa_$(date +%Y%m%d).tar.gz oa/ //异地工程备份存放路径  

  7. [root@yinyong oracle]# chmod 777 db_web.sh  

  8. [root@yinyong oracle]# ./db_web.sh  

  9. [root@yinyong web_bak]# ls  

  10. oa_20120911.tar.gz  

  11. 本地验证脚本,备份成功  

由于是做的每天备份,服务器的磁盘再大也会有爆的一天,所以需求删除以前的备份,只保留近5天的备份,这就需要一个删除脚本clear.sh


  1. [root@yinyong ~]# vi /home/oracle/clear.sh  

  2. rm -rf /bak/web_bak/oa_$(date -d -5day +"%Y%m%d")*.gz         //本地备份保留

  3. rm -rf /bak/temp/*.*                                          //该路径下是dmp、log文件,已经打包压缩备份,应每天删除

  4. rm -rf /bak/db_bak/hbskjt_db$(date -d -5day +"%Y%m%d")*.gz   

  5. rm -rf /var/ftp/pub/hbskjt_db$(date -d -1day +"%Y%m%d")*.gz   //异地备份只保留一天,确保每天下载的是当天最新的数据,解决覆盖文件的问题

  6. rm -rf /var/ftp/pub/oa_$(date -d -1day +"%Y%m%d")*.gz   

  7. [root@yinyong oracle]# chmod 777 clear.sh 

编辑cron


  1. [root@yinyong ~]# crontab -e  

  2. 0 1 * * * /home/oracle/db_back.sh    //凌晨一点做数据库备份  

  3. 0 2 * * * /home/oracle/db_web.sh     //凌晨二点做网站备份  

  4. 0 3 * * * /home/oracle/clear.sh      //凌晨三点删除以前的备份  

目前本地服务器的备份做好了,现在需要配置windows server 2008 异地服务器。

用的是FlashFXPliehuo4.2.6软件

配置登录参数:

650) this.width=650;" border="0" alt="" 

配置异地服务器存放路径:d:\tet\pub

650) this.width=650;" border="0" alt="" 

 Linux服务器备份路径:/var/ftp/pub:

点击右键“队列”

650) this.width=650;" border="0" alt="" 

会生成下面的配置文件:

650) this.width=650;" border="0" alt="" 

右键另存为*fqf文件。

点击软件 工具--计划,创建新的计划任务,“队列文件”就选择刚才保存的*fqf文件

650) this.width=650;" border="0" alt="" 

配置计划任务:

650) this.width=650;" border="0" alt=""

这样就可以自动下载了,在Linux服务器上做异地备份的目录,最好做成一天一删除,这样每天下载的内容就是最新的,而不用考虑重复下载和覆盖以前的工程、数据库等。这个计划任务最好是设置在凌晨,减少因为下载带来的网络负荷问题。

云祺备份软件,云祺容灾备份系统,虚拟机备份,数据库备份,文件备份,实时备份,勒索软件,美国,图书馆
  • 标签:
  • 技术分享

您可能感兴趣的新闻 换一批

现在下载,可享30天免费试用

立即下载

请添加好友为您提供支持
jia7jia_7

请拨打电话
为您提供支持

400-9955-698