前言

因工作需要将数据库每日备份至服务器本地磁盘和其他服务器磁盘,对网上的例子进行改造,解决了SQL server数据库备份的问题。

一、将指定数据库备份到本地

将数据库affair_stydy全备份至服务器H盘的AutoBackup文件夹下,实例如下:

DECLARE
@NAME VARCHAR(250)
SET @NAME='H:\AutoBackup\affair_stydy_'+ CONVERT(VARCHAR(50),GETDATE(),112)+'.bak'
BACKUP DATABASE[affair_stydy]TO DISK=@NAME WITH NOFORMAT, NOINIT,
NAME = N'affair_stydy_完整 数据库 备份',
SKIP, NOREWIND, NOUNLOAD

二、将指定数据库备份至其他服务器

将数据库affair_stydy全备份至10.10.56.43服务器的任意盘的AutoBackup文件夹下,实例如下:

注意:在目标服务器任意盘符创建AutoBackup文件夹,开启共享并设置权限为Everyone 完全控制,可能会受360、防火墙、cmd.exe的运行账户 等因素的影响。

--如果xp_cmdshell没有启用,请先启用
sp_configure 'show advanced options',1
RECONFIGURE
GO
sp_configure 'xp_cmdshell',1
RECONFIGURE
GO
--1.先创建映射
--EXEC MASTER.dbo.xp_cmdshell 'net use  \\服务器IP\共享文件夹  用户密码   /user:服务器IP\登录用户名'
EXEC MASTER.dbo.xp_cmdshell 'net use \\10.10.56.43\AutoBackup l;'' /user:10.10.56.43\Administrator'
--2.利用映射备份数据库
BACKUP DATABASE affair_stydy to disk='\\10.10.56.43\AutoBackup\affair_stydy.bak'
--3.删除映射
EXEC MASTER.dbo.xp_cmdshell 'net use \\10.10.56.43\AutoBackup /delete'

三、同时将数据库备份到服务器本地和其他服务器指定磁盘

将一、二进行整合,实现能同时备份数据库到服务器本地磁盘和其他服务器磁盘,实例如下:

--如果xp_cmdshell没有启用,请先启用
sp_configure 'show advanced options',1
RECONFIGURE
GO
sp_configure 'xp_cmdshell',1
RECONFIGURE
GO
DECLARE
@DatabaseName VARCHAR(100) --要备份的数据库名
,@Local_File_path VARCHAR(500) --本地备份路径
,@Server_Name VARCHAR(20) --目标服务器IP
,@Server_File_path VARCHAR(500) --目标服务器备份路径
,@User VARCHAR(100) --目标服务器登录用户名
,@Pwd VARCHAR(100) --目标服务器登录密码
,@Link VARCHAR(200) --链接字符串
BEGIN
--参数设定
SET @DatabaseName='affair_stydy';
SET @Local_File_path='''H:\AutoBackup\'+@DatabaseName+CONVERT(VARCHAR(50),GETDATE(),112)+'.bak''';
SET @Server_Name='10.10.56.43';
SET @Server_File_path='''\\'+@Server_Name+'\AutoBackup\'+@DatabaseName+CONVERT(VARCHAR(50),GETDATE(),112)+'.bak''';
SET @User='Administrator';
SET @Pwd='l;'''; --一、备份到本地
EXEC('BACKUP DATABASE '+@DatabaseName+' TO DISK ='+@Local_File_path); --二、备份到其他服务器
--1.先创建映射
SET @Link='net use \\'+@Server_Name+'\AutoBackup '+@Pwd+' /user:'+@Server_Name+'\'+@User+'';
EXEC MASTER.dbo.xp_cmdshell @Link; --2.利用映射备份数据库
EXEC('BACKUP DATABASE '+@DatabaseName+' TO DISK ='+@Server_File_path);
--3.删除映射
SET @Link='net use \\'+@Server_Name+'\AutoBackup /delete';
EXEC MASTER.dbo.xp_cmdshell @Link;
END

四、备份机制

可根据实际需要创建作业每日或指定时间段执行上述各代码块的内容,实现不同类型的数据库备份。

SQL server 数据库备份至服务器本地磁盘和其他服务器磁盘的更多相关文章

  1. (图解版)SQL Server数据库备份与还原

        本文介绍了SQL Server数据库备份的两种方式.一种是直接拷贝数据库中的文件mdf 和日志文件ldf,另一种是生成脚本语言. 第一种方式:     选中需要备份的数据库,将数据库从运行的数 ...

  2. SQL Server数据库备份的镜像

    SQL Server数据库备份的镜像 一个完整备份可以分开镜像 USE master GO BACKUP DATABASE [testdatabase] TO DISK = N'C:\testdata ...

  3. SQL Server数据库备份:通过Windows批处理命令执行

    通过Windows批处理命令执行SQL Server数据库备份 建立mybackup.bat ,输入以下内容直接运行该脚本,即可开始自动备份数据库也可把该脚本加入windows任务计划里执行. --- ...

  4. SQL Server数据库备份(本机)

    基础的SQL Server数据库备份存储过程 /**************************************************************************** ...

  5. SQL server数据库备份还原问题备忘(亲测有效)

    问题一:SQL server数据库备份还原方法 http://www.cnblogs.com/zgqys1980/archive/2012/07/04/2576382.html 问题二:无法执行 BA ...

  6. sql server数据库备份单个表的结构和数据生成脚本

    1.使用场景:sql server数据库备份单个表的结构和数据,在我们要修改正式系统的数据的一天或者多条某些数据时候,要执行update语句操作,安全稳健考虑,最好先做好所修改的表的结构和数据备份! ...

  7. sql server 数据库备份历史记录

    sql server 数据库备份历史记录 SELECT ),SERVERPROPERTY('Servername'))AS Server, bs.database_name, bs.backup_st ...

  8. sql server数据库备份单个表的结构和数据生成脚本【转】

    1.使用场景:sql server数据库备份单个表的结构和数据,在我们要修改正式系统的数据的一天或者多条某些数据时候,要执行update语句操作,安全稳健考虑,最好先做好所修改的表的结构和数据备份! ...

  9. SQL Server数据库备份&还原

    一.备份 1.登录数据库 2.找到要还原的数据库 右键-任务-备份-添加(路径只写一个,刚开始二个总是报错)-确定 二.还原数据库 这个之间报错了二次 1.报错1:备份集中的数据库与现有数据库“XXX ...

随机推荐

  1. 满足java对redis的所有操作,token,验证码过期时间等

    很实用 链接在此  https://www.cnblogs.com/edisonfeng/p/3571870.html System.out.println("=============== ...

  2. ps 进程管理

    一. 进程管理 1. pstree 2. ps 3. top 4. nice 5. free 6. screen 二. 程序与进程 程序是静态的文件,进程是动态运行的程序. 三. 进程和线程 一个程序 ...

  3. IP Addresses of Google Global Cache

    Bulgaria 93.123.23.1 93.123.23.2 93.123.23.3 93.123.23.4 93.123.23.5 93.123.23.6 93.123.23.7 93.123. ...

  4. MoveWindow和SetWindowPos

    SetWindowPos即使里面使用的是一样的矩形参数,有时候SetWindowPos还是会改变窗口的大小,真是坑爹!!! MoveWindow就不会改变 mark一下

  5. # iOS Block的本质(三)

    iOS Block的本质(三) 上一篇文章iOS Block的本质(二)中已经介绍过block变量的捕获,本文继续探寻block的本质. 1. block对对象变量的捕获,ARC 环境 block一般 ...

  6. java+spring 执行器

    A 通过MethodInvokingJobDetailFactoryBean类实现 spring配置文件里增加执行器配置 <bean id="ammoDue" class=& ...

  7. python打飞机pro版

    # -*- coding: utf-8 -*- import pygame from sys import exit import random pygame.init() screen = pyga ...

  8. shell 简单脚本 2

    #!/bin/bash source /etc/profile APPLICATIONS_HOME="/cpic/cpicapp/cpic_analy/jars" APPLICAT ...

  9. Java poi 的使用

    poi可操作老旧版本的excel 下载jar包,http://archive.apache.org/dist/poi/release/bin/poi-bin-3.17-20170915.tar.gz ...

  10. 多进程Queue

    进程间通讯 不同进程间内存是不共享的,要想实现两个进程间的数据交换,可以用以下方法: Queues 使用方法跟threading里的queue差不多 from multiprocessing impo ...