MSSQL 幾個問題 跪求解答...

是這樣的公司忽然請我研究MSSQL
完全沒碰過的我 已經折騰了好幾天都解不了
有幾個問題想來跪求這邊的大大幫忙..

1.我有兩台用linux建立的mssql 並設定好AG 叢集模式設定"外部" 測試同步OK..
我想要做到自動容錯移轉 (主要端點掛了 次要端點自動變為主要)
是否要安裝好pacemaker才有辦法做到?
如果叢集模式設定為 NONE 是否就只有手動容錯移轉?
微軟官方的教學指令是舊的...我去github找到Pacemaker的正確指令
更正後還是一堆錯誤...

想問有沒有文獻可以參考 或是有沒有其他方式可以做到自動容錯移轉

2.如果我要做定期備份
是否只能在主要端點上做
在次要端點上無法做備份 他會顯示
Microsoft.Data.SqlClient.SqlError: This BACKUP or RESTORE command is not supported on a database mirror or secondary replica. (Microsoft.SqlServer.Smo)
但主管請我研究如何在次要端點上做
這部分我也找不太到資料....實測也是不行

3.我的定期備份的T-SQL指令為
BACKUP DATABASE [ray01] TO DISK = N'/var/opt/mssql/data/backup/test01' WITH NOFORMAT, NOINIT, NAME = N'ray01-完整 資料庫 備份', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
固定每天早上6點備份 測試可正常備份
但是會一直複寫test01檔案 檔案就會越寫越大
想問該怎麼讓她每天6點執行時 檔案名稱加上日期


以上問題我已經到處爬文+chatgpt都找不到解法
也困擾一整個禮拜了...
跪求大大們幫忙
先感謝了
2023-05-10 18:12 發佈
文章關鍵字 mssql 問題
印象中, 最新的解決方案趨向於透過虛擬化技術實現整套系統的異地移轉和災害恢復, 傳統的容錯方案通常是針對單一套件或應用程式進行設計, 而現代的解決方案更注重整個虛擬環境的容錯和災害恢復...

這種整套虛擬環境的異地移轉方案可以提供更高的可用性和災害恢復能力... 它不僅可以快速恢復, 還可以保護整個系統, 包括操作系統、配置、數據和應用程式, 降低 RTO (RTO,Recovery Time Objective)的目標是迅速恢復關鍵系統和服務, 以最小化中斷和業務損失...

建議與您的 IT 團隊或系統商合作, 以確定最適合你組織需求的解決方案, 若要自己搞單一套件或應用程式, 建議可以趕快逃了...
Have a nice day~
正常還要一套負責當「哨兵」。(當 watchdog 用)

好像可以用一套 Fee 的 Express 版來當哨兵。

來負責切換 master / slave 。
ray222111 wrote:
是這樣的公司忽然請我...(恕刪)

你的SQL always on cluster 如果有設定正確的話,它在windows cluster service 的部分應該有設定witness. 那應該就可以讓cluster 自動failover了.
另外要設定passive node for backup, 要去SQL management studio always on ag group的property 設prefer backup node為passive node.
我忘了是否要另外把passive node 開啟allow read only, 還是只要set prefer backup on passive node 就好,你自己試試。
backup 用tsql 要寫不少東西,用maintenance plan 就可達到你要的功能,而且更簡單, 在2 nodes 都設maintenance plan 就可。
ericoz

prefer secondary backup 如果開啟,用maintenance plan 會check prefer maintenance 那個flag ,拿secondary 做backup.

2023-05-11 13:56
ericoz

你可以google tsql prefer secondary backup 找一些 code 來改,或從windows server 版mssql 去產生再改。

2023-05-11 13:58
好硬..
我還是物理解決簡單些設設IP
B電腦鏡像
From SQL Server 2017 onwards, the Linux version supports the following cluster types:

None: The cluster type None configures Availability Groups (AG) between standalone nodes. It does not use Pacemaker configurations. It supports manual failover from primary to secondary replicas.
External: The External cluster type requires a Pacemaker underneath the AG for managing the cluster. It supports automatic and manual failover.

1.自古以來微軟官方文件就很多錯誤

2.別用T-SQL備份,公司沒有backup solution嗎? 如NBU、CV..?
https://learn.microsoft.com/en-us/sql/database-engine/availability-groups/windows/configure-backup-on-availability-replicas-sql-server?view=sql-server-ver16

3.丟去不同的檔案就好了


====

linux的MSSQL比較不同,
公司限制只能用linux版本嗎?
ray222111
ray222111 樓主

第三點部分 我是想說讓他每一次備份 都設定當下日期時間為檔名 這樣就不會複寫 但我不知道TSQL要怎寫QQ

2023-05-11 12:21
Howdy Mate

linux環境我的話, 根本不會跑mssql; mariadb/postgresql隨便挑一個都很穩

2023-05-11 14:02
看起來貴公司沒DBA的錢,打算自己培養一個...



1.資源的部分自己爭取,DB不要開玩笑,沒了就真的沒了...
有的加密病毒專門鎖定datafile跟backup 就是看中它的價值

2.備份策略你要去多學點,不是每次都full backup
一般都是一個禮拜full,加上每天inc
log依照db不同去調整
1. 你HA Failover Cluster設好,不就會自動轉移?

2. 實體database file放在,active/standby都看的到的storage不就好了 (完全不需要data replication)

3. backup active 做就好
建議要善用VM來做Lab驗證

假如可以運用的只有一台電腦的話
我會先把記憶體頂到滿,最少32GB
DB HA lab少說三五個VM要跑
(例如純微軟環境的話至少一個AD 8GB,一個 share storage 2GB,兩個instance 各8GB)
32GB其實很吃緊

然後盡量利用VM的snapshot功能去做紀錄點
免得config錯了整個得打掉重來,一天就過去了

======

功能驗證OK之後,上線才是挑戰的開始
以前老師講過一句話:"當一個DBA最重要的就是備份"
這句話其實有很多涵義,(驗證、演練、資源調配...etc)
但對新手來說就是備份做確實,至少別人來還救得了你。
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?