none
powershell Backup sql database RRS feed

  • Вопрос

  • У меня есть powershell скрипт который бекапирует sql базы данных.
    У меня старый сервер это:
        win server 2008 R2 +
        sql server 2008 +
        SharedManagementObjects.msi +
        SQLSysClrTypes.msi +
    И на нем скрипт работает исправно.
    Выгружает бекапый так как мне нужно.

    param (
    		[string]$locationBackUp = "e:\BackUp_1C\BySQL\",				# Расположение папки для бекапирования
    		[string]$dbToBackup     = "1cv81",								# Имя базы данных
    		[string]$ServSQL        = "sql"									# Сервер SQL
    )
    
    # Задаем текущее местоположение равное местоположению скрипта
    $script_location = Split-Path -parent $MyInvocation.MyCommand.Definition
    set-location $script_location
    
    #load assemblies
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO") | Out-Null
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoExtended") | Out-Null
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.ConnectionInfo") | Out-Null
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoEnum") | Out-Null
     
    #create a new server object
    $server = New-Object ("Microsoft.SqlServer.Management.Smo.Server") $ServSQL
    $backupDirectory = $server.Settings.BackupDirectory
    $dbName = $server.Databases[$dbToBackup].Name
    $timestamp = Get-Date -format yyyy_MM_dd__HH_mm_ss
    
    $smoBackup = New-Object ("Microsoft.SqlServer.Management.Smo.Backup") 
    $smoBackup.Action = "Database"
    $smoBackup.BackupSetDescription = "Full Backup of " + $dbName
    $smoBackup.BackupSetName = $dbName + " Backup"
    $smoBackup.Database = $dbName
    $smoBackup.MediaDescription = "Disk"
    $smoBackup.Devices.AddDevice($backupDirectory + "\" + $dbName + "_" + $timestamp + ".bak", "File")
    $smoBackup.SqlBackup($server)

    Но недавно собрали новый сервер:
        win server 2012 R2 +
        Sql server 13.0.1601.5 +
        SharedManagementObjects.msi +
        SQLSysClrTypes.msi +
    Пытаюсь использовать скрипт на новом сервере.
    Но на строчке
    $server = New-Object ("Microsoft.SqlServer.Management.Smo.Server") $ServSQL
    Объект сервер создается какой-то совсем пустой.
    ну соответственно на строчке
    $backupDirectory = $server.Settings.BackupDirectory  
    Значение получается $null
    Ну и дальше все не работает.

    pict
    Помогите разобраться, из за чего не работает?
    Может быть что то нужно доустановить или еще что то?
    Буду рад любым советам.



    • Изменено korggrodno3 24 февраля 2020 г. 7:28
    24 февраля 2020 г. 7:26

Ответы

  • В общем после долгих поисков нашел ответ:

    Скрипт выполняется от некой учетной записии.

    И эта учетная запись должна обладать правами управления SQL сервером.

    Когда добавил права этой учетной записи - проблема сразу исчезла.

    • Предложено в качестве ответа Vector BCOModerator 25 февраля 2020 г. 10:52
    • Помечено в качестве ответа Vector BCOModerator 25 февраля 2020 г. 10:53
    25 февраля 2020 г. 9:35

Все ответы

  • подскажите как правильно вставить картинку, чтобы на ней что то можно было прочитать?

    Когда вставляю все видно. Жму отправить. Картинка уменьшается и на ней ничего не видно.

    Картинку можно поглядеть по ссылке lnk

    • Изменено korggrodno3 24 февраля 2020 г. 7:48
    24 февраля 2020 г. 7:45
  • подскажите как правильно вставить картинку, чтобы на ней что то можно было прочитать?

    Когда вставляю все видно. Жму отправить. Картинка уменьшается и на ней ничего не видно.

    Картинку можно поглядеть по ссылке lnk

    используя последнюю иконку на рибоне картинка загружается в оригинальном размере и вполне читаема если : приблизить картинку, открыть картинку в новой вкладке

    The opinion expressed by me is not an official position of Microsoft

    24 февраля 2020 г. 9:49
    Модератор
  • В общем после долгих поисков нашел ответ:

    Скрипт выполняется от некой учетной записии.

    И эта учетная запись должна обладать правами управления SQL сервером.

    Когда добавил права этой учетной записи - проблема сразу исчезла.

    • Предложено в качестве ответа Vector BCOModerator 25 февраля 2020 г. 10:52
    • Помечено в качестве ответа Vector BCOModerator 25 февраля 2020 г. 10:53
    25 февраля 2020 г. 9:35