文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

在异步镜像中移动镜像数据库文件实战

2024-04-02 19:55

关注

在异步数据库镜像中,移动镜像数据库文件实战


某数据库部署为异步数据库镜像,镜像数据库所在磁盘空间不足,我得移动镜像数据库文件到新的磁盘上。

 

在异步数据库镜像中,应用程序连接到主数据库访问。我们这里要根据你的线上环境考虑选择哪种方式合适:

  1. 直接重做镜像,将数据文件放在新的位置。

  2. 直接移动镜像数据库文件。

 

移动数据库文件的所有操作都是对镜像数据库实例,如果镜像数据库实例上没有其他线上主数据库,不会对线上业务产生影响的情况下,可以直接移动镜像数据库文件。


1. 在主库上点击“Pause”,暂停镜像会话。


2. 在镜像库上使用Alter Database指向一个新的位置。

a) 确定DXListing数据库的逻辑文件名称以及这些文件在磁盘上的当前位置。

SELECT name, physical_name
FROM sys.master_files
WHERE database_id = DB_ID('DXListing');
GO


b) 使用 ALTER DATABASE更改每个文件的位置。

USE master;
GO
ALTER DATABASE DXListing
MODIFY FILE (NAME = DXListing, FILENAME = 'E:\SQL-DATA\DXListing.mdf');
GO
ALTER DATABASE DXListing
MODIFY FILE (NAME = DXListing_log, FILENAME = 'E:\SQL-DATA\DXListing.ldf');
GO


3. 停止镜像数据库所在实例的SQL Server服务。

4. 移动镜像数据库文件到一个新位置,并确保文件上的权限也还在。

5. 启动镜像数据库所在实例的SQL Server服务。

6. 在主库上点击“RESUME”,恢复镜像恢复,并验证镜像成功恢复。



还有一种方式,只需要重启镜像数据库所在实例的SQL Server服务,而不用暂停服务一段时间用于移动数据文件,实际线上我是用这种方式操作的。


1. 在主库上点击“Pause”,暂停镜像会话。


2. 在镜像库上使用Alter Database指向一个新的位置。

a) 确定DXListing数据库的逻辑文件名称以及这些文件在磁盘上的当前位置。

SELECT name, physical_name
FROM sys.master_files
WHERE database_id = DB_ID('DXListing');
GO


b) 使用 ALTER DATABASE更改每个文件的位置。

USE master;
GO
ALTER DATABASE DXListing
MODIFY FILE (NAME = DXListing, FILENAME = 'E:\SQL-DATA\DXListing.mdf');
GO
ALTER DATABASE DXListing
MODIFY FILE (NAME = DXListing_log, FILENAME = 'E:\SQL-DATA\DXListing.ldf');
GO


3. 重启镜像数据库所在实例的SQL Server服务。

4. 移动镜像数据库文件到一个新位置,并确保文件上的权限也还在。


这时,我们来看看镜像状态。

在主库上:

在异步镜像中移动镜像数据库文件实战

在异步镜像中移动镜像数据库文件实战

在镜像库上:

在异步镜像中移动镜像数据库文件实战


可以看到,镜像库状态不正常。这时,我在镜像库上执行以下操作:

USE master
GO
ALTER DATABASE DXListing SET PARTNER RESUME
GO


报错如下:

Msg 945, Level 14, State 2, Line 1

Database 'DXListing' cannot be opened due to inaccessible files or insufficient memory or disk space. See the SQL Server errorlog for details.


5. 使DXListing数据库 OFFLINE 再 ONLINE,以实施更改。(当然,此时重启SQL Server服务应该也可以,但建议还是在数据库级别操作)

USE master
GO
ALTER DATABASE DXListing SET OFFLINE
ALTER DATABASE DXListing SET ONLINE
GO


错误如下:

Msg 954, Level 14, State 1, Line 1

The database "DXListing" cannot be opened. It is acting as a mirror database.

Msg 5069, Level 16, State 1, Line 1

ALTER DATABASE statement failed.


这时,我们再来看看数据库状态。

在镜像库上:

在异步镜像中移动镜像数据库文件实战

在主库上:

在异步镜像中移动镜像数据库文件实战

在异步镜像中移动镜像数据库文件实战

发现状态已经正常。之前的错误可以忽略。


6. 在主库上点击“RESUME”,恢复镜像会话。验证镜像状态已同步。

在异步镜像中移动镜像数据库文件实战


参考:

https://msdn.microsoft.com/zh-cn/library/bb522469.aspx



阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯