这是对前一个问题的后续问题,问我为什么不能缩小主体数据库上的日志文件。
长话短说,我设置了数据库镜像,但忘记确保备份事务日志的作业再次运行,事务日志增长到几乎60 To。
自镜像设置以来,在镜像服务器上复制了这种大小的增加,并最终占用了所有磁盘空间,使镜像数据库无法使用。
按照关于镜像数据库上事务日志维护的这个问题,您不能在镜像上备份日志,但是当在评论中专门询问如何缩小镜像数据库上已增长的日志文件时,会留下一个评论
这样做的一种方法是将故障转移到镜像数据库并在那里进行收缩。在非生产环境中对此进行彻底的测试,以确保它具有您想要/期望的行为。
这似乎表明可能有其他方法来缩小镜像上的日志文件,而且这种方法在生产服务器上不一定是安全的。
是否有一种方法可以安全地收缩数据库镜像上的事务日志文件?
发布于 2013-04-22 14:46:52
DBCC SHRINKFILE命令将从主体镜像到镜像数据库。这是一些证据。
在主体上创建一个示例数据库:
create database MirroredDb;
go使用NORECOVERY从备份中创建相同的数据库:
restore database MirroredDb
from disk = '\\backupdir\MirroredDb.bak'
with norecovery;
go设置您的镜像会话,但您选择的方式。
在主体数据库上,查看数据库文件大小:
use MirroredDb;
go
select
name,
size
from sys.database_files;我的结果如下所示:
name size
MirroredDb 392
MirroredDb_log 104在镜像数据库上,创建一个快照并查看相同的信息:
create database MirroredDbss
on
(
name = 'MirroredDb',
filename = 'c:\sqlserver\MirroedDb.ss'
)as snapshot of MirroredDb;
use MirroredDbss;
go
select
name,
size
from sys.database_files;我的结果如下所示:
name size
MirroredDb 392
MirroredDb_log 104现在,在主体数据库上增长事务日志文件(我把它提高到了1GB):
alter database MirroredDb
modify file
(
name = MirroredDb_log,
size = 1GB
);
go查看主体数据库的事务日志大小,我们现在看到调整后的大小:
use MirroredDb;
go
select
name,
size
from sys.database_files;我的结果如下所示:
name size
MirroredDb 392
MirroredDb_log 131072在镜像数据库上创建另一个快照,并查看那里的事务日志文件大小:
create database MirroredDbss2
on
(
name = 'MirroredDb',
filename = 'c:\sqlserver\MirroedDb2.ss'
)as snapshot of MirroredDb;
use MirroredDbss2;
go
select
name,
size
from sys.database_files;我的结果如下所示:
name size
MirroredDb 392
MirroredDb_log 131072现在在主体上执行DBCC SHRINKFILE:
use MirroredDb;
go
dbcc shrinkfile('MirroredDb_log', 0);
go
select
name,
size
from sys.database_files;我的结果集如下:
name size
MirroredDb 392
MirroredDb_log 104在镜像数据库上创建第三个也是最后一个快照,并查看大小:
create database MirroredDbss3
on
(
name = 'MirroredDb',
filename = 'c:\sqlserver\MirroedDb3.ss'
)as snapshot of MirroredDb;
use MirroredDbss3;
go
select
name,
size
from sys.database_files;我得到以下结果集:
name size
MirroredDb 392
MirroredDb_log 104因此,正如您在这里看到的,DBCC SHRINKFILE命令实际上被镜像到镜像数据库。
https://dba.stackexchange.com/questions/40609
复制相似问题