sqlanywhere数据库日志怎么清除

sqlanywhere数据库日志怎么清除,第1张

使用dbunloadexe

dbunload -c "uid=DBA;pwd=SQL;dbf=c:\t_student\t_student\t_studentdb" -an asacopydb

命令是用t_studentdb创建一个新的数据库,结构和数据不变,但空间重组了

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会d出一条警告信息。为了尽量确保数据库的一致性,你应将它作为“最后一招”。以上两种方法只清除日志,而不做日志备份,若想备份日志,应执行“dump transaction database_name to dumpdevice”命令。PS:附一个更好的方法先分离数据库后,直接删除日志以后,再在查询分析器里用exec sp_attach_single_file_db '数据库名', 'mdf文件路径'命令附加数据库。

废话不多说,直接上代码,清理后日志文件为1M[sql] USE [master] GO ALTER DATABASE [数据库名] SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE [数据库名] SET RECOVERY SIMPLE GO USE [数据库名] GO DBCC SHRINKFILE (N'[数据库日志文件名称]' , 0,TRUNCATEONLY) GO USE [master] GO ALTER DATABASE [数据库名] SET RECOVERY FULL WITH NO_WAIT GO ALTER DATABASE [数据库名] SET RECOVERY FULL GO --查询指定数据库的日志文件名称 USE [数据库名] GO SELECT name FROM SYSdatabase_files WHERE type_desc='LOG' 08R2通过,其他版本未测试

以上就是关于sqlanywhere数据库日志怎么清除全部的内容,包括:sqlanywhere数据库日志怎么清除、如何清除mssql数据库日志、SQL Server 2008 R2下如何清理数据库日志文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9871043.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存