Sql-Server

在 AlwaysOn 集群環境下,我可以使用 Listeners 訪問文件流共享文件夾嗎?

  • April 26, 2016

擴展 SQL Server 集成服務 ( SSIS ) 控制流的最有效方法之一是使用腳本任務編寫自定義程式碼,以執行您無法使用內置組件執行的任務。但在AlwaysOn的情況下,這並不簡單配置的節點

以下是我目前的環境設置,可以幫助您理解問題。

我的環境

  • 我將節點 1 和節點 2 配置為集群
  • SQL Server 始終開啟並配置了可用性組
  • 在名為 MYSHAREDNAME 的節點 1 和節點 2 上都啟用了 SQL Server 文件流
  • 內部負載平衡偵聽器配置並授權為 MYACTIVENODE

問題陳述 集群中的一個節點(節點 1 或節點 2)可以隨時關閉。我們不確定哪一個會成為 PRIMARY。我正在嘗試按如下方式訪問共享文件夾

\NODE1\MYSHAREDNAME - 如果 NODE 1 是主節點,則有效 \NODE2\MYSHAREDNAME - 如果 NODE 2 是主節點,則有效

但是很難在路徑上方進行硬編碼,因為任何節點都可能出現故障。所以我使用了 LISTENER 名稱,以便它可以自動檢測 PRIMARY 節點來完成所需的工作,如下所示

所以我使用了LISTENER名稱,以便它可以自動檢測 PRIMARY 節點來完成所需的工作,如下所示

 \\MYLISTENERNAME\MYSHAREDNAME  

但我無法訪問它

我該如何解決?啟用埠 1433、5022、59999。

摘自https://msdn.microsoft.com/en-in/library/dn385720.aspx

只要您不向主數據庫添加新的數據庫文件,就支持 AlwaysOn 可用性組。如果數據庫操作需要在主數據庫中創建新文件,請首先在輔助節點中禁用 AlwaysOn 可用性組。然後,對主數據庫進行數據庫操作,並在主節點上備份數據庫。接下來,將數據庫還原到輔助節點,並在輔助節點中啟用 AlwaysOn 可用性組。請注意,在 Windows Azure 功能中使用 SQL Server 數據文件時不支持 AlwaysOn 故障轉移群集實例

但是我不明白上面的語句是什麼意思?

經過長時間的鬥爭和網路跟踪擷取,我有以下數據點

  • 您可以使用本地機器名稱訪問文件流共享文件夾。
  • 您可以使用作為集群一部分的本地電腦的偵聽器名稱訪問****文件流共享文件夾。
  • 您不能從任何不屬於集群的機器訪問共享文件夾。
  • 您可以使用偵聽器名稱訪問 SQL 伺服器,但不能從不屬於集群的任何設備訪問文件資源管理器中的文件夾

更新

我們可以從屬於其他雲服務的其他 VM 訪問文件共享

為此,我們需要在埠 445 (SMB 2.0)上建立端點

電源外殼腳本

首先獲取內部監聽器名稱

   Get-AzureInternalLoadBalancer -servicename $servicename

然後,在下面的腳本中使用內部偵聽器名稱

      $ServiceName = "ABCCS" # the name of the cloud service that contains the availability group nodes
      $AGNodes = "VM01","VM02" 
      $ILBName = "ListenerLB" //get using Get-AzureInternalLoadBalancer
      ForEach ($node in $AGNodes)
      {
        Get-AzureVM -ServiceName $ServiceName -Name $node | Add-AzureEndpoint -Name "ListenerEndpointFSL" -LBSetName "ListenerEndpointLBFSL" -Protocol tcp -LocalPort 445 -PublicPort 445 -ProbePort 59999 -ProbeProtocol tcp -ProbeIntervalInSeconds 10 -InternalLoadBalancerName $ILBName -DirectServerReturn $true | Update-AzureVM
    }  

我不相信您提取的報價與您的問題有關。

您的問題可能是您的偵聽器有多個 IP 地址。在預設配置下,監聽器在 DNS 中會有多條 A 記錄,你的客戶端只會記憶體其中一條。每次記憶體過期時,它都會隨機抓取其中一個 IP 地址,有時它會獲取活動 IP,有時它會獲取離線 IP。

這是偵聽器確認的MultiSubnetFailover參數背後的目的。

引用自:https://dba.stackexchange.com/questions/134398