SQLSERVER2005清空日志出现的问题,数据库同步
前几天DHL客户那边需要有个问题解决,他们的DHL空运系统中库中日志文件(DOMNorth.ldf)已经到达13G了,数据库文件(DOMNorth.Mmdf)也只有2G,所以他们急需要解决把日志清空掉,所以到网上查了查关于清空日志的文章,于是用下面语句处理:
- --清空日志
- DUMP TRANSACTION DomNorth WITH NO_LOG
- --截断事务日志
- BACKUP LOG DomNorth WITH NO_LOG
- --收缩数据库
- DBCC SHRINKDATABASE(DomNorth)
于是出现下面的错误信息:
DBCC SHRINKDATABASE: File ID 1 of database ID 7 was skipped because the file does not have enough free space to reclaim.
Cannot shrink log file 2 (DOMNorth_log) because all logical log files are in use.
发现日志正在使用,于是查了一下数据库,原来数据库中有发布(Publications)和订阅(Subscriptions),开始想怎样才能不删除掉发布和订阅而把日志清空掉,后来想尽办法还是不行,只能把这个发布删除掉重新创建,因为这个发布是以前同事创建的。在创建发布的时候也碰到一些问题,主要是设置同步时间,选择需要同步的表和试图,然后还要重新登陆一下发布的数据库,而且登陆数据库时不能用IP地址登陆,需要用SQL SERVER的别名登陆,然后创建订阅时有两种方式,是推模式和拉模式,推模式是在发布服务器中指定订阅的服务器,拉模式是在需要订阅的服务器中创建订阅(Subscriptions)。而且创建完最后一步可以选择立即执行一便,可以立即去测试同步是否成功,或者在SQL SERVER代理里面作业找到同步时相对应创建的作业,选择作业开始作业也可以去执行一次同步操作。
2009-03-30
上星期五去DHL跟客户一起弄版本升级,发现同步还是有点问题,(因为我在发布的时候选择了一个定时同步时间每天早上2点,而订阅的时候却选择了实时(continue)订阅)虽然数据是都同步到订阅服务器上了,但是我们不要求是实时同步,而且在订阅中有个作业是定时执行存储过程,由于是同步实时而造成执行存储过程超慢,以至于造成执行失败。
2009-04-05
最后总结:同步的时候选择一个时间计划如:1AM,订阅的时候也去选择一个时间但要和同步时间相差少于15分钟如:1.15AM,不然好象会出错。