Quantcast
Channel: StackExchange Replication Questions
Viewing all articles
Browse latest Browse all 17268

Modify Script to not include *_snapshot_* databases

$
0
0

We use the script on the website below to script out replication. I would like to add a exclusion of databases that have a name _snapshot_ in the name of the database.

http://www.sqlservercentral.com/blogs/chadmiller/2010/08/03/quickly-script-out-replication-redux/#comments

Script:

 param ($sqlServer,$path,[switch]$scriptPerPublication)
 Import-Module Repl

 if ($sqlServer -eq "")
 {
$sqlserver = Read-Host -Prompt "Please provide a value for -sqlServer"
 }

 if ($path -eq "")
 {
$path = Read-Host -Prompt "Please provide a value for output directory path"
 }

$scriptOptions = New-ReplScriptOptions
$scriptOptions.IncludeArticles = $true
$scriptOptions.IncludePublisherSideSubscriptions = $true
$scriptOptions.IncludeCreateSnapshotAgent = $true
$scriptOptions.IncludeGo = $true
$scriptOptions.EnableReplicationDB = $true
$scriptOptions.IncludePublicationAccesses = $true
$scriptOptions.IncludeCreateLogreaderAgent = $true
$scriptOptions.IncludeCreateQueuereaderAgent = $true
$scriptOptions.IncludeSubscriberSideSubscriptions = $true

$distributor = Get-ReplServer $sqlserver

 if($distributor.DistributionServer -eq $distributor.SqlServerName)
 {
$distributor.DistributionPublishers | ForEach-Object {
    $distributionPublisher = $_
    if($distributionPublisher.PublisherType -eq "MSSQLSERVER")
    {
        $outPath =  "{0}\from_{1}\{2}\"  -f $path,$distributionPublisher.Name.Replace("\","_"),$((Get-Date).toString('yyyy-MMM-dd_HHmmss'))
        New-Item $outPath -ItemType Directory | Out-Null
        Get-ReplPublication $distributionPublisher.Name | ForEach-Object {
            $publication = $_
            $fileName = "{0}{1}.sql" -f $outPath,$publication.DatabaseName.Replace(" ", "")
            if($scriptPerPublication)
            {
                $fileName = "{0}{1}_{2}.sql" -f $outPath,$publication.DatabaseName.Replace(" ", ""),$publication.Name.Replace(" ", "")
            }
            Write-Debug $("Scripting {0} to {1}" -f $publication.Name.Replace(" ", ""),$fileName)
            Get-ReplScript -rmo $publication -scriptOpts $($scriptOptions.ScriptOptions) | Out-File $fileName
        }
    }
}
 }
 else
 {
$outPath =  "{0}\from_{1}\{2}\"  -f $path,$distributor.SqlServerName.Replace("\","_"),$((Get-Date).toString('yyyy-MMM-dd_HHmmss'))
New-Item $outpath -ItemType Directory | Out-Null
Get-ReplPublication $distributor.SqlServerName | ForEach-Object {
    $publication = $_
    $fileName = "{0}{1}.sql" -f $outPath,$publication.DatabaseName.Replace(" ", "")
    if($scriptPerPublication)
    {
        $fileName = "{0}{1}_{2}.sql" -f $outPath,$publication.DatabaseName.Replace(" ", ""),$publication.Name.Replace(" ", "")
    }
    Write-Debug $("Scripting {0} to {1}" -f $publication.Name.Replace(" ", ""),$fileName)
    Get-ReplScript -rmo $publication -scriptOpts $($scriptOptions.ScriptOptions) | Out-File $fileName
}
 }

Viewing all articles
Browse latest Browse all 17268

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>