|
|
本人学习研究sybase已经n多年了,从刚开始什么都不会,到现在自诩为的"专家",感受也颇深。我都会sybase什么东西呢?sybase是一个软件公司,其中包括...查看全文
博客简介
本人学习研究sybase已经n多年了,从刚开始什么都不会,到现在自诩为的"专家",感受也颇深。我都会sybase什么东西呢?sybase是一个软件公司,其中包括了ase,asa,iq,rs,ma,pb,pd等等等等。ase我应该算是精通了,我开发了ase的灾难恢复软件powersybedit,开发了存储过程调试器,开发了日志查看器等软件。asa方面,也能够做一些数据的恢复,还有密码的破解(可能有人认为很简单,但事实上在加密条件下,dba用户被修改等情况下的破解,嘿嘿,我还是有办法的)。iq么,一些皮毛,准备入手学习。rs么基本上没有什么问题,做过大型的复制系统,双向复制等等。pb么,代码总归看得懂,用起来也没有问题。pd么,呵呵,仅仅会用而已,画画流程图表结构设计等。
|
 |
| |
| 同一设备数据库如何分离日志与数据(转自sybase) |
|
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 了。
最后,还是要备份所有数据库
|
| 标签: |
作者 hobbylu 评论() | 人气()
| 引用(0) | 推荐 | 保存日志 | 问题日志 | 收藏到网摘 | 返回首页
|
| | |
 | |