Резервное копирование базы данных из командной строки

Ваші пропозиції щодо розширення функціоналу програми.
Відповісти
micmanm
Повідомлень: 21
З нами з: 05 липня 2011, 10:34

Резервное копирование базы данных из командной строки

Повідомлення micmanm » 05 липня 2011, 10:38

В нашей базе 11 предприятий. Размер полного архива 25Мб. Размер базы 144Мб.
Если выполнять резервное копирование стандартным способом при выходе из программы, выбрав резервное копирование для всех предприятий,
то эта процедура на сервере (Dual Xeon HT 2,8ГГц, 5Гб ОЗУ, RAID5) выполняется около полутора часов, а это неприемлемо.

Вопрос №1
Почему так долго???
Бэст Звит резервное копирование одного предприятия выполнял за 1-2 минуты
Вопрос №2
Резервное копирование из командной строки - возможно ли такое?

Меньшиков Александр
Руководитель проекта
Повідомлень: 49
З нами з: 20 червня 2011, 17:15

Re: Резервное копирование базы данных из командной строки

Повідомлення Меньшиков Александр » 05 липня 2011, 17:38

1. Попробуйте в Плюсе создать рк у которой база превышает 300 мб. а в медке при тесте делали РК на предприятие у которого база 1 гб. из-за возможности обработки больших объемов пришлось пожертвовать скоростью создания.
2. если сами настроите планировщик задач

micmanm
Повідомлень: 21
З нами з: 05 липня 2011, 10:34

Re: Резервное копирование базы данных из командной строки

Повідомлення micmanm » 07 липня 2011, 14:51

Планировщик настрою, расскажите как запустить Р.К. из командной строки

verwolf
Повідомлень: 1
З нами з: 15 вересня 2011, 14:45

Re: Резервное копирование базы данных из командной строки

Повідомлення verwolf » 15 вересня 2011, 15:09

Присоединяюсь к вопросу - предполагается ли поддержка командной строки?
Или, как вариант - отдельный модуль в серверной версии, выполняемый от администратора копии m.e.doc, который бы делал резервные копии, складывал по указываемому пути, и писал результат выполнения в лог (и/или отправлял на е-мейл). Заодно - который бы опрашивал обновления, при их наличии - обновлял программу.

В конце концов пусть это будет отдельная услуга с какой-то ценой..

micmanm
Повідомлень: 21
З нами з: 05 липня 2011, 10:34

Re: Резервное копирование базы данных из командной строки

Повідомлення micmanm » 21 вересня 2011, 16:49

Разработчики, ау!
В 1С 77 есть так называемый пакетный режим для выполнения различных адм. действий и в том числе выполнения резервных копий.
Чем медок хуже???

volodymyr.galytskyy
Повідомлень: 307
З нами з: 20 вересня 2011, 12:59
Звідки: Житомир
Контактна інформація:

Re: Резервное копирование базы данных из командной строки

Повідомлення volodymyr.galytskyy » 21 вересня 2011, 17:05

Навіщо винаходити велосипед. Скачайте Effector saver, встановіть, налагодьте і радійте життю.
Правильні бджоли носять правильний мед.

Родин Евгений

Re: Резервное копирование базы данных из командной строки

Повідомлення Родин Евгений » 21 вересня 2011, 17:08

В сетевой версии имеется модуль "Мониторинг", он напорядок выше административных функций Плюса.
А вообще модуль адмиминистрирования сейчас пересматривается. Должно быть со временем больше функций, сейчас главное - стабильная работа Медка.
Скоро конец года, и составление годовой отчетности. Пользователи нас не поймут, если внимание уделим "администрированию", а отчетность будет глючить...Тем более что "Плюс" к тому времени планируется отбросить в прошлое, и хочется свести к минимуму сообщения "Верните нам старый добрый Плюс!"
Со временем внесем изменения, - или до, или после годовой отчетности.

volodymyr.galytskyy
Повідомлень: 307
З нами з: 20 вересня 2011, 12:59
Звідки: Житомир
Контактна інформація:

Re: Резервное копирование базы данных из командной строки

Повідомлення volodymyr.galytskyy » 21 вересня 2011, 23:21

micmanm писав:Разработчики, ау!
В 1С 77 есть так называемый пакетный режим для выполнения различных адм. действий и в том числе выполнения резервных копий.
Чем медок хуже???
В М.Е.Доку є кращий механізм: архівування при завершенні роботи. Як на мене, цього достатньо в такій реалізації як є.
Єдине зауваження ДОДАТИ ВЕРСІЮ (РЕДАКЦІЮ) ПРОГРАМИ В ІМ'Я ФАЙЛА АРХІВУ
Правильні бджоли носять правильний мед.

MidnightRAT
Повідомлень: 2
З нами з: 30 вересня 2011, 11:22

Re: Резервное копирование базы данных из командной строки

Повідомлення MidnightRAT » 30 вересня 2011, 12:19

volodymyr.galytskyy писав: В М.Е.Доку є кращий механізм: архівування при завершенні роботи. Як на мене, цього достатньо в такій реалізації як є.
Недостаточно. И это не лучший механизм.
M.e.doc сервер, 5-10 клиентов, база > 250Mb, работают не все и не каждый день. Кого заставить заходить и делать резервную копию каждый день?

Необходима возможность запуска из планировщика с параметрами командной строки. Или отдельное приложение, опять же, с параметрами командной строки.

volodymyr.galytskyy
Повідомлень: 307
З нами з: 20 вересня 2011, 12:59
Звідки: Житомир
Контактна інформація:

Re: Резервное копирование базы данных из командной строки

Повідомлення volodymyr.galytskyy » 30 вересня 2011, 16:58

MidnightRAT писав: M.e.doc сервер, 5-10 клиентов, база > 250Mb, работают не все и не каждый день. Кого заставить заходить и делать резервную копию каждый день?
Навіщо ж архівувати за той день, коли роботи не було.
Я вам пораджу архівувати файл Zvit.fdb якимось автоматичним архіватором, наприклад Effector saver.
Не сприйміть за рекламу. Сам користуюсь. Зручна річ.
Правильні бджоли носять правильний мед.

bulgakoff08
Повідомлень: 25
З нами з: 26 вересня 2011, 16:46
Звідки: Харьков, ЧП "Мейн-Мейкер"

Re: Резервное копирование базы данных из командной строки

Повідомлення bulgakoff08 » 04 жовтня 2011, 11:15

Присоединяюсь к предложению командной строки с параметрами, в планировщике создать запись вроде "C:\documents and settings\all users\application data\medoc\medoc\ezvit.exe -backup -all -autoexit", настроенную на запуск в полночь, было бы очень кошерно, особенно для админов!
Зображення

Малышъ
Повідомлень: 34
З нами з: 17 жовтня 2011, 08:21

Re: Резервное копирование базы данных из командной строки

Повідомлення Малышъ » 18 жовтня 2011, 10:35

volodymyr.galytskyy писав:
micmanm писав:Разработчики, ау!
В 1С 77 есть так называемый пакетный режим для выполнения различных адм. действий и в том числе выполнения резервных копий.
Чем медок хуже???
В М.Е.Доку є кращий механізм: архівування при завершенні роботи. Як на мене, цього достатньо в такій реалізації як є.
Єдине зауваження ДОДАТИ ВЕРСІЮ (РЕДАКЦІЮ) ПРОГРАМИ В ІМ'Я ФАЙЛА АРХІВУ
Да, только вот проблема есть с этим архивированием - делается оно в локальную папку, а не в сетевую - НЕПОРЯДОК, однако.
Для простого копирования можно использовать скрипт BackUp.js и засунуть его в шедул винды

Код: Виділити все

//========================================C:\Scripts\BackUp.js==============================
// Скрипт создает резервные копии файлов, 
// помещая их в подкаталог с названием дня недели
//======================================================================

var sourse_dir = "x:\\Medoc\\db";  //каталог-источник
var backup_dir = "y:\\Archive\\MeDoc";   //каталог для резервных копий
var interactive = 0; //показ информации об успешном копировании. 1-да, 0-нет
var CheckNewDate = 0; //копировать только если дата изменилась. 1-да, 0-нет
var WinRAR = '"C:\\Program Files\\WinRAR\\WinRAR.exe"';
//======================================================================

var success = true;
var backup_dir_day = backup_dir + "\\" +  fnGenName();
var fso = new ActiveXObject("Scripting.FileSystemObject");

if( !fso.FolderExists(backup_dir) )
  {
  WScript.Echo("Путь к каталогу копий не найден");
  WScript.quit();
  }

if( !fso.FolderExists(backup_dir_day) )
  fso.CreateFolder(backup_dir_day);


if( (CheckNewDate && NewDate()) || !CheckNewDate ) //дата новая или не проверять дату
  {
  var shell = new ActiveXObject("WScript.Shell"); 
  shell.Run(WinRAR + " a -u -as -r -m0 -ibck -dh -inul " + backup_dir_day + "\\" + fnGenName() + ".rar " + sourse_dir);
  }

if( CheckNewDate && success ) //если есть проверка даты и успешное завершение
  {
  var fso = new ActiveXObject("Scripting.FileSystemObject");
  fso.CreateTextFile(backup_dir_day + "\\created", true);
  }

if( interactive )
  {
  if( success )
    WScript.Echo("Процесс создания резервной копии закончен");
  else
    WScript.Echo("Процесс создания резервной копии закончен с ошибкой");
  }
//===========================================================================
function fnGenName()
{
var date = new Date();

var weekday=new Array(7)
weekday[0]="Воскресенье"
weekday[1]="Понедельник"
weekday[2]="Вторник"
weekday[3]="Среда"
weekday[4]="Четверг"
weekday[5]="Пятница"
weekday[6]="Суббота"

return(weekday[date.getDay()]);
}
//======================================================================
function FileCopy(filename)
{
if( success == false )
  return;

if( !fso.FileExists(sourse_dir + "\\" + filename) )
  {
  WScript.Echo("Файл-источник " + sourse_dir + "\\" + filename + " не найден");
  success = false;
  return;
  }

var File = fso.GetFile(sourse_dir + "\\" + filename);
File.Copy(backup_dir_day + "\\" + File.Name);
success = fso.FileExists(backup_dir_day + "\\" + File.Name);
}
//======================================================================
function NewDate()
{
if( !fso.FileExists(backup_dir_day + "\\created") )
  return true;

datefile = ("" + fso.GetFile(backup_dir_day + "\\created").DateLastModified).substr(0, 10);
datenow = ("" + Date()).substr(0, 10);
//WScript.Echo(datefile);
//WScript.Echo(datenow);
return datefile != datenow;
}
//======================================================================
volodymyr.galytskyy писав:
MidnightRAT писав: M.e.doc сервер, 5-10 клиентов, база > 250Mb, работают не все и не каждый день. Кого заставить заходить и делать резервную копию каждый день?
Навіщо ж архівувати за той день, коли роботи не було.
У меня 10 Бухов, каждый работает со своим предприятием или предприятиями. с какими именно - я не слежу. поэтому нужно все и каждый день

pavel
Повідомлень: 1017
З нами з: 01 липня 2011, 09:29
Контактна інформація:

Re: Резервное копирование базы данных из командной строки

Повідомлення pavel » 21 жовтня 2011, 13:18

для остановки службы и запуска скрипта делаем батник со след содержанием
sc stop ZvitGrp
C:\Scripts\BackUp.js
батник в расписание и все.

Малышъ
Повідомлень: 34
З нами з: 17 жовтня 2011, 08:21

Re: Резервное копирование базы данных из командной строки

Повідомлення Малышъ » 24 жовтня 2011, 16:00

pavel писав:для остановки службы и запуска скрипта делаем батник со след содержанием
sc stop ZvitGrp
C:\Scripts\BackUp.js
батник в расписание и все.
А запустить службу?
Как написать батник немного помню, но некоторые тонкости забыл уже.... нужно дождаться выполнения скрипта (или правильнее сделать паузу 300-600 сек и запустить следующую команду.
Но опять таки это костыль. хочется нормально средствами самой программы. это делать

FagotAdmin
Повідомлень: 26
З нами з: 26 листопада 2012, 09:02
Звідки: Украина
Контактна інформація:

Re: Резервное копирование базы данных из командной строки

Повідомлення FagotAdmin » 28 листопада 2012, 14:19

:: остановили службу
SC STOP ZvitGrp1

:: пинг самого себя, типа паузы в выполнении скрипта 07 сколько раз пинговать можно поставить хоть 100 из расчета 1 пинг 1 секунда
127.0.0.1 -n 07

:: запускаем службу медка
SC START ZvitGrp1

:: выходим
EXIT
Век живи, век учись...

Відповісти

Повернутись до “Побажання”