技术实战:同一设备数据库如何分离日志与数据

作者: CBISMB编辑

责任编辑: 阚智

来源: 中小企业IT采购

时间: 2007-05-14 13:22

关键字: 数据库 日志

浏览: 0

点赞: 0

收藏: 0

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 了。

最后,还是要备份所有数据库.
©本站发布的所有内容,包括但不限于文字、图片、音频、视频、图表、标志、标识、广告、商标、商号、域名、软件、程序等,除特别标明外,均来源于网络或用户投稿,版权归原作者或原出处所有。我们致力于保护原作者版权,若涉及版权问题,请及时联系我们进行处理。