Интеграция 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:

clip_image002[1]

Рис.1

 

clip_image003

Рис.2

 

Полный список доступных на Windows 7 компонентов можно посмотреть при помощи

dism /online /get-features:

 

clip_image005

Рис.3

 

а также включить/отключить компоненты. Например, dism /online /disable-feature /FeatureName:"More Games"

 

clip_image006

Рис.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 и получаем ошибку:

 

clip_image007

Рис.5

 

Необходимо включить в конфигурационный файл config.xml, расположенный в <Дистрибутив>\Files\Setup строку <Setting Id="AllowWindowsClientInstall" Value="True"/>, как указано в статье Настройка среды разработки для SharePoint 2010 в Windows Vista, Windows 7 и Windows Server 2008.

 

clip_image009

Рис.6

 

После этого Setup.exe запускается нормально.

После ввода продуктового ключа и согласия с лицензионным соглашением будет предложено выбрать тип установки шаропойнта: одиночная установка или в режиме серверной фермы. В случае standalone установки служебные базы SharePoint размещаются на сервере SQL Server 2008 Express (даже не R2), который он приносит с собой:

 

clip_image010

Рис.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.

 

clip_image011

Рис.8

 

SharePoint может быть также установлен как front-end Web-сервер, а не Complete, но этот тип установки выполняется из командной строки.

 

 

 

 

clip_image012[1]

Рис.9

 

clip_image013[1]

Рис.10

 

 

clip_image014[1]

Рис.11

 

Конфигурирование выполняется непосредственно после основной установки или по желанию (Start -> All Programs -> Microsoft SharePoint 2010 Products -> SharePoint 2010 Products Configuration Wizard):

 

clip_image015[1]

Рис.12

 

clip_image016[1]

Рис.13

 

clip_image017[1]

Рис.14

 

clip_image018[1]

Рис.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:

 

clip_image020

Рис.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>].

 

clip_image022

Рис.17

 

Пряча снисходительную улыбку, я запустил абсолютно корректный (как мне казалось) Скрипт 3 и был немедленно низвергнут за свою гордыню:

 

clip_image024

Рис.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.

 

Продолжение следует.

 

 

Алексей Шуленин