配置和操作NDB
本章節將幫助您了解如何安裝和設定 NDB、建立設定檔、配置新的或現有的資料庫或資料庫伺服器虛擬機器以及如何使用 NDB 功能。
- 如何安裝和配置 NDB。
- 如何建立軟體、計算和網路設定檔。
- 如何註冊現有的資料庫和資料庫伺服器虛擬機器。
- 如何配置新的資料庫和資料庫伺服器虛擬機器。
- 如何修補資料庫伺服器虛擬機器和資料庫伺服器叢集。
- 如何升級 NDB。
- NDB流程與配置需求
- NDB 安裝與初始化
- NDB操作與管理 - 儀表板和設定檔
- NDB操作與管理 - 建立SQL Server 軟體設定檔
- NDB操作與管理 - 部署與調整
- NDB操作與管理 - 備份還原與複製
NDB流程與配置需求
NDB流程
- 安裝NDB:在Nutanix叢集安裝NDB VM
- 選擇設定檔:使用 NDB 中可用的示範設定文件,更新範例設定檔符合您的要求,或建立一個設定檔。
- 在 Nutanix 叢集上設定新的來源資料庫伺服器 VM 或使用 NDB 註冊現有的來源資料庫。作為配置或註冊過程的一部分:
一個。 NDB 將資料庫使用的 VM 註冊為一個資料庫伺服器。
b. NDB 希望該來源資料庫建立一個時間機器。當您設定或註冊來源資料庫時,時間機器會依照計畫中的拍攝快照並複製交易。
-
使用NDB克隆來源資料庫建立更多資料庫執行個體。
-
使用NDB的其他功能,例如複製資料管理。
NDB注意與限制
限制
- 目前NDB支援資料庫伺服器VM作業系統和資料庫軟體英文、日文和德文、
中文。 - NDB 僅支援英文和日文的資料庫伺服器 VM 上的資料庫名稱、VM 名稱、圖形使用者介面 (GUI) 和命令介面 (CLI)。
- NDB 不支援穿透 Prism Element 或 Prism Central 對 NDB 配置的資料庫伺服器虛擬機進行任何 AOS 等級保護,例如 NearSync、MetroAvailability、Nutanix Disaster Recovery 或 Nutanix DRaaS。
注意:NDB 可以使用現有的 AOS Prism Element 保護網域來為在 NDB 中註冊的資料庫伺服器虛擬機器提供保護。
- NDB不支援以下之間的正向或反向代理:
- 資料庫伺服器虛擬機器和NDB。
- 透過器存取 NDB API 或 NDB 使用者介面的使用者端。
- NDB目前支援SCSI磁盤,不支援SATA磁盤。
- NDB 不支援向資料庫伺服器 VM 新增非 Nutanix 磁盤。
- 如果 SCSI 和非 SCSI 磁盤(CD-ROM 不會影響註冊),NDB 不支援資料庫伺服器 VM 的新註冊。即使儲存是非作業系統、非資料庫或非軟體磁盤,NDB 也不支援註冊。此限制不會影響已存在於 NDB 註冊的具有非 SCSI 磁盤的現有資料庫伺服器伺服器虛擬機器。
- NDB 不支援手動向資料庫伺服器虛擬機器的暫存磁盤新增磁盤。
- NDB 在 ESXi VM 上每個控制器最多支援 15 個磁盤。
- NDB 不支援以下遷移範例:
- 將 NDB 伺服器和 NDB 代理程式遷移到相同 Nutanix 叢集內的不同儲存容器。
- 將 NDB 伺服器和 NDB 代理程式遷移到不同的 Nutanix 叢集。
- 將 NDB 管理的 UVM 遷移到不同的 Nutanix 叢集。
- NDB 不支援配備 NDB 的資料庫伺服器 VM 新增至保護網域 (PD)。如果資料庫伺服器 VM 已經是保護網域的一部分,則可以向 NDB 註冊該 VM。但是,這並不妨礙資料庫伺服器虛擬機提供災難性故障。
- NDB控制平面沒有災難性的多重解決方案。
- NDB 不支援資料庫快照和 VM 快照共存的範例。
- 當升級操作正在運作時,所有已提交的操作(使用者提交的操作或計畫的操作)可能無法被拾取執行,或在收到執行後失敗。
- NDB 不支援在 Ubuntu 上配置 HA 資料庫,其中一個節點位於 AHV 上,另一個節點位於 ESX 上。您無法將在 AHV 上為 Ubuntu 上的資料庫拍攝的快照複製到 ESX 叢集。
注意事項
- NDB正在調整每個其軟體供應商資料庫引擎生命週期和作業系統的支援矩陣政策。這意味著NDB將只需供應商支持,就支援特定版本。
如果您目前正在管理資料庫或資料庫伺服器VM在EOL版本上執行,Nutanix建議在升級NDB到最新版本之前先升級到NDB支援的資料庫引擎或作業系統。
-
執行下列步驟,以更換任何執行 NDB 平面控制虛擬機器(VM)及由 NDB 管理的資料庫伺服器虛擬機器之 Nutanix 叢集的底層硬體:
- 將新的 Nutanix 節點加入現有的 Nutanix 叢集。
- 從現有的 Nutanix 集中移除舊的 Nutanix 節點。
- 更換完成後,Nutanix 叢集本身維持穩定,但仍以新的硬體相容。
-
NDB 支援在 Nutanix 叢集中同時混合使用僅計算節點(compute-only)和僅儲存節點(storage-only)。
-
NDB使用者介面可顯示英文、西班牙文、日文及中文內容。若為其他語系,NDB使用者介面將顯示中文內容。
-
如需變更 NDB 使用者介面的語言設置,請參閱本指南中的「變更語言設定」主題。
-
在 NDB 能夠開始管理該叢集上的資料庫伺服器虛擬機器之前,必須先在其中一個 Nutanix 叢集上設定並設定 NDB 虛擬機器。
- NDB支援ark站點部署或與網路網路斷線的部署環境。
-
NDB 不支援在 Nutanix 外部平台的資料庫上運作。
注意:要複製運行於其他平台的資料庫,您必須先將來源資料庫複製到一台資料庫伺服器虛擬機(VM)上。您可以選擇將資料庫伺服器虛擬機及其資料庫一併複製到 Nutanix,或是將資料庫複製到已經在 Nutanix 平台上運行的資料庫伺服器虛擬機。例如,您可以使用 Oracle Data Guard 來複製 Oracle 資料庫。
- 正確的目錄與檔案權限對於 NDB 的正常運作至關重要。請勿變更以下目錄、子目錄及其所包含的目錄或檔案權限:
-
- /opt/era_base
- /home/<ndb用戶名>
- Patroni、etcd、Keepalived、HAProxy 的二進位文件
- /etc/etcd
- /etc/patrons
- /etc/haproxy
- /etc/keepalived
- /etc/systemd/system/patroni.service
- /usr/lib/systemd/system/etcd.service
- /usr/lib/systemd/system/patroni-watchdog.service
- /var/lib/etcd/數據
- /var/日誌/etcd
- /var/log/patrony
- /home/postgres/era_custom_pg_params.conf
- /tmp
- /tmp/perfrom_work.lock
- /var/tmp
- /etc/mongod.conf
- 資料庫引擎與NDB軟體相關的目錄,例如:資料庫資料、資料庫日誌、歸檔日誌,以及software_home。
- POSTGRES_SOFTWARE_HOME 路徑(例如 /usr/pgsql-10.4)
- ORACLE_HOME 路徑(例如 /u02/app/oracle/product/19.0.0/dbhome_1)
- GRID_HOME 路徑(例如 /u01/app/19.0.0/grid)
- NDB log 磁盤。
- C:\NTNX\
- SQL Server資料庫相關的目錄
- 預設軟體路徑: C:\Program Files\Microsoft SQL Server\MSSQL13.CDMINSTANCE\MSSQL\Binn\sqlservr.exe
- 預設資料庫data\log 路徑: C:\Program Files\Microsoft SQL Server\MSSQL13.CDMINSTANCE\MSSQL\DATA
- NDB 配置預設資料庫data\log 路徑: C:\NTNX\ERA_DATABASES\<database_name>
注意:您不能移除/opt/era_base目錄和子目錄下的任何檔案
- Nutanix 建議使用原始碼(解壓縮)方式安裝 PostgreSQL 和 MongoDB。不建議使用如 YUM 或 DNF 等 Linux 套件管理工具進行安裝。如果您使用 Linux 套件管理工具安裝資料庫引擎,則不支援透過 NDB 進行修復作業。
- 這包括透過Linux套件管理工具或新軟體設定進行的小幅升級(修復),以及從NDB以外來源進行的修復。
- NDB不支援針對以開箱即用(OOB)軟體設定檔部署的作業系統或資料庫進行修復。
- 您必須為同一個 NDB 執行個體所管理的每台資料庫伺服器虛擬機器指派唯一的 IP 位址。
- 您必須在 RHEL 8.x 和 9.x 軟體設定檔中安裝 ifup/ifdown 套件。
- Nutanix 建議為磁碟區啟用 fstrim 操作。更多資訊請參閱 Nutanix Volumes 文件。
- NDB會頭部RHEL或CentOS 8版本以上版本在跨Hypervisor(AHV與ESXi之間)進行軟體設定檔與軟體快照的複製。
- 若 /var/lib/dhcp/leasefilename 目錄中存在 DNS 項目,則佈建操作將會失敗。
-
在佈建使用 ssh-rsa 演算法 SSH 金鑰的 Red Hat Enterprise Linux(RHEL)9.x 資料庫伺服器虛擬機器時,可能會發生失敗。請依照以下步驟解決此問題:1. 將金密鑰算法更新為 ed25519。2. 提供更新後的ed25519金鑰,以順利完成佈建流程。
- 如果在 AHV 叢集上進行資料庫叢集佈建時出現「沒有主機有足夠的可用資源用於 VM <VM_UUID>」的例外錯誤,則得到skip_ahv_host_affinity_assignment_for_clustered_dbservers 設定旗標設為 true。此旗標會略過 AHV 叢集的主機親和性分配。如果啟用此旗標,則多台資料庫伺服器虛擬機器可被指派到同一台主機上。
- 如果Nutanix叢集有超過500台VM,在ESXi上資料庫部署可能會失敗,將出現下列訊息
請參考KB-15476解決此問題Error in Registering Database
- 請確保firewalld.service檔案中的'Conflicts'行未包含nftables.service。
NDB安裝前需求
若要了解 NDB 在不同資料庫引擎上的先決條件,請參閱 Support & Insights Portal 上《Nutanix 資料庫服務管理指南》的相關章節。
- 執行於每台資料庫伺服器VM上的NDB資料庫代理方案,會跨443埠及HTTPS協定與NDB伺服器通訊,並跨9440埠及HTTPS協定與Nutanix叢集進行REST API呼叫。
- 若要檢查及下載最新的 NDB 升級,NDB 伺服器必須能連線至 Nutanix 入口網站。
- NDB伺服器會定期與時間伺服器同步以更新伺服器時鐘,因此必須能間隔123連接埠連線至NTP伺服器。
- 為了 iSCSI 連線,NDB 伺服器與控制器必須支援虛擬機器(CVM)開啟 3205 與 3260 連接埠。
- 若為 NDB(MySQL 與 MariaDB)軟體類型,3306 連接埠為用戶端連接資料庫實例所需。此修改可於佈建時。這是 MySQL 傳統協定(port)的預設端口,MySQL 用戶端、MySQL 連接器及 mysqldump、mysqlpump 等工具都會使用此連接埠。
- 若為NDB(Oracle)軟體類型,22埠為SSH連線所需。
您還需要注意NDB部署的網路需求。
NDB網路需求
NDB控制平面配置與擴展
為了確保NDB控制平面自動故障轉移的高可用性,Nutanix需要三個Nutanix叢集來在故障域之間分配NDB控制平面虛擬機器。 為了防止站點故障,這些應該在單獨的DC或站點。 不支援在兩個Nutanix叢集上實現NDB控制平面HA,因為它引入了Nutanix叢集執行兩個Repository DB的單點故障。
Nutanix 叢集配置 | 高可用性(HA)配置 | 描述 |
---|---|---|
單叢集,多叢集未啟用 | 未啟用 | 單一 Nutanix 叢集無需 HA 即可管理。 |
已啟用多叢集 | 未啟用 | 多個 Nutanix 叢集無需 HA 即可管理。 |
已啟用多叢集 | 在單一叢集上啟用 HA | 在單一叢集上啟用 HA 來管理多個 Nutanix 叢集。 |
已啟用多叢集 | 跨叢集啟用 HA | 使用跨三個 Nutanix 叢集啟用的NDB控制平面 HA來管理多個 Nutanix 叢集 。 |
- Log Backup Storage 使用Volume Group最多單個叢集100個時光機、三個叢集最多200個時光機
- Log Backup Storage 使用Objects最多單個叢集400個時光機(Non-HA)300個時光機(HA、最短每15分鐘一次日誌抓取)、三個叢集最多800個時光機(Non-HA)
其他進階配置請參考
NDB Control Plane Configuration and Scalability
NDB軟體相容性與功能支援
在NDB Release Guide裡面,可以找到相容的Nutanix,VMware,作業系統,資料庫引擎的版本
以下為NDB2.8版本
NDB Software Compatibility and Feature Support
NDB 安裝與初始化
在AHV上安裝NDB
軟體下載與部署
1. 從 Support & Insights Portal 下載 NDB 映像檔(qcow2)。
2. 登入 Prism Element 並上傳 NDB 映像檔。
3. 使用已上傳的 qcow2 映像檔建立 NDB 虛擬機(VM)。
CPU/記憶體資源請參考:NDB Control Plane Configuration and Scalability
這邊以單機最小配置為例CPU: 8vcpu/2core 、記憶體:16GB
Boot Configuration:Legacy
Disk:Clone from Image Service
勾選 Custom Script
網路配置以固定IP配置,請依您的環境需求替換ip/gateway/netmask/nameserver
#cloud-config
runcmd:
- configure_static_ip ip=ip_address gateway=gateway_address netmask=ip_netmask nameserver=ns1
在建立 NDB 虛擬機時,您可以選擇性地指定一個固定 IP 位址。NDB 虛擬機需要一個 IP 位址來與叢集及其他虛擬機通訊。如果 NDB 虛擬機配置於 VLAN DHCP IPAM 網路,則會自動獲得 DHCP IP。否則,您需登入 Prism 並執行指令,為 NDB 設定固 IP 位址。Nutanix 強烈建議採用固 IP 位址作為最佳實踐,不建議使用 IP PAM服務。
補充1:預設帳密
NDB Server VM預設帳號:era 密碼:Nutanix.1
可以執行以下指令修改預設密碼
sudo passwd era
補充2:修改SSL憑證
登入NDB Server VM下以下指令
era-server
security ssl add_custom certificate_file=file_path private_key=file_path ca_certificate=file_path
補充3:配置NDB VM的NTP Server
era-server
#如果沒有啟用HA就配置ha-enabled=false
era_server set ha-enabled=false ntp_server=ntp_server_ip
補充3:配置NDB Agent的NTP Server
era-server
# 列出叢集ID
cluster list
# 執行以下指令將NDB agent配置新的NTP Server
cluster agent set nx_cluster_id=nx_cluster_id ntp_server=ntp_server
NDB初始化與開始
NDB初始化
1. NDB's Cluster:提供連接到Prism Element的管理員帳密
2. Network Segmentation:依照需求配置網路切分
3. Services:配置系統必須的服務(預設會帶PE的資訊)
4. Storage Container:選擇NDB部署資料庫得容器
5. Network Profile:選擇NDB預設要部署網路配置檔的網路
6. Setup NDB:系統會在背景部署出廠預設的軟體Profile,您可以點擊Get Started開始
NDB調整語系
NDB操作與管理 - 儀表板和設定檔
Dashboard儀表板
NDB 提供儀表板視圖,讓您能夠管理並監控 NDB 上所有資料庫及資料庫伺服器虛擬機的活動。若要隨時檢視儀表板,請從左上角的漢堡選單中選取「儀表板」。
名稱 | 說明 |
---|---|
資料庫 | 顯示資料庫組,來源資料庫和資料庫的總數 克隆 NDB。 注意: 資料庫當前僅對SQL Server支持組。 |
克隆資料年齡(天) | 顯示由...維護的克隆資料庫的年齡範圍 NDB。 |
關於 | 顯示Nutanix叢集名稱和NDB版本。 |
時間機器狀態 | 顯示從其中啟用時間機器的資料庫的數量資料庫總數和處於關鍵狀態的時間機器數 時間機器總數。 |
操作(最近5天) | 顯示最近5天失敗和成功操作的摘要 。 |
警報(最近5天) | 顯示最近5天關鍵和警告警報的摘要 天。 |
匯總表 | 顯示所有來源資料庫的摘要 NDB。相關的時間機器創建克隆,並顯示資料使用情況詳細信息。 |
設定檔Profile
設定檔可讓您建立資料庫軟體、網路、運算資源以及資料庫參數的範本,協助您在 NDB 上部署資料庫或資料庫伺服器虛擬機。
配置軟體設定檔Software Profile
軟體設定檔是一種範本,包含資料庫軟體和作業系統。在您將現有的資料庫伺服器虛擬機註冊到 NDB 後,NDB 會根據該虛擬機建立軟體範本。
在嘗試建立軟體設定檔之前,請確保您已將現有的資料庫伺服器虛擬機註冊到 NDB。NDB 會利用已註冊的資料庫伺服器虛擬機來建立軟體設定檔。
預設開箱即用的軟體設定檔因為授權問題,只有開源軟體的模板
登入NDB -> 點擊左上漢堡選單 -> Profiles -> Software -> 即可看到目前出場即用的軟體設定檔
在Operation System可以看到作業系統的版本以及安裝的套件
在Database Software可以看到資料庫軟體的安裝的套件
配置運算設定檔Compute Profile
- 從 NDB 主選單中,選擇「設定檔」。
- 在左側面板中,點選「運算」,然後點選「建立」。
- 在「建立運算設定檔」視窗中:
- 輸入名稱與描述。
- 指定 vCPU 數量、每個 vCPU 的核心數,以及記憶體容量。
- 點選「建立」。
- 在剛剛建立得Compute Profile點選「更新」。
- 勾選Publish(發布),點擊「更新」。
配置網路設定檔Network Profile
加VLAN到NDB
NDB 透過網路設定檔將 VLAN 與資料庫伺服器虛擬機關聯。因此,在建立網路設定檔之前,您必須先在 Nutanix 叢集上建立 VLAN,並將這些 VLAN 新增至 NDB。
對於 Nutanix 叢集,NDB 也提供使用 AHV 管理的 VLAN 來分配靜態 IP 的彈性。您可以透過 CLI 設定 NDB,在 AHV 管理的 IP 位址範圍內管理一組 IP 位址集區。
您可以在「網路」頁面中新增 VLAN 至 NDB、更新 VLAN,並從靜態 VLAN 新增或移除 IP 位址集區。您也可以建立橫跨多個 Nutanix 叢集的延展 VLAN。
新增 VLAN 至 NDB 的步驟如下:
在PE內必須已經有NDB未來要使用的子網
- 從 NDB 主選單中,選擇「設定」。
- 在左側面板中,選擇「網路」,然後點選「新增」>「新增 VLAN」。
- 在「新增 VLAN 至 NDB」視窗中:
- 選擇稍後要建立網路設定檔的 Nutanix 叢集。
- 從該叢集可用的網路清單中,選擇您要新增至 NDB 的 VLAN。
- 如果您想為資料庫伺服器虛擬機分配靜態 IP,請勾選「管理 IP 位址集區」並填寫必要資訊。
- 點選「新增」。
這邊是建立透過NDB管理的網路(Manage IP Address Pool:In NDB),這樣未來配置會比較簡單。
- 從 NDB 主選單中,選擇「設定」。
- 在左側面板中選擇「網路」。然後,選取您想要新增 IP 位址集區的網路,並在畫面右側點選「新增」。
- 在「新增 IP 位址」視窗中,於「起始位址」與「結束位址」欄位輸入 IP 位址範圍。 點選「新增」。
配置網路設定檔
- 您要建立網路設定檔的叢集已經有現有的 VLAN。如果該叢集尚未有 VLAN,您需要先建立一個。
- 您已將這些 VLAN 新增到 NDB。
- 從 NDB 主選單中選擇「設定檔」。
- 在左側面板選擇「網路」,然後點選「+ 建立」。
- 根據您選擇的資料庫類型,會有不同的選項。例如,若選擇 Oracle,您可以為資料庫伺服器虛擬機或 RAC 資料庫建立網路設定檔;若選擇 SQL Server,則可以為資料庫伺服器虛擬機或 Windows 叢集建立網路設定檔。
- 請根據您的選擇,在「建立網路設定檔」視窗中輸入必要的資訊。所需的詳細資料會依您前一步的選擇而有所不同。
例如,如果您選擇為 Oracle 或 SQL Server 的資料庫伺服器虛擬機建立網路設定檔,則需提供名稱、描述、選擇 Nutanix 叢集,並對應一個公用服務 VLAN。但如果您選擇為 Oracle RAC 資料庫建立網路設定檔,則需提供名稱、描述,並對應四個 VLAN:公用服務、SCAN 服務、虛擬服務和私有服務。 - 當您輸入所有必要資訊後,點選「建立」。
配置資料庫參數設定檔Database Parameter Profile
什麼是資料庫參數設定檔
- 對於 Oracle 資料庫,參數可能包括區塊大小(Block size)、預設語言、預設地區、程式全域區(PGA)、總記憶體、系統全域區(SGA)等。
- 對於 PostgreSQL 資料庫,參數可能包括自動清理(autovacuum)、自動清理凍結最大年齡(autovacuum freeze max age)、自動清理最大工作數(autovacuum max workers)、有效 IO 併發數(effective IO concurrency)、最大連線數(max connections)、最大預寫日誌(WAL)大小與傳送者數量等。
- 對於 Microsoft SQL Server,則可能包括啟用/停用包含式資料庫、SQL Server 執行個體的登入稽核、最大平行處理度、最小與最大伺服器記憶體,以及針對臨時查詢工作負載的最佳化能力等。
創建客製化的資料庫參數設定檔
- 從 NDB 主選單中,點選「設定檔」,然後在左側選擇「資料庫參數」。
- 在「資料庫參數」頁面,點選「+ 建立」。
- 在「引擎」頁面,系統會提示您選擇一個資料庫引擎。請選擇其中一個選項,然後點選「下一步」。目前可供選擇的資料庫引擎包括 Oracle、PostgreSQL、Microsoft SQL Server、MongoDB、MySQL 以及 MariaDB。
- 在「參數」頁面,輸入名稱與描述,並根據需要修改預設的資料庫參數值。如果您想查找並變更特定參數,可以使用搜尋欄。若只想檢視您已更新的參數,請勾選「僅顯示已修改」選項。若要重設所有變更,請點選參數表格右上方的「重設」連結。
- 完成並檢查所有變更後,點選「建立」。
配置Windows 網域設定檔Windows Domain Profile
Windows 網域設定檔用於將 Windows 伺服器叢集加入網域。
開始之前
若要佈建可用性群組,『網域使用者名稱』帳戶需要具備在 AD 中建立叢集名稱物件(CNO)的權限。
帳戶 | 特權 | 評論 |
---|---|---|
Domain User帳戶 | Windows administrator特權和“Log on as a service”權利。 | NA |
SQL服務啟動帳戶 | “Log on as a service”本地安全設置。 | 應該在源資料庫服務器上啟用此設置, 將創建配置文件。 |
添加到Windows網域配置文件中的Domain User | 在AD中Create and delete computer object | 需要此帳戶才能將新配置的資料庫服務器添加到 域。 |
配置SQL服務啟動帳戶
配置sqlsvr的網域使用者權限有Log on as a service
在Run執行Services.msc,找到SQL Server調整Log On登入帳號為網域使用者sqlsvr
配置完後重新啟動
配置網域使用者ndbsvr有SQL Server的sysadmin權限
登入SSMS -> Logins -> New Login
Search -> 找到要配置的網域使用者 -> OK
在 Server Roles -> 勾選sysadmin權限
配置網域使用者ndbsvr有Log on as a batch job權限
Local Security Policy -> Local Policies -> User Rights Assignment -> Log on as a batch job 新增網域使用者
配置網域使用者ndbsvr DomainAdmin權限
在此為簡化配置,故給此ndbsvr服務帳號比較高的權限,要給恰到好處的權限請參考
在NDB配置Windows網域設定檔
Windows Domain Profile:定義微軟網域
補充SMSA與gMSA
DBA 使用服務帳戶來運行各種 SQL 服務。通常,我們應該為單個服務器 SQL 服務使用單獨的服務帳戶。
-
您應該運行具有最少權限的 SQL 服務
-
您應該使用複雜的密碼並將其存儲在安全的地方
-
它的密碼永遠不會過期
-
您還應該定期更改密碼,具體取決於您所在組織的安全策略
如果您維護大量 SQL 服務器,您可能會認為更改和維護這些服務器的密碼是一項繁瑣的任務。使用 SQL Server 配置管理器更改服務帳戶密碼後,還需要重新啟動 SQL 服務。讓高度事務性應用程序停機也可能是一項具有挑戰性的任務。
在這些情況下,我們可以利用群組管理服務帳戶(gMSA)來解決此問題。
在AD使用者和電腦,新增物件使用者,創建Service Account,此帳號NDB會用來加入網域和管理資料庫,此帳號需要有”Create Computer Objects”和”Delete Computer Object”的權限在AD中。
帳戶選項:密碼永久有效、使用者不能變更密碼
我們在活動目錄配置中擁有兩種託管服務帳戶。
-
獨立管理服務帳戶(SMSA)提供自動密碼管理功能。 用簡化的術語來說,使用者不會管理這些使用者的憑據。 它會自動更改密碼,並根據活動目錄策略與服務同步。 我們可以為單臺伺服器使用獨立的託管服務帳戶
-
群組託管服務帳戶(gMSA)擴充套件了SMSA的功能。 您可以將gMSA用於多個伺服器。 我們定義了一個AD組,併為所有可以使用指定gMSA憑據的必要伺服器提供許可權
總之,使用gMSA作為SQL服務的服務帳戶,您將獲得以下好處。
-
自動密碼管理
-
管理員不需要將密碼儲存在密碼庫中
-
它使用非常複雜的密碼(120個字元),管理員也不知道。 它還避免了在不知不覺中分發密碼的風險
-
自動SPN註冊
-
您可以在多臺伺服器和服務上使用它們
-
您可以在獨立伺服器或在故障轉移叢集服務(如Windows服務、應用程式池、計劃任務)上執行的服務上使用gMSA
Profiles -> Windows Domain -> + Create
依需求填入帳密,您可以指定OU的位置來放置叢集和資料庫虛擬機,以及剛剛建立的網域帳戶
完成後如下
本配置檔要在部署時才會驗證是否有問題!
發布設定檔
- 從 NDB 主選單中,選擇「設定檔」。
- 在左側面板中,依您要更新可用範圍的設定檔類型,選擇「軟體」、「運算」、「網路」、「資料庫參數」或「Windows 網域」。
- 在對應的設定檔更新頁面,選取您要更新可用範圍的設定檔,然後點選「更新」。
如果您選擇的是軟體設定檔,則需要選取該設定檔可用的叢集,然後點選「更新」。
如果您選擇的是運算、網路、資料庫參數或 Windows 網域設定檔,則需要將該設定檔發佈。請勾選「發佈」選項,然後點選「更新」。
NDB操作與管理 - 建立SQL Server 軟體設定檔
目前限制
- NDB 支援將容錯移轉叢集執行個體(FCI)資料庫複製到現有的獨立資料庫伺服器虛擬機,但目前不支援使用「建立資料庫伺服器虛擬機」選項進行複製。同時,也不支援將資料庫複製到現有的 FCI 叢集內。
- NDB 不支援從 FCI 虛擬機建立軟體設定檔。
- NDB 不支援跨多個 Nutanix 叢集的可用性群組(AG)資料庫複製。
- NDB 不支援從崩潰一致性快照進行 AG 資料庫複製。
- 如果在資料庫伺服器虛擬機上安裝了多個執行個體,NDB 僅能管理其中一個(預設或命名)執行個體。
- NDB 不支援啟用或停用 SQL Server 資料庫的 TDE 加密。
- NDB 不支援使用加密備份資料進行資料庫部署。
- 若要在 NDB 執行 AG 還原作業,必須先停用 SQL Server 的automatic seeding功能。關於如何停用自動播種,請參閱 Microsoft SQL Server 文件中的「使用自動播種初始化 Always On 可用性群組」主題。
- 當來源資料庫或資料庫群組配置於存放空間時,目標資料庫伺服器虛擬機僅能建立一個複製資料庫或複製資料庫群組。不過,您仍可將同一個資料庫或資料庫群組複製到多個目標資料庫伺服器虛擬機。
- NDB 僅支援使用者資料庫的管理,不支援管理 TempDB、master、model、msdb 等系統資料庫。
- NDB 僅支援 SQL Server 資料庫服務的部署。不處理 SQL Server 元件服務(如 Reporting Services、Integration Services 或 Analytic Services)及其附帶資料庫的安裝、支援、註冊與管理(備份、還原、複製及刷新複製)。
- 當資料庫磁碟受一個保護網域保護,而虛擬機受另一個保護網域保護時,NDB 不支援複製或還原作業。
- NDB 不支援在 NDB 管理的虛擬機上使用第三方日誌備份解決方案,否則會導致 SQL Server 的日誌序號(LSN)不一致問題。
- 如果同一組資料庫伺服器虛擬機同時管理基於 Windows Server 容錯移轉叢集(WSFC)的資料庫與獨立資料庫,且需同時註冊兩種資料庫,請先註冊叢集資料庫,再註冊獨立資料庫。此流程可確保 WSFC 內所有資料庫伺服器虛擬機都已註冊至 NDB。
- NDB 不支援資料庫資料磁碟與日誌磁碟採用不同磁碟配置的資料庫部署。例如,NDB 不支援資料磁碟為基本磁碟而日誌磁碟為動態磁碟或存放空間的配置。
- 當涉及多個硬體供應商時,Windows Server 不支援複製、還原和備份作業。
- NDB 不支援 AG 中 SQL 執行個體名稱不一致。所有 AG 中的 SQL 執行個體名稱必須相同。
- 當資料庫啟用日誌傳送時,NDB 不支援該資料庫的快照與 CDM 作業。
- 若您使用第三方 DNS 服務管理 DNS 項目,請在 NDB 部署作業前預先建立 DNS 項目。因為當您使用第三方 DNS 服務時,AD 不會自動新增 DNS 項目。
- 無法從同一 iSCSI 目標伺服器(DSIP)外部新增超過 255 顆卷組磁碟。此限制會影響使用卷組磁碟的資料庫部署與複製作業。
- NDB 僅允許每個 SQL Server 資料庫伺服器虛擬機的資料庫群組最多 64 顆 vDisk。
- NDB 僅支援 SQL Server 的次要版本升級。若需升級至主要版本,請建立新版本 SQL Server 的軟體設定檔並進行資料庫遷移。
- 從 NDB 部署資料庫伺服器虛擬機時,若出現以下錯誤訊息則表示部署失敗: Failed to get IP,詳細資訊請參閱 KB 14702。
- 當來源資料庫在同一虛擬機的不同磁碟機上有多個同名執行個體時,複製作業會失敗。
- NDB 不支援透過維護時段自動修補 FCI 配置的資料庫,因為不支援 FCI 虛擬機的修補功能。不過,這項功能支援獨立與 Always On 可用性群組的資料庫伺服器虛擬機。
ESXi 與 AHV 虛擬機所支援的最大資料庫數量
本主題說明您可在 ESXi 或 AHV 資料庫伺服器虛擬機上配置的 SQL Server 資料庫最大數量。若要計算單一虛擬機可配置的資料庫數量,請使用以下公式:
(Hypervisor支援的總磁碟數 - 已掛載於虛擬機的磁碟數)÷ 每個資料庫所需配置的磁碟數。
注意:此公式僅適用於配置於標準磁碟上的資料庫。在 AHV 虛擬機上,最多可掛載 256 顆磁碟。在 ESXi 虛擬機上,根據 NDB 目前的限制,最多可掛載 60 顆磁碟。若資料庫大小小於 2TB,則每個資料庫需要五顆磁碟(四顆資料庫磁碟及一顆日誌磁碟)。ESXi 與 AHV 虛擬機預設已掛載的磁碟數均為 10 顆。例如,若要在 ESXi 虛擬機上配置小於 2TB 的 SQL Server 資料庫,最大支援數量為:(60-10)÷ 5 = 10 個資料庫若要在 AHV 虛擬機上配置小於 2TB 的 SQL Server 資料庫,最大支援數量為:(256-10)÷ 5 = 49 個資料庫
Nutanix KB-18564 SQL Server Database Provisioning Best Practices
SQL data allocation
- Data disks count:
- 4 disks if database size ≤ 2TB
- 6 disks if 2TB < database size ≤ 4TB
- 8 disks if 4TB < database size ≤ 8TB
- 12 disks if database size > 8TB
NDB SQL Golden VM配置
建立Windows 2022 VM(CPU/記憶體)、光碟機、硬碟C:100GB D:50GB、網路、UEFI、時區Asia/Taipei(本地時區)
虛擬機創建完開機
安裝過程可以參考
安裝配置Windows Server 2022
配置網路
配置硬碟
開啟CMD
diskpart
list disk
select disk 0
list partition
select partition 4
delete partition override
在硬碟管理頁面延伸C槽
在硬碟管理頁面配置D槽
完成後如下
啟用遠端桌面
調整時區
啟用WinRM遠端管理
winrm quickconfig
更改PowerShell 執行政策 參數 RemoteSigned
或 Unrestricted
Set-ExecutionPolicy RemoteSigned
or
Set-ExecutionPolicy Unrestricted
防火牆調整
請參考以下資訊
Ports and Protocols -> NDB SQL Server
這邊先關閉防火牆
關閉防毒軟體
將作業系統更新到最新
作業系統電源開啟高效能
調整作業系統名稱後重開機
安裝配置SQL Server 2022
掛載SQL Server 2022 ISO 並點擊開始安裝
點擊New SQL Server stand-alone installation or add features to an existing installation
版本選擇,依需求選擇
- 評估版(Evaluation):評估版可使用 180 天。
- 開發人員版(Developer):開發人員版僅供開發、測試或教學用途,不能用於生產環境。
- Express 版:此版本可用於生產環境,但有多項功能限制。
- 我有含軟體保證(Software Assurance)或 SQL 訂閱的 SQL Server 授權。如果您有訂閱或軟體保證,您的付款金額會減少。軟體保證還包括升級、遷移及技術支援等多項福利。
- 我只有 SQL Server 授權。此選項表示您僅輸入授權金鑰,並未包含軟體保證或 SQL Server 訂閱。
接受軟體授權合約
微軟更新
可以檢查是否有可用的更新。您可以啟用此選項,Microsoft Update 會自動檢查更新。請按「下一步」繼續。
在 Microsoft SQL Server 中,更新是透過 CU(累積更新,Cumulative Updates)進行。CU 包含用於提升 SQL Server 功能與安全性的修補程式和修正。請務必保持您的 CU 為最新版本。
這邊先不勾選更新
您可以在這裡查看 SQL Server 2022 的最新累積更新(CU)。
安裝規則
請注意,不建議將此機器安裝在網域控制器上,且建議使用的 .NET Framework 版本為 4.7.2 或更高。
防火牆告警,如果防火牆已啟用,您需要確認所需的連接埠是否已開啟。如果這些連接埠被關閉,您的服務可能無法正常運作。
Azure Extension for SQL Server
您可以啟用 SQL Server 的 Azure 擴充功能。這項新功能允許您註冊 SQL Server,並透過隨用隨付計費方式,結合 Azure AD 及支援 Azure Arc 的 SQL Server。若要使用此功能,您需要擁有 Azure 帳戶。若選擇稍後安裝,您可以透過 Azure 入口網站或 Azure API 進行設定。
功能選擇
- 資料庫引擎服務:SQL Server 的主要元件。
- SQL Server 複寫:將資料複製到不同的資料庫或 SQL Server。如需更多資訊,請參閱這篇複寫文章。
- 機器學習服務與語言擴充:在您的 SQL Server 資料庫中執行 R 和 Python
- 全文與語意搜尋:搜尋資料庫中的大量文字。這是一項強大的搜尋服務,可用於搜尋文字資料並提升效能。
- 資料品質服務:修正、豐富、標準化並檢查您的資料。
- PolyBase 查詢服務:將大數據 Hadoop 解決方案與 SQL Server 整合。
- 分析服務:SQL Server OLAP 解決方案的服務。
- 資料品質用戶端:管理與處理資料品質。
- 整合服務:透過自訂工作流程匯入與匯出資料。您可以使用 Scale Out Master 或 Scale Out Worker。這些設定與套件執行工作流程有關,並可最佳化執行效能。
- SQL 用戶端連線 SDK:連接 SQL Server 的額外工具。
- 主資料服務:集中管理跨資料庫的相似資料。
- SQL Server Azure 擴充功能:可用於 Azure 的額外擴充功能。
我們僅會安裝資料庫引擎,並將安裝的位置指定到D:\
執行個體組態
選用預設的執行個體MSSQLSERVER
伺服器組態
伺服器設定允許為 SQL Server 所使用的不同服務建立或新增服務帳戶。您可以使用預設帳戶,或建立具有自訂安全性與密碼的新帳戶來執行這些服務。
建議將「授予 SQL Server 資料庫引擎服務執行磁碟區維護工作」的權限賦予 SQL Server。這項權限能提升資料庫操作的效能,例如建立資料庫、還原作業,或加快檔案成長的速度。
資料庫引擎配置
選擇 SQL Server 的驗證模式來連接此執行個體,可以選擇混合模式或 Windows 驗證。您也可以新增應擁有完整 SQL Server 存取權限的帳戶。點選「新增目前使用者」會將安裝時所使用的帳戶新增為管理員。
準備安裝
完成後關閉
其他配置
安裝SqlServer Powershell模塊
SqlServer:SqlServer模塊包括新的cmdlets,以支持最新的SQL功能。該模塊還包含cmdlets的更新版本。
以下為線上安裝
Install-Module -Name SqlServer -AllowClobber
Get-Module SqlServer -ListAvailable
PowerShell 資源庫中的 SqlServer 模組版本支援版本控制,而且需要 PowerShell 5.1 版或更新版本。
在 SqlServer 和 SQLPS 模組的內容中,特定命令名稱可能同時存在於這兩個模組中。當一個模組已安裝,另一個模組正在安裝或更新時,這可能會造成衝突。 -AllowClobber 參數可用來防止安裝或更新模組時發生此衝突。 此外,匯入一個模組時,請先移除另一個模組,或使用 -DisableNameChecking 參數來避免發生錯誤。 這些措施可確保模組可以共存,而不會造成任何問題。
SQLPS:SQLPS是 SQL代理 使用PowerShell子系統在代理作業步驟中運行代理作業。
舊版:啟用SQLPS模組
Import-Module sqlps
Get-Command -Module SQLPS | select Name | Format-Wide
配置 Powershell LanguageMode
為 FullLanguage
$ExecutionContext.SessionState.LanguageMode = "FullLanguage"
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" -Name "__PSLockdownPolicy" -Value "8" -Type String
$ExecutionContext.SessionState.LanguageMode
安裝SSMS(SQL Server Management Studio)
依需求安裝,請參考以下連結
Install SQL Server Management Studio
註冊Database Server VMs
- 資料庫伺服器虛擬機必須能透過 TCP 連接埠 9440 連線到 Prism Element。
- NDB 伺服器必須能與資料庫伺服器虛擬機連線。
- NDB 支援註冊屬於現有 Nutanix 保護網域(PD)的虛擬機上的資料庫:所有與該虛擬機相關聯或掛載的實體都必須受到保護。 例如,如果資料庫伺服器虛擬機有掛載卷組(VG),則現有的 PD 必須同時保護 VG 和虛擬機,而非僅保護 VG。
- 在開始註冊資料庫之前,必須先滿足所需的軟體與設定相依性。
點擊左上選單 → DB Server VMs → 註冊 SQL Server → Single Node Server VM
依指定的VM填寫帳密需求,Update in Nutanix Cluster是指把描述資料更新到叢集的虛擬機描述中
在Operations檢視註冊是否完成
創建軟體版本
點擊左上方選單 → Profiles → Software → + Create → SQL Server
依軟體版本填寫,在選擇叢集以及來源的虛擬機,勾選提供SQL Server安裝檔,之後在部署時才可以客製化Instance的名稱。
在Installer File Location給其共享檔案系統的路徑以及存取的帳密
在Note處做備注
點擊右上方的Operations看部署的狀態,完成後如下圖
NDB操作與管理 - 部署與調整
部署一台單機的SQL Server VM
- 建立軟體設定檔。
- 建立網路設定檔。
- 建立運算設定檔。如果您不想建立自訂運算設定檔,也可以使用 NDB 提供的預設設定檔。
- (若要在基於 Linux 的作業系統上佈建資料庫)產生 SSH 金鑰對,並提供公鑰。
- 根據您要佈建的資料庫類型,可能還需要其他先決條件。例如,若要佈建 Oracle 或 SQL Server,您還必須將來源資料庫註冊到 NDB;但如果您要佈建 PostgreSQL 資料庫,則不需要這個步驟。
在本範例中,我們將從之前自己做的模板部署一台單機的SQL Server VM
點擊Database Server VMs → List → + Provision → SQL Server → Single Node Server VM
Source:選擇Software Profile使用在前一章節製作的MSSQL2022Ent_Win2022DC設定檔
在Database Server VM,依照需求配置相對應的虛擬機名稱、計算配置檔、網路配置檔、Administrator管理員密碼、是否要加入網域、SQL Server 執行個體的相關參數、資料庫參數配置檔以及SQL Server認證模式帳密
額外配置,可以上Patch
在Operations可以看部署的過程
部署完成後在Database Server VMs可以檢視
部署單台資料庫
部署一個小的資料庫在剛剛建立的資料庫虛擬機上
點擊Databases → Sources → +Provision → SQL Server → Database
資料庫虛擬機選用上一章已註冊的資料庫虛擬機
資料庫配置,這邊選用1個資料庫1個時光機
一組資料庫被一個時光機保護:亦為此資料庫群組內的資料庫會同時被同一時光機SLA保護。
其他依照需求填寫
時光機
預設名稱:資料庫名稱_TM,這邊SLA先選NONE
以下為預設的SLA
額外配置
目前暫無
在Operations可以看部署的過程
完成後如下
登入SSMS檢視資料庫
檢視資料庫存放位置
更新已註冊資料庫虛擬機IP
- 啟動 NDB CLI。輸入era
era
- 取得資料庫伺服器虛擬機的詳細資訊。
dbserver list
- 將新 IP 位址與資料庫伺服器虛擬機關聯。
dbserver update id=dbserver_id associate_new_ip ip_address=new_ip_addres
- 請將變數替換為以下內容:
-
- 將 dbserver_id 替換為資料庫伺服器虛擬機的 ID。
- 將 new_ip_address 替換為資料庫伺服器虛擬機的新 IP 位址。
- 解除舊 IP 位址的關聯。
dbserver update id=dbserver_id disassociate_ip ip_address=old_ip_address
- 將 dbserver_id 替換為資料庫伺服器虛擬機的 ID。
- 將 old_ip_address 替換為資料庫伺服器虛擬機的舊 IP 位址。
更新NDB資料庫名稱
此更新只會更新NDB顯示名稱部會更新資料庫名稱
資料庫擴展
可以擴充資料和日誌的硬碟,點擊Scale依需求調整
完成後如下
部署AAG叢集SQL Server VMs
您可以部署以下的叢集架構
前置需求
Windows網域設定檔
請參考
配置Windows 網域設定檔Windows Domain Profile
網路配置
- 每個資料庫伺服器節點需保留一個 IP 位址。
- 每個子網需保留一個接聽程式(Listener)IP 位址。
- 每個子網需保留一個叢集 IP 位址。
最少需要Node + 2 個IP。
Windows容錯移轉叢集部署
Databases Server VM -> List -> + Provision -> SQL Server -> Windows Server Failover Cluster
Source:
Provision Windows Server Failover Cluster from 從軟體配置檔
Windows Server Failover Cluster:依需求配置
Windows Domain Profile:選用前面配置的設定檔
Quoum這邊選用:Disk Witness
Database Server VM Name Prefix:為虛擬機前綴名
Database Server VMs:配置虛擬機名稱
Additional Configurations:是情況配置
點擊右上方Operations 可以看部署過程
部署SQL Server Availability Database
Database Server VM:選用之前建立好已註冊的叢集
AG:建立一個新的AG,給其名稱,配置備份方式以及同步方式
Database:一個時光機對應一個資料庫群組,意思是時光機備份的時候備份一群資料庫。
Database Name in NDB:在NDB上看到的資料庫名稱。
Database Name on VM:在VM上看到的資料庫名稱。
Credentials to access the Backup Share location:可以讀取備份檔的帳號,此帳號也會被用來還原資料庫。
Distribute database data as per Nutanix Best Practices:為資料庫實作Nutanix最佳實務指南分散資料庫到不同的vDisk,以提升資料庫的效能。
Keep database in Restoring state:可以讓資料庫在還原模式下,以便後續的還原
時光機配置依需求調整
Additional Configuration:補丁和維護先略過
在Operations可以觀察部署的動作
部署完成後如下