sybase数据库:细说SYBASE数据库日志



  SYBASE公司是世界著名数据库厂家其关系数据库产品SYBASE SQL Server在中国大中型企事业单位中拥有大量用户笔者在多年使用过程中整理总结出SYBASE数据库管理和维护些经验现拿出来和大家分享

  我们知道SYBASE SQL Server用事务(Transaction)来跟踪所有数据库变化事务是SQL Server工作单元个事务包含条或多条作为整体执行T-SQL语句每个数据库都有自己事务日志(Transaction Log)即系统表(Syslogs)事务日志自动记录每个用户发出每个事务日志对于数据库数据安全性、完整性至关重要我们进行数据库开发和维护必须熟知日志相关知识

  、SYBASE SQL Server 如何记录和读取日志信息

  SYBASE SQL Server是先记Log机制每当用户执行将修改数据库语句时SQL Server就会自动地把变化写入日志条语句所产生所有变化都被记录到日志后它们就被写到数据页在缓冲区拷贝里该数据页保存在缓冲区中直到别数据页需要该内存时该数据页才被写到磁盘上若事务中某条语句没能完成SQL Server将回滚事务产生所有变化这样就保证了整个数据库系统致性和完整性

   2、日志设备

  Log和数据库Data需要存放在数据库设备上可以将Log和Data存放在同设备上也可以分开存放般来说应该将个数据库Data和Log存放在区别数据库设备上这样做有如下好处:是可以单独地备份Backup事务日志; 2是防止数据库溢满; 3是可以看到Log空间使用情况

  所建Log设备大小没有十分精确思路方法来确定般来说对于新建数据库Log大小应为数据库大小30%左右Log大小还取决于数据库修改频繁程度如果数据库修改频繁则Log增长十分迅速所以说Log空间大小依赖于用户是如何使用数据库此外还有其它原因影响Log大小我们应该根据实际操作情况估计Log大小并间隔段时间就对Log进行备份和清除

   3、日志清除

  随着数据库使用数据库Log是不断增长必须在它占满空间的前将它们清除掉清除Log有两种思路方法:

  1.自动清除法

  开放数据库选项 Trunc Log _disibledevent=>
  上例中情况就可以分成两个或多个小事务:

update tab_a col_a=0 where col_b>x
go
dump transaction database_name with truncate_only
go
update tab_a col_a=0 where col_b <=x
go
dump transaction database_name with truncate_only
go

  这样个大事务就被分成两个较小事务

  按照上述思路方法可以根据需要任意拆分大事务若这个事务需要备份到介质上则不用“with truncate_only”选项若执行“dump transaction with truncate_only”命令应该先执行“dump database”以此类推我们可以对表删除、表插入等大事务做相应拆分


Tags:  sybase数据库乱码 sybase创建数据库 sybase数据库配置 sybase数据库

延伸阅读

最新评论

发表评论