当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 PowerShell 备份-恢复 SQL Server 中的所有 SharePoint 数据库

作者:精品下载站 日期:2024-12-14 14:19:00 浏览:14 分类:玩电脑

使用 PowerShell 备份-恢复 SQL Server 中的所有 SharePoint 数据库


要求:我们计划将 SharePoint 的 SQL 数据库移动到其他服务器。因此,我们必须将所有 SharePoint 数据库从一个 SQL Server 2012 实例备份并还原到另一个实例。

如何使用 PowerShell 从 SQL Server 备份和还原所有 SharePoint 数据库?

以下是将 SharePoint 从一个 SQL Server 迁移到另一个 SQL Server 的概括步骤:

  1. 获取所有 SharePoint 数据库的列表
  2. 从源 SQL Server 备份所有 SharePoint 数据库
  3. 将备份恢复到目标 SQL Server 实例
  4. 更改 SharePoint Server 中的 SQL 别名以指向新服务器。

步骤 1:获取所有 SharePoint 数据库


#Get All SharePoint Databases and form an Array
Get-SPDatabase | Select -ExpandProperty Name | foreach { $Databases+= $_+"," }

#Export to a txt file
$Databases > databases.txt

此脚本为您提供所有 SharePoint 数据库的列表,包括配置数据库、内容数据库和服务应用程序数据库(以逗号分隔的字符串)。让我们将该字符串提供给我们的备份脚本。

提示:如果要获取所有内容数据库,请使用:Get-SPContentDatabase |选择-展开属性名称

步骤 2:备份所有 SharePoint 数据库:

在备份所有 SharePoint 数据库之前,请确保将网站设置为只读模式(或在 SQL Server 中将数据库设置为只读),以避免出现任何数据不一致问题。

用于从 SQL Server 备份所有 SharePoint 数据库的 PowerShell 脚本:


#Import SQL PowerShell module
Import-Module SQLPS -DisableNameChecking

#Configuration parameters
$SQLInstance="Cre-SQL-001"
$BackupPath="F:\Backup\"

#Array of Database names, Comma separated
$DatabaseColl="StateService_d73ac2ad313a41ba83d457bfb78cb4f3,Secure_Store_Service_DB_c13a71870bad4decb6f7582d9e26f46a,WordAutomationServices_e290fc12c8ee4ce09c38ba7fc8f089c9,Social DB,Bdc_Service_DB_f937be05fe5f48158d4895b6f2bb9674,WebAnalyticsServiceApplication_StagingDB_9efa01f9-ce98-4e4e-9e2d-ecfc9e19fc79,SharePoint_Config_2010,PerformancePoint Service Application_c1a8062656434a24a9c53f05fc8144f7,Search_Service_Application_CrawlStoreDB_76166d368e4a4ef58aabf8df57d7c670,Search_Service_Application_PropertyStoreDB_1fc75775ee894fd2aa0c4d1e7c75f0c7,Application_Registry_Service_DB_8e93a305ea904c81a34a3dd205265fc7,SharePoint_AdminContent_e0021dbb-cc00-4b58-a16d-9c4c481228ff,WSS_Content,WSS_Content_KM,WSS_Content_MySites,Search_Service_Application_DB_bfdf7354e7f84b1281121c7bdca7b43f,Managed Metadata Service_ff52c4f0cd504d938cd1b3dc9ef9ae8b,Profile DB,WSS_Logging,Sync DB,WebAnalyticsServiceApplication_ReportingDB_894b25ce-a2ba-4c7c-885e-08b3924deec8"

#Convert comma separated into an Array
$DatabaseNames = $DatabaseColl -split ","

#Backup Each Database
Foreach($DBName in $DatabaseNames)
{
  write-host "Backing up the database: $($DBName)"
  Backup-SqlDatabase -ServerInstance $SQLInstance -Database $DBName -BackupFile "$($BackupPath)$($DBName).bak"
}

步骤 3:将所有数据库恢复到目标 SQL Server 实例

将所有备份文件从源服务器复制到目标,然后使用以下 PowerShell 脚本批量恢复 SQL Server 数据库。确保目标服务器中存在原始位置(如源数据库服务器中)。

用于批量恢复 SQL Server 数据库的 PowerShell 脚本:


#Import SQL PowerShell module
Import-Module SQLPS -DisableNameChecking

#Configuration parameters
$SQLInstanceName="Cre-SQL-002"
$BackupPath="E:\Backup\"

#Get all Backup files
$BackupFilesColl = Get-ChildItem -Path $BackupPath | where {$_.extension -eq ".bak"}

#Iterate through each backup file
Foreach($BackupFile in $BackupFilesColl)
{
 #Get the full path of the backup file
        $DatabasePath = $BackupPath + '\' + $BackupFile

 #Frame the Database Name
        $DatabaseName = $BackupFile.ToString().Replace(".bak", "")

 #Restore the database
 write-host "Restoring Database: $($DatabaseName)"
 Restore-SqlDatabase -ServerInstance $SQLInstanceName -Database $DatabaseName -BackupFile $DatabasePath
}

[玩转系统] 使用 PowerShell 备份-恢复 SQL Server 中的所有 SharePoint 数据库

步骤 4:更改 SQL Server 别名以指向新的 SQL Server:

最后一步,将 SharePoint 服务器中的 SQL 别名更改为指向新的 SQL 服务器实例。这是我关于配置 SQL Server 别名的帖子:如何为 SharePoint 创建 SQL Server 别名。完成后执行 IISReset!

这些脚本可用于以下场景:

  • 在 SharePoint 迁移期间,您可能会将所有 SharePoint 数据库迁移到新的 SQL Server 实例。
  • 当您必须将 SharePoint 数据库从单个独立 SQL Server 移动到高可用群集或 SQL Server AlwaysOn 群集时。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯