当前位置: 首页 > news >正文

SQL Server:sys.dm_hadr_physical_seeding_stats

目录

      • `sys.dm_hadr_physical_seeding_stats` 视图解读
      • 报错 “Database With Name Already Exists” 解决办法
        • 1. 确认数据库是否存在
        • 2. 备份并删除现有数据库
        • 3. 重新启动种子设定操作
      • 注意事项

sys.dm_hadr_physical_seeding_stats 视图解读

sys.dm_hadr_physical_seeding_stats 是 SQL Server 中的一个动态管理视图(DMV),用于提供有关 Always On 可用性组中物理种子设定(physical seeding)操作的实时统计信息。物理种子设定是将主副本上的数据库文件复制到辅助副本的过程,该视图可以帮助你监控这个过程的状态和性能。

这个视图包含以下一些重要的列:

  • database_id:种子设定操作涉及的数据库的 ID。
  • start_time:种子设定操作开始的时间。
  • end_time:种子设定操作结束的时间。如果操作仍在进行中,该值为 NULL
  • current_state:种子设定操作的当前状态,例如 STARTINGCOPYINGVERIFYING 等。
  • total_bytes_to_copy:需要复制的总字节数。
  • bytes_copied:已经复制的字节数。
  • last_error_message:如果种子设定操作发生错误,该列会显示错误消息。

报错 “Database With Name Already Exists” 解决办法

当你在执行种子设定操作时遇到 “Database With Name Already Exists” 错误,这通常意味着在目标辅助副本上已经存在同名的数据库,而种子设定操作需要一个全新的环境来创建数据库。以下是解决该问题的步骤:

1. 确认数据库是否存在

首先,你需要在辅助副本上确认同名数据库是否确实存在。可以使用以下查询来检查:

SELECT name 
FROM sys.databases 
WHERE name = 'YourDatabaseName';

'YourDatabaseName' 替换为实际的数据库名称。

2. 备份并删除现有数据库

如果确认同名数据库存在,你需要备份该数据库(如果有重要数据),然后将其删除。以下是备份和删除数据库的示例代码:

备份数据库

BACKUP DATABASE YourDatabaseName
TO DISK = 'C:\Backup\YourDatabaseName.bak';

'C:\Backup\YourDatabaseName.bak' 替换为实际的备份路径和文件名。

删除数据库

DROP DATABASE YourDatabaseName;
3. 重新启动种子设定操作

在删除现有数据库后,你可以重新启动种子设定操作。具体步骤如下:

在主副本上,确保可用性组的种子设定模式为自动

ALTER AVAILABILITY GROUP YourAvailabilityGroupName
MODIFY REPLICA ON 'SecondaryReplicaName'
WITH (SEEDING_MODE = AUTOMATIC);

YourAvailabilityGroupName 替换为实际的可用性组名称,'SecondaryReplicaName' 替换为实际的辅助副本名称。

在辅助副本上,加入可用性组

ALTER AVAILABILITY GROUP YourAvailabilityGroupName JOIN;

YourAvailabilityGroupName 替换为实际的可用性组名称。

完成以上步骤后,SQL Server 会自动重新启动物理种子设定操作,将主副本上的数据库复制到辅助副本。

注意事项

  • 在删除数据库之前,请确保你已经备份了所有重要数据。
  • 如果种子设定操作仍然失败,请检查 SQL Server 错误日志以获取更多详细信息。

http://www.mrgr.cn/news/96429.html

相关文章:

  • 开源测试用例管理平台
  • fetch的语法规则及常见用法
  • 基于javaweb的SpringBoot水果生鲜商城系统设计与实现(源码+文档+部署讲解)
  • 基于CentOS7.0系统搭建FTP服务器
  • 无线通信技术(二):ITU、3GPP及传统波段对无线频谱的划分
  • YOLOv8环境配置及依赖安装过程记录
  • 【全栈开发】—— Paddle OCR 文字识别 + deepseek接入(基于python 最新!!!)
  • 常用登录Linux系统的方法以及操作指南
  • 深度学习篇---模型训练评估参数
  • 全流程剖析需求开发:打造极致贴合用户的产品
  • docker日志大小和保存管理
  • 【MyBatis】MyBatis 操作数据库
  • AT24Cxx移植第三方库到裸机中使用
  • 实战篇Redis
  • [c++项目]基于微服务的聊天室服务端测试
  • SQL语句及其应用(中)(DQL语句之单表查询)
  • MySQL数据库和表的操作之SQL语句
  • 【Qt】三种操作sqlite3的方式及其三种多表连接
  • 归档重做日志archived log (明显) 比redo log重做日志文件小
  • Binlog、Redo log、Undo log的区别