sybase事务日志已满,怎么清除

sybase事务日志已满,怎么清除,第1张

您好,很高兴为您解答。 第一步:设定Sybase数据库自动截断日志: 方法一: [sql] isql -Usa -Ppassword -Ssybaseserver >sp_dboption database_name,"trunc log on chkpt",true >go >checkpoint >go方法二:在sybase central 数据库属性对话框

--此为数据文件、数据库日志文件收缩 *** 作语句

--保存时间:2017-1-9

--使用说明:

--“DataBase”为数据库名称,在进行数据收缩 *** 作前,先做好数据备份

--将语句中的“DataBase”替换为需要进行数据收缩的数据库名称,如:test

--在进行数据库收缩的时候,要留出 *** 作时间,期间不要进行任何用户 *** 作

--确认无误后,执行语句,即可进行数据收缩!

use master

go

alter database DataBase set recovery simple with NO_WAIT

go

alter database DataBase set recovery simple

go

declare @name varchar(20)

declare @sql varchar(100)

select @name = name from sysdatabase_files where type = 1

set @sql = 'DBCC SHRINKFILE (N'''+ @name +''' , 11, TRUNCATEONLY)'

exec(@sql)

go

dbcc shrinkdatabase(DataBase)

go

alter database DataBase set recovery full with NO_WAIT

go

--设置恢复模式('SIMPLE'表示简单;'FULL'表示完整)

alter database DataBase set recovery full

go

--设置数据库兼容性级别为sql 2008

alter database DataBase set compatibility_level = 100

go

其实很简单,由于软件用的时间长了以后日志记录会非常多,为了不影响软件的使用速度,所以当日志记录达到一定数量后,系统就会建议做清理,如果你想要保留之前的数据,可以选择备份。不备份的话,原来的日志记录就会被彻底清除。

数据库日志己满是数据库管理端经常性的提示消息,如果你需要以往的日志消息,它们是可以导出的,供将来备查,日志备份后你就可以清除当前的日志了,上述提示消息就会暂时没了。如果这些日志消息你感觉没用,直接清了就行。

有的数据库日志空间大小是可以设置的,设大些,上述提示就自然少了。

一、简单方法

1、右键数据库→属性→选项→故障还原模型→设为简单→确定;

2、右键数据库→所有任务→收缩数据库→确定;

3、右键数据库→属性→选项→故障还原模型→设为大容量日志记录→确定。

二、复杂方法

1、清空日志 DUMP TRANSACTION 库名 WITH NO_LOG

2、截断事务日志 BACKUP LOG 数据库名 WITH NO_LOG

3、收缩数据库文件(如果不压缩,数据库的文件不会减小) 企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件 --选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了 --选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了 也可以用SQL语句来完成 --收缩数据库 DBCC SHRINKDATABASE(客户资料) --收缩指定数据文件,1是文件号,可以通过这个语句查询到:select from sysfiles DBCC SHRINKFILE(1) 。

4、为了最大化的缩小日志文件(如果是sql 70,这步只能在查询分析器中进行) a分离数据库企业管理器--服务器--数据库--右键--分离数据库 b在我的电脑中删除LOG文件 c附加数据库企业管理器--服务器--数据库--右键--附加数据库此法将生成新的LOG,大小只有500多K 或用代码:下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。 a分离 EXEC sp_detach_db @dbname = 'pubs' b删除日志文件 c再附加 EXEC sp_attach_single_file_db @dbname = 'pubs',@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubsmdf'

问题描述:所用数据库为 oracle 10g ,模式为归档模式,oracle 系统默认的归档空间为2G,由于日志过多,空间写满,数据库的redo文件不能归档,而出现oracle数据库挂起的问题。 oem打开oracle 10g 数据库 *** 作界面,会显示如下错误信息: 由于输出设备已满或不可用, 归档程序无法归档重做日志。 数据库无法使用 现将解决办法稍作总结: 方法一:增大归档日志空间的大小 可以通过下面的方法来调整系统的回闪恢复区大小: 首先是关闭数据库:以SYS身份链接到oracle,执行shutdown immediate; 启动数据库到mount状态:startup mount 查看回闪恢复区的大小和存放目标:show parameter db_recovery_file_dest 修改回闪恢复区的大小alter system set db_recovery_file_dest_size = 4G(缺省是2G,可以根据实际情况调整大小) 最后打开数据库:alter database open; OK , 问题解决。数据库恢复使用。 方法二 :进入oracle清空日志信息,把空间释放出来 启动数据库到mount状态: sqlplus /as sysdba startup mount 新起一个终端,用rman进入把归档日志删除 命令rman target/ (只安装了一个oracle10g数据库) 命令crosscheck archivelog all; (列出归档日志信息) 命令delete expired archivelog all; (将上述列出的归档日志删除)命令exit;此时最好将数据库重新备份一下 把数据库的mount状态更改为open状态 alter database open; OK问题解决,数据库可以使用。误区:在系统清空归档目录的日志信息(即物理删除归档日志,或将归档日志转移至别处)不可取,OS虽然删除了,但oracle系统识别不出来已经清空日志,只能进入oracle清空日志信息,把空间释放出来,(方法二);或者是把归档空间设置更大(方法一)。 建议将两种方法结合使用,减少工作量,也避免数据库频繁挂起。同时定时进行数据库完全备份或其他重要数据备份

以上就是关于sybase事务日志已满,怎么清除全部的内容,包括:sybase事务日志已满,怎么清除、收缩数据库日志的影响,数据库日志已满,如何处理、金蝶KIS专业版 数据库 的日志已满。请备份该数据库的事务日志以释放一些日志空间。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存