iT邦幫忙

DAY 3
7

我努力當個報表達人:一招半式闖江湖的經驗分享系列 第 3

大檔案的資料轉移方式

這是發生在我在現在公司所發生的狀況,主要是LOG資料庫有某個資料表太大了,每天約記錄2000多萬筆的資料,而因為這些資料之前都沒在整理,現在要整理就比較麻煩,而因為我要把這個資料表資料轉到另外的硬碟上(原本的MDF檔案約400多GB),但是想在不中斷資料庫的前提下來做資料轉移,我試過使用bcp或程式轉檔的方式,都會有timeout逾時或者超過sqlserver express版MDF檔案大小上限的問題,後來我找到sqlserver企業版,使用資料的匯入與匯出方式,才把該資料表轉出,不過轉出時間花一天多的時間,而這一篇主要就是在分享工具型轉檔的方式
SQLSERVER的資料匯入與匯出精靈,也是以Stepy by Step的方式來完成轉檔,原理一樣是指定來源抓取的目標與轉出的目的,來完整資料的轉移交換,其執行步驟說明如下

Step1:開啟匯入與匯出功能

Step2:出現精靈導引設定畫面

Step3:設定來源路徑,我設定到我的LOGSERVER上

Step4:設定所要備份的目的地,我設定備份到sql server 2012

Step5:設定備份的資料是要抓取資料表或者透過查詢來產生

Step6:選擇所要備份的LOG資料表

Step7:確認是否要立即來執行

Step8:完整幾億筆的資料轉換

或許有人會問說為什麼不直接抓MDF檔案(資料庫停機幾分鐘),主要是因為之前我有去上過SQLSERVER修復的課程,老師是說只備份MDF的方式,有些資料會漏掉,所以會建議使用完整備份來轉移資料,而透過匯入與匯出的資料轉換方式,使用者也可以快速完成資料轉換,不會因為資料量多與寡。


上一篇
指令型轉檔與不懂程式的轉檔方式
下一篇
檔案類型的轉檔
系列文
我努力當個報表達人:一招半式闖江湖的經驗分享27
0
CalvinKuo
iT邦大師 7 級 ‧ 2013-09-18 15:52:47

如果是我會卸載該Log資料庫,複製 MDF & LDF到另外的磁碟,再掛起來...
但是沒考慮把舊Log資料封存嗎?再壓縮資料庫...

player iT邦大師 1 級 ‧ 2013-09-18 17:05:18 檢舉

我都手動下指令去備份 (或是寫 bat檔)
或是用 SQL Server裡的排程開維護計劃

DB含Log,備份後
清空log
不讓log無限成長下去

如果不這樣的話
log檔可能成長到遠大於db的size
大到Windows實體記憶體不足處理log檔
而導致 db 鎖死

如果用SQL的排程
每天於離峰時間自動備份與清log一次
這樣db的穩定度會從不定時掛掉
到撐到下次Windows Update發佈重大更新前, 都沒問題

0
ektrontek
iT邦研究生 1 級 ‧ 2013-09-18 21:26:35

player提到:
如果用SQL的排程
每天於離峰時間自動備份與清log一次

請教前輩,這要如何做呢?
感謝

我要留言

立即登入留言