免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4152 | 回复: 8
打印 上一主题 下一主题

基于服务器冷备模式的数据据全自动备份与恢复 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-11-19 22:37 |只看该作者 |倒序浏览
目 录



1     基于服务器冷备模式备份和恢复.... 2
1.1       思想... 2
1.2       具体功能... 2
1.3       适用范围... 3
1.4       备份与恢复的技术实现... 3
1.4.1       安装... 3
1.4.2       配置... 4
1.4.3       备份周期... 6
1.4.4       功能体验... 6
1.4.5       文件命名规则... 8
1.5       数据检查... 8

2     脚本介绍.... 9
2.1       脚本结构... 9
2.2       脚本内容... 9

1         基于服务器冷备模式备份和恢复
1.1    思想

采用Oracle9i自带的备份恢复工具Export和Import,结合Linux脚本强大功能编写的具有自动导出、导入Oracle数据库且自动上传到指定的远程FTP备份服务器并根据自定义天数保留在本地和FTP服务器上的全自动脚本工具,避免因为本地灾难引发的数据无法恢复等问题的发生。

1.2    具体功能
l        结合Cron服务随意定制启动备份工具策略;
l        自动备份Oracle数据文件;
l        自动恢复Oracle 数据文件到指定的备机,同时支持多台备机;
l        对Oracle备份出的数据较验和归档;
l        自动上传备份数据文件到指的FTP服务器;
l        自动删除本地自定义天数历史备份文件;
l        自动删除FTP服务器上自定义天数历史备份文件;
l        提供备份日志查询文件;
l        系统将警告和结果公布在登陆界面;
l        中文界面,要求访问客户端支持 zh_CN语言包;

1.1    适用范围
适用于基于冷备模式服务器环境,且对数据同步要求不是很高,数据容差量大于1小时以上的范围。

1.2    备份与恢复的技术实现
1.2.1   安装
1.        将 文件下面的所有文件复制到root帐户下的任意目录下;
2.        进入Bak2Ftp查看bak2ftp是否有执行权限,如果没有执行权限请用chmod +x bak2ftp赋于脚本执行权限;

1.2.2   配置
1.2.2.1                 脚本配置

第一次运行脚本将生成相关配置文件,脚本将提示修改/tmp/Bak2Ftp/install_path.conf文件和…/config/init.conf文件。

#vi /tmp/Bak2Ftp/install_path.conf

Bak2Ftp_PATH=/data/Doc/Bak2Ftp   #这里比如安装在/data/Doc/Bak2Ftp目录

# vi /data/Doc/Bak2Ftp/config/init.con

#Bak2Ftp环境设置
Bak2Ftp_PATH=/data/Doc/Bak2Ftp                     #安装路径
SYSLOG=/data/Doc/Bak2Ftp/logs/syslog.txt        #日志文件

#ORACLE环境变量
ORACLE_BASE=/oradata  
ORACLE_HOME=/oradata/product/9.2.0.1.0
ORACLE_SID=DDPTEST
oratab=/etc/oratab                                                 #ORACLE默认安装位置,不用修改。

#ORACLE备份帐户
USERNAME=ddp                                                   #所要备份的ORACLE用户的用户名
PASSWORD=123456                                            #所要备份的ORACLE用户的口令
MY_ALIAS=DDPTEST                                           #ORACLE的TNS名
SYSTEM_PASSWORD=123456                            #ORACLE SYSTEM 帐户的口令

#主机常规设置
ACTIVE_HOST_ID=1                                             #本机是备机请变量值为0,主机时为1.
MYHOST_IP=192.168.1.139                                  #本机IP地址,最好设置为公网IP。

#备机常规设置
BACKUP_HOST_ID=0                                            #本机是备机请变量值为1,主机时为0.

#备份设置
DUMP_DIR=/data/Doc/Bak2Ftp/data/backup         #本机备份目录

#远程备份主机的设置
BACKHOST_IP=192.168.2.234                              #远程FTP服务器IP地址
BACKHOST_FTP_USERNAME=oracle                 #FTP服务器访问用户名
BACKHOST_FTP_PASSWORD=oracle                 #FTP服务器访问密码
BACKUP_DIR=ftptest                                             #FTP服务器上的备份路径

#定义备份保留天数
KEEP_DAYS=3                                                       #备份文件保留天数


1.2.2.2                 Crontab配置
备份时间策略到CRONTAB条目里面。

[root@test root]# crontab -e
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/jdk/bin:/opt/tomcat/bin:/opt/inprise/vbroker/bin: /opt/inet/bin:/home/oracle/product/9.2/bin
MAILTO=root
HOME=/

# run-parts
#01 * * * * root run-parts /etc/cron.hourly
#02 4 * * * root run-parts /etc/cron.daily
#22 4 * * 0 root run-parts /etc/cron.weekly
#42 4 1 * * root run-parts /etc/cron.monthly

#每天1:00执行Bak2FTP
0 1 * * * (source /home/oracle/.bash_profile;/data/Doc/Bak2Ftp/bak2ftp)

主机每天运行的的备份次数要求与备机每天运行恢复次数相同,且要主机的备份完成之后方可执行恢复程序,请注意Crontab时间上的分配。
这样就完成所有备份、恢复设置工作,以后Bak2FTP就可以自动备份和恢复Oracle数据库。

1.2.3   备份周期
备份周期可以根据各地方的实际要求定义CRONTAB的调度配置。

1.2.4   功能体验
1.2.4.1                 远程备份数据
C: >ftp -n 192.168.2.234
Connected to 192.168.2.234.
220 (vsFTPd 1.2.1)
ftp> user oracle xxxxxx
331 Please specify the password.
230 Login successful.
ftp> cd ftptest
250 Directory successfully changed.
ftp> ls -l
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r--    1 500      501      41943040 Nov 16 07:37 Oracle-DDPTEST-192.168.1.139-2006-320-1.tar
-rw-r--r--    1 500      501      41943040 Nov 16 07:38 Oracle-DDPTEST-192.168.1.139-2006-320-2.tar
-rw-r--r--    1 500      501      41943040 Nov 16 07:45 Oracle-DDPTEST-192.168.1.139-2006-320-3.tar
-rw-r--r--    1 500      501        143360 Nov 16 08:18 Oracle-srtime-192.168.2.234-2006-320-1.tar
-rw-r--r--    1 500      501        143360 Nov 16 08:27 Oracle-srtime-192.168.2.234-2006-320-2.tar
226 Directory send OK.
ftp: 收到 503 字节,用时 0.02Seconds 31.44Kbytes/sec.
ftp>


1.2.4.2                 本地日志
备份日志

2006-11-16-15:40:25----Bak2Ftp开始启动...
2006-11-16-15:40:25----系统开始读取Bak2Ftp的环境配置。
2006-11-16-15:40:25----系统开始读取ORACLE的环境配置。
2006-11-16-15:40:25----系统开始读取ORACLE备份帐户信息。
2006-11-16-15:40:25----系统开始读取主机常规设置户信息。
2006-11-16-15:40:25----系统开始读取远程备份主机的信息。
2006-11-16-15:40:26----系统开始读取备份保留天数。
2006-11-16-15:40:26----系统读取配置信息完成。
2006-11-16-15:40:26----系统的配置文件:/data/Doc/Bak2Ftp/config/init.conf己锁定。
2006-11-16-15:40:26----系统的日志文件:/data/Doc/Bak2Ftp/logs/syslog.txt己锁定。
2006-11-16-15:40:26----Bak2FTP 连结到Oracle测试...
2006-11-16-15:40:26----正在进行ftp服务器的ping测试。
2006-11-16-15:40:28----网络测试结果:OK
2006-11-16-15:40:28----ftp服务器的ping测试测试完毕。
2006-11-16-15:40:28----Oracle Tnsping连接测试:OK!
2006-11-16-15:40:28----识别到本机:XuQQ为数据库主机,程序将执备份程序...
2006-11-16-15:40:28----Oracle正在进行当天的第2次export数据导出...
2006-11-16-15:40:35----Oracle export数据导出完毕.
2006-11-16-15:40:35----系统开始归档DUMP文件...
2006-11-16-15:40:35----系统检测到共1个Dump文件.
2006-11-16-15:40:40----DUMP文件归档完毕,其文件为:/data/Doc/Bak2Ftp/data/backup/Oracle-DDPTEST-192.168.1.139-2006-320-2.tar
2006-11-16-15:40:40----Bak2Ftp将清理3天前的备份数据...
2006-11-16-15:40:40----系统将清除FTP服务器:192.168.2.234上3天前的备份数据.
2006-11-16-15:40:40----Bak2Ftp清除FTP服务器:192.168.2.234上3天前的备份数据完毕.
2006-11-16-15:40:40----系统将传输文件到192.168.2.234.
2006-11-16-15:40:46----传输文件:/data/Doc/Bak2Ftp/data/backup/Oracle-DDPTEST-192.168.1.139-2006-320-2.tar 到 192.168.2.234:ftptest/Oracle-DDPTEST-192.168.1.139-2006-320-2.tar成功.
2006-11-16-15:40:46----Bak2Ftp备份执行完毕,请检查备份文件和日志文件.


恢复日志

2006-11-16-16:15:42----Bak2Ftp开始启动...
2006-11-16-16:15:42----系统开始读取Bak2Ftp的环境配置。
2006-11-16-16:15:42----系统开始读取ORACLE的环境配置。
2006-11-16-16:15:42----系统开始读取ORACLE备份帐户信息。
2006-11-16-16:15:42----系统开始读取主机常规设置户信息。
2006-11-16-16:15:43----系统开始读取远程备份主机的信息。
2006-11-16-16:15:43----系统开始读取备份保留天数。
2006-11-16-16:15:43----系统读取配置信息完成。
2006-11-16-16:15:43----系统的配置文件:/data/Doc/Bak2Ftp/config/init.conf己锁定。
2006-11-16-16:15:43----系统的日志文件:/data/Doc/Bak2Ftp/logs/syslog.txt己锁定。
2006-11-16-16:15:43----Bak2FTP 连结到Oracle测试...
2006-11-16-16:15:43----正在进行ftp服务器的ping测试。
2006-11-16-16:15:45----网络测试结果:OK
2006-11-16-16:15:45----ftp服务器的ping测试测试完毕。
2006-11-16-16:15:45----Oracle Tnsping连接测试:OK!
2006-11-16-16:15:45----识别到本机:XuQQ为数据库备机,程序将执恢复程序...
2006-11-16-16:15:45----系统将从192.168.2.234下载备份文件:Oracle-DDPTEST-192.168.1.139-2006-320-9.tar到本机:XuQQ.
2006-11-16-16:15:45----DUMP归档文件下载失败,有可能原文件不存在,系统将尝试恢复当天第一次备份文件的恢复,从FTP服务器下载Oracle-DDPTEST-192.168.1.139-2006-320-1.tar 。
2006-11-16-16:15:50----DUMP归档文件下载完毕,其文件为:/data/Doc/Bak2Ftp/data/backup/Oracle-DDPTEST-192.168.1.139-2006-320-1.tar
2006-11-16-16:15:50----系统正在进行归档的Dump文件...
2006-11-16-16:15:51----系统正在进行归档的Dump文件完毕。
2006-11-16-16:15:51----Oracle正在进行当天的第1次备份数据的导入...
2006-11-16-16:15:52----Oracle Import 数据导入完毕.请检查数据的一致性!
2006-11-16-16:15:52----清除Import导入所需的临时文件...
2006-11-16-16:15:52----清除Import导入所需的临时文件完毕。
2006-11-16-16:15:52----Bak2Ftp恢复执行完毕,请检查数据库的一致性.

1.2.5   文件命名规则

1.3    数据检查
      脚本在执行恢复操作完成之后,需要人工核对数据。如果对于要求相当高的备份数据库建议不采用这种方式,提倡使用ORACLE的数据保护功能,配置备用库的方式来解决。

2         脚本介绍
2.1    脚本结构
`        
2.2    脚本内容

     长度限制,请查阅附件!

[ 本帖最后由 dighdypea 于 2006-12-8 00:15 编辑 ]

file-framework.JPG (3.22 KB, 下载次数: 47)

文件结构

文件结构

file-naming.jpg (20.03 KB, 下载次数: 40)

文件命名

文件命名

Bak2Ftp.rar

58.81 KB, 下载次数: 142

评分

参与人数 1可用积分 +3 收起 理由
blue_stone + 3 原创内容

查看全部评分

论坛徽章:
0
2 [报告]
发表于 2006-11-20 10:53 |只看该作者
如果觉得好用,或者有什么建议请提出。下一步是全自动的RMAN备份,本备份脚本已经用于全国各大移动的生产环境。

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-11-09 06:20:00
3 [报告]
发表于 2006-11-20 12:11 |只看该作者
谢谢,楼主,有时间了学习一下.
好东西,我顶一下.

论坛徽章:
0
4 [报告]
发表于 2006-11-20 14:11 |只看该作者
好东西

论坛徽章:
0
5 [报告]
发表于 2006-11-20 21:42 |只看该作者

脚本文档

附件是脚本文档,当然也可直接看脚本。

数据库自动备份恢复.part1.rar

180 KB, 下载次数: 148

数据库自动备份恢复.part2.rar

180 KB, 下载次数: 151

数据库自动备份恢复.part3.rar

96.09 KB, 下载次数: 134

论坛徽章:
0
6 [报告]
发表于 2006-11-23 17:20 |只看该作者
原创哟,无人顶哈!呵呵.....至少这个学习SHELL编程的绝好脚本.

论坛徽章:
0
7 [报告]
发表于 2006-12-08 00:13 |只看该作者
最后再顶一回!

论坛徽章:
0
8 [报告]
发表于 2006-12-08 00:16 |只看该作者
更新了脚本在恢复模块的一个BUG!

论坛徽章:
0
9 [报告]
发表于 2006-12-15 08:59 |只看该作者
虽然我用不着,也顶楼主一下,学习shell确实好
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP