已經是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..

« »