Написать скрипт для бекапа БД, обезличивания и заливки его на ФТП

4 000 руб. за проект
07 февраля 2021, 02:10 • 6 откликов • 92 просмотра
Видео-описание задачи: https://yadi.sk/i/UrN4Ohkwf4ffeQ

Сделать скрипт (bat или powershell), который будет делать следующие действия:

  1. Инициализирует настройки из текстовика настроек, который лежит в той же папке, что и наш скрипт.
  2. Подключится к MS SQL Server 2014 и выше с авторизацией по логину паролю (не windows-авторизация) и забекапит БД (имя БД из параметра). Бекапить надо только базу, файл транзакций не нужно, чтобы получить как можно меньший размер файла.
    Пример, как это работает, когда подключение идёт к SQL с windows-авторизацией:
echo Backing up database...

"C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SQLCMD.EXE" -S (local)\SQLExpress -Q "BACKUP DATABASE db_name TODISK ='c:\BackupPrevVer\db_name .bak' WITH NOFORMAT, INIT,NAME = N'ElisMLM Last Backup', SKIP, NOREWIND, NOUNLOAD,STATS = 10;"

echo Done.

  1. Применит к этой БД процедуру обезличивания.
    Что именно обезличить, описано вот здесь: https://share.clickup.com/t/h/bjv61j/P3196MRT5M63CDH
    Предполагается, что очевидно, в каких таблицах БД лежат эти данные, а там, где неочевидно, указана название таблицы. Если где то будет непонятно - явно укажем, в какой таблице и столбце надо затирать.
    Также рассчитываю, что вы подскажете, как организовать выгрузку структуры БД без данных из ms sql сервера, чтобы вам отправить для разворачивания у себя и экспериментов.
  2. Заархивирует бекап с помощью 7Z или винрара максимальным сжатием
  3. Зальёт БД на ФТПШник по указанному пути (желательно через WinSCP - он уже есть на всех серверах)
  4. Удалит зархивированный бекап.
  5. Если что-то пошло не так-то в папке, в которой лежит наш скрипт, должен появиться error-лог с указанием, на каком шаге упало и почему. В случае успешного завершения скрипта, лог писать не надо.


Параметры, которые задаются переменными в начале скрипта:

  • Имя файла настроек
  • Имя бд на SQL (лежит в отдельном файле настроек)
  • Папка, куда положить бекап БД с sql (лежит в отдельном файле настроек)
  • Логин и пароль на SQL сервер (лежит в отдельном файле настроек)
  • Логин и пароль на ФТП сервер (лежит в отдельном файле настроек)
  • Путь на ФТП, куда заливать бекап (лежит в отдельном файле настроек)






Второй скрипт (bat или powershell), который будет делать следующие действия:

  1. Инициализирует настройки из текстовика настроек, который лежит в той же папке, что и наш скрипт.
  2. Зайдёт на ФТПШник по указанному пути (желательно через WinSCP - он уже есть на всех серверах). Найдёт там самый свежий бекап, по дате создания файла.
  3. Скачает бекап в папку из настроек и разархивирует его в ту же папку.
  4. Подключится к MS SQL Server 2014 и выше с авторизацией по логину паролю (не windows-авторизация) и развернёт бекап в указанное имя БД. При разворачивании надо, чтобы установлены параметры:
    https://yadi.sk/i/Za2PzWGH79hNGA
  5. Удалит скачанный и разархивированный бекапы
  6. Если что-то пошло не так-то в папке, в которой лежит наш скрипт, должен появиться error-лог с указанием, на каком шаге упало и почему. В случае успешного завершения скрипта, лог писать не надо.




Параметры, которые задаются переменными в начале скрипта:

  • Имя файла настроек
  • Логин и пароль на ФТП сервер (лежит в отдельном файле настроек)
  • Путь на ФТП, откуда сливать бекап (лежит в отдельном файле настроек)
  • Папка, куда положить бекап (лежит в отдельном файле настроек)
  • Имя бд на SQL, куда восстанавливать (лежит в отдельном файле настроек)
  • Логин и пароль на SQL сервер (лежит в отдельном файле настроек)