Синхронизация баз

Обсуждение вопросов по администрированию СУБД Progress OpenEdge
xGoodWin
Старожил
Сообщения: 16
Зарегистрирован: 16 ноя 2007, 16:48
Контактная информация:

Синхронизация баз

Сообщение xGoodWin » 30 авг 2012, 22:25

Приветствую уважаемый форум!

Есть база на боевом сервере и база на резервном сервере. Требуется периодически синхронизировать базы.

В моем случае, я не стал заморачиваться с реплицированием, поставил скрипты в кроне:
prorest $DataBase $BACKUPFILE >> $LOGFILE

Но осталась небольшая проблема, в случае если база уже существует в каталоге назначения эта команда будет спрашивать подтверждение от человека. А это не есть хорошо для автоматизации процесса.

Кто как решал проблему синхронизации?

Аватара пользователя
dmitri
Старожил
Сообщения: 1016
Зарегистрирован: 04 авг 2005, 16:19
Откуда: Pennsylvania, USA
Контактная информация:

Сообщение dmitri » 30 авг 2012, 23:22

prorest $DataBase $BACKUPFILE <<EOF
y
EOF

# EOF -- End of file. Или любое другое слово.

Аватара пользователя
dmi
Старожил
Сообщения: 1523
Зарегистрирован: 27 сен 2001, 03:00
Откуда: Москва
Контактная информация:

Сообщение dmi » 31 авг 2012, 09:13

dmitri писал(а):prorest $DataBase $BACKUPFILE <<EOF
y
EOF

# EOF -- End of file. Или любое другое слово.


Я бы еще проверил, а вдруг база уже запущена?

код взял из prokb

Код: Выделить всё

proutil mydb -C busy
if [ $? != 0 ]
then
  echo
  echo "Do you want to use 'proshut' to force users off\
    the system?"
  read ans
  if [ "$ans" = y ]
  then
    proshut -by mydb
  else
    echo "Backup will not be performed."
    exit
  fi
fi
echo "Beginning backup."
# Backup procedure
/dmi

http://pro4gl.ru - 4gl блог

Аватара пользователя
Arelav
Администратор
Сообщения: 1880
Зарегистрирован: 25 мар 2005, 17:05
Откуда: Progress Technologies
Контактная информация:

Re: Синхронизация баз

Сообщение Arelav » 31 авг 2012, 11:23

xGoodWin писал(а):Есть база на боевом сервере и база на резервном сервере. Требуется периодически синхронизировать базы.


Какая версия OpenEdge?

Что мешает создать AI-репликацию? База на резервном сервере только на случай аварии, или предполагается её использованием пользователями для отчетов?

Почему бы не использовать OpenEdge Replication или Replication Plus? В последнем случае резервные базы можно еще использовать как "сервера отчетности".

На счет выбранного вами способа синхронизации. Какой размер у базы? Какова тенденция ее роста? База будет расти, а значит время простоя для бэкапа постоянно увеличиваться будет.

xGoodWin
Старожил
Сообщения: 16
Зарегистрирован: 16 ноя 2007, 16:48
Контактная информация:

Сообщение xGoodWin » 31 авг 2012, 22:05

Большое спасибо коллеги, за ответы!

Вариант с prorest (1 раз в сутки) пока оптимален.
Сервер будет stand-by, для отчетов не используется

Аватара пользователя
dmitri
Старожил
Сообщения: 1016
Зарегистрирован: 04 авг 2005, 16:19
Откуда: Pennsylvania, USA
Контактная информация:

Re: Синхронизация баз

Сообщение dmitri » 28 авг 2014, 23:39

Arelav писал(а):Почему бы не использовать OpenEdge Replication или Replication Plus? В последнем случае резервные базы можно еще использовать как "сервера отчетности".

В случае OpenEdge Replication Plus можно ли писать отчеты на SQL?
То есть на Target DB можно ли запустить proserve не для 4GL, а для SQL ?
-ServerType SQL или как это там делается?

Аватара пользователя
dmi
Старожил
Сообщения: 1523
Зарегистрирован: 27 сен 2001, 03:00
Откуда: Москва
Контактная информация:

Re: Синхронизация баз

Сообщение dmi » 28 авг 2014, 23:53

В случае OpenEdge Replication Plus можно ли писать отчеты на SQL?
То есть на Target DB можно ли запустить proserve не для 4GL, а для SQL ?
-ServerType SQL или как это там делается?


У меня база поднята нормально, как и в рабочей конфигурации (даже лучше, потому что сервер мощнее продукции пока). Насколько я помню -у меня там тоже есть сервер с ServerType SQL, остальные - строго 4GL Only.
В случае Repl Plus и режима -Extended Read Only у тебя та же самая БД, только ты туда писать не можешь.
Я вот не помню - подсоединялся туда кто-нибудь или нет по SQL?
Могу посмотреть завтра, не хочется заходить по vpn на работу ( у нас уже поздно).
/dmi



http://pro4gl.ru - 4gl блог

Аватара пользователя
Arelav
Администратор
Сообщения: 1880
Зарегистрирован: 25 мар 2005, 17:05
Откуда: Progress Technologies
Контактная информация:

Re: Синхронизация баз

Сообщение Arelav » 29 авг 2014, 09:05

dmitri писал(а):В случае OpenEdge Replication Plus можно ли писать отчеты на SQL?
То есть на Target DB можно ли запустить proserve не для 4GL, а для SQL ?
-ServerType SQL или как это там делается?


Можно.
2014-08-29 10-02-37 With the OpenEdge 11.3 [Работает] - Oracle VM VirtualBox.png
2014-08-29 10-02-37 With the OpenEdge 11.3 [Работает] - Oracle VM VirtualBox.png (38.71 КБ) 11452 просмотра


Единственно, вы не можете создать SQL view на Target, посколько она в read only. Т.е. если нужны SQL views надо создавать их на Source.

Аватара пользователя
George
Старожил
Сообщения: 2871
Зарегистрирован: 12 май 2004, 17:03
Откуда: Питер

Re:

Сообщение George » 29 авг 2014, 09:56

dmi писал(а):Я бы еще проверил, а вдруг база уже запущена?


Я бы еще проверил не поврежден ли бэкап, которым target база будет затерта. Вполне вероятна ситуация когда бэкап на source базе завершился в середине процесса по ошибке или когда файл бэкапа повредился при передаче по сети. Если начать восстанавливать такой бэкап, то target база будет убита, имеющийся бэкап бесполезен и возможно из-за повреждения source базы. И с чем тогда останемся?

Т.е. предлагаю проверять:
prorest foo backup -vp | grep "verified ok"

Аватара пользователя
dmitri
Старожил
Сообщения: 1016
Зарегистрирован: 04 авг 2005, 16:19
Откуда: Pennsylvania, USA
Контактная информация:

Re: Синхронизация баз

Сообщение dmitri » 29 авг 2014, 22:41

Спасибо всем за исчерываюшие ответы.
Понятно что вьюшки (SQL view) на Target делать нельзя.
Create view -- это изменение схемы базы, а схему как и данны менять нельзя. В Оракле так же.

Но что отличается, так это то что запуск Target базы оказывается осушествяется той же командой что и замуск Soruce.

Код: Выделить всё

proserve sports -m3 -S xxx

Отличие пожалуй только в -m3

В оракле запуск Source базы (startup) и запуск Target базы отличаются -- совсем разные команды.

Всем счастливых выходных. У нас праздник -- день труда 1 сентября, как у вас 1 мая.

Аватара пользователя
Arelav
Администратор
Сообщения: 1880
Зарегистрирован: 25 мар 2005, 17:05
Откуда: Progress Technologies
Контактная информация:

Re: Синхронизация баз

Сообщение Arelav » 01 сен 2014, 11:20

dmitri писал(а):Отличие пожалуй только в -m3



Собственно, и это тоже даже не отличие.
В приведенном мной примере я просто уже для стартованной Target-базы стартовал дополнительного брокера (-m3 это параметр для старта таких брокеров), который будет обслуживать только SQL-клиентов (-ServerType SQL).
А в общем, старт Target абсолютно аналогичен как и Source, мало того, определенные параметры старта должны быть одинаковыми. Да, и если не указывать специально при старте основного или дополнительного брокера параметр -ServerType со значениямми 4GL или SQL, то такой брокер по умолчанию будет обслуживать и 4GL-, и SQL-клиентов.

Аватара пользователя
dmitri
Старожил
Сообщения: 1016
Зарегистрирован: 04 авг 2005, 16:19
Откуда: Pennsylvania, USA
Контактная информация:

Re: Синхронизация баз

Сообщение dmitri » 01 сен 2014, 19:11

Понятно, то есть все то же самое как и в отношении к основной базе (Source), можно один брокер который по умолчанию будет обслуживать и 4GL-, и SQL-клиентов.
Но лучше наверно одтельно. Понятно.

Вопрес о лицензии: Лицензию OE Replication Plus надо устанавкливать на тот сервер где Source , где Target или на оба сервера ?

Аватара пользователя
Arelav
Администратор
Сообщения: 1880
Зарегистрирован: 25 мар 2005, 17:05
Откуда: Progress Technologies
Контактная информация:

Re: Синхронизация баз

Сообщение Arelav » 02 сен 2014, 08:53

dmitri писал(а):Вопрес о лицензии: Лицензию OE Replication Plus надо устанавкливать на тот сервер где Source , где Target или на оба сервера ?

Устанавливается на оба сервере, мало того, допускается установка на два резервных сервера, т.е. на промышленный сервер + два резервных сервера.
Вот выдержка из Policy Guide.
Для OpenEdge Replication for Enterprise:
NOTE: Licensees that purchase OpenEdge Replication for Enterprise
using the OpenEdge Add-On Concurrent User or OpenEdge Add-On
Access Agent license model and have a valid Production Server license for
Enterprise RDBMS are also granted a Disaster Recovery Server license
for Enterprise RDBMS. This license grants a licensee the right to run
Enterprise RDBMS on up to two servers for disaster recovery purposes.
Licensees will not be required to purchase a Disaster Recovery Server.


Для OpenEdge Replication Plus for Enterprise:
Licensees that purchase OpenEdge Replication Plus for Enterprise
using the OpenEdge Add-On Concurrent User or OpenEdge Add-On
Access Agent license model and have a valid Production Server license for
Enterprise RDBMS are also granted a Disaster Recovery Server and
Reporting Server license
for Enterprise RDBMS. This license grants a
licensee the right to run Enterprise RDBMS on up to two servers for
disaster recovery and reporting purposes. Licensees will not be required
to purchase a Disaster Recovery Server or Reporting Server license
.

Аватара пользователя
dmitri
Старожил
Сообщения: 1016
Зарегистрирован: 04 авг 2005, 16:19
Откуда: Pennsylvania, USA
Контактная информация:

Re: Синхронизация баз

Сообщение dmitri » 04 сен 2014, 00:32

Спасибо. На тестовый сервер уже установил.
А можно просто для тестирования реплицировать sports базу из одного директория в другой, на том же сервере? Не хочется пока заморачиватся с установкой OE Repl Plus на второй сервер.

Аватара пользователя
Arelav
Администратор
Сообщения: 1880
Зарегистрирован: 25 мар 2005, 17:05
Откуда: Progress Technologies
Контактная информация:

Re: Синхронизация баз

Сообщение Arelav » 04 сен 2014, 09:19

Можно.