Интеграция SharePoint 2010 c SQL Server 2012. Часть 1
В данной теме будут разобраны три вопроса:
• Установка SharePoint Server 2010 (SP1) Enterprise на Windows 7 Ultimate x64 (SP1)
• Установка фермы SharePoint Server 2010 без необходимости привлечения контроллера домена
• Размещение баз SharePoint Server 2010 SP1 на SQL Server 2012:
Первоначально предполагалось, что следующим шагом станет установка на основе собранной конфигурации новой функциональности SQL Server 2012 в виде Power View - интерактивный инструмент отчетности с богатыми возможностями визуализации, ориентированный на непосредственных бизнес-пользователей - однако с официальным выходом SQL Server 2012 стало официально ясно, что Windows 7 официально не поддерживается в качестве серверной части для Power View, поэтому вопросы его развертывания будут рассмотрены отдельно.
Перед установкой Sharepoint потребуется включить некоторые компоненты Windows:
Рис.1
Рис.2
Полный список доступных на Windows 7 компонентов можно посмотреть при помощи
dism /online /get-features:
Рис.3
а также включить/отключить компоненты. Например, dism /online /disable-feature /FeatureName:"More Games"
Рис.4
На Windows Server 2008 R2 вместо dism можно использовать утилиту ServerManagerCmd.exe -query или командлет Get-WindowsFeature в PowerShell. Установку/удаление компонент можно также проводить с помощью утилиты командной строки pkgmgr или ocsetup, которая является оберткой вокруг нее и msiexec.
Следующий батник включает компоненты Windows 7, необходимые для установки Sharepoint 2010:
rem в Windows Server соотв - т Server Roles -> Application Server
rem Microsoft .NET Framework 3.5.1
dism /online /enable-feature /FeatureName:NetFx3
dism /online /enable-feature /FeatureName:WCF-HTTP-Activation
dism /online /enable-feature /FeatureName:WCF-NonHTTP-Activation
rem Windows Process Activation Service
dism /online /enable-feature /FeatureName:WAS-WindowsActivationService
dism /online /enable-feature /FeatureName:WAS-NetFxEnvironment
dism /online /enable-feature /FeatureName:WAS-ConfigurationAPI
dism /online /enable-feature /FeatureName:WAS-ProcessModel
rem в Windows Server соотв - т Server Roles -> Web Server (IIS)
dism /online /enable-feature /FeatureName:IIS-WebServerRole
dism /online /enable-feature /FeatureName:IIS-WebServer
rem Internet Information Services -> World Wide Web Services -> Application Development Features
dism /online /enable-feature /FeatureName:IIS-ApplicationDevelopment
dism /online /enable-feature /FeatureName:IIS-NetFxExtensibility
rem dism /online /enable-feature /FeatureName:IIS-ASP
dism /online /enable-feature /FeatureName:IIS-ASPNET
rem dism /online /enable-feature /FeatureName:IIS-IIS-CGI
dism /online /enable-feature /FeatureName:IIS-ISAPIExtensions
dism /online /enable-feature /FeatureName:IIS-ISAPIFilter
rem dism /online /enable-feature /FeatureName:IIS-ServerSideIncludes
rem Internet Information Services -> World Wide Web Services -> Common HTTP Features
dism /online /enable-feature /FeatureName:IIS-CommonHttpFeatures
dism /online /enable-feature /FeatureName:IIS-DefaultDocument
dism /online /enable-feature /FeatureName:IIS-DirectoryBrowsing
dism /online /enable-feature /FeatureName:IIS-HttpErrors
rem dism /online /enable-feature /FeatureName:IIS-HttpRedirect
dism /online /enable-feature /FeatureName:IIS-StaticContent
rem Internet Information Services -> World Wide Web Services -> Health and Diagnostics
dism /online /enable-feature /FeatureName:IIS-HealthAndDiagnostics
rem dism /online /enable-feature /FeatureName:IIS-CustomLogging
dism /online /enable-feature /FeatureName:IIS-HttpLogging
dism /online /enable-feature /FeatureName:IIS-LoggingLibraries
dism /online /enable-feature /FeatureName:IIS-RequestMonitor
dism /online /enable-feature /FeatureName:IIS-HttpTracing
rem Internet Information Services -> World Wide Web Services -> Performance Features
dism /online /enable-feature /FeatureName:IIS-Performance
dism /online /enable-feature /FeatureName:IIS-HttpCompressionDynamic
dism /online /enable-feature /FeatureName:IIS-HttpCompressionStatic
rem Internet Information Services -> World Wide Web Services -> Security
dism /online /enable-feature /FeatureName:IIS-Security
dism /online /enable-feature /FeatureName:IIS-BasicAuthentication
rem dism /online /enable-feature /FeatureName:IIS-ClientCertificateMappingAuthentication
dism /online /enable-feature /FeatureName:IIS-DigestAuthentication
rem dism /online /enable-feature /FeatureName:IIS-IISCertificateMappingAuthentication
rem dism /online /enable-feature /FeatureName:IIS-IPSecurity
dism /online /enable-feature /FeatureName:IIS-RequestFiltering
rem dism /online /enable-feature /FeatureName:IIS-URLAuthorization
dism /online /enable-feature /FeatureName:IIS-WindowsAuthentication
rem Internet Information Services -> World Wide Web Services -> Web Management Tools
dism /online /enable-feature /FeatureName:IIS-WebServerManagementTools
dism /online /enable-feature /FeatureName:IIS-ManagementConsole
rem dism /online /enable-feature /FeatureName:IIS-ManagementScriptingTools
rem dism /online /enable-feature /FeatureName:IIS-ManagementService
rem Internet Information Services -> World Wide Web Services -> Web Management Tools -> IIS 6 Management Compatibility
dism /online /enable-feature /FeatureName:IIS-IIS6ManagementCompatibility
rem dism /online /enable-feature /FeatureName:IIS-LegacySnapIn
rem dism /online /enable-feature /FeatureName:IIS-LegacyScripts
dism /online /enable-feature /FeatureName:IIS-WMICompatibility
dism /online /enable-feature /FeatureName:IIS-Metabase
pause
Скрипт 1
Между компонентами существуют зависимости, например, WCF-HTTP-Activation не встанет раньше WAS-ConfigurationAPI: Error: 50 The operation completed but WCF-HTTP-Activation feature was not enabled. Ensure that the following parent feature(s) are enabled first. If they are already enabled, refer to the log file for further diagnostics. WAS-ConfigurationAPI. Я старался расположить включение компонент в том порядке, чтобы зависимые компоненты включались позже тех, от которых они зависят. Если где-нибудь этот порядок по невнимательности соблюсти не удалось, Скрипт 1 следует запустить повторно.
В соответствии со стандартным порядком инсталляции Sharepoint Server 2010 для установки пререквизитов нужно запустить находящийся в корне дистрибутива файл PrerequisiteInstaller.exe, который на Windows 7 тут же завершается по причине Error: This tool supports Windows Server version 6 and version 6.1, как пишется в логе об ошибке. Короче, в случае Windows 7 пререквизиты ставятся ручками. Запускаем находящийся там же Setup.exe и получаем ошибку:
Рис.5
Необходимо включить в конфигурационный файл config.xml, расположенный в <Дистрибутив>\Files\Setup строку <Setting Id="AllowWindowsClientInstall" Value="True"/>, как указано в статье Настройка среды разработки для SharePoint 2010 в Windows Vista, Windows 7 и Windows Server 2008.
Рис.6
После этого Setup.exe запускается нормально.
После ввода продуктового ключа и согласия с лицензионным соглашением будет предложено выбрать тип установки шаропойнта: одиночная установка или в режиме серверной фермы. В случае standalone установки служебные базы SharePoint размещаются на сервере SQL Server 2008 Express (даже не R2), который он приносит с собой:
Рис.7
что означает не более 4 ГБ на базу (даже не 10), не более 1 гига для буфер-пула, 1 процессор и другие ограничения. При выборе Complete предполагается, что SQL Server для создания служебных баз уже присутствует, и строка соединения с ним задается самостоятельно в процессе конфигурирования после установки SharePoint. Если хочется, чтобы SharePoint 2010 держал свои базы на SQL Server 2012, выбираем установку типа Server Farm. К тому же, ферма может состоять из всего одного шаропойнта: а SharePoint farm can be a single server or multiple servers. What sets a farm apart from a standalone installation is the presence of additional infrastructure, such as the Claims to Windows Token Service.
Рис.8
SharePoint может быть также установлен как front-end Web-сервер, а не Complete, но этот тип установки выполняется из командной строки.
Рис.9
Рис.10
Рис.11
Конфигурирование выполняется непосредственно после основной установки или по желанию (Start -> All Programs -> Microsoft SharePoint 2010 Products -> SharePoint 2010 Products Configuration Wizard):
Рис.12
Рис.13
Рис.14
Рис.15
При конфигурировании новой фермы шаропойнтовский визард пытается создать служебные базы на заданном SQL Server и установить credentials, под которыми к ним будет осуществляться доступ. По соображениям повышенной безопасности он хочет использовать для этого учетную запись Windows, а не SQLные логин-пароль, и совершенно логично предполагает, что это должна быть доменная учетная запись, коль скоро от ее имени будет происходить обращение с разных узлов (фермы). Проблема в том, что Windows 7 в данном случае является standalone машиной, не входящей ни в какой домен. Пришлось прибегнуть к обходному пути, описанному здесь - Installing SharePoint Farm without domain controller. Для этого я открыл SSMS и вручную создал на имеющемся под рукой SQL Server две базы данных: одну для хранения конфигурации, другую - под содержание веб-сайта централизованного администрирования, - обе в кодировке Latin1_General_CI_AS_KS_WS:
use master
if exists (select 1 from sys.databases where name = 'SharePoint_Config') begin
alter database SharePoint_Config set single_user with rollback immediate
drop database SharePoint_Config
end
go
create database SharePoint_Config collate Latin1_General_CI_AS_KS_WS
Скрипт 2
и аналогично БД SharePoint_AdminContent. Обходной путь состоит в том, чтобы вместо графического визарда psconfigui.exe (Рис.12-15) воспользоваться утилитой командной строки psconfig.exe, лежащей там же:
cd C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN
psconfig.exe -cmd configdb -create -server w7x64_Denali -database SharePoint_Config -dbuser sa -dbpassword Tiwanaku -admincontentdatabase SharePoint_AdminContent -user w7x64_Denali\Administrator -password Tenōchtitlan -passphrase P@ssW0rd
Скрипт 3
Команда создает новую конфигурационную БД (читай, шаропойнтовскую ферму) на SQL Server по имени -server, и база эта будет называться -database. Для соединения с SQL Server -server используется стандартная безопасность, т.е. SQL Serverный логин -dbuser со своим паролем -dbpassword. На этом, наверное, стоит заострить внимание, потому что попадаются случаи, когда люди долбятся на SQL Server из psconfig.exe под своим Windowsовым эккаунтом, по-детски удивляясь ошибке The configdb command is invalid or a failure has been encountered. Cannot connect to database master at SQL server at w7x64_Denali. The database might not exist, or the current user does not have
permission to connect to it:
Рис.16
Достаточно заглянуть SQL Serverу в Error Log, чтобы понять, чего он хочет: Login failed for user 'w7x64_Denali\Administrator'. Reason: Attempting to use an NT account name with SQL Server Authentication. [CLIENT: <local machine>].
Рис.17
Пряча снисходительную улыбку, я запустил абсолютно корректный (как мне казалось) Скрипт 3 и был немедленно низвергнут за свою гордыню:
Рис.18
Не может она отыскать хранимую процедуру sp_dboption на SQL Server 2012 и оттого не может создать конфигурационную базу SharePoint. Собственно, ничего удивительного в этом нет: This is a designed behavior change in SQL 2012, and the spec proc sp_dboption is deprecated in SQL 2012. According to the online document (http://msdn.microsoft.com/en-us/library/ms187310.aspx), you can use "ALTER DATABASE" to modify the database options. В связи с этим рекомендуется установка SharePoint 2010 SP1: One of the primary reasons SP1 is required for SharePoint installations running with Microsoft SQL Server 2012 Release Candidate 0 (RC 0) is the database engine feature sp_dboption, that was deprecated in a previous release, is discontinued in the Microsoft SQL Server 2012 Release Candidate 0 (RC 0) release.
Алексей Шуленин