none
PowerShell을 이용해서 SQL Server Transaction Log 백업 RRS feed

답변

  • 안녕하십니까? 김도남 님

    Microsoft TechNet Forum 사이트를 방문해 주셔서 감사합니다.

     

    문의 하신 “PowerShell을 이용해서 SQL Server Transaction Log 백업에 대한 답변을 드리겠습니다.

     

    Step 1 :  MS SQL Powershell SnapIn 추가

     

    아래의 Cmdelt으로 MS SQL SnapIn Module을 추가 합니다.


    Add-PSSnapin 'SqlServerCmdletSnapin100'

    Add-PSSnapin 'SqlServerProviderSnapin100'

     

     

    Get-PSSnapin –Registered 명령어로 MS SQL SnapIn Module 이름을 확인할 수 있습니다.

     

     

    Step 2 : 파일명에 사용할 날짜 정보

     

    yyyyddMM_hhmmss의 형식으로 날짜 정보를 변수에 저장을 합니다.

     

    $date = Get-Date -Format yyyyddMM_hhmmss

     

     

    Step 3 : 저장경로 설정

     

    임의의 저장경로를 변수에 저장을 합니다.

     

    $directory = "C:\DatabaseTranctionLogBackupFolder\"

     

     

    Step 4 : 백업 Script 작성

     

    Backup T-SQL 명령어를 이용해서 백업을 할 수 있습니다.

     

    "BACKUP LOG <Database Name> TO DISK=N'<Backup File Full Name>' WITH INIT"

     

     

    Step 5 : 현재 MS SQL Instance에 있는 Database Name 정보

     

    PSDrive를 이용해서 현재 사용하는 MS SQL Instance에 존재하는 Database Name 목록 정보를 제공할 수 있습니다.

     

    dir 'SQLSERVER:\SQL\<DBServer NetBIOS Name>\DEFAULT\Databases'

     

     

    Step 6 : Full Script

     

    #MS SQL PowerShell Snapin 추가

     

    Add-PSSnapin 'SqlServerCmdletSnapin100'

    Add-PSSnapin 'SqlServerProviderSnapin100'

     

    #DATE 정보 설정

     

    $date = Get-Date -Format yyyyddMM_hhmmss

     

    #백업 경로 설정

     

    $directory = "C:\DatabaseTranctionLogBackupFolder\"

     

    #Database Name 정보 설정

     

    $dbname = dir 'SQLSERVER:\SQL\<DBServer NetBIOS Name>\DEFAULT\Databases' | where {$_.RecoveryModel -notmatch "Simple"} | Select Name

     

    #백업 작성 시작

     

    $dbname | foreach { $_.Name.ToString() } | foreach { $bakfile = "$directory" + $_ + "_" + $date + ".trn"; "Backing up LOG of Database: $_"; Invoke-Sqlcmd -SuppressProviderContextWarning -Query "BACKUP LOG $_ TO DISK=N'$bakfile' WITH INIT";}

     

     

     

    참고 자료

     

    Add-PSSnapin

    http://technet.microsoft.com/en-us/library/dd347601.aspx

     

    Get-Date
    http://technet.microsoft.com/ko-kr/library/dd347647.aspx

     

    BACKUP (Transact-SQL)
    http://msdn.microsoft.com/en-us/library/ms186865.aspx

    제가 문제에 대해 더 알아야 할 것이 있다면 응답 주시면 감사하겠습니다.

    제시해 드린 답변이 도움이 되었기를 바랍니다.

    • 답변으로 표시됨 김도남 2011년 10월 10일 월요일 오전 9:06
    2011년 10월 7일 금요일 오전 9:12
    중재자