微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sql-server – 使用AlwaysOn可用性组时收缩事务日志

我们正在使用sql Server 2012的AlwaysOn可用性组功能.常规完整数据库备份和事务日志备份每天在辅助数据库上完成.

我已阅读here在主副本上执行事务日志备份,或者副本副本将两个副本的事务日志标记为可重用.无论如何,事务日志备份大小很大,可以使用shrink文件减少:

我已在本地恢复数据库并执行收缩操作.日志文件大小减少到160 MB.

我的问题是我应该在哪个数据库上对事务日志文件(主要,次要或两者)执行收缩操作?

我想在过去的几年里没有备份日志文件,所以它变得如此巨大.执行DBCC sqlPERF(LOGSPACE)我可以看到只使用了0.06%的文件 – 我没有必要保留这么大的日志文件.在[sys].[database_files]中,我检查它的max_size是否设置为-1,增长到65536所以我想当它需要更多空间时它会得到.无论如何,我可以将它缩小到5%,例如为了防止未来的增长.我试图找到一些确认,我这样做是不错的主意.

实际上,备份(在数据库和日志文件上)仅在辅助数据库上执行,因此在它们上执行收缩文件会更容易,但是主日志文件的大小也会减少吗?

解决方法

在AG中,写入只能在主数据库上发生.收缩操作是写入.因此,您必须对主数据库进行缩减.请注意,收缩可能不会像您预期的那样缩小,您对已恢复数据库的测试可能会利用简单的恢复模型.阅读 How to shrink the SQL Server log了解更多信息.

不要缩小到160MB.确定原因为什么日志增长到121Gb所以它不会重复(你有一个怀疑,如果可能的话会很好确认).将日志大小调整为适合您的操作需求的大小.日志增长是一个严重的问题,它无法使用即时文件初始化,并且所有数据库活动将在日志增长并被初始化为0时冻结.用户和应用程序在发生时就讨厌它.如果您了解影响并且您的用户没问题,那么您可以缩小一次(160MB可能太小)并让它一直增长直到它稳定下来.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_no='LJCG001H' THEN dbo.ELTPNAME(a.fw_nu) ELSE d.fm_name END),e.fw_state_nm,f.fw_rmk_nm
if not exists(select name from syscolumns where name='tod_no' and id=object_id('iebo09d12')) alter table iebo09d12 add tod_no varchar(
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_nm,g.fa_name from LJSS007H a (nolock) Left join LJPA002H b (nolock) On a.pa_no =b.pa_no Left jo
要在 SQL Server 2019 中设置定时自动重启,可以使用 Windows 任务计划程序。下面是详细的步骤: 步骤一:创建批处理文件 打开记事本。 输入以下内容: net stop "SQL Server (MSSQLSERVER)" net start "SQ
您收到的错误消息表明数据库 'EastRiver' 的事务日志已满,导致数据库操作失败。要解决这个问题,可以按照以下步骤操作: 1. 备份事务日志首先,备份事务日志以释放空间: BACKUP LOG [EastRiver] TO DISK = N'C:\Backup\East
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标识ID,若不知道怎么查询数据库的标识ID, 打开SQL Server management studio,点击工具。选择SQL Server Profiler。 登录,登录成功后,如果有个默认弹窗,先取消 新建追踪 命名
--最新的解决方法 --先创建用户帐户,不进行授权,然后通过下面的SQL语句将该用户帐户关联至对应的数据库用户。优点是避免了重新授权的操作。 USE tempdbEXEC sp_change_users_login 'Update_One', 'iemis', &#3
命令: ALTER TABLE 表名 add 列名 数据类型 default 默认值 not null 例如: ALTER TABLE LJEL005H add el_req int default 15 not null
declare @i int set @i=340 while @i<415 begin set @i=@iʱ insert into LJWK007H select '2024','28','9110','3PTSD621000000