SQLSERVER数据备份文件的分割备份方法

作者:mdxy-dxy 时间:2024-01-15 15:30:39 

当完整备份数据库的时候,我们有时候可能会遇到一种极端情况,比如服务器上C,D,E三个盘符都只剩下5G空间了

但是如果要完整备份业务库需要12G的空间,那么这时候怎么办呢?

使用文件组备份吗?但是数据库没有做表分区,没有分多个文件组,就只有一个主文件组啊

这时候我们可以使用备份文件分割

我使用自己机器示范一下,我的机器上有一个Temp2的数据库,数据库大小为1GB

SQLSERVER数据备份文件的分割备份方法

备份

我们做一个Temp2数据库的完整备份


DECLARE @CurrentTime VARCHAR(50), @FileName VARCHAR(200)SET @CurrentTime = REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR, GETDATE(), 120 ),'-','_'),' ','_'),':','')        --(Temp2 数据库完整备份)SET @FileName = 'C:\Temp2_FullBackup_' + @CurrentTime+'.bak'BACKUP DATABASE [Temp2]TO DISK=@FileName WITH FORMAT

可以看到需要31MB大小

SQLSERVER数据备份文件的分割备份方法

那么如何分割备份文件呢?方法很简单

刚才是备份到C盘,现在我们备份到C盘和D盘


DECLARE @CurrentTime VARCHAR(50), @FileName VARCHAR(200),@FileName2 VARCHAR(200)SET @CurrentTime = REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR, GETDATE(), 120 ),'-','_'),' ','_'),':','')        --(Temp2 数据库完整备份)SET @FileName = 'C:\Temp2_FullBackup_Partial1_' + @CurrentTime+'.bak'SET @FileName2 = 'D:\Temp2_FullBackup_Partial2_' + @CurrentTime+'.bak'BACKUP DATABASE [Temp2]TO DISK=@FileName,DISK=@FileName2WITH FORMAT

C盘

SQLSERVER数据备份文件的分割备份方法

SQLSERVER数据备份文件的分割备份方法

D盘

SQLSERVER数据备份文件的分割备份方法

SQLSERVER数据备份文件的分割备份方法

可以看到每个备份文件的大小是平均的,都是16MB,如果是分成3个备份文件,那么就除以3,就是每个备份文件的大小

当然,如果你要查询备份文件的信息,无论查询哪个备份文件都是可以查询出来的


RESTORE FileListOnly From Disk='C:\Temp2_FullBackup_Partial1_2014_12_19_150533.bak'RESTORE FileListOnly From Disk='D:\Temp2_FullBackup_Partial2_2014_12_19_150533.bak'RESTORE HeaderOnly From Disk='C:\Temp2_FullBackup_Partial1_2014_12_19_150533.bak'RESTORE HeaderOnly From Disk='D:\Temp2_FullBackup_Partial2_2014_12_19_150533.bak'

SQLSERVER数据备份文件的分割备份方法

还原


USE [master]RESTORE DATABASE [Temp2] FROM  DISK = N'D:\Temp2_FullBackup_Partial1_2014_12_19_150533.bak',DISK = N'D:\Temp2_FullBackup_Partial2_2014_12_19_150533.bak' WITH  FILE = 1,  MOVE N'Temp' TO N'E:\DataBase\Temp2.mdf',  MOVE N'Temp_log' TO N'E:\DataBase\Temp2_log.ldf',  NOUNLOAD,  REPLACE,  STATS = 5
GO

还原的时候只需要指定所有的备份分割文件的路径就可以了,当然我们一般在服务器搬迁的时候都会把这些备份文件一起放到新服务器的同一个盘符下面,方便还原

而不会一个放C盘,一个放D盘,一个放E盘

SQLSERVER数据备份文件的分割备份方法

还原好了,我们查询一下数据

SQLSERVER数据备份文件的分割备份方法

SQLSERVER数据备份文件的分割备份方法

还原出来的数据库没有问题,可以收工了

总结

有时候当服务器的任何一个盘符的空间都不足以放下一个完整备份文件,但是又急需要做一个完整备份,那么可以采取这种办法

当然,你也可以插入一个移动硬盘,将数据库备份到一个移动硬盘里去,但是当你做集群搬迁,只能远程到服务器去做备份的时候,这种办法就比较有用了

标签:SQLSERVER,分割备份
0
投稿

猜你喜欢

  • python高并发异步服务器核心库forkcore使用方法

    2021-12-04 18:38:24
  • thinkphp利用模型通用数据编辑添加和删除的实例代码

    2024-05-03 15:13:14
  • python numpy存取文件的方式

    2021-04-15 18:31:56
  • Python高阶函数与装饰器函数的深入讲解

    2023-10-04 12:42:41
  • django rest framework之请求与响应(详解)

    2022-09-11 00:30:03
  • python中常用的内置模块汇总

    2023-12-28 14:57:01
  • python实现烟花小程序

    2022-10-02 09:45:23
  • jQuery事件的绑定、触发、及监听方法简单说明

    2024-02-24 12:50:53
  • 使用标准的表单字段名

    2008-06-30 14:14:00
  • python二叉树遍历的实现方法

    2021-09-19 03:53:14
  • Python3中小括号()、中括号[]、花括号{}的区别详解

    2022-05-31 09:20:36
  • Python API自动化框架总结

    2022-08-25 15:37:44
  • Python实现非正太分布的异常值检测方式

    2021-11-22 12:27:57
  • 简单的XML操作:XML文件创建

    2008-04-25 10:31:00
  • 深入理解 ES6中的 Reflect用法

    2024-04-16 09:30:44
  • opencv python截取圆形区域的实现

    2022-11-27 06:58:50
  • python中操作文件的模块的方法总结

    2022-02-01 04:56:14
  • MySql二进制连接方式详解

    2024-01-26 14:38:42
  • 彻底解决MySql在UTF8字符集下乱码问题

    2011-06-02 12:02:00
  • SQL基础查询和LINQ集成化查询

    2024-01-18 21:51:47
  • asp之家 网络编程 m.aspxhome.com