SharePoint Inhaltsdatenbank automatisiert aktualisieren

Auf Entwicklungs- oder Testumgebungen ist es häufig notwendig, Inhaltsdatenbanken auf einen gewissen Stand zu setzen, um Funktionen  zu verifizieren oder automatisierte Tests durchzuführen. Folgendes Script aktualisiert eine Inhaltsdatenbank.

Schritt 1: Dismount der Inhaltsdatenbank in SharePoint
Schritt 2: Detach der Datenbank auf dem SQL Server 
Schritt 3: Kopieren (aktualisieren) der Datenbank-Dateien ab einem Share
Schritt 4: Attach der Datenbank auf dem SQL Server
Schritt 5: Mount der Inhaltsdatenbank in SharePoint

PowerShell Script

Add-PSSnapIn „Microsoft.SharePoint.Powershell“ -ErrorAction SilentlyContinue
Add-PSSnapin SqlServerCmdletSnapin* -ErrorAction SilentlyContinue

# Parameters

# SPS web application
$webApp = „http://myWebApp
$rootSite = „http://myWebApp

# Database files
$sourcePath = „\Share01SampleData
$destinationPath = „F:“

$mdfFilename = „SPS_Content_MyWebApp.mdf“
$ldfFilename = „SPS_Content_MyWebApp_log.ldf“
$mdfPath = $destinationPath + $mdfFilename
$ldfPath = $destinationPath + $ldfFilename

# Database server and database
$sqlServerInstance = „SV-MYWEBAPP“
$dbName = „SPS_Content_MyWebApp“

#################################################

Write-Host „Updating content DB $dbName“

# dismounted content database
$contentDb = Get-SPContentDatabase -site $rootSite
Dismount-SPContentDatabase $contentDb -confirm:$false
Write-Host „Content DB $dbName dismounted“

# detach database
$singleModeSQLCMD = @“
 USE [master]
 GO
 
 ALTER DATABASE $DBName
 SET SINGLE_USER;
 GO
„@

Invoke-Sqlcmd $singleModeSQLCMD -QueryTimeout 3600 -ServerInstance $sqlServerInstance
Write-Host „Content DB $dbName set to single mode (ready to detach)“

$detachSQLCMD = @“
 USE [master]
 GO
 
 sp_detach_db $dbName
 GO
„@

Invoke-Sqlcmd $detachSQLCMD -QueryTimeout 3600 -ServerInstance $sqlServerInstance
Write-Host „Content DB $dbName detached“

Write-Host „Copying file $mdfFilename from $sourcePath to $destinationPath“
$src = $sourcePath + $mdfFilename
$dest = $destinationPath + $mdfFilename
copy-item  $src $dest -force

Write-Host „Copying file $ldfFilename from $sourcePath to $destinationPath“
$src = $sourcePath + $ldfFilename
$dest = $destinationPath + $ldfFilename
copy-item  $src $dest -force

# attach database
$attachSQLCMD = @“
  USE [master]
  GO
 
  CREATE DATABASE [$dbName] ON (FILENAME = ‚$mdfPath‘),(FILENAME = ‚$ldfPath‘) for ATTACH
  GO
„@

Invoke-Sqlcmd $attachSQLCMD -QueryTimeout 3600 -ServerInstance $sqlServerInstance
Write-Host „Content DB $dbName attached“

# mount database
Mount-SPContentDatabase $dbName -DatabaseServer $sqlServerInstance -WebApplication $webApp -confirm:$false
Write-Host „Content DB $dbName mounted“

Write-Host „Content DB updated – READY TO USE!“

0 Responses to “SharePoint Inhaltsdatenbank automatisiert aktualisieren”



  1. Schreibe einen Kommentar

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s





%d Bloggern gefällt das: