SQL Server数据库扩容方法总结

来源:互联网 发布:火龙女电影知乎 编辑:程序博客网 时间:2024/06/06 00:04

由于很多数据库在设计之初未能考虑到未来业务发展的需求,导致在后期数据量增大时需要进行 瘦身 or 扩容,本文总结了目前自己遇到的各种扩容方案,后期有新的将逐渐补充。

1.磁盘动态扩容:

最简单但也是最有效最科学最省事的扩容方式,一般存储都会提供这种动态扩容的功能。不适用于数据路径直接设置为服务器本地盘的情况(虚拟化另当别论)。

 

2.通过收缩数据库和日志文件进行瘦身(强烈建议关闭数据库自动收缩):

日志文件的收缩很简单,备份事务日志并观察数据库在sys.databases视图中的log_reuse_wait_desc状态值即可,可能需要多次备份才能截断成功,然后使用DBCC Shrinkfile语句收缩日志。

如果做好了全备,则收缩日志文件可以有更简单的办法,即:将数据库设为简单模式--收缩日志文件至1M--将数据库重新设为完整模式。

数据文件的收缩较为繁琐,由于数据文件收缩也会产生大量日志,因此要慎重进行,这个过程中也会对业务有很大影响,建议做好备份后再行操作。收缩完毕后需要再进行一次日志收缩操作。

 

3.通过备份恢复的方式直接迁移到新存储中:

很简单的方式,但是限制条件较多,例如需要重新搭建镜像和复制分发等,且需要暂停业务。

 

4.通过互换盘符的方式实现数据迁移:(经实践可以保证10min停机时间之内迁移任何容量的数据库)

将所有非系统库以restore with norecovery方式还原至新盘中并重新命名,停止业务后将所有日志还原上去,分离所有数据库后将所有系统数据库文件及其他上级目录一遍并拷贝至新盘中,将新存储盘符改为旧的盘符,然后重启服务附加数据库后开启业务。

 

5.通过分离附加的方式将数据库迁移至新存储中:

限制条件较多,需要重做复制分发,需要暂停镜像,需要停止业务。将数据库一一分离之后,迁移至新存储中逐个附加。

 

6.从架构方面思考不停业务的方法:

考虑镜像切换和alwayson切换,原备库承载业务,原主库设为备库后进行一系列扩容操作,成功后继续同步镜像或者alwayson。

有待进行试验探索。

0 0