SQL Server “数据库复制”报错的常见问题
①“使用分离和附加方法” 与 “使用SQL管理对象方法”的主要区别:
前者数据库会在复制期间暂时脱机,但速度很快。目标服务器实例版本必须比源实例版本高(或一样)
后者数据库不会在复制期间脱机,速度稍慢,目标服务器实例版本可以比当前源实例版本低。也可利用此选项对数据库进行降级。
②复制过程在新配置的SQL Server服务器上,经常会遇到各种莫名奇妙原因导致的失败。在“日志记录选项”向导页,更改选项“Windows 事件日志”为“文本文件”,以便在失败后方便查找原因。
③目标服务器SQL Server代理必须启动
④Windows 10 和 SQL Server 2016常见问题:如果复制失败,在日志中发现,有某个AppID没有本地激活权限问题时,需要在“控制面板”→“管理工具”→“组件服务”→“DCOM配置”中,对此AppID对应的DCOM进行权限设置,在右键点击→安全页签→“启动和激活权限”中,尝试添加“EveryOne”的“本地激活”权限。
如果发现无法对此DCOM对象有安全配置权限(按钮是Disabled状态),或者不知道该AppID对应的是那个DCOM对象,参考在注册表中查找和调整的方法:
需要在注册表中找到
HKEY_CLASSES_ROOT\AppID\{[GUID]} 的项,选中该项,右侧第一项注册表键值就是这个AppID在DCOM管理器中的名字。
在注册表树节点上点右键→权限,通过添加账户完全控制该节点。如果受Windows某些安全限制而无法添加账户,可以通过右下角“高级”按钮中“变更所有者”为管理员,来获取Owner的最高权限
然后,在“控制面板”→“管理工具”→“组件服务”→“DCOM配置”中,可对此AppID对应的DCOM进行权限设置,添加“本地激活”权限
⑤解决了上述问题后,SQL Server 2014以下版本进行数据库降级都应该是没问题的,但是,SQL Server 2016 可能还会失败,并在日志中可以查到如下错误:
-------------------------------------------------------------------------------------
OnError,DESKTOP-DL2AOT2,DESKTOP-DL2AOT2\Administrator,DESKTOP-DL2AOT2_DESKTOP-DL2AOT2_Transfer 对象任务,{DD45D9B1-423E-4109-A2A3-22A3B19BD9F1},{076C08BA-EB03-4A3C-960D-698BF90353C3},2017/11/22 19:02:58,2017/11/22 19:02:58,0,0x,索引超出范围。必须为非负值并小于集合大小。
参数名: index
StackTrace: 在 System.Collections.BitArray.Set(Int32 index, Boolean value)
在 Microsoft.SqlServer.Management.Smo.PermissionWorker.GetPermissionSetBase(PermissionEnumKind kind, Int32 i)
在 Microsoft.SqlServer.Management.Smo.SqlSmoObject.GetPermissionsFromCache(PermissionEnumKind kind)
...
...
...
-------------------------------------------------------------------------------------
此时,在SQL Server 2016的源数据表上点右键→属性→权限 中,有一个public角色,将此public角色的权限→“授予”全部取消。确定后,再次查看权限,发现已经没有特定角色在列表中了。再次复制即可成功。
⑥尝试上述方法还失败或有其他原因,应观察日志文件并使用SQL Server Profiler跟踪复制数据库脚本,综合分析找到出错原因。
相关推荐
报错sql dmo大容量复制执行失败
<br />数据库表与表之间导入数据(俩表结构一样),报错sql dmo大容量复制执行失败!!<br />网上查了查说是image附加的数据容量超过64MB了。。<br />我这里有个image类型的字段,咋处理呢给我个bcp写法的例子吧。。<br />问个问题,我用SQLServer2008客户端连接两个数据库(北京SqlServer2008和郑州的SqlServer2003),现在在各自的链接里面都可以做增删查改,我现在想做跨库的查询,把北京的表和郑州的表链接起来,用了以下脚本出错,有人知道什么原因么<
安装SQL Server 2022时的常见问题及方案
提示“安装程序在运行作业 UpdateResult 时失败”或“ScenarioEngine.exe 无法在此模式下运行”。:提示“SQL Server 2022 不是有效的安装文件夹”,可能因路径不存在、权限不足或文件夹被占用导致。:确保系统版本(如 Win10/11)、内存、硬盘空间等符合 SQL Server 2022 的最低要求。安装完成后重新运行 SQL Server 2022 安装程序。:安装完成后提示“完成但失败”,部分功能未成功安装。:安装程序与系统版本(如 Win11)不兼容。
分离并复制数据库后,再次把数据库附加回去报错9004
问题:将数据库分离,将MDF和LDF数据复制出来后,再次附加时,报错: 处理数据库 “databasename” 的日志时出错。如果可能,请从备份还原。如果没有可用备份,可能需要重新生成日志。无法打开新数据库 “databasename”。CREATE DATABASE 中止。 (Microsoft SQL Server,错误: 9004) 解决方法: 1.新建了一个同名的数据库,包括日
SQL Server 2022安装卡在数据库引擎配置?64位Access驱动是关键前置条件
SQL Server 是微软主流关系型数据库管理系统,其安装与运行依赖底层数据访问组件。其中,OLE DB 提供程序(如 ACE OLE DB)作为连接 Excel、Access 等 Office 数据源的核心接口,在 SQL Server 2022 中已升级为强制前置依赖。该组件由 Microsoft Access Database Engine 2016 Redistributable(64位)提供,必须在安装前静默部署,否则数据库引擎配置阶段将因预检失败而中断。这一机制影响导入导出向导、链接服务器及
【雷达信号处理】数字下变频(DDC)(Matlab代码实现)
内容概要:本文介绍了基于MATLAB的雷达信号处理中数字下变频(DDC)技术的实现方法,重点阐述了DDC在雷达接收机前端信号处理中的关键作用。通过将高频回波信号下变频至基带,便于后续进行数字化处理与目标信息提取。文中提供了完整的MATLAB代码实现,涵盖混频、低通滤波、抽取等核心步骤,帮助读者理解DDC的工作原理与工程实现细节。; 适合人群:具备一定信号与系统、数字信号处理基础知识,从事雷达、通信或电子工程相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于教学演示,加深对数字下变频原理的理解;②作为雷达或通信系统仿真项目的基础模块;③辅助科研人员快速搭建信号处理链路,进行算法验证与性能分析。; 阅读建议:建议结合数字信号处理教材中的混频、奈奎斯特采样及多速率信号处理理论进行学习,动手运行并调试代码,尝试调整参数(如本振频率、滤波器阶数、抽取因子)以观察对输出信号的影响,从而深入掌握DDC的设计要点与实际应用。


非技术版
