kyl*_*_13 5 sql-server-2008 sql-server backup
我希望在 SQL Server 2008 中对 SQL 数据库进行完整的数据库备份。
我的问题是:
Kin*_*hah 10
直接回答你的问题:
如果备份耗时太长或速度太慢,我可以在备份开始后停止、暂停或取消备份吗?
您不能暂停备份 - 无论是使用 Tsql 运行还是使用 sql 代理作业。如果您的数据库处于镜像状态,那么当您进行故障转移时,备份会被终止。
由于您使用的是 sql server 2008,最近我遇到了一个奇怪的情况,导致我们的一个关键应用程序中断,如果您使用的不是最新的 SP (2008 SP4) - 我们在有一个节点的节点上运行 sp1错误并已在 SP1+CU4 中修复 - 在 SP1 的 CU4 中已解决:https : //support.microsoft.com/en-US/help/973602。在“970133”中搜索: FIX:在 SQL Server 2008 中为数据库创建压缩备份时,如果备份操作停止响应,则无法停止备份操作。
您可以使用kill spid
命令停止或杀死它。
您必须谨慎,就好像您要终止一项正在进行的工作一样,它必须ROLLBACK
花费一些或更多的时间。
备份只是一份工作,我会停止工作吗?
取决于您如何运行备份。如果您使用 SQL 代理作业运行它,那么它是您可以的作业,STOP
或者如果您直接从 SSMS 或 SQLCMD 运行它,那么您可以CANCEL
或KILL
命令。
做备份的时候,能不能查看进度,看一下预计的备份完成时间?如果是这样,您如何看待它的进展?
您可以使用 DMV 来监控备份(或恢复)进度(如果您没有使用WITH STATS = number
):
----- find out the ETA time for restore and backup progress
SELECT command,
s.text,
start_time,
percent_complete,
CAST(((DATEDIFF(s,start_time,GetDate()))/3600) as varchar) + ' hour(s), '
+ CAST((DATEDIFF(s,start_time,GetDate())%3600)/60 as varchar) + 'min, '
+ CAST((DATEDIFF(s,start_time,GetDate())%60) as varchar) + ' sec' as running_time,
CAST((estimated_completion_time/3600000) as varchar) + ' hour(s), '
+ CAST((estimated_completion_time %3600000)/60000 as varchar) + 'min, '
+ CAST((estimated_completion_time %60000)/1000 as varchar) + ' sec' as est_time_to_go,
dateadd(second,estimated_completion_time/1000, getdate()) as est_completion_time
FROM sys.dm_exec_requests r
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) s
WHERE r.command in ('RESTORE DATABASE', 'BACKUP DATABASE', 'RESTORE LOG', 'BACKUP LOG')
Run Code Online (Sandbox Code Playgroud)
一些思考的食物:
归档时间: |
|
查看次数: |
25219 次 |
最近记录: |