台灣最大程式設計社群網站
線上人數
1923
 
會員總數:240902
討論主題:186660
歡迎您免費加入會員
討論區列表 >> MS SQL >> 資料庫備份檔案越來越大
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
資料庫備份檔案越來越大
價值 : 30 QP  點閱數:624 回應數:4

樓主

小魚兒
初學者
145 241
3595 279
發送站內信

捐贈 VP 給 小魚兒
echo off
echo 正在備份【管理系統】資料庫中.......
CD D:\AA\BackupDB
if exist "NSRRCHMS1.bak" (
echo 刪除舊資料庫中,請勿關閉螢幕。
copy DB1.bak DB1_before1.bak
del DB1.bak
)
echo 備份資料庫中,請勿關閉螢幕
sqlcmd -U Accountdb -P 123 -S Server1 -Q "BACKUP DATABASE DBS to DISK='D:\Putaitec\BackupDB\DB1.bak'"
echo 備份資料庫完成

小弟寫了一次批次檔,專門於每隔一週就會備份一次,但很奇怪,為什麼它資料庫備份會越來越大(目前11G)?
但如果我自己手動備份則會很小(450MB左右),而LOG我也會定期利用批次檔去清除掉。
是不是有哪些需要再設定或者要做調整的呢?


搜尋相關Tags的文章: [ 資料庫備份 ] ,
本篇文章發表於2016-06-17 16:45
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

羅伯斯
檢舉此回應
個人的看法:
自己手動備份則會很小(450MB左右),請問你所謂手動備份,是不是以SQL Server來進行?
若是,那應該是SQL Server在進行資料庫備份時,有對所要備份的資料庫進行壓縮動作
而這個壓縮動作,才是真正的把已刪除的資料,並釋放資料所佔用的資料庫空間

至於以批次檔進行的備份,雖然定期利用批次檔去清除掉LOG,但己刪除資料
所佔用的資料庫空間並沒有釋放出來,以至於資料庫的大小,還是一樣沒有變化

所以若要除了備份資料庫外,還要讓資料庫瘦身,最好還是以SQL Server來進行
批次檔的備份動作,只能提供一份相同的資料庫備份,以防資料庫毁損無從復原
對於資料庫的廋身,就顯的力不從心,無能為力了

本篇文章回覆於2016-06-17 23:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
最有價值解答

pilipala
檢舉此回應
BACKUP 語法,預設是 NOINIT,都是備份到同一個 bak 的話,會一直附加在該 bak 上

刪除 bak 檔案的話,可以參考
維護計畫精靈 https://msdn.microsoft.com/zh-tw/library/ms191002(v=sql.120).aspx
[定義維護清除工作]可以用來刪除 bak 檔案,或是直接利用 xp_delete_file 來進行刪除

sqlcmd -U Accountdb -P 123 -S Server1 -Q "BACKUP DATABASE DBS to DISK='D:\Putaitec\BackupDB\DB1.bak'"


SQL Server 版本是 Express 嗎?

LOG我也會定期利用批次檔去清除掉


這個可以詳細說明是怎麼進行的嗎?
本篇文章回覆於2016-06-18 05:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

小魚兒
捐贈 VP 給 小魚兒 檢舉此回應
LOG我也會定期利用批次檔去清除掉
現在才注意到—
我會寫二支檔案,一支是BAT檔,一支是SQL檔,利用BAT去執行SQL指定,如下
.BAT檔內容-
echo off
echo 正在清除【健康管理系統】記錄檔中.......
sqlcmd -U 帳號 -P 密碼 -S 資料庫伺服器名字 /i "c:\BAT\ClearLog.sql"
echo 清除資料庫記錄檔完成

.SQL檔內容-
USE TESTDB
ALTER DATABASE TESTDB
SET RECOVERY SIMPLE;
GO
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (TESTDB_LOG, 1);
GO
-- Reset the database recovery model.
ALTER DATABASE TESTDB
SET RECOVERY FULL;
GO

這樣就可以去運作處理了。當客戶的預存程序 / 資料庫加解密方式均無法處理時,都可以用此方式去處理
本篇文章回覆於2017-08-18 16:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

pilipala
檢舉此回應
應該是要定期去做 Log Backup 會比較適合

建議該影片可以花時間了解一下
https://channel9.msdn.com/Blogs/MVP-Data-Platform/-SQL-Server--part1
https://channel9.msdn.com/Blogs/MVP-Data-Platform/-SQL-Server--part2
https://channel9.msdn.com/Blogs/MVP-Data-Platform/-SQL-Server--part3
本篇文章回覆於2017-08-28 08:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.