我试图恢复我的数据库和 SQL Server 不断崩溃。我会在 SSMS 中收到一条消息,指出存在网络传输错误(连接因崩溃而中断)。我检查了日志,发现 SQL Server 意外关闭。然后我将不得不去重新启动服务。
我将问题缩小到 GUI 试图运行的脚本。问题是在进行尾日志备份时,备份文件的路径是错误的。它应该是D:\mapbenefits\...
BACKUP LOG [mapbenefits]
TO DISK = N'D:mapbenefits_LogBackup_2019-02-21_13-58-24.bak'
WITH NOFORMAT, NOINIT, NAME = N'mapbenefits_LogBackup_2019-02-21_13-58-24',
NOSKIP, NOREWIND, NOUNLOAD, NORECOVERY , STATS = 5
Run Code Online (Sandbox Code Playgroud)
我有两个问题。
如何修复此路径?我尝试进入服务器设置,备份路径D:没有斜线。如果我添加斜杠,gui 会将其删除。这是 SSMS v17.9.1。我可以选择D:\mapbenefits\并且有效,但我想要D:\DATABASE\...
这是一个错误吗?SQL 服务器是否应该因为路径输入错误而崩溃?一旦我修复了文件路径,它就没有问题了。我可以通过整理文件路径随时复制。
如果我运行查询来检查版本,我会得到 CU13,但如果我进入设置,我会看到版本 14.0.1000.169。
看起来这是一个错误并且可以重现,所以我将它发布到这里:https : //feedback.azure.com/forums/908035-sql-server/suggestions/36920542-incorrect-filepath-with-backup-log-command-原因
所以我正在调整这个查询,我很确定在这种情况下,我可以用左联接替换内部联接而不影响数据。但是,我不完全确定为什么这会更快。这是查询:
SELECT DISTINCT cl.NAME AS company_name,
cl.id AS company_id,
ep.Plan__c AS plan_id,
ep.Employee__c,
ep.id,
do.Subcategory__c,
ep.Plan_Type__c,
pt.SubType,
Sum((pt.[shares] * fvh.[ValuePerShare])) AS TotalValue,
ppe.Deferral_Option__c,
dt.Defer_type_Code,
do.Short_Code__c,
pt.ContributionYear
FROM dbo.ParticipantTrades pt WITH (NOLOCK)
INNER JOIN dbo.PayoutPathElection ppe WITH (NOLOCK)
ON pt.payoutPathElectionID = ppe.Id
INNER JOIN dbo.DeferralOption do WITH (NOLOCK)
ON ppe.Deferral_Option__c = do.id
INNER JOIN dbo.EmployeePlan ep WITH (NOLOCK)
ON pt.employeePlan = ep.Id
LEFT JOIN dbo.DeferralType dt WITH (NOLOCK)
ON pt.deferralType = dt.defID
INNER JOIN dbo.Fnc_lastfundvalue('2019-01-30') AS fvh
ON pt.fund = fvh.Fund …Run Code Online (Sandbox Code Playgroud)