posts - 89,  comments - 98,  trackbacks - 0

详细步骤,已测试成功

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)

b
egin

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 了。最后,还是要备份所有数据库.

posted on 2006-09-30 10:29 水煮三国 阅读(477) 评论(0)  编辑  收藏 所属分类: Sybase

只有注册用户登录后才能发表评论。


网站导航:
 
<2006年9月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用链接

留言簿(4)

随笔分类(85)

随笔档案(89)

文章分类(14)

文章档案(42)

收藏夹(37)

java

oracle

Sybase

搜索

  •  

积分与排名

  • 积分 - 208908
  • 排名 - 267

最新评论

阅读排行榜

评论排行榜