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

[玩转系统] 如何使用 PowerShell 备份/恢复 SharePoint 中的网站集?

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

如何使用 PowerShell 备份/恢复 SharePoint 中的网站集?


要求:使用 PowerShell 在 SharePoint 2016 中备份和还原网站集。

如何使用 PowerShell 备份 SharePoint 2016 中的网站集?

尽管您可以从 SharePoint 管理中心备份网站集(如如何使用管理中心备份 SharePoint 网站集?),但管理中心方式有点笨拙,并且需要一段时间才能执行备份。而 PowerShell 提供了一种快速简便的方法来备份网站集。我们可以使用脚本化操作,避免手动重复相同的任务,例如执行备份。使用 SharePoint 2016 Management Shell 运行这些 cmdlet。

SharePoint 网站集备份可以从 SharePoint WFE 启动,并且您需要是服务器上本地管理员的成员并且应该是场管理员。

使用 PowerShell 备份 SharePoint 网站集

以下是在 SharePoint 2016 中备份网站集的 PowerShell 语法。它需要两个强制参数来标识要备份的网站集以及保存备份文件的路径:

Backup-SPSite -Identity -Path [-Force] [-NoSiteLock] [-UseSqlSnapshot]

  • 强制 - 覆盖同名的备份文件。
  • NoSiteLock - 防止网站在备份时进入只读模式。 但是,如果有人在创建备份时更新站点,则可能会导致数据损坏。
  • UseSQLSnapshot - 在备份开始之前将拍摄数据库快照,并且备份将在快照上完成。优点是可以在备份过程运行时对站点进行更改,而不必担心损坏。备份完成后,快照将自动删除。 使用此方法时,不需要指定-NoSiteLock参数。

SharePoint 2013 中的备份网站集 - PowerShell 示例:

例如:要将“https://intranet.crescent.com/sites/IT”处的“IT”网站集备份到“C:\Backups\”位置,您可以使用以下 PowerShell 命令:


 Backup-SPSite https://intranet.crescent.com/sites/IT -path d:\backup\it.bak

[玩转系统] 如何使用 PowerShell 备份/恢复 SharePoint 中的网站集?

Backup-SPSite cmdlet 备份网站集中的所有内容,包括文档、页面、警报、工作流等,并生成扩展名为 .bak 的网站集备份。

[玩转系统] 如何使用 PowerShell 备份/恢复 SharePoint 中的网站集?

备份 Web 应用程序中的所有站点:

PowerShell 使我们能够以更少的管理工作自动执行重复的任务。例如,如果您需要从 Web 应用程序备份所有网站集,那么多次运行相同的命令会很麻烦。相反,您可以使用以下 PowerShell 循环访问 Web 应用程序中的每个网站集并备份每个网站集。这也可以扩展到农场中所有 Web 应用程序的所有网站集!

用于备份所有 SharePoint 网站集的 PowerShell 脚本

要备份 SharePoint Server 中的网站,请使用 Backup-SPSite cmdlet:


Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

#Configuration parameters
$BackupLocation="D:\backups\"
$WebAppURL="https://company.sharepoint.com"

#Get All site collections under the given web app
$SitesColl= Get-SPWebApplication $WebAppURL | Get-SPSite -limit ALL

#Iterate through each site collection
Foreach($Site in $SitesColl)
{
   #Backup the site collection 
   $FilePath = $BackupLocation + $Site.Url.Replace("https://","").Replace("/","-") + ".bak"
   Backup-SPSite -Identity $Site.Url -Path $FilePath -Force 
   Write-Host "Backup completed Successfully for $($Site.Url)"
}

使用 PowerShell 在 SharePoint 2016 中恢复网站集备份:

如何使用 PowerShell 恢复 SharePoint 2013 中的网站集?恢复过程与备份过程类似。 Restore-SPSite 命令需要网站集标识和备份文件路径参数。以下是在 SharePoint 中恢复网站集的基本语法:

Restore-SPSite -Identity -Path [-DatabaseServer] [-DatabaseName] [-Force] [-GradualDelete]

  • GradualDelete - 当您通过还原覆盖现有网站集时,GradualDelete 参数会随着时间的推移逐渐删除网站集,以减少对服务器性能的影响。

例如,要恢复“IT.bak”文件,请使用以下命令:


Restore-SPSite https://portal.crescent.com/sites/IT -path c:\backup\it.bak

这会将提供的 BAK 文件恢复到新的网站集中。网站集将自动创建。

要从备份文件覆盖现有网站集,请使用 -Force 参数。

请注意,要恢复网站集,有一些限制:

  • 内容数据库只能包含给定网站集的一份副本。因此,如果要将备份恢复到备份的同一 Web 应用程序,则需要删除原始网站集或创建一个可以存储备份的新内容数据库。
  • 只要目标场与源场是同一版本或更高版本,则可以将网站集备份还原到同一场或不同场。

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

取消回复欢迎 发表评论:

关灯