求教:有关SQL日志满的问题,导至不能向数据库写?还有就是进程阻塞的问题,是怎样引起的!急
1:请问日志已满的问题如何解决?
一般是几个星期日志就满了!
导至工作站不用向数据库写入数据!!
我的解决方案:
就得用buckup log 数据库名 with no_log
然后在收缩数据库
最后还得重启,太麻烦了!
不知能否把它放到事物中处理呀?一个星期自动运行一次,不知可行!
2:请问进程阻塞的问题如何解决?
是不是由软件向数据库写入记录时引起的?
能否给予说明!
什么情况下引起阻塞,为什么会阻塞?
参考文章:
如果你的数据重要,就必须作备份,而且可能一天至少做一遍备份。
“重启”是指什么呀?服务器?用不着吧!?写过程来清空日志也是可以的,只是要确保备份的准确性,有时候备份失败了,清空日志的操作却成功了。
要列举进程阻塞可以抄袭出很多不同的技术资料的段落来,因为进程在很多方面都有用,必然在很多方面都有所谓的阻塞问题。比如一个计算newid()函数的程序没写好,当有多个进程使用它时就阻塞了。不过,我们还是直接谈事务处理的进程阻塞问题。
事务,它给记录加锁,阻塞其它访问进程对上锁的记录的读和写操作,目的是保护数据库以及程序执行结果的数据一致性。
假设两个银行终端进程同时读取同一个账户的余额,准备转账到其它账户,他们就必须是互斥的,否则银行就损失了——只记录了后一个进程的执行结果。因此需要保护数据一致性。
即使你不使用事务语句,sql server也会为每一条语句自动加上事务处理。如果你对此非常反对,那么就转而使用foxpro去吧,其实foxpro比sql server和oracle的运行速度都快。
在作业的步骤里:
backup log 数据库 with no_log
dbcc shrinkdatabase (数据库,truncateonly )
Posted in noname. Edit