SharePoint 2010 到 2013 迁移





0/5 (0投票)
SharePoint 2010 到 2013 迁移的整体过程。
引言
本文旨在讨论 SharePoint 2010 到 2013 迁移的整体过程。那么第一个问题是:为什么需要将 SharePoint 2010 升级到 2013?原因是:2013 版本有许多令人惊叹的功能,可以为您的组织带来比 2010 版本更多的价值。
- 设计管理器
- 设备通道
- HTML5、CSS3 及所有这些好东西
- 社区网站和社区门户
- 全新的搜索体验及其含义
- 内容搜索 Web 部件
- 应用和应用商店
- WCM Web 内容管理
请注意,这是我个人在迁移方面的经验。并非所有情况都与您的环境相符。在这种情况下,您必须非常仔细地规划。
规划
规划在迁移中非常重要。首先,您必须分析现有的 SharePoint 2010 场。请记下所有内容。在我的案例中,我做了以下事情。
- SQL 服务器版本
- Web 应用程序的数量
- 服务应用程序的数量
- 每个 Web 应用程序中的功能数量
- 自定义解决方案的数量(场和沙盒)
- 硬件和软件
- 身份验证提供程序
根据现有场,您必须为 SharePoint 2013 准备一个新场。
迁移过程
数据库附加法是唯一受支持的从 SharePoint 2010 产品升级到 SharePoint 2013 的方法
迁移步骤
我希望您的新场 (2013) 已根据您的规划准备就绪。现在,我们需要按照以下步骤进行迁移:
- 从旧服务器备份数据库
- 在新服务器中恢复数据库
- 创建新的 Web 应用程序
- 移除内容数据库
- 测试内容数据库
- 挂载数据库
- 添加和安装自定义解决方案
- 升级站点
- 用户迁移
数据库备份
这是迁移的第一步。数据库备份可以通过多种方式进行,例如命令行、使用管理工作室等。我总是更喜欢命令行。在进行数据库备份之前,将数据库设置为只读模式。
"C:\Program Files\Microsoft SQL Server\110\Tools\Binn\osql.exe"
-E -Q "BACKUP DATABASE '{database name}' TO DISK='{path}' WITH FORMAT"
- {数据库名称} 是您的内容数据库的名称。示例:“
WSS_Content
” - {路径} 是您要保存备份文件的位置。示例:“C:\db_back\sp_2010.bak”
- 不要忘记更改 SQL 版本号。在我的案例中,它是
110
。
数据库恢复
现在登录到您的新数据库服务器。您可以使用查询或管理工作室的 UI 恢复旧数据库。如果您想使用 UI,请按照 MSDN 中的这些步骤操作。使用查询窗口,只需在您的管理工作室中打开查询窗口,然后粘贴以下查询并执行它。
RESTORE DATABASE '{new database name}' FROM DISK = '{path}'
WITH REPLACE, RECOVERY,
MOVE '{old database name}' TO '{new mdf path}',
MOVE '{old log name}' TO '{new log path}'
- {新数据库名称} 是您的新数据库的名称。示例:“
WSS_Content_Migrated
” - {路径} 是您的备份文件所在的位置。示例:“C:\sp data\sp_2010.bak”
- {旧数据库名称} 是您的旧数据库的名称。示例:“
WSS_Content
” - {新 mdf 路径} 是您要保存新 mdf 文件的位置。示例:“C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\WSS_Content_Migrate.mdf”
- {旧日志名称} 是旧日志文件的名称。示例:“WSS_Content_log”
- {新日志路径} 是您要保存新日志文件的位置。示例:“C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\WSS_Content_Migrate.ldf”
现在等待脚本执行完成。同样,不要忘记更改查询中的所有参数。
创建新的 Web 应用程序
成功恢复内容数据库后,登录您的 SharePoint 2013 服务器。现在,您必须创建一个新的 Web 应用程序,所有站点集都将恢复到其中。建议使用与 2010 年旧 Web 应用程序相同的主机头。您可以从管理中心或 PowerShell 执行此操作。以下是用于创建新 Web 应用程序的 PowerShell 命令。
New-SPWebApplication -Name {Name} -ApplicationPool {ApplicationPool}
-AuthenticationMethod {WindowsAuthType}
-ApplicationPoolAccount {ApplicationPoolAccount} -Port {Port} -URL {URL}
- {名称} 是新 Web 应用程序的名称。示例:“
SharePointPlex Intranet Portal
” - {应用程序池} 是应用程序池的名称。示例:“
SharePointPlex Pool
” - {WindowsAuthType} 是“NTLM”或“Kerberos”。建议使用 Kerberos。
- {ApplicationPoolAccount} 是此应用程序池将运行的用户帐户。示例:
(Get-SPManagedAccount “domainName\userName”)
- {端口} 是将在 IIS 中创建 Web 应用程序的端口。示例:
80
- {URL} 是 Web 应用程序的公共 URL。示例:
portal.sharepointplex.com
移除内容数据库
如果您的新 Web 应用程序与内容数据库相关联,则需要从您的 Web 应用程序中分离/移除该数据库。同样,您可以从管理中心或 PowerShell 执行此操作。
仅分离数据库,您可以使用以下命令:
Dismount-SPContentDatabase "{ContentdBName}"
- “
{ContentdBName}
”是您的内容数据库的名称
要永久移除数据库,您可以使用以下命令:
Remove-SPContentDatabase "{ContentdBName}"
- “
{ContentdBName}
”是您的内容数据库的名称
测试旧内容数据库
在此步骤中,我们需要使用新的 Web 应用程序测试旧内容数据库,以验证旧内容数据库中引用的所有自定义项。它将为我们提供内容数据库中激活的自定义项和服务的完整报告。最好将日志导出为 CSV 文件,以便更好地查看。现在,运行以下命令来测试您的内容数据库。
Test-SPContentDatabase -Name '{database name}'
???????-WebApplication {url of web application} | Out-File {log path}
- {数据库名称} 是内容数据库。示例:“
WSS_Content_Migrated
” - {Web 应用程序 URL} 是新 Web 应用程序的 URL。示例:
portal.sharepointplex.com
- {日志路径} 是您要保存日志文件的位置。示例:“C:\log\test_database_log.csv”
现在打开“C:\log\test_database_log.csv”,并根据该文件进行故障排除。此日志文件不仅包含问题。它还会为您提供一些建议。
附加旧数据库
如果您成功完成了上述步骤,那么是时候将旧数据库附加到新的 Web 应用程序了。为此,您可以运行以下命令。
Mount-SPContentDatabase {database name}
-DatabaseServer {database server name}
???????-WebApplication {web application url} -AssignNewDatabaseId
- {数据库名称} 是您的内容数据库的名称。示例:“
WSS_Content_Migrated
” - {数据库服务器名称} 是数据库服务器的名称。示例:“
SRV-DBSQL12
” - {Web 应用程序 URL} 是您的 Web 应用程序的 URL。示例:
portal.sharepointplex.com
- 请注意,
-AssignNewDatabaseId
非常重要。这将允许新数据库附加到场,而不会发生数据库 ID 冲突。
在此步骤中您可能会遇到以下错误,但请不要担心。只需打开日志文件并根据其进行故障排除即可。
Mount-SPContentDatabase : Upgrade completed with errors. Review the upgrade log file located in
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\
LOGS\Upgrade-20151230-173217-657.log.
The number of errors and warnings is listed at the end of the upgrade log file.
At line:1 char:1
+ Mount-SPContentDatabase "WSS_Content_Migrated" -DatabaseServer "SRV-DBSQL12" -We ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (Microsoft.Share...ContentDatabase:SPCmdletMountContentDatabase)
[Mount-SPContentDatabase], SPUpgradeException
+ FullyQualifiedErrorId : Microsoft.SharePoint.PowerShell.SPCmdletMountContentDatabase
添加自定义解决方案
在此步骤中,您需要添加所有使用 Visual Studio 2010 开发的自定义解决方案。如果您确定您的自定义解决方案无需升级即可工作,那么您可以直接使用 PowerShell 添加它们。
Add-SPSolution {path of the solution}
Install-SPSolution –Identity {solution name}.wsp –WebApplication {web application url} -GACDeployment
如果您的解决方案包含第三方库,请使用 Visual Studio 2013 升级它们,最后将它们添加到您的 Web 应用程序中。
升级站点
现在登录到您的站点。您应该会看到与 SharePoint 2010 相同的界面。所以是时候升级您的站点了。在站点的标题中,您应该会收到以下通知:
现在点击立即开始链接,然后将出现以下屏幕。
如果您点击升级此网站集,它将要求您确认。
现在确认并等待完成!
一切完成后,您应该会看到一切都变成了 SharePoint 2013。
用户迁移
完成网站升级后,您必须迁移 SharePoint 用户。如果您的身份验证模型发生变化,则需要此步骤。基本上,您必须更改所有 SharePoint 用户的前缀。为此,您可以借助我的以下脚本。
$web = Get-SPWeb {web application url}
$userName = {user name}
$OlduserID = '{domain name}\' + $userName
$newuserID = 'i:0#.w|{domain name}\' + $userName
$user = Get-SPUser -Web $web -Identity $OlduserID
If($user) {
$newuserID = $web.EnsureUser($newuserID)
Move-SPUser -Identity $user -NewAlias $NewuserID -Confirm:$false -IgnoreSID
Write-Host $employee.UserName + " Migrated"
} Else{
Write-Host $employee.UserName + " unable to migrate"
}
在我的案例中,旧用户是这样的:
sharepointplex\atish
迁移后,它看起来像:
i:0#.w|sharepointplex\atish
注意:我的域名是sharepointplex
。
结论
希望您的迁移非常顺利。如果没有,欢迎通过以下评论区与我联系。我将尝试在短时间内回复。
参考
1. SharePoint 2013 升级过程:https://www.microsoft.com/en-us/download/details.aspx?id=30371