sybase数据库怎么看日志空间 SQLSERVER日志清除的两种方法是什么?

[更新]
·
·
分类:互联网
2268 阅读

sybase数据库怎么看日志空间

SQLSERVER日志清除的两种方法是什么?

SQLSERVER日志清除的两种方法是什么?

教你如何清除SQL日志 1.打开查询分析器,输入命令DUMP TRANSACTION 数据库名 WITH NO_LOG2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。清除Log有两种方法:
1.自动清除法 开放数据库选项 Trunc Log on Chkpt,使数据库系统每隔一段时间自动清除Log。
此方法的优点是无须人工干预,由SQL Server自动执行,并且一般不会出现Log溢满的情况;缺点是只清除Log而不做备份。
2.手动清除法 执行命令“dump transaction”来清除Log。以下两条命令都可以清除日志:
dump transaction with truncate_onlydump transaction with no_log 通常删除事务日志中不活跃的部分可使用“dump transaction with trancate_only”命令,这条命令写进事务日志时,还要做必要的并发性检查。
SYBASE提供“dump transaction with no_log”来处理某些非常紧迫的情况,使用这条命令有很大的危险性,SQL Server会弹出一条警告信息。
为了尽量确保数据库的一致性,你应将它作为“最后一招”。 以上两种方法只是清除日志,而不做日志备份,若想备份日志,应执行“dump transaction database_name to dumpdevice”命令。
清除后对数据库没有影响

如何处理Sybase临时表空间tempdb已满的问题?

开发数据库服务器遇到这样的一个问题,使用了一段时间之的后,突然之间数据库就用不了了,现象是新连接连接不上,已经连接的执行sql时,报出tempdb日志满了,无法进行操作的错误,而且控制台无法连接上服务器,所有操作都无法正常进行。
  经过上网查询,得知是tempdb日志满了,缺省情况下,tempdb数据库是放置在master设备上,容量为2M,而临时数据库是活动最为平凡的数据库常常被用来排序、创建临时表、重格式化等操作,所以tempdb的优化应该受到特别的关注。安装Sybase的时候就应该把tempdb的空间扩大,并且最好新建一个表空间给它专门用。
  正常的时候可以用sp_helpdb tempdb命令查看tempdb,可以看到tempdb占用空间的情况。
  如果日志满了,可以执行dump tran tempdb with truncate_only或者dump tran  tempdb with no_log来清除日志,但是现在根本无法执行该语句,因为tempdb已经满了,根本没有空间来执行该语句(如果出现Sybase的服务也无法启动的情况就需要把jsj重启,然后再去启动Sybase的服务),这该怎么办,好像进入了一个死循环里,日志满了要清除,但因为满了又无法清除,看来只能先扩容了,现在已经没有一个空闲的表空间了,控制台根本无法连接上数据库,只能用语句来新建一个表空间,下面是新建表空间的语句:
  执行disk init命令必须先执行use master命令。
  disk init
  name=