• sqlserver2000定时自动备份的实现


    工作中经常会碰到备份一个应用的数据库,刚开始你可能会每天手动的备份一次,但是时间长了你也许就会想到自动备份,下面简单的介绍一下我经常用的自动备份的方法.

       1、打开企业管理器->管理->sql server代理

       2、新建一个作业,作业名称随便取,例如:data备份,所有者选择sa,当然你也可以选择其他用户,前提是该用户有执行作业的权限;

       3、点击步骤标签,进入步骤面板.新建步骤,步骤名可以随便填写,如步骤1,类型和数据库默认,不需要修改.命令中写入以下语句:
    BACKUP DATABASE [数据库名] TO  DISK = N'F:\\data\\数据库备份' WITH  NOINIT ,  NOUNLOAD ,  NAME = N'数据库备份',  NOSKIP ,  STATS = 10,  NOFORMAT
       

       
    注意:需要修改的地方,数据库名,DISK=(这里需要填写路径和你的数据库备份的名称)后面的Name=可以随便填写.   4、点击调度标签,进入调度面板,新建调度,名称随便填写,选择反复出现,点更改可以选择你想要执行任务的随意调度.如每天,2,每星期,每月等.根据需要自己设置;
       5、确定后,不要忘记一件事情,在你刚才建立的工作上点右键,启动工作,如果你的工作没有问题,将会提示执行成功,并有相对应的备份文件在你的磁盘上出现;
       6、还有一个重要的问题就是你的sql server agent服务器已经启动.

       
    如果我们需要根据每天的日期来生成一个新的备份,以便我们区别备份文件.这时,我们需要修改一下刚才的sql语句.参考实例: declare @filename nvarchar(100) set @filename='F:\\AddIn\\备份[url=file://data]\\data'+convert(char(10),getdate(),112[/url]) print @filename BACKUP DATABASE [addin] TO DISK = @filename WITH NOINIT , NOUNLOAD , NAME = N'addin 备份', NOSKIP , STATS = 10, NOFORMAT

    declare @filename nvarchar(100) ;

    set @filename='c:\\AddIn\\备份[url=file://data]\\data'+convert(char(10),getdate(),112[/url]);

    print @filename ;

    BACKUP DATABASE [Destination] TO DISK = @filename WITH NOINIT , NOUNLOAD , NAME = N'Destination 备份',

    NOSKIP , STATS = 10, NOFORMAT;

    要用远程数据库可以备份本地。
    本地数据库也可以备份到远程。

    代码
    --备份环境:把数据库服务器(192.168.1.178)的数据库(TEST)备份到(192.168.1.101)的(E$:默认名称)E下



    declare @time varchar(20);
    declare @filename varchar(48);
    set @time = Convert(Varchar(19), getdate(),126);

    --首先,做一个与客户端的映射
    exec master..xp_cmdshell
    'net use z: \\192.168.1.101\e "密码" /user:192.168.1.101\administator'
    --'net use z: \\192.168.1.101\\e 密码 /user:192.168.1.101\\administator'
    --
    'net use z: \\192.168.1.101\e 密码 /user:192.168.1.101\administator'
    /*
    --说明:
    z: 是映射网络路径对应本机的盘符,与下面的备份对应
    \\192.168.1.101/e 是要映射的网络路径
    192.168.1.101\administrator
    192.168.1.101是远程的计算机名,administrator是登陆的用户名
    密码 上面指定的administrator用户的密码
    --
    */
    --其次,进行数据库备份
    set @filename = 'z:\\backup\\' + substring(@time,1,4) + substring(@time,6,2)+ substring(@time,9,2) + substring(@time,12,2) + substring(@time,15,2) + substring(@time,18,2)
    --set @filename = 'd:\\tools\\' + substring(@time,1,4) + substring(@time,6,2)+ substring(@time,9,2) + substring(@time,12,2) + substring(@time,15,2) + substring(@time,18,2)
    BACKUP DATABASE [jhdb] TO DISK = @filename WITH NOINIT , NOUNLOAD , NAME = N'数据库备份', NOSKIP , STATS = 10, NOFORMAT
    --最后.备份完成后删除映射
    exec master..xp_cmdshell 'net use z: /delete'

    之前一直没有成功,居然网络路径弄错了。

    写成了\\192.168.1.101\e$ 应该是 \\192.168.1.101\e   低级错误!

    方法二:由于局域网内远程备份数据库受网络的影响,备份速度慢,直接备份到远程硬盘并不是个好主意,一方面速度慢,另一方面网络传输过程中可能出现意外。还是直接备份到本地,再拷到远程硬盘的好,用SQL的脚本可以调用:“调用master..xp_cmdshell 'copy...'实现。” 

  • 相关阅读:
    SparkStreaming整合Flume的pull方式之启动报错解决方案
    n-map安装实操
    性能测试从入门到入土的一点思考
    基于Influxdb对InfluxDBResultMapper的一点扩展
    数据库恢复技术
    (转引)数据库索引(MySQL)
    携程一面凉经
    一文总结机器学习常见模型
    深度学习实战
    DFS
  • 原文地址:https://www.cnblogs.com/Godblessyou/p/1844731.html
Copyright © 2020-2023  润新知