SQL Server不停机移动镜像数据库方案和应用场景
SQL Server数据库镜像是对于数据库可用性的软件解决方案。镜像在每个数据库级别被部署,并只能在完整恢复模式下工作。由于磁盘空间的问题,需要移动镜像数据库到一个不同的位置。我们想不停机、不破坏镜像来完成这个任务。需要在不同的环境做测试。
对于启用了数据库镜像的数据库的文件移动,我们只有有限的选择。常规方法如下:
破坏数据库镜像会话,通过使用Alter database或Attach Detach移动在线数据库文件到一个新的位置。
备份数据库,并在镜像服务器上恢复备份,然后重建镜像。
技术上来讲,这是可行的,但是它需要停机时间,并且尤其对于大数据库,移动和恢复需要大量额外时间。
给定的停机时间是客户端总是会考虑的,我们得找到一个不停机的方案。以下步骤说明了如何不停机移动数据库文件而不用打扰同步数据库镜像。
对于镜像实例:
在主服务器上暂停镜像(可选)。
在镜像服务器上使用Alter database语句来指向一个新位置。
停止镜像SQL Server服务。
移动镜像数据库文件到一个新位置,并确保文件上的权限也还在。
启动镜像SQL Server服务。
在主服务器数据库上恢复镜像,并验证镜像成功恢复。
对于主实例:
故障转移数据库到镜像服务器,以至于镜像服务器现在作为主服务器。
在新的主服务器上暂停镜像(可选)。
在新的镜像服务器上使用Alter database语句来指向一个新位置。
停止新镜像的SQL Server服务。
移动新的镜像数据库文件到一个新位置,并确保文件上的权限也还在。
启动新镜像的SQL Server服务。
在主服务器数据库上恢复镜像,并验证镜像成功恢复。
如果详细查看以上计划,可以看到应用程序会话在镜像数据库故障转移期间会重连。当应用程序负载在主服务器上运行时,停止镜像SQL Server服务,物理移动数据库文件,然后启动镜像SQL Server服务。所以无需停机时间。
然而,你要确保在主服务器上有足够的日志空间,因为镜像状态将会被断开(不只是一个库,而是实例上所有镜像的数据库)。当镜像状态断开时,日志记录不会从主服务器发送到镜像服务器,将会累积在主服务器。一旦镜像实例启动,镜像状态变为同步中,主服务器将会开始发送日志记录到镜像服务器。
我们可以通过以下T-SQL来检查所有镜像数据库的文件位置,来验证是否修改成功:
Select DB_NAME(dbid),name,filename from sysaltfiles where DB_NAME(dbid) in (Select DB_NAME(database_id) from sys.database_mirroring where mirroring_state is not null) order by 1
总的来讲,当移动数据库时可以保持数据库镜像不用停机。对于见证服务器无需任何操作,在活动期间一直保持在线状态。首先这个方案应该在测试环境验证后,再在生产环境实施。非常重要的是,我们注意到在异步镜像模式,也可以参照这种做法,只是需要在应用停机的情况下来实施。
在以下应用场景下会移动镜像数据库的数据或日志文件的位置:
磁盘空间不足
数据库服务器上,配置了镜像的数据库所在磁盘空间不足,可以迁移MDF或LDF文件到新的磁盘。
加速镜像数据库追上主库
在主库从宕机中恢复后,成为了新主库的镜像数据库,为了加速镜像数据库追上主库,可以将数据和日志文件移动到性能更优的磁盘,如SSD上。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
SQL Server虚拟化系列(3)——构建理想的基于VMware的SQL Server虚拟机
虚拟化变得越来越常见,并且在不了解虚拟化如何工作的情况下,DBA在尝试解决性能问题时会出现盲点,例如减少资源争用或改进备份和恢复操作等。 在本文中我们将主要讲述为您的SQL Server工作负载构建理想的基于VMware的虚拟机。我们的下一篇文章将介绍怎么样在Hyper-V上构建对应的SQL Server虚拟化环境。 现在,作为DBA,您可能没有访问权限来创建用于SQL Server的新虚拟机。这些操作可以交给您的VM管理员,他们将为您部署合适的VM环境。 以下详细信息适用于在Windows Server 2012R2操作系统和VMware vSphere 5.5平台上使用vSphere Web Client部署SQL Server 2014。假定VMware环境已配置,已启动且运行正常。SQL Server,Windows和VMware的其他版本可以根据这些说明进行调整。 虚拟机的创建 VMware的管理系统称为vCenter Server。它在VMware环境中主要用于监视和、创建、操作虚拟机。对系统的访问由管理员提供,可通过传统桌面客户端或vCenter Server W...
- 下一篇
学习JavaScript你必须掌握的8大知识点!
一、JavaScript思维导图之<变量>的学习 二、 JavaScript思维导图之<函数基础> 三、JavaScript思维导图之<基本dom操作> 四、JavaScript思维导图之<流程语句> 五、JavaScript思维导图之<数组> 六、 JavaScript思维导图之<运算符> 七、JavaScript思维导图之<正则表达式> 八、JavaScript思维导图之<字符串函数>
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS6,CentOS7官方镜像安装Oracle11G
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8编译安装MySQL8.0.19