SQLServer 多点及时备份技巧
为了保证数据库的安全性,我们都会规划数据库的容灾策略,包含本地备份、异地备份、raid。或者使用高可用性(如 日志传送、镜像、复制等)进行异地容灾。因为 SqlServer 数据库的备份仅仅有一个备份策略(如 完整-差异-日志),对某个数据库中,仅仅创建一个完整的策略,不要创建多个,否则备份链对不上。备份各在一方。对于备份。一般使用
完整备份+差异备份+日志备份,或者 完整备份+差异备份+日志传送,可是备份仅仅有一个文件。为了在异地也保存有同样的备份。SqlServer 有几种參数可设置多地保存。如 MIRROR TO ,COPY_ONLY ,但仅仅对完整备份有效。全部其它情况下,都使用 windows 命令复制到其它地方做冗余存储。
曾经也用过一种方法。拷贝N天内的数据到其它地方(參考 forfiles 和 xcopy 在windows下拷贝N天内更改过的文件),可是使用windows 作业的方法拷贝。并不及时。这里就介绍一种方法。及时异地存储到网络路径中,也就是数据库备份完毕后,马上把文件复制到异地中。
在一个目录中。有众多的备份文件,怎么筛选出刚刚备份出来的文件呢?
用 windows 命令批处理应该能够完毕,可是出来会太麻烦。那就在 SqlServer 寻找吧。~
SqlServer 中每一个备份都会有记录,备份的名称、路径、时间 等待都能够从备份历史中找出。
以master 完整备份为例:
SELECT TOP(1) media_set_id ,name
FROM msdb.dbo.backupset
WHERE database_name = 'master' and type = 'D'
ORDER BY backup_finish_date DESC SELECT physical_device_name
FROM msdb.dbo.backupmediafamily
WHERE media_set_id = 2048
这些备份是维护计划自己主动备份的,每一个备份集中仅仅有一个备份文件,这就能够唯一确定一个文件了!~
顺便说明一下,backupset 中的 name 有时与实际的物理文件名不匹配,所以不用该名字。可是 backupset 中有时间信息。就按备份完毕时间排序取第一条最新的。
注:backupset 中的字段 type 表示不同的备份类型。D = 数据库; I = 差异数据库 ;L = 日志 。(參考backupset)
因此,就能够确定 master 最新的完整备份文件了!
SELECT physical_device_name FROM msdb.dbo.backupmediafamily
where media_set_id =(
SELECT TOP(1) media_set_id
FROM msdb.dbo.backupset
WHERE database_name = 'master' and type = 'D'
ORDER BY backup_finish_date DESC
)
为了能在 SqlServer 中更方便管理,文件的拷贝也在数据库中运行,须要启用系统命令 xp_cmdshell。
exec sp_configure 'show advanced options',1
reconfigure exec sp_configure 'xp_cmdshell',1
reconfigure
对于异地包含,须要建立网络映射:
exec master.dbo.xp_cmdshell 'net use \\IP\yourPath "password" /user:IP\user'
终于的拷贝脚本例如以下,在SqlServer使用 xp_cmdshell 进行拷贝:
DECLARE @OldPath NVARCHAR(200)
DECLARE @NewPath NVARCHAR(100)
DECLARE @cmdSQL NVARCHAR(300)
SET @NewPath = N'\\192.168.1.111\master\'
SELECT @OldPath = physical_device_name FROM msdb.dbo.backupmediafamily
WHERE media_set_id =(
SELECT TOP(1) media_set_id
FROM msdb.dbo.backupset
WHERE database_name = 'master' and type = 'D'
ORDER BY backup_finish_date DESC
)
SET @cmdSQL = N'xcopy "'+@OldPath+'" "'+@NewPath+'" /y '
--SELECT @cmdSQL
EXEC MASTER.DBO.XP_CMDSHELL @cmdSQL
命令完毕了。该放在哪里运行呢? 当然是数据库备份作业的下一步了!
~ 哈哈 O(∩_∩)O 自言自语~~
打开维护计划。选择控制流“ 运行T-SQL语句”的任务,将上面的语句粘贴到里面中。作为系统数据库备份后的下一步。完毕。~
运行看看!~这样备份就比較快了!~(相同试试其它数据库的 完整备份+差异备份+日志备份)
SQLServer 多点及时备份技巧的更多相关文章
- WinRAR备份技巧 - imsoft.cnblogs
RAR控制台日常备份策略 run.batrar a -ep1 -agYYYY{年}MM{月}DD{日} 备份 @list.txt-ep1是忽略原文件路径,rar包里是一堆文件,没有目录结构-ag附加命 ...
- 好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面)
转载:http://www.cnblogs.com/lyhabc/p/3322437.html 挺好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面) 这个工具主要就是 ...
- 挺好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面)
原文:挺好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面) 挺好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面) 这个工具主要就是自 ...
- SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面)
挺好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面) 这个工具主要就是自动备份数据库,一键还原数据库,发送备份数据库日志报告到邮箱,自动压缩备份好的数据库 定期执行数 ...
- SQLSERVER SQL性能优化技巧
这篇文章主要介绍了SQLSERVER SQL性能优化技巧,需要的朋友可以参考下 1.选择最有效率的表名顺序(只在基于规则的优化器中有效) SQLSERVER的解析器按照从右到左的顺序处理F ...
- Linux MySQL差异备份技巧
MSSQL差异备份使用技巧 15 Apr 2013 所谓的差异备份,就是只备份最近一次备份之后到此次备份之前所增加的那一部分数据.打个比方我第N次备份后数据库存放的内容是ABCD,然后我第N+1次 备 ...
- SQLServer 理解copyonly备份操作
标签:MSSQL/日志截断 概述 Alwayson在添加数据库的过程中如果同步首选项选择的是“完整”,那么就会在主副本上执行copyonly的完整备份和日志备份在辅助副本上执行还原操作,也正是这个操作 ...
- mssql sqlserver 快速表备份和表还原的方法
摘要: 在sqlserver维护中,我们偶尔需要运行一些sql脚本对数据进行相关修改操作,在数据修改前我们必须对表数据进行备份来避免出现异常时,可以快速修复数据, 下文讲述sqlserver维护中,快 ...
- sqlserver数据库的备份与还原——完整备份与还原
sqlserver提供四种数据库备份方式 完整备份:备份整个数据库的所有内容包括书屋和日志 差异备份:只备份上次完整备份后更高的数据部分 事务日志备份:只备份事务日志里的内容 文件或文件组备份:只备份 ...
随机推荐
- 【IDEA】(4)---很好用的DEBUG功能
IDEA-DEBUG功能 一.常用快捷键 快捷键并不是完全一样的,我这边是MAC安装的IDEA, 这边最主要还是知道DEBUG时常用的功能. 1.快捷键 F7 #进入下一步,如果当前行是一个方法,则进 ...
- 题解报告:hdu 1848 Fibonacci again and again(尼姆博弈)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1848 Problem Description 任何一个大学生对菲波那契数列(Fibonacci num ...
- linux ssh 经常断开 的解决方法
1.现象 在linux ,用ssh进行远程连接时,经常会发生长时间后断线,或者是无响应,就像卡住的感觉(键盘输入不进去). 2.解决方法 在ssh客户端的linux设置 # sudo vim /etc ...
- linux 新添加的硬盘格式化并挂载到目录下
需求: 新增加一块硬盘sdb,将sdb分区,只分一个区,格式化,挂载到目录/ssd下. 1. 查看现在已有的分区状态 # df –l 图中显示,没有看到sdb硬盘 2. 查看服务器安装的硬盘状态( ...
- WebGL画点程序v1
本文程序实现画一个点的任务,如下图.其中,点的位置直接给定("硬编码")在顶点着色器中. 整个程序包含两个文件,分别是: 1. HelloPoint1.html <!DOCT ...
- Arduino 9g舵机操作
一.接线原理图 一.实物图 三.事例代码 从0转180度,再从180转到0度
- Java_Jdbc_连接mysql数据库_1.打通数据库
准备工作:myeclipes,mysql,navicat,jar包等工具 首先,需要导入连接数据库需要的jar包.照着教程敲的程序一直出错,结果就是导jar包导得有问题. 正确的(不唯一)的步骤为:1 ...
- MVC返回400 /404/...
return new HttpStatusCodeResult(HttpStatusCode.BadRequest); //HttpStatusCode statusCode 枚举 // HttpSt ...
- js-url解析函数
//Url解析 function parseURL(url) { var a = document.createElement('a'); a.href = url; return { source: ...
- 25-Ubuntu-文件和目录命令-其他命令-重定向
重定向 Linux允许将命令执行结果重定向到一个文件. 将本应显示到终端上的内容输出或追加到指定文件中. 重定向命令 含义 > 表示输出,会覆盖原有文件. >> 表示追加,会将内容追 ...