Программный комплекс «Центр здоровья»
техническая поддержка => Программный комплекс «Центр здоровья» => Общие вопросы по программному комплексу => Тема начата: Максим Уполовников от 08 Декабря 2015, 10:27:43
-
Задача:
Необходимо выполнять резервирование базы данных ФК «Учёт пациентов ЦЗ» по расписанию.
Ранее это выполнялось вручную, через Microsoft SQL Server Management Studio. После определённых обстоятельств, появилось желание делать ежедневно, в автоматическом режиме.
Сценарий резервного копирования в моей версии ФК ЦЗ отсутствует. Где можно взять логику для реализации создания резервной копии БД из ФК «Учёт пациентов ЦЗ» с использованием планировщика задач?
-
Добавить планировщик в SQL Server Management Studio
-
Для начала разберёмся с первым вопросом.
Отсутствует сценарий резервного копирования как под пользователем, так и под админом. Можно ли его добавить? См. скриншот в первом сообщении.
-
Его нет.
Воспользуйтесь SQL Server Management Studio.
-
Я вижу, что его нет. Вопрос, могу ли я его добавить самостоятельно использовав файлы дистрибутива демонстрационной версии «ТМ:Здоровье», которая доступна для скачивания по ссылке (http://www.trustmed.ru/themes/trustmed2/material.asp?folder=1927&matID=1964)?
Код сценария Backup.cs состоит из 36 строк:
using System;
using System.IO;
using System.Windows.Forms;
using System.Text.RegularExpressions;
namespace Nessy
{
public class Backup : Logic
{
public override void Run()
{
try
{
//System.Diagnostics.Debugger.Break();
Directory.CreateDirectory(Application.StartupPath + "\\backups");
string fileName = Application.StartupPath + "\\backups\\last_backup.bak";
Regex regEx = new Regex(@"initial catalog=(?<DB>\w*)", RegexOptions.IgnoreCase);
Match m = regEx.Match(WorkSession.DbContext.ConnectionString);
GenTools.Log.AddMessage(WorkSession.DbContext.ConnectionString);
if (m.Success)
{
string query =
string.Format(
"BACKUP DATABASE [{1}] TO DISK = N'{0}' WITH NOFORMAT, INIT, NAME = N'Fiscal-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10",
fileName, m.Groups["DB"].Value);
GenTools.Log.AddMessage(query);
WorkSession.DbContext.ExecSqlNonQuery(query);
}
}
catch (Exception ex)
{
GenTools.Log.ExcSave(ex, false);
}
}
}
}
Приложил к сообщению архив со сценарием.
-
Можете попробовать, нужно добавить соответствующие файлы в каталог logic.
-
Сценарий подсунул в папку Logic.
Теперь, резервное копирование базы данных ПК ЦЗ, при необходимости, может произвести любой сотрудник со своего рабочего места, в ручном режиме.
В планировщик добавил задание на запуск сценария по расписанию, в автоматическом режиме.
Вопрос. Почему функция резервного копирования не была реализована в программном комплексе?
-
Не была заложена в технические требования во время разработки ПО.
-
Любая современная информационная система должна включать в себя функцию резервирования, не важно, что было заложено или не заложено. Это аксиома.
Но если говорить вашим языком, то необходимо руководствоваться техническим заданием к государственному контракту № 0195100000212000144-0132259-02 от 25 октября 2012 года (http://1oms.ru/themes/trustmed2/material.asp?folder=1970&matID=4471) на выполнение работ по доработке типовой информационной системы поддержки мероприятий по развитию профилактического направления медицинской помощи, направленной на поддержание здорового образа жизни «Центр здоровья».
На 18 листе есть пункт «Требования по сохранности информации при авариях», из него следует:
Должна быть предусмотрена возможность организации автоматического и/или ручного резервного копирования данных ИС средствами комплекса и СУБД, входящей в состав программно-технического комплекса организаций-пользователей
Ознакомиться с техническим заданием к контракту на доработку ПК ЦЗ вы можете в приложении к данному сообщению.
-
"или ручного резервного копирования данных"
Архивирование предусмотрено в режиме администрирования