使用 DBA 建立的資料庫進行部署 (SharePoint Server 2010)

 

適用版本: SharePoint Foundation 2010, SharePoint Server 2010

上次修改主題的時間: 2016-11-30

本文說明如何在使用 DBA 所建立之資料庫的伺服器陣列環境中,部署 Microsoft SharePoint Server 2010。在資料庫管理員 (DBA) 與 SharePoint 管理員分開作業的組織中,DBA 會建立及管理所有資料庫。這種情況一般發生於安全性需求及公司原則需要不同的管理員角色之 IT 環境中。伺服器陣列管理員會將 Microsoft SharePoint Server 2010 資料庫需求提供給資料庫管理員,而資料庫管理員接著會建立必要的 Microsoft SharePoint Server 資料庫,並設定伺服器陣列所需的登入。

本文內容:

開始之前

開始此次部署之前,請確定您準備好一切必備的資訊,以便在所有伺服器陣列上成功部署以及設定 SharePoint Server。以下各節提供的資訊可確保成功部署 SharePoint Server。

伺服器陣列的伺服器需求

請確定所有伺服器陣列伺服器及資料庫伺服器皆符合下列文章中所記載的需求。

資料庫需求

在 DBA 建立的資料庫上部署 SharePoint Server 2010,涉及與 DAB 的配合,才能確保您需要的所有 SharePoint Server 資料庫都已建立並設定正確,然後才可以建立並設定伺服器陣列。

下列清單會顯示 DBA 建立伺服器陣列之資料庫所需的部分 (而非全部) 資訊。您組織中的 DBA 可能需要其他資訊:

  • SQL Server 版本資訊及 Service Pack 與累計更新層級。如需詳細資訊,請參閱<硬體及軟體需求 (SharePoint Server 2010)>。

  • 具有相關聯之角色與權限的必要登入帳戶。如需詳細資訊,請參閱<管理帳戶與服務帳戶 (SharePoint Server 2010)>。

  • 需要的資料庫數目及 SharePoint 設定詳細規格。部署 SharePoint Server,即可取得此資訊。

  • SharePoint 資料儲存需求,如資料類型、資料量、資料庫活動類型 (讀取或寫入) 以及每秒的輸入/輸出作業數 (IOPS)。

  • DBA 必須設定介面區設定,以使本機及遠端連線使用 TCP/IP 或具名管道。

  • SharePoint Server 需要的所有資料庫,都使用 Latin1_General_CI_AS_KS_WS 定序。

  • 需要為所有 SharePoint Server 資料庫都指定伺服器陣列安裝程式使用者帳戶,以作為資料庫擁有人 (dbo)。

  • SharePoint 使用者服務等級協定考量。

關於設定 DBA 所建立的資料庫

請參考本文中的程序來部署一個使用 DBA 建立之資料庫的伺服器陣列。這種部署方式包含伺服器陣列需要的所有資料庫。

注意

本文只適用於 SharePoint Server 2010 所支援的 SQL Server 資料庫版本。

針對每個程序,您必須使用 Windows PowerShell 2.0 或 SharePoint Server 命令列工具設定伺服器陣列。

建議您在執行命令列管理工作時使用 Windows PowerShell。Stsadm 命令列工具已過時,但為與舊版產品相容,仍會隨附提供。

注意

Psconfig 位於下列資料夾中:Program Files\Common Files\Microsoft Shared\web server extensions\14\BIN。

若要使用 Windows PowerShell 來設定伺服器陣列:

  1. 請確認您的使用者帳戶可以存取執行 Windows PowerShell 2.0 之伺服器之一,而且使用者帳戶是伺服器陣列管理員,同時也是 SQL Server 類型來源內容資料庫、管理內容資料庫、目的地內容資料庫及設定資料庫的 SharePoint_Shell_Access 角色成員。

  2. 在 [開始] 功能表上,按一下 [所有程式]。

  3. 按一下 [Microsoft SharePoint 2010 產品]。

  4. 按一下 [SharePoint 2010 管理命令介面]。

  5. 在 Windows PowerShell 命令提示字元處輸入適當的命令,然後按 ENTER。

基於說明必要程序之目的,您需要設定的基本伺服器陣列包含下列各項:

  1. 管理中心

  2. 入口網站

  3. 診斷記錄及 Usage and Health Data Collection

  4. 企業版搜尋

以下是必要的資料庫,而且伺服器陣列管理員通常會在伺服器陣列建立時按照以下順序來使用。以下清單中的資料庫,會使用您利用 SharePoint 產品設定精靈設定伺服器陣列時所提供的預設名稱。您也可以使用自己選擇的資料庫名稱。

  • 設定資料庫 (SharePoint_Config)

  • 管理中心內容資料庫 (SharePoint_AdminContent_GUID)

  • 由 SharePoint Server 安裝程式自動建立的網站內容資料庫 (WSS_Content_GUID)

  • 診斷記錄資料庫 (WSS_Logging_GUID)

  • 進行企業搜尋所需之 SharePoint Server Search Service 應用程式的資料庫。如需詳細資訊,請參閱<管理服務應用程式與服務 (SharePoint Foundation 2010)服務應用程式與服務管理 (SharePoint Server 2010)>。

    • 搜尋編目資料庫 (Search_Service_1_CrawlStoreDB_GUID

    • 搜尋管理資料庫 (Search_Service_1_DB_GUID)

    • 搜尋屬性資料庫 (Search_Service_1_PropertyStoreDB_GUID

建立及設定管理中心的資料庫

使用本節的程序可建立必要的資料庫,並提供資料庫使用者安全性群組與資料庫角色的帳戶成員資格。

此程序需要 DBA 及安裝程式使用者帳戶才可執行。標籤 [DBA] 或 [安裝程式] 分別用於每個步驟,表示該由哪一個角色執行動作。

下列程序只需對伺服器陣列在您要執行管理中心網站的伺服器上執行一次。伺服器陣列在管理中心會有一個設定資料庫與一個內容資料庫。

建立及設定設定資料庫、管理中心內容資料庫及管理中心 Web 應用程式

  1. [DBA] 使用 LATIN1_General_CI_AS_KS_WS 定序順序建立設定資料庫與管理中心內容資料庫,並將資料庫擁有人 (dbo) 設為安裝程式使用者帳戶。

  2. [安裝程式] 在伺服器陣列中的每部伺服器電腦上執行安裝程式。您必須使用 [完整] 安裝選項,至少在其中一部電腦上執行安裝程式。<以 SQL Server 部署單一伺服器 (SharePoint Server 2010)>中說明此選項的步驟。

  3. [安裝程式] 安裝程式完成之後,請勿執行 SharePoint 產品設定精靈。

    請從 SharePoint 2010 管理命令介面中,使用 New-SPConfigurationDatabase 命令建立新的設定資料庫,例如:

    New-SPConfigurationDatabase -DatabaseName "SharePointConfigDB1" -DatabaseServer "SQL-01" -Passphrase (ConvertTo-SecureString "MyPassword" -AsPlainText -force) -FarmCredentials (Get-Credential)
    

    如需詳細資訊,請參閱<New-SPConfigurationDatabase>。

  4. [安裝程式] 完成命令之後,請執行 SharePoint 產品設定精靈,並完成伺服器設定的其餘部分。如此會建立管理中心 Web 應用程式,並執行其他安裝及設定工作。

  5. [DBA] 完成 SharePoint 產品設定精靈之後,請同時為設定資料庫與管理中心內容資料庫執行下列動作:

    • 將 SharePoint Server 搜尋帳戶、預設的內容存取帳戶及服務帳戶新增至 Users 群組。

    • 將 SharePoint Server Search Service 帳戶、預設的內容存取帳戶及服務帳戶新增至 WSS_Content_Application_Pools 角色。

  6. [安裝程式] 若要確認已建立且正確設定資料庫,請確認可否存取管理中心網站的首頁。但是,此時請勿使用管理中心進行任何設定。若無法出現管理中心頁面,請確認此程序中所使用的帳戶,並確定帳戶指定正確。

完成本文中的程序並建立伺服器陣列之後,會設定其餘的伺服器陣列之伺服器。選取 [是,我要連線到現有的伺服器陣列] 選項,便可在這些伺服器上執行 SharePoint 產品設定精靈,而不需使用此程序中所用的命令。

下列程序僅需對伺服器陣列執行一次。伺服器陣列只有一個 SharePoint Foundation 搜尋資料庫。

建立及設定 SharePoint Foundation 搜尋資料庫以及啟動 Search Service

  1. [DBA] 使用 LATIN1_General_CI_AS_KS_WS 定序順序建立 SharePoint Foundation 搜尋資料庫,並將資料庫擁有人 (dbo) 設為安裝程式使用者帳戶。

  2. [安裝程式] 開啟命令列,然後使用 Get-SPSearchServiceSet-SPSearchServiceGet-SPSearchServiceInstanceSet-SPSearchServiceInstance Cmdlet,設定資料庫並啟動 Search Service。請參考以下範例。

    $searchService = Get-SPSearchService 
    Set-SPSearchService -MaxBackupDuration 120 
    Get-SPSearchServiceInstance -Local
    Get-SPSearchServiceInstance -Local | Set-SPSearchServiceInstance -ProxyType proxy
    

    如需詳細資訊,請參閱下列主題:

建立及設定其他資料庫

在您完成管理中心所需之資料庫的設定之後,請建立及設定 Web 內容所需的資料庫以及任何您想要使用的服務應用程式,以完成伺服器陣列之部署。

下列程序必須對伺服器陣列中的每個入口網站執行一次。

此處說明的程序用於下列 SharePoint Server 2010 作業中:

  • 在主控搜尋查詢元件或搜尋編目元件的伺服器上,啟動 Search Service。如需詳細資訊,請參閱<管理搜尋拓撲>。

  • 建立及設定入口網站 Web 應用程式內容資料庫。

  • 建立及設定 Search Service 應用程式資料庫。

下列程序必須對伺服器陣列中執行搜尋查詢或資料庫編目的每部伺服器執行一次。

在每部將要執行搜尋查詢或編目的伺服器上,啟動 SharePoint Server Search Service

  1. [安裝程式] 從 [SharePoint 2010 管理命令介面] 中,使用 Get-SPEnterpriseSearchService、Set- SPEnterpriseSearchServiceGet-SPEnterpriseSearchServiceInstance Cmdlet。請參考以下範例。

    $searchService = Get-SPEnterpriseSearchService
    $password = Read-Host -AsSecureString
    

******** Set-SPEnterpriseSearchService -IgnoreSSLWarnings $true -ServiceAccount contoso\adminAccount -ServicePassword $password $ssInstance = Get-SPEnterpriseSearchServiceInstance -Local Get-SPEnterpriseSearchServiceInstance -Local | Start-SPEnterpriseSearchServiceInstance

如需詳細資訊,請參閱下列主題:

  - [Get-SPEnterpriseSearchService](ff608136\(v=office.14\).md)

  - [Set-SPEnterpriseSearchService](ff608126\(v=office.14\).md)

  - [Get-SPEnterpriseSearchServiceInstance](ff607740\(v=office.14\).md)

必須對伺服器陣列中的每個服務應用程式執行一次下列程序。本文所用之案例中,Search Service 應用程式會用於伺服器陣列。Search Service 應用程式需要下列資料庫:

  1. 搜尋管理資料庫 (Search_Service_DB)

  2. 搜尋編目資料庫 (Search_Service_CrawlStoreDB)

  3. 搜尋屬性資料庫 (Search_Service_PropertyStoreDB)

下列程序中的所有命令列指示都使用 Windows PowerShell。

建立及設定資料庫以進行搜尋

  1. [DBA] 將 SharePoint 2010 管理命令介面管理帳戶新增至 dbcreatorsecurityadmin 角色,作為暫時 SQL Server 登入。

  2. [安裝程式] 在暫時伺服器上建立 Search Service 應用程式,如下所示:

    1. 為搜尋管理及搜尋查詢 Web 服務建立必要的應用程式集區,如下所示:

      # Create managed account for DOMAIN\QryPool
      $SearchCR = Get-Credential;$managedAccount = New-SPManagedAccount -Credential $SearchCR
      # Create managed account for DOMAIN\AdminPool
      $SearchCR = Get-Credential;$managedAccount = New-SPManagedAccount -Credential $SearchCR
      
    2. 使用暫時 Microsoft SQL Server 資料庫建立新的 Search Service 應用程式,如下所示:

      Write-Host -ForegroundColor white Creating the Search service application
      $searchAppName="SearchAppTest"
      $appQueryPoolName=$searchAppName+"_AppQueryPool"
      $appAdminPoolName=$searchAppName+"_AppAdminPool"
      $appQueryPool = New-SPServiceApplicationPool -name $appQueryPoolName -account DOMAIN\QryPool
      $appAdminPool = New-SPServiceApplicationPool -name $appAdminPoolName -account DOMAIN\AdminPool
      
      $searchApp = New-SPEnterpriseSearchServiceApplication -Name $searchAppName -ApplicationPool $appQueryPool -AdminApplicationPool $appAdminPool -DatabaseServer <Temp_SQL_Server>
      
      Write-Host -ForegroundColor white Initializing the administration component
      $searchInstance = Get-SPEnterpriseSearchServiceInstance -Local
      $searchApp | get-SPEnterpriseSearchAdministrationComponent | set-SPEnterpriseSearchAdministrationComponent -SearchServiceInstance $searchInstance
      $admin = ($searchApp | get-SPEnterpriseSearchAdministrationComponent)
      Write-Host -ForegroundColor white Waiting for the admin component to be initialized
      do {write-host -NoNewline .;Start-Sleep 10;} while (-not $admin.Initialized)
      
      Write-Host -ForegroundColor white Creating a new crawl topology
      $InitialCrawlTopology = $searchApp | Get-SPEnterpriseSearchCrawlTopology -Active
      $InitialCrawlTopology
      $searchInstance0 = Get-SPEnterpriseSearchServiceInstance -Local
      $CrawlTopology = $searchApp | New-SPEnterpriseSearchCrawlTopology
      $CrawlDatabase0 = ([array]($searchApp | Get-SPEnterpriseSearchCrawlDatabase))[0]
      $CrawlComponent0 = New-SPEnterpriseSearchCrawlComponent -CrawlTopology $CrawlTopology -CrawlDatabase $CrawlDatabase0 -SearchServiceInstance $searchInstance0 -IndexLocation $searchInstance0.DefaultIndexLocation
      $CrawlTopology | Set-SPEnterpriseSearchCrawlTopology -Active
      Write-Host -ForegroundColor white Waiting for the old crawl topology to become inactive
      do {write-host -NoNewline .;Start-Sleep 10;} while ($InitialCrawlTopology.State -ne "Inactive")
      $InitialCrawlTopology | Remove-SPEnterpriseSearchCrawlTopology
      
      Write-Host -ForegroundColor white Creating a new query topology
      $InitialQueryTopology = $searchApp | Get-SPEnterpriseSearchQueryTopology -Active
      $InitialQueryTopology
      $searchInstance0 = Get-SPEnterpriseSearchServiceInstance -Local
      # Create a new query topology
      $QueryTopology = $searchApp | New-SPEnterpriseSearchQueryTopology -Partitions 1 
      $IndexPartition0= (Get-SPEnterpriseSearchIndexPartition -QueryTopology $QueryTopology)
      $QueryComponent0 = New-SPEnterpriseSearchQuerycomponent -QueryTopology $QueryTopology -IndexPartition $IndexPartition0 -SearchServiceInstance $searchInstance0 -IndexLocation $searchInstance0.DefaultIndexLocation
      # Get the default property store
      $PropertyDatabase0 = ([array]($searchApp | Get-SPEnterpriseSearchPropertyDatabase))[0] 
      $IndexPartition0 | Set-SPEnterpriseSearchIndexPartition -PropertyDatabase $PropertyDatabase0
      $QueryTopology | Set-SPEnterpriseSearchQueryTopology -Active
      Write-Host -ForegroundColor white Waiting for the old query topology to become inactive
      do {write-host -NoNewline .;Start-Sleep 10;} while ($InitialQueryTopology.State -ne "Inactive")
      # Delete the old query topology
      $InitialQueryTopology | Remove-SPEnterpriseSearchQueryTopology
      
      Write-Host -ForegroundColor white Creating the Search application proxy
      $searchAppProxy = new-spenterprisesearchserviceapplicationproxy -name ($searchApp.Name+"_proxy") -Uri $searchApp.Uri
      Write-Host -ForegroundColor white Search provisioning finished
      
    3. 暫停 Search Service 應用程式

      $searchApp.Pause()
      
  3. [DBA] 備份所有搜尋資料庫:SearchAppTest、SearchAppTest_CrawlStore 及 SearchAppTest_PropertyStore。

  4. [DBA] 將所有搜尋資料庫還原至實際執行 SQL Server 資料庫伺服器。

  5. [DBA] 使用預設設定,將下列帳戶新增至實際執行 SQL Server 資料庫伺服器上的 SQL Server [登入] (持續核取 [公用] 角色以作為伺服器角色):

    • Search Service 帳戶

    • 搜尋查詢及網站設定 Web 服務應用程式集區帳戶

    • 搜尋管理 Web 服務應用程式集區帳戶 (若與 Search Service 應用程式集區不同)

  6. [DBA] 若尚未使用 SQL Server 資料庫佈建伺服器陣列資料庫,請將下列帳戶新增至 SQL Server [登入]

    • SQL Server 型來源內容資料庫、管理內容資料庫、目的地內容資料庫及設定資料庫的 SharePoint_Shell_Access 角色

    • 伺服器陣列管理員帳戶

  7. [安裝程式] 切換至新的實際執行資料庫環境。

    1. 將搜尋管理資料庫切換至新的搜尋管理實際執行資料庫。

      $searchapp | Set-SPEnterpriseSearchServiceApplication -DatabaseServer <Production_SQL_server>
      
    2. 等待 Search Service 執行個體完成重新佈建。

      do {write-host -NoNewline .;Sleep 10; $searchInstance = Get-SPEnterpriseSearchServiceInstance -Local} while ($searchInstance.Status -ne "Online")
      
    3. 將搜尋編目資料庫切換至新的搜尋編目實際執行資料庫。

      $CrawlDatabase0 | Set-SPEnterpriseSearchCrawlDatabase -DatabaseServer <Production_SQL_server>
      
    4. 等待 Search Service 執行個體完成重新佈建。

      do {write-host -NoNewline .;Sleep 10; $searchInstance = Get-SPEnterpriseSearchServiceInstance -Local} while ($searchInstance.Status -ne "Online")
      
    5. 將搜尋屬性資料庫切換至新的搜尋屬性實際執行資料庫。

      $PropertyDatabase0 | Set-SPEnterpriseSearchPropertyDatabase -DatabaseServer <Production_SQL_server>
      
    6. 等待 Search Service 執行個體完成重新佈建。

      do {write-host -NoNewline .;Sleep 10; $searchInstance = Get-SPEnterpriseSearchServiceInstance -Local} while ($searchInstance.Status -ne "Online")
      
    7. 重新啟動 Search Service 執行個體。

      get-SPEnterpriseSearchServiceInstance | start-SPEnterpriseSearchServiceInstance
      
    8. 繼續 Search Service 應用程式。

      $searchapp.Resume()
      

使用下列程序,建立並設定入口網站 Web 應用程式及其內容資料庫。

建立及設定入口網站 Web 應用程式

  1. [DBA] 使用 LATIN1_General_CI_AS_KS_WS 定序順序建立入口網站 Web 應用程式內容資料庫,並將資料庫擁有人 (dbo) 設為安裝程式使用者帳戶。

  2. [DBA] 使用 SQL ServerManagement Studio,將服務應用程式服務帳戶新增至 Users 群組,然後新增至入口網站 Web 應用程式內容資料庫的 db_owner 角色。

  3. [安裝程式] 從 SharePoint 2010 管理命令介面,使用 New-SPWebApplicationGet-SPWebApplication Cmdlet 來設定入口網站 Web 應用程式內容資料庫。請參考以下範例。

    New-SPWebApplication -Name "Contoso Internet Site" -Port 80 -HostHeader "http://sharepoint.contoso.com" -URL "https://www.contoso.com" -ApplicationPool "ContosoAppPool" -ApplicationPoolAccount (Get-SPManagedAccount "DOMAIN\jdoe")
    Get-SPWebApplication http://somesite | Set-SPWebApplication -Zone "Extranet" -HostHeader "https://www.contoso.com" - AllowAnonymousAccess
    

    如需詳細資訊,請參閱<New-SPWebApplication>及<Get-SPWebApplication>。

    重要

    此命令必須在執行 Web 應用程式的電腦上執行。主機名稱與連接埠組合不得描述已存在的 Web 應用程式,否則會導致錯誤,而無法建立該 Web 應用程式。

  4. [安裝程式] 從命令列提示字元處,執行下列命令,重新啟動 IIS:iisreset /noforce