惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
B
Blog RSS Feed
The GitHub Blog
The GitHub Blog
爱范儿
爱范儿
博客园 - 司徒正美
J
Java Code Geeks
酷 壳 – CoolShell
酷 壳 – CoolShell
Engineering at Meta
Engineering at Meta
大猫的无限游戏
大猫的无限游戏
D
Docker
Blog — PlanetScale
Blog — PlanetScale
Recent Announcements
Recent Announcements
罗磊的独立博客
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 聂微东
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
人人都是产品经理
人人都是产品经理
Stack Overflow Blog
Stack Overflow Blog
M
MIT News - Artificial intelligence
腾讯CDC
T
The Blog of Author Tim Ferriss
小众软件
小众软件
U
Unit 42
T
Tailwind CSS Blog

博客园 - Gavin Liu

sp_MSforeachtable 与 sp_MSforeachdb Microsoft SQL Server 数据库服务器管理维护角色 HttpHander与httpModel配置与应用 SQL Server 2008连接字符串写法大全 .NET分布式事务处理 .net 事务处理的三种方法 SQLServer游标(Cursor) (B) SQLServer 游标 (A) 无光驱在32位windows系统下安装64位windows系统 Create a SQL Server Database on a network shared drive Sql server 2008镜像配置步骤 android adb shell dumpsys 如何获取SQLite最新版本及SQLite数据库中的SQL语句解说 sqlite错误 The database disk image is malformed database disk image is malformed 可解决 Xml中SelectSingleNode方法中的xpath用法[转] 利用ASP在线压缩access数据库 英文 视频 老友记 第一季 第二季 第三季 第四季 第五季 第六季 第七季 第八季 第九季 第十季 几个好用的webservice SQL Server 2008 中文版安装下载地址
镜像数据库日志截断方法
Gavin Liu · 2014-04-25 · via 博客园 - Gavin Liu

镜像数据库如果主体数据库日志过大,可以在主体数据库上定时作日志备份(比如每天1次)
备份日志可以截断日志,让日志空间可以循环使用,这样可以使日志文件的大小不再增长。
具体步骤,在主体数据库上设置job,每天执行一次sql(不是镜像数据库):
BACKUP LOG 数据库名 TO DISK = 'h:\log20111122.bak'

执行完成后,日志文件大小并不会变小,只是文件使用率会下降

相关知识:
1、查看日志文件大小和使用率的sql
USE 数据库名
GO
SELECT name, data_space_id 文件组id, size/128 [文件大小(兆)],
    FILEPROPERTY(name, 'SpaceUsed')/128 [已用空间(兆)],
    size/128 - FILEPROPERTY(name, 'SpaceUsed')/128 [未用空间(兆)],
    FILEPROPERTY(name, 'SpaceUsed')*100.0/size [使用率(%)],
    max_size/128 [最大值(兆)], growth 增长值, is_percent_growth 是否百分比增长, physical_name 物理路径
FROM sys.database_files a

也可以用下面的sql查看日志文件使用率(注:要管理员才有权限,需要技术部去执行)
DBCC SQLPERF(LOGSPACE)
得到结果列如下:
Database Name    Log Size (MB)    Log Space Used (%)
数据库名         日志文件大小    日志文件使用率
这个使用率越小越好,备份日志后,使用率会降低,今天Newresourcedb数据库的日志变化情况:
09点 271385M   99.98%
执行日志备份,耗时3小时后变成
14点 272685M   47.93%
再执行日志备份,耗时1分钟后变成
15点 272685M   1.13%

2、镜像数据库选项的相关知识
数据库镜像概述
http://msdn.microsoft.com/zh-cn/library/ms189852.aspx
异步数据库镜像(高性能模式)
http://msdn.microsoft.com/zh-cn/library/ms187110(v=SQL.90).aspx
同步数据库镜像(高安全性模式)
http://msdn.microsoft.com/zh-cn/library/ms179344(v=SQL.90).aspx
同步和异步的主要区别就是
同步时,主数据库要等镜像数据库日志也写入磁盘后,才返回告诉我们成功
而异步,则是主数据库把日志发给镜像数据库,不等镜像响应,就返回告诉我们成功

3、 查表结构

create table #t(name varchar(255), rows bigint, reserved varchar(20), data varchar(20), index_size varchar(20), unused varchar(20))
exec sp_MSforeachtable "insert into #t exec sp_spaceused '?'"
select name as 表名,rows as  行数,
ltrim(str(convert(decimal(18,2),replace(reserved,' KB',''))/1024)) + 'MB' as 总分配磁盘空间,
ltrim(str(convert(decimal(18,2),replace(data,' KB',''))/1024)) + 'MB' as 数据占用磁盘空间,
ltrim(str(convert(decimal(18,2),replace(index_size,' KB',''))/1024)) + 'MB' as 索引占用磁盘空间,
unused as 可用空间
from #t  ORDER BY 行数 desc
select count(1) as 表数量,sum(rows) as 总行数,sum(convert(int,replace(reserved,' KB',''))/1024) as '总占用空间(MB)',sum(convert(int,replace(data,' KB',''))/1024) as '数据总占用空间(MB)',sum(convert(int,replace(index_size,' KB',''))/1024) as '索引总占用空间(MB)' from #t