首页 > 技术文章 > Sql Server 2005 镜像后收缩日志

mnight 2014-12-17 18:31 原文

网站的一个数据库的日志文件已经到150个G的地步,数据文件才几十M,通过常规的操作去收缩日志:
>数据库右键 → 任务 → 收缩 → 文件 , 在弹出的窗口中,文件类型选择“日志”,收缩选项选择第二个,填一个小的数字



执行很快完成,但是日志文件大小并没有改变。

完成收缩有两种方式:
* 分离数据库,删除日志文件,然后再附加数据库
* 修改数据库的恢复模式为**简单**,然后再重复最初的收缩数据库操作(因为事务并未截断,所以完整模式下收缩的大小有限),完成后再吧恢复模式改为**完整**


点击确定后,弹出一个错误:


因为是映像服务器,不能进行此操作,只能先断开镜像,再进行第一步的操作。


取消镜像后,进行第一步的收缩数据库操作,日志大小成功变为2M左右,收缩成功。把恢复模式改为##完整##

但此时由于主机的数据库日志和备机的数据库日志不同意,无法重新开始镜像。

这时的操作是:
> - 在主机完整备份数据库
-  拷贝备份文件到备机,先取消备机的镜像,然后还原数据库,在选项中,要选择**不对数据库进行任何操作···**



之后在主机执行
```sql
ALTER DATABASE shishan SET PARTNER = 'TCP://192.168.1.2:5022';
```
如果执行失败,则在备机执行
```sql
ALTER DATABASE shishan SET PARTNER = 'TCP://192.168.1.1:5022';
```
执行成功后会如图所示:




推荐阅读