Pet*_*cco 1 database sql-server sql-server-2005 transaction-log mirroring
我一直在寻找互联网上的所有内容,但找不到可以解决我的问题的可接受的解决方案,我想知道是否有没有妥协的解决方案......
我不是 DBA,但我是一个单人团队,在一个巨大的网站上工作,没有额外的资金用于额外的机构,所以我正在尽我所能。
我们的备份计划很糟糕,我很难改进它。目前,有两台服务器运行 SQL Server 2005。我有一个似乎运行良好的镜像数据库(无见证)。我在中午和午夜进行完整备份。这些由我们的服务提供商每晚备份到磁带上,我每周将备份文件刻录到 DVD 中,以保留手头的旧记录。最终我想切换到日志传送,因为如果没有见证服务器,镜像似乎毫无意义。
问题是事务日志不断增长。从我所做的研究来看,我似乎无法截断镜像数据库的日志文件。那么如何阻止文件增长!?
基于这个网页,我试过这个:
USE dbname
GO
CHECKPOINT
GO
BACKUP LOG dbname TO DISK='NULL' WITH NOFORMAT, INIT, NAME = N'dbnameLog Backup', SKIP, NOREWIND, NOUNLOAD
GO
DBCC SHRINKFILE('dbname_Log', 2048)
GO
Run Code Online (Sandbox Code Playgroud)
但这没有用。我发现的其他所有内容都表明我需要在运行备份日志命令之前禁用镜像才能使其工作。
如何在不禁用镜像的情况下缩小我的事务日志文件?
小智 5
好吧,从技术上讲,缩小镜像 LOG 是可能的。麻烦的是用truncate_only备份日志。镜像不接受。所以一种方法是将日志备份到磁盘:
use [DATABASE_NAME]
checkpoint
BACKUP LOG [DATABASE_NAME] TO DISK = 'C:\LOG_BACKUPS\DATABASE_NAME'
dbcc shrinkfile(DATABASE_NAME_Log,1)
Run Code Online (Sandbox Code Playgroud)
这是我们当前维护计划的一部分,它已经运行了大约 2 年没有问题。