SQL Server 大数据搬迁之文件组备份还原实战
时间:2022-03-10 17:02
原文:SQL Server 大数据搬迁之文件组备份还原实战
一.本文所涉及的内容(Contents)
- 本文所涉及的内容(Contents)
- 背景(Contexts)
- 解决方案(Solution)
- 搬迁步骤(Procedure)
- 搬迁脚本(SQL Codes)
- 注意事项(Attention)
- 疑问(Questions)
- 参考文献(References)
二.背景(Contexts)
有一个数据库大概在700G左右,需要从服务器A搬迁到服务器B,两台服务器网络传输速度可以达到8MB/s,怎么做才能更快的搬迁并且宕机时间最短呢?
数据库业务逻辑概述:这个数据库只会插入数据,每天大概有300W条数据,不会对数据进行修改,只有一个表比较大,并且这个表是以自增ID作为分区依据列的,文件组会被重用,数据库为简单恢复模式,我定时会对表数据进行交换分区删除数据;
三.解决方案(Solution)
之前我也写过关于搬迁数据库的一些文章:
1. SQL Server 数据库最小宕机迁移方案,这篇文章是通过完全备份+差异备份的方式迁移数据库的,这种方式比较合适数据库只有20G左右的数据库,宕机时间=差异备份时间+传输差异备份时间+还原差异备份时间,一般来说这个时间都比较短,因为差异备份都不会太大;
2. SQL Server 数据库迁移偏方,这篇文章是通过作业的方式迁移数据库的,一个事务中转移N条(大约2W条)数据,N值可以通过测试进行调整(需要看网络情况而定),这种方式比较适合数据库比较大,比如几百G的数据库,而且网络环境比较差的情况下,宕机时间≈0(当转移最后一部分数据足够小),缺点就是迁移的时间会比较长;
3. 那么这篇文章我们再来讲讲其它方式的迁移,在上面提到的背景下,可以通过对分区文件组进行备份的方式迁移数据库,这种方式比较适合大数据库的迁移,宕机时间=最后一个文件组备份时间+传输备份时间+还原最后一个文件组时间,缺点是宕机时间会比较大,但是整体迁移的时间会比较小;下面是逻辑结构图:
解答:从备份和还原的代码可以看出只是把FILEGROUP与bak对应,与ndf文件对应,所以是不需要理会这个文件组中包含了多少个逻辑分区;
八.参考文献(References)
SQL文件组备份和还原
Sql Server 系统表分析(1) - 备份表
如何还原到故障点 (Transact-SQL)
backupset (Transact-SQL)
SQL Server 大数据搬迁之文件组备份还原实战,布布扣,bubuko.com