sybase中分离日志与数据

[复制链接]
查看11 | 回复0 | 2006-9-1 10:25:00 | 显示全部楼层 |阅读模式
sybase中,如何分离日志与数据在同一设备的数据库?
详细步骤,已测试成功
  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 了。
  
最后,还是要备份所有数据库.
原文http://reda.itpub.net/post/17247/110862
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行