已經是2015年了,MSSQL Server 也出到 2014的版本
從SQL2012開始,多了一項重要的 Always On 備援功能
這種備援功能的好處,就是可提供一種非同步認可或同步認可模式,
更支援Active/Active模式,讓寫入與讀取分流,分散負載。
意思就是如果你有2台SQL Server 做 Always On,那個一台可以
read/write ,另一台只能 read
這樣就可以讓只需要「Read」的作業如報表作業,連到第2台去使用,分散資料庫的負載
但是這種機制,讓 transaction log 不得不開啟在「完整」模式,而且不允許使用「簡單」模式
所以之前所使用的清 transaction log 方式,就失效了
SQL2005、SQL2008
USE [資料庫名稱] GO ALTER DATABASE [資料庫名稱] SET RECOVERY SIMPLE WITH NO_WAIT DBCC SHRINKFILE(記錄檔邏輯名稱, 1) ALTER DATABASE [資料庫名稱] SET RECOVERY FULL WITH NO_WAIT GO
邏輯名稱可在資料庫上按右鍵=>[屬性]=>[檔案]中查看,注意邏輯名稱不一定會和檔名相同
在SQL2012 Always On 的環境下,只能把交易記錄檔備份出來才行
結果又遇到該死的問題,記錄檔太大,找不到空間可以放
還好有個像是「/dev/nul」的地方,不需要空間,而且又快,當然缺點就是
備到垃圾筒當然就是沒了
SQL2012
USE [資料庫名稱] GO BACKUP LOG [database] TO DISK = N'NUL' GO
備完之後,又可以生龍活虎的繼續工作了!!
On this day..
- 愚人節 - 該死的交通警察 - 2006