Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Сохранить группу доступности в T-SQL скрипт  [new]
orabin
Member

Откуда:
Сообщений: 48
SQL 19. Есть настроенная и работающая группа доступности.

Как сохранить эту группу доступности в T-SQL скрипт по ее созданию ( с CREATE AVAILABILITY GROUP и так далее )?

Сообщение было отредактировано: 9 сен 21, 14:22
9 сен 21, 14:31    [22369854]     Ответить | Цитировать Сообщить модератору
 Re: Сохранить группу доступности в T-SQL скрипт  [new]
orabin
Member

Откуда:
Сообщений: 48
Похоже никак? Все действия по созданию заранее протоколировать?
14 сен 21, 15:47    [22371770]     Ответить | Цитировать Сообщить модератору
 Re: Сохранить группу доступности в T-SQL скрипт  [new]
komrad
Member

Откуда:
Сообщений: 5803
orabin
Похоже никак? Все действия по созданию заранее протоколировать?

гугл знает многое, надо только спросить

https://www.sqlservercentral.com/blogs/use-powershell-to-script-existing-availability-group-creation-scripts

https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/create-an-availability-group-transact-sql

Сообщение было отредактировано: 14 сен 21, 15:46
14 сен 21, 15:56    [22371773]     Ответить | Цитировать Сообщить модератору
 Re: Сохранить группу доступности в T-SQL скрипт  [new]
orabin
Member

Откуда:
Сообщений: 48
Спасибо. Первую ссылку никак не смог найти.
14 сен 21, 17:08    [22371818]     Ответить | Цитировать Сообщить модератору
 Re: Сохранить группу доступности в T-SQL скрипт  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 4222
orabin
Спасибо. Первую ссылку никак не смог найти.


интернет у вас плохой :-)
14 сен 21, 17:37    [22371832]     Ответить | Цитировать Сообщить модератору
 Re: Сохранить группу доступности в T-SQL скрипт  [new]
orabin
Member

Откуда:
Сообщений: 48
# SQL Server you want to run this against
$SQLServer = 'localhost'
# Setup pathing localhostand environment based on the script location
$Invocation = (Get-Variable MyInvocation -Scope 0).Value
$ScriptLocation = Split-Path $Invocation.MyCommand.Path
$ScriptName = $Invocation.MyCommand.Name.Replace(".ps1","")
$ScriptFullPath = $Invocation.MyCommand.Path
# Load SMO
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO") | out-null
$SQLObj = New-Object "Microsoft.SqlServer.Management.Smo.Server" $SQLServer
$SQLObj.ConnectionContext.Connect()
foreach ($ag in ($SQLObj.AvailabilityGroups )){
    $SQLINST = $SQLServer.Replace('\','_')
    $AGName = $ag.Name
    $Dttm = (Get-Date -Format 'yyyyMMdd_hhmm')
    $OutFile = "$ScriptLocation\AGInfo\$SQLINST\${AGname}_${Dttm}.sql"
    if (!(Test-Path -Path $OutFile -PathType Leaf)) {
        New-Item -Path $OutFile -ItemType File -Force
    }
    Write-output "Scripting Availability Group [$AGName] to '$OutFile'"
    '/*' | Out-File -FilePath $OutFile -Encoding ASCII -Force
    $ag | Select-Object -Property * | Out-File -FilePath $OutFile -Encoding ASCII -Append
    '*/' | Out-File -FilePath $OutFile -Encoding ASCII -Append
    $scriptr = new-object ('Microsoft.SqlServer.Management.Smo.Scripter') ($SQLObj)
    
}


Для некоторых групп прекрасно создает t-sql
А для некоторых выдает такое:
Scripting Availability Group [RDCB_MSSQL ] to 'C:\Distrib\AGInfo\localhost\RDCB_MSSQL _20210915_1001.sql'
Исключение при вызове "Script" с "1" аргументами: "Не удалось выполнить действие "Скрипт" для следующего объекта: "Группа доступности
", "RDCB_MSSQL ". "
C:\Distrib\recreate_ag.ps1:25 знак:5
+     $scriptr.Script($ag)
+     ~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : FailedOperationException


на строчку $scriptr = new-object ('Microsoft.SqlServer.Management.Smo.Scripter') ($SQLObj)
Куда копать?
15 сен 21, 08:19    [22371989]     Ответить | Цитировать Сообщить модератору
 Re: Сохранить группу доступности в T-SQL скрипт  [new]
komrad
Member

Откуда:
Сообщений: 5803
orabin,

[RDCB_MSSQL ]

название группы с пробелом?
15 сен 21, 09:52    [22372012]     Ответить | Цитировать Сообщить модератору
 Re: Сохранить группу доступности в T-SQL скрипт  [new]
orabin
Member

Откуда:
Сообщений: 48
похоже(
15 сен 21, 10:44    [22372019]     Ответить | Цитировать Сообщить модератору
 Re: Сохранить группу доступности в T-SQL скрипт  [new]
komrad
Member

Откуда:
Сообщений: 5803
orabin
похоже(

как-то раз столкнулся с trailing пробелом в названии базы данных
было неприятно
15 сен 21, 10:52    [22372024]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить