程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SyBase數據庫 >> SyBase綜合文章 >> Sybase數據庫中分離日志與數據文件

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 了。最後,還是要備份所有數據庫.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved