1.数据库备份有两种方法:

  • 可以在维护计划里进行数据库备份,但是如果备份到局域网内的另一台服务器上,可以做个盘符映射,然后再维护计划里选择映射的盘符。
  • 第二种方法就是用作业的方式,运行SQL脚本。


exec master..xp_cmdshell 'net use h: \\10.0.1.117\tkm "密码" /user:10.0.1.117\administrator' ,NO_OUTPUT
go ---添加映射
-----2000用游标:
declare @s nvarchar(200),@del nvarchar(200)
select  @s='',@del=''

declare datebak cursor for
select 
    [bak]='backup database  '+quotename(Name)+'  to disk =''\\10.0.1.117\tkm\database\'+Name+'_'+convert(varchar(8),getdate(),112)+'.bak''  with init', --备份数据库
    [del]='exec master..xp_cmdshell '' del \\10.0.1.117\tkm\database\'+Name+'_'+convert(varchar(8),getdate()-30,112)+'.bak'', no_output' --删除30天以外备份的数据库
from master..sysdatabases where dbid>4 and name='TAMS_V1'  --不备份系统数据库的
open datebak

fetch next from datebak into @s,@del
while @@fetch_status=0
    begin
        exec (@del)
        exec(@s)
        fetch next from datebak into @s,@del
    end
close datebak
deallocate datebak
go
--删除映射
exec master..xp_cmdshell 'net use h: /delete'

go


2. 文件的备份与同步(windows平台)

我用cwrSync软件进行文件的备份与同步的,分别下载cwrSync软件的服务端和客户端。


  • 首先在源机器上安装cwrSync服务端,点击下一步安装完成(你懂的)。
  • 服务端配置:进入cwRsync安装目录,配置 rsyncd.conf 如下
use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log
uid=0
gid=0
max connections = 10
hosts allow = 10.0.1.117 #值允许此IP
hosts deny = 0.0.0.0/0

# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[web]
path = /cygdrive/d/Web #要备份的源路径D:\Web
read only = false
transfer logging = yes
lock file=rsyncd.lock
list=yes
incoming chmod = Du=rwx,Dog=rx,Fu=rwx,Fgo=rx
  • 然后在服务里启动服务,服务端 启动后用netstat -an,看873(默认端口,如果想修改可以在rsyncd.conf 里添加port=8944端口监听没,注意要在本机器上让防火墙允许此端口


  • 然后在目标机器上安装cwrSync客户端。
  • 编写批处理文件sync.bat,可以在CMD命令行里测试一下是否能够同步成功。


@echo off  
C:\"Program Files"\cwRsync\bin\rsync.exe -vzrtopg --progress --delete rsync://10.10.208.102:873/web /cygdrive/e/Backup/tkm/web >> e:\backup\tkm\rsync_%date:~0,10%.log
  • 测试成功后,可以通过windows中的“任务计划”来创建定时任务,执行定时同步。
    首先在客户端的机器上的: 控件面板->任务计划->点击“添加任务计划”, 在相应的弹出窗口中点击下一步,然后点击导航窗口中的“浏览”按钮,如下,并从中选择之前创建的批处理文件”sync.bat”。



这时系统会显示如下窗口提示当前计划任务执行方式,我这里选择每天执行(一次):


这里不做任何修改,直接点击下一步,接着是身份验证(通常是管理员身份),必定任务计划非同儿戏,要有足够的权限才可以玩的转:)

最后点击完成,就创建了一个任务计划。只不过它是按天执行的,如果我们希望其每分钟执行一次又该怎么办呢,其实很简单,只要在用鼠标点击新创建的任务计划,并在弹出菜单中选择“属性”,这时在弹出窗口的“日程安排”中点击“高级按钮”,如下:

然后可以在任务计划里进出测试计划是否 执行成功。

注:在用cwrSync进行文件备份和同步时,经常出现以下错误,

错误1: rsync: read error: Connection reset by peer (104)
rsync error: error in rsync protocol data stream (code 12) at io.c(794) [receive
r=3.0.2]


解决:很大可能是服务器端没有开启 rsync 服务。开启服务。

错误2:@ERROR: chdir failed
rsync error: error starting client-server protocol (code 5) at main.c(1495) [rec
eiver=3.0.2]


解决:服务器端同步目录没有权限,cwrsync默认用户是Svcwrsync。为同步目录添加用户Svcwrsync权限。

错误3:@ERROR: failed to open lock file
rsync error: error starting client-server protocol (code 5) at main.c(1495) [rec
eiver=3.0.2]


解决:配置文件 rsync.conf中添加 lock file = rsyncd.lock 即可解决。