检查步骤:
sybase命令
sp_spaceused syslogs
(在使用的数据库中执行)
sp_helpsegment logsegment
用sybase central 图形界面
更加直观。
参考指标:
正常情况下,数据库日志剩余空间大小应为20%以上;如果少于20%,则要通过DUMP TRANsaction命令备份事务日志或截断事务日志。
后面的最后三个参数要详细讲一讲。
2.检查数据库系统日志,检查是否当中有错误记录,并作出处理。
检查步骤:
查看数据库系统日志,文件名一般为$Sybase/install/SYBASE.log.可通过指令vi、more或tail指令检查
*** 作系统命令
# cd $sybase/ASE-12_5/install
# tail -500 sybase.log
检查messages文件最后500行的输出信息,并进行分析。
注:tail所加的参数视具体情况而定,原则上要看上一日的信息。
参考指标:
若日志中有’ Error:’的字眼,则数据库系统管理员应根据出错代码进一步处理。
备注:
错误代码可以参考 Enterprise Troubleshooting and Error Messages Guide Volume 1-3 的字眼,数据库系统管理员应根据出错代码进一步处理。
第一步:设定Sybase数据库自动截断日志:方法一:
[sql]
isql -Usa -Ppassword -Ssybaseserver
>sp_dboption database_name,"trunc log on chkpt",true
>go
>checkpoint
>go
方法二:在sybase central 数据库属性对话框的选项页中选择“在检查点上截断日志”项。
第二步:清空日志:
方法一:
[sql]
>dump transaction database_name with truncate_only
>go
通常删除事务日志中不活跃的部分可使用“dumptransaction with trancate_only”命令,这条命令写进事务日志时,还要做必要的并发性检查。
详细步骤,已测试成功[@more@]1、备份数据库,包括 master 和你要分离数据与日志的应用库,最好是备份所有数据库;
2、检查数据库的日志是否有单独的存放设备,如有,则直接到第5步;
3、如没有单独的日志设备,则增加一个设备:disk init .....;
4、alter database db_name log on new_log_device=xxx
5、sp_logdevice dbname,new_logdev (移动日志设备)
6、sp_dropsegment logsegment, db_name, device_name (如果数据库有多个设备既放数据又放日志,则
要相应的运行几次
7、创建一个临时表,然后往里面插入足够的数据,然后截断日志
use db_name
go
create table t1 (id int)
go
declare @loop int
select @loop = 1
while(@loop<500)
begin
insert t1 values(@loop)
select @loop = @loop + 1
end
go
dump tran db_name with truncate_only
go
8、到此,数据与日志的分离已经完成,使用sp_helpdb db_name或sp_helplog查看是否已分离。
增加和删除 segment 并不移动当前的已分配空间。日志至少有一个扩充(extend)位于以前的 segment
上(还记得吗,为对象分配存贮单元时,实际是以 extend 为单位的。)。如果当前 extend 被填满,需要再
为日志分配时,ASE会在新的 segment 上分配(segment 约束它不得不这么做)。此时,截断日志就可以回收
以前分配的 extend 了。
最后,还是要备份所有数据库.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)