powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Сохранить группу доступности в T-SQL скрипт
9 сообщений из 9, страница 1 из 1
Сохранить группу доступности в T-SQL скрипт
    #40096344
orabin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL 19. Есть настроенная и работающая группа доступности.

Как сохранить эту группу доступности в T-SQL скрипт по ее созданию ( с CREATE AVAILABILITY GROUP и так далее )?
...
Рейтинг: 0 / 0
Сохранить группу доступности в T-SQL скрипт
    #40097592
orabin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Похоже никак? Все действия по созданию заранее протоколировать?
...
Рейтинг: 0 / 0
Сохранить группу доступности в T-SQL скрипт
    #40097595
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
Сохранить группу доступности в T-SQL скрипт
    #40097615
orabin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Первую ссылку никак не смог найти.
...
Рейтинг: 0 / 0
Сохранить группу доступности в T-SQL скрипт
    #40097625
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orabin
Спасибо. Первую ссылку никак не смог найти.


интернет у вас плохой :-)
...
Рейтинг: 0 / 0
Сохранить группу доступности в T-SQL скрипт
    #40097712
orabin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
# 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
А для некоторых выдает такое:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
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)
Куда копать?
...
Рейтинг: 0 / 0
Сохранить группу доступности в T-SQL скрипт
    #40097730
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orabin,

[RDCB_MSSQL ]

название группы с пробелом?
...
Рейтинг: 0 / 0
Сохранить группу доступности в T-SQL скрипт
    #40097735
orabin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
похоже(
...
Рейтинг: 0 / 0
Сохранить группу доступности в T-SQL скрипт
    #40097738
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orabin
похоже(

как-то раз столкнулся с trailing пробелом в названии базы данных
было неприятно
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Сохранить группу доступности в T-SQL скрипт
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]