作业失败。请检查目标服务器上的事件日志以获取详细信息。
操作步骤:
- 添加包日志(成功) - 添加传输数据库对象任务(成功) - 创建包(成功) - 启动 SQL Server 代理作业(成功) - 执行 SQL Server 代理作业(错误)
错误信息:
作业失败。请检查目标服务器上的事件日志以获取详细信息。(复制数据库向导)
我无法找到导致此问题的原因。我是否使用了正确的方法?我只需要复制这个数据库。提前感谢您的帮助。
如果您正在尝试在同一台服务器上克隆您的数据库,请尝试以下步骤:
Databases
,并选择 还原数据库
恢复源
部分的 From Database
下拉列表中选择要复制的数据库目标还原
部分的 To database
字段中输入新数据库的名称 - 这不能是现有数据库的名称。通常情况下,这是因为您的帐户(NT Service\SQLSERVERAGENT)在数据文件夹(..Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA)上没有权限。将其设置为完全控制即可。
上述帐户是默认帐户,如果您想检查运行代理的帐户,请转到 services.msc 并检查帐户登录
检查Windows事件日志。
这里有一个例子。
以下是我们遇到的一些错误和解决方案。
无法确定作业...的所有者(...)是否具有服务器访问权限(原因:无法获取有关Windows NT组/用户“...”的信息,错误代码0x54b。 [SQLSTATE 42000](错误15404))。
我们需要确保在复制数据库向导期间,我们登录到目标服务器的帐户具有适当的特权,并且这些特权是可获取的(我们最终使用了sa
账户)。这解决了上述警告。
访问被拒绝
我们需要确保本地SQL Server Agent在本地服务器上具有适当的特权。所以,我们将SQL Server Agent登录为本地系统。这有效,因为本地系统是我们的SQL Server实例中的sysadmin。
无法读取元数据,可能由于访问权限不足。
我们需要为本地系统帐户提供更多特权。
xp_regread()返回错误5,“拒绝访问”。
这让我们感到困惑,于是我们提出另一个问题:xp_regread()返回错误代码 5,“拒绝访问”。
D. 我为每个项目都经过向导(在我的情况下,是使用SSMS的复制和替换选项,而不是分离和重新附加,因为我无法关闭生产环境中的源),并在更改目标目录后单击每个数据库复制向导屏幕上的“刷新”按钮。
(如果在SSMS 2017上迁移数据库,请注意确保SQL版本的最新累积更新:https://support.microsoft.com/en-us/help/4342123与查询中的select @@version进行比较)
此外,请确保您的SQL代理和SQL服务器帐户具有对目标目录的权限。
接下来,我的脚本终于能够从SQL2017服务器运行,并已添加到SQL代理作业中。
对我来说,我正在将一个数据库复制到我的本地主机。
在那时,我放弃并使用了SQL Server导入和导出向导,这似乎对我所需的工作正常运行。 https://learn.microsoft.com/en-us/sql/integration-services/import-export-data/import-and-export-data-with-the-sql-server-import-and-export-wizard?view=sql-server-2017
请注意,使用导入和导出向导可以很好地处理表格。我必须通过右键单击数据库->任务->生成脚本将视图、存储过程和函数分别复制,然后向导会指导您选择哪些对象。