范文
菜单

数据异地备份方案

时间: 08-23 栏目:方案
篇一:服务器数据全自动异地备份解决方案(1260字)

公司某游戏平台使用 SQL Server 作为数据存储解决方案。为了数据的安全,每天凌晨在本机上做一次备份。但随着时间的推移,原先并没有设计到备份需求的硬件配置,尤其是外部存储这块,已经快不能满足 SQL Server 备份文件日益丰满的身姿。

为了彻底解决这个病痛,我打算为其实施远程异地备份。但查阅无数资料,均找不到较好的解决之道。大部分方案,都是在备份目的地建共享目录,新增一个用户并赋权。然后在数据库端写个存储过程,添加数据库维护计划并使用这个存储过程。这样做有太多弊端:对于操作系统来说,很不安全;对于硬件架构设计来说,必须满足同一内网的条件。于是乎,放弃这样的方案。经过几天的折腾测试,最后我采用了这样的方案。虽然比较老土,但至少 DIY 出来了,也暂时性满足了需求,缓解了阶级矛盾:

1、打开 SQL Server 企业管理器,找到数据库维护计划。

2、添加一个数据库维护计划,为其设置一个优美而和谐的名字,并选择需要操作的数据库对象。

3、设置在本机磁盘上的备份选项。由于备份需要每日转移,所以我的设置是每天做一个轮巡。

4、然后在数据库服务器上架设一个 FTP 服务端,并添加一个指向数据库每日备份目录的帐户。

5、安装,然后编写一个批处理,通过 WinRAR 命令行将每日备份目录打包待传。有关 WinRAR 的命令行参数可以参考我的批处理如下:

C:\Program Files\WinRAR\WinRAR.exe

D:\Task\bak_files\tmp.rar

E:\Backups

6、至此,数据库服务器上的备份打包已经准备好了,接下来就应该进行传输。由于数据库服务器上设置了 TCP/IP 策略,FTP 只能在被动模式下运行。如果用 Windows 自带的 FTP 命令行,就算能够建立连接,也是无法传输数据和执行操作命令的。这点非常郁闷,最后我放弃 FTP 命令行,在备份服务器上用解决了这个问题:

7、由于备份服务器的外部存储设备容量依然有限,需要想办法在每天获取数据库服务器上的备份之后,自动清理以前过期的备份文件。本来打算使用批处理来实现,苦于对批处理一窍不通,无奈向求助。我们的 Henry 操起无敌的 Microsoft Visual Studio 2005,刷刷刷刷几下就给我写了一个控制台程序,用于实现以上需求。限于商业约束,代码不便在此公开。但他的程序真的非常无敌,一个 88KB 的文件搞定一切,连一个扩展库都没有(就算有也一起封装进去了吧,我不懂 C++,瞎说的)。有了这个宝贝,接下来批处理就容易了。程序的执行参数是我们约定的,number30 代表保留30天备份,path_后面跟上备份目录的相对或绝对路径:

8、最后一步就应该是删除数据库服务器上的临时备份打包。由于 FTP 处于被动模式,使用 FTP 命令行删除自然行不通。只能在数据库服务器上添加一个计划任务,在拖备份操作之后的时间执行下面的脚本:D:\Task\bak_files\tmp.rar

至此,一个 SQL Server 数据库异地备份方案诞生了。还是那句话,虽然丑点了,但是真的很温柔。

篇二:异地数据备份方案(1557字)

随着信息技术的发展,和科技力量的不断促进,现在很多企业拥有自己的子公司,甚至在全国各地都有分布自己的品牌和售后服务的公司。这些公司的数据信息要和总公司的数据信息是要保持一致的,这就需要他们共享一个服务器中的数据,服务器的安全与否直接关系到企业的运营,因此企业要保证数据的安全必须要给服务器配置异地数据备份,保证数据的安全。由北京睿芸翰林信息技术专员为大家具体的分析。

一、 需求分析

现有环境

用户现有服务器类型:

WEB服务器:

数据库服务器

视频文件服务器

数据文件服务器

网络存储

操作系统环境:

windows 2008 server:

二、硬件环境:

出版社异地机房中现有8台服务器,其中7台为主应用服务器,1台为管理数据的服务器,数据类型包括文件类数据,数据库类型数据,视频类型数据等,这些数据全部放在一台大型数据集中SAN存储上进行保存,容量约为50T,光纤交换机连接。

出版社本地现有一台独立SAN存储,作为备份异地所有现有数据和未来需要增加的数据。

企业现状存在的风险

根据用户现有的硬件环境来看,出版社异地机房关键业务服务器的数据并没有进行有效的保护,存在着一定的风险,一旦存储出现故障,服务器中的数据将全部丢失,会给企业带来巨大的经济损失。

方案必要性

服务器之中都有自己的应用与数据,而且应用全部都是核心应用,数据也是重要数据,任何不可预计的风险导致应用停止,数据丢失都会导致用户无法使用正常工作,给用户带来巨大的经济损失。

因此用户希望能够将所有放在存储中的相关重要数据进行自动定时的备份,归档。

虽然本地数据得到了数据安全的保障,但是也存在着一定的隐患,因为如果整个本地机房发生灾难,同样会导致数据全部丢失。

为了避免整个企业机房发生灾难或机房瘫痪的情况,北京睿芸翰林为企业设计了将异地机房的数据定时备份到本地机房存储中的整体解决方案,保证了用户异地机房中的数据绝对安全。

三、解决方案

方案描述

首先需在本地分机房中,把备份软件服务端安装在HP DL380(或者DL580)服务器上,安装完成后在浏览器中输入该服务器IP地址,进入服务端管理界面,创建客户端用户,并且把备份数据的路径指向连接的SAN存储上。

在异地分机房中,安装客户端ReYun DBOS备份软件,打开软件,输入服务端所在服务器的IP地址,输入之前创建好的用户名和密码,进入软件,由于第一次全备份数据量过大,建议先把所有要备份数据备份到可移动存储上,拿着移动存储把数据拷贝到本地分机房的SAN存储上,以后增加的数据通过互联网备份。

通过网络将企业正在运行的系统、数据库以及文件快速、完整、稳定的备份还原。企业一旦遇到系统崩溃或者数据丢失等情况时,能够通过备份资料恢复已损坏的熊以及丢失的数据,实现企业业务持续稳健运行,保护数据安全。

机房的任何一台主服务器如果遇到系统崩溃或者数据丢失等情况时,能够通过备份服务器上的备份,进行资料恢复已损坏的系统以及丢失的数据。

一旦整个机房出现瘫痪,也可以通过本地备份服务器将瘫痪机房中的数据完全恢复,实现业务持续稳健运行,保护数据安全。

方案优势

备份优势,睿芸容灾备份软件中的DBM作为系列软件的中央管理平台,能够让系统管理员无论在何时何地都可以通过网络对备份客户端进行管理和检测,包括丢改备份策略、定制新的备份计划、检测各备份客户端备份状态、资源分配以及停止工作;终端备份可以运行在windows,linux,MAC系统上,并且可以在多平台的复杂异构环境下进行跨平台备份,例如将windows系统下的客户数据备份到linux系统下的服务端中;睿芸容灾备份软件拥有国际先进的CDP数据实时保护技术,能够将用于需要的存储的文件和数据进行秒级备份,并可以在不同的版本进行保留。用户可以在任意时间点进行数据恢复还原,真正做到数据得到完整安全的实时保护。

篇三:异地数据自动备份方案(2696字)

在大型商业应用中,数据的异地容灾备份十分重要,也必不可少。笔者根据自己的实践经验,设计了一套简洁地实现异地数据自动备份的方案,可供数据库管理人员参考。文中所有的程序都经过测试,运行良好。这里模拟的异地运行环境为一主一备两套Sun Solaris系统,所采用的备份方法为Oracle数据库提供的标准备份:export。

相关命令

文中主要用到三个命令,这里先单独介绍一下:

export: 将数据库中数据备份成一个二进制系统文件,它有三种模式: 用户模式、表模式、整个数据库模式。还可分为三种备份类型:完全型、积累型、增量型。本文以整个数据库模式下的完全型为例说明。export使用格式为:exp userid file。

其中:userid的用法为username/userpassword,即Oracle中的用户名/口令。userid必须为exp的第一个参数,file指备份文件所放位置及名称。

ftp: 一般情况下可通过交互方式实现两台主机间的数据传输,即需要手工输入目标主机的IP地址、用户名、口令等。但是当用户使用ftp命令时,系统将会先在该用户的注册目录中寻找。netrc文件,并首先执行该文件。这样,我们可以通过编写一个。netrc的文件来达到自动备份的目的。要注意该文件必须命名为。netrc,且必须存放在启动ftp命令主机上的用户注册目录里。ftp常用选项:

-i:进行多文件传送时关闭交互提示;

-n:在连接之后不进行自动登录。

本文使用“-i”选项,以关闭交互提示。

crontab: cron是一个永久进程,它由/etc/rc。local启动执行。cron检查/var/spool/cron/crontabs/目录中的文件,找到 所要执行的任务和执行任务的时间,并自动完成。该目录中文件由crontab命令建立。用户所建立的crontab文件存于/var/spool /cron/crontabs中,其文件名与用户名一致,本文使用crontab的用户为Oracle,所建立的文件名也为Oracle。

cron使用者的权限记载在下列两个文件中: /usr/var/adm/cron/cron。deny和/usr/var/adm/cron/cron。allow。前面的文件中所列的用户不允许使用crontab命令;后一文件中所列的用户允许使用crontab命令。crontab命令的常用格式为:

crontab -l:显示用户的crontab文件的内容;

crontab -r:从crontabs目录中删除用户的crontab文件;

crontab -e:编辑用户的crontab文件。

crontab文件每行中有6个字段,前5个为时间设定段,第6个为所要执行的命令。时间段分别为: minutes、hours、day of month、month、day of week,字段之间用空格或Tab分开。字段如果为“*”,表示该字段在所有可能的取值范围内取值; 如果一个字段是由连字符隔开的两个数字,表明命令可以在两个数字之间的范围内执行。

备份数据库

设定数据库的拥有者为Oracle,用户名为mistest,其口令为test,新建备份目录为/export/home/oracle/backup。建立一个命名为testbackup的备份文件,文件内容如下:

ORACLE-HOME=/export/home/oracle/815;export ORACLE-HOME   ORACLE-SID=ora815;export ORACLE-SID   rm /export/home/oracle/backup/*   rq=丶date +“%m%d”丶   /export/home/oracle/815/bin/exp mistest/test file=/export/home/oracle   /backup/exp$$rq。dmp log=/exoport/home/oracle/backup/exp$$rq。log

说明:前两句对Oracle数据库初始化,第3条语句清空备份目录,第4条语句建立一个取当前日期的变量,以便在最后一条语句的备份文件名里含有当前日期信息。 testbackup编写完成后,用“chmod +x testbackup”命令授予它可执行权限。

异地传输

在备份主机里建立一个备份目录:/data/oradata/newbackup, 在本地主机Oracle用户的注册目录/export/home/oracle里建立一个。netrc文件。设定好备份主机的IP地址,备份主机上的用户为oraclebk, 口令为testbk2。。netrc文件内容为:

machine x。x。x。。x   login oraclebk   password testbk2   macdef init   bin   lcd /export/home/oracle/backup   cd /data/oradata/backup   mput *   bye

说明: 前3条语句完成在备份主机上的登录,第4条语句定义一个名为init的宏,第5条语句表示以二进制传输,第6条语句表示进入本地工作目录,第7条语句表示进入备份主机目录,第8条语句完成将本地主机/export/home/oracle/backup目录下的所有文件传输至备份主机/data /oradata/backup目录下,最后一条语句退出ftp会话进程。。netrc文件编写完成后,用命令“chmod 600 。netrc”使该文件只能被该用户所访问。

自动执行

我们以oracle用户登录本地主机,用“crontab -e”编写crontab文件用以启动自动备份进程。oracle文件内容如下:

10 23 * * * /export/home/oracle/testbackup  

30 23 * * * ftp -i x。x。x。x

说明:第1条语句指定每天自动在23点10分执行对数据库的备份,第2条语句指定每天自动在23点半启动ftp,将备份文件传输到备份主机(备份主机为符合语句中指定IP地址的主机)。

Oracle文件只能在Oracle用户名下用“crontab -e”命令来编辑。编辑完成后,可以在用“crontab-l”命令来查看crontab文件内容,同时在/var/spool/cron/crontabs目录下查看是否增加了一个Oracle文件。

至此,本地主机可以每天定时备份数据库,并定时把备份数据传到备份主机。这样,较好地实现了Oracle数据异地自动备份,本地主机如果有什么故障,数据有了可靠备份,同时,在一定程度上也减轻了系统管理人员烦琐、重复的备份工作。

为你推荐