Translate this page:
Please select your language to translate the article


You can just close the window to don't translate
Library
Your profile

Back to contents

Cybernetics and programming
Reference:

Using Windows PowerShell scripts to manage Microsoft SQL Server backups in application for Department of Social Security

Milovanov Maksim Mikhailovich

Senior Lecturer, Siberian State Industrial University

654007, Russia, Kemerovskaya oblast', g. Novokuznetsk, ul. Kirova, 42

mirovan@narod.ru
Other publications by this author
 

 

DOI:

10.7256/2306-4196.2015.3.15410

Received:

29-05-2015


Published:

14-06-2015


Abstract: At the present time it is very important to save gathered data. The development of modern information technologies, using databases raises questions of storing and backups for big amount of data. The high requirements to the speed of data recovery imply the correct organization of storing data and backups. Keeping that in mind the author shares his experience of setting up making of backups in command line using Windows PowerShell scripts. The article describes mechanisms and results of the applied technique. The research is focused on the observing IT-processes. The article reviews usage of upgraded Windows PowerShell command line instead of outdated command line. The author presents a short review of the main commands used in writing a PowerShell script. The article gives examples of using the developed script for backing up and storing databases. Using this technique proves to be reliable for a long time based on the tests on different platforms. This method increases the efficiency of IT, the reliability of information processes and optimization of employee time.


Keywords:

big data, data archiving, database, powershell, script, windows, baskup, software, IT-process, algoritm


В связи с интеграцией всех IT-процессов происходящих в Комитете социальной защиты г. Новокузнецка в единое информационное пространство, на базе управления социальной защиты г. Новокузнецка Куйбышевского района была внедрена автоматизированная система «Адресная социальная помощь» (разработка ООО «СоцИнформТех» г.Тула). Для данного программного обеспечения был выдел отдельный восьмиядерный сервер под управлением операционной системы Windows Server 2003. Программа работает на платформе .NET в связке с Microsoft SQL Server 2008. Ежедневно в программу заносится большой объем данных. В системе работают более 50 пользователей. В функции программного обеспечения входит расчет и начисление льгот, выплат населению по различным видам услуг – выплаты ЖКХ, социальных пособия и т.д. Ежемесячно выплаты рассчитываются по всем объектам программы – дома, люди и т.д.

Исходя из задач, довольно часто приходится обращаться к данным, которые уже были изменены для перерасчета денежных средств населению, например в случае изменения тарифных сеток. В этом случае просто необходимо иметь резервные копии базы данных. Для этих нужд выделен отдельный сервер для хранения резервных копий. Сам объем базы данных составляет около 15 Гб. Поэтому для поддержании базы данных в актуальном состоянии и минимизации занимаемого пространства на жестком диске были предприняты меры ежедневного резервного копирования и архивации данных.

Для этих целей было решено использовать механизм от компании Microsoft ­– Windows PowerShell. PowerShell – это оболочка командной строки на основе задач, а также язык сценариев, предназначенный специально для системного администрирования. Созданная на основе .NET Framework, служба Windows PowerShell помогает ИТ-специалистам и опытным пользователям в управлении и автоматизации администрирования операционной системы Windows, а также приложений, работающих под управлением Windows [1].

Алгоритм [2] создания резервных копий следующий (Рис. 1):

  1. Запуск агента администрирования MS SQL и создание резервной bak-копии базы данных.
  2. Запуск PowerShell сценария.
  3. Архивация всех резервных копий базы данных.
  4. Копирование данных на сервер резервных копий [3].
  5. Копирование резервной копии базы данных на FTP сервер.
  6. Удаление с текущего сервера файлов резервных копий и архивов.

.png

Рис. 1. Схема создания резервной копии

Важно отметить следующую особенность исполнения скрипта. Сам PS-скрипт устроен таким образом, что запуск внешних процессов из него не требует их завершения. Т.е. программа не будет ждать окончания работы архивации и перейдет к следующему этапу. Поэтому для решения этой задачи использован метод класса Process - WaitForExit().

Таким образом, сначала происходит запрос на получение всех резервных копий с помощью конструкции:

$files = Get-ChildItem *.bak -name | sort CreationTime

После получения списка файлов происходит формировании строки аргументов для архиватора и вызов метода WaitForExit() класса Process:

foreach ($file in $files) {

$arg = "a " + $rarDir + $file + ".rar " + $file

[diagnostics.process]::start("rar.exe", $arg).WaitForExit()

}

Данный способ резервного копирования не использует сторонних программ, а использует только лишь средства .NET и PowerShell, что позволяет быть уверенным в надежности его работы. Разработанная методика хранения файлов резервных копий показала свою надежность. При технических сбоях в системе электропитания, выходе их строя сервера и др., работоспособное состояние приложения восстанавливается в течение часа на любом компьютере имеющем соответствующую конфигурацию. Механизм создания резервных копий и их архивации был протестирован на платформах Windows 7, 2003 Server, 2008 Server.

References
1. https://technet.microsoft.com/ru-ru/library/bb978526.aspx [Elektronnyi resurs]
2. Milovanov M.M. Informatsionnye tekhnologii. Elektronnyi uchebno-metodicheskii kompleks / Elektron. dan.-Novokuznetsk: SibGIU, 2014.:il.-1 elektronnyi DVD disk (DVD-ROM); № gos. registratsii 0321400939
3. Ermakova L.A. Informatika: elektronnyi uchebno-metodicheskii kompleks [Elektronnyi resurs] / Elektron. dan.-Novokuznetsk: SibGIU, 2014.-148c.:il.-1 elektronnyi DVD disk (DVD-ROM); 12 sm.-№ gos. registratsii 032140093
4. Labkovskaya R.Ya., Kozlov A.S., Pirozhnikova O.I., Korobeinikov A.G. Modelirovanie dinamiki chuvstvitel'nykh elementov gerkonov sistem upravleniya // Kibernetika i programmirovanie. - 2014. - 5. - C. 70 - 77. DOI: 10.7256/2306-4196.2014.5.13309. URL: http://www.e-notabene.ru/kp/article_13309.html
5. Borovskii A.A. Perspektivy primeneniya tekhnologii mashinnogo obucheniya k obrabotke bol'shikh massivov istoricheskikh dannykh // Kibernetika i programmirovanie. - 2015. - 1. - C. 77 - 114. DOI: 10.7256/2306-4196.2015.1.13730. URL: http://www.e-notabene.ru/kp/article_13730.html
6. Sokol'nikov A.M. Sravnitel'nyi analiz podkhodov k razrabotke arkhitektury i sistem upravleniya bazami dannykh dlya vysokonagruzhennykh WEB-servisov // Kibernetika i programmirovanie. - 2014. - 4. - C. 1 - 13. DOI: 10.7256/2306-4196.2014.4.12800. URL: http://www.e-notabene.ru/kp/article_12800.html
7. Gatchin Yu.A., Lovlin A.Yu., Vasil'ev E.A. Modernizatsiya avtomatizirovannogo programmnogo kompleksa testirovaniya gosudarstvennykh sluzhashchikh // Kibernetika i programmirovanie. - 2013. - 2. - C. 29 - 35. DOI: 10.7256/2306-4196.2013.2.8306. URL: http://www.e-notabene.ru/kp/article_8306.html