|
передача всей базы данных 1 раз в час в онлайн режиме
|
|||
---|---|---|---|
#18+
Модель применения чисто потоковая, поэтому все довольно просто - триггер на after insert, в нем вызов udf, которая пишет в файл вставленную запись. Можно еще для чистоты повесить триггер на transaction rollback, чтобы не реплицировать откаченную запись, хотя это будет очень редкий кейс. В более свежих версиях птицы можно было бы юзать события (отдельная утилитка, которая бы висела на сервере, ловила события вставки и дальше полет фантазии) или execute statement, чтобы сразу подключаться к базе2 и добавлять запись в нее (зависит от частоты вставки, т.к. каждый ES на внешнюю базу - это новое подключение, старт и завершение транзакции). ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2016, 10:24 |
|
передача всей базы данных 1 раз в час в онлайн режиме
|
|||
---|---|---|---|
#18+
Mari.P, Добавь во все таблицы колонку REPLICATED:TIMESTAMP По запуску репликатора отбираешь все строки с REPLICATED IS NULL и копируешь их, выставляя REPLICATED = CURRENT_TIMESTAMP ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2016, 10:43 |
|
передача всей базы данных 1 раз в час в онлайн режиме
|
|||
---|---|---|---|
#18+
AriochПо запуску репликатора отбираешь все строки с REPLICATED IS NULL и копируешь их, выставляя REPLICATED = CURRENT_TIMESTAMPАки Дункан Маклауд "должен остаться только один". А если надо в несколько пунктов назначения доставить? на каждую таблицу будешь N таймштампов навешивать? А как решить в каком порядке выгребать данные? Аццкий Адъ. Автору не занимайтесь самолечением, вам нужен репликатор, вот его и надо купить, цена у него не космическая ни разу. Костыли с таймштампами и УДФам запросто выйдут боком. Нормальный путь для репликатора это писать триггерами данные для репликации мы пишем плайнтекст, Сибиряков пишет в бинарном формате, потом на требуемое кол-во таргет баз все это накатывается. Когда репликатор работает строго в одну сторону, все сильно упрощается. С инкрементарным бэкапом все это реализовать хлопотней, не так удобно. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2016, 10:58 |
|
передача всей базы данных 1 раз в час в онлайн режиме
|
|||
---|---|---|---|
#18+
Mari.P2. Так сколько времени я их просравниваю? Зависит от кривизны рук и размера таблиц. В идеале - не дольше чем делается бэкап. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2016, 11:08 |
|
передача всей базы данных 1 раз в час в онлайн режиме
|
|||
---|---|---|---|
#18+
> А если надо в несколько пунктов назначения доставить? 1) тут другой случай 2) тогда реплицировать в промежуточную БД - формат которой можно уже как угодно крутить - а оттуда уже по остальным ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2016, 11:30 |
|
передача всей базы данных 1 раз в час в онлайн режиме
|
|||
---|---|---|---|
#18+
Hello, Го-стхи! You wrote on 2 августа 2016 г. 11:35:37: Го-стхи> триггер на after insert, в нем вызов udf, которая пишет в файл вставленную запись.долболоб! Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2016, 11:36 |
|
передача всей базы данных 1 раз в час в онлайн режиме
|
|||
---|---|---|---|
#18+
МимопроходящийHello, Го-стхи! You wrote on 2 августа 2016 г. 11:35:37: Го-стхи> триггер на after insert, в нем вызов udf, которая пишет в файл вставленную запись.долболоб! Обоснуй или не флуди ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2016, 11:38 |
|
передача всей базы данных 1 раз в час в онлайн режиме
|
|||
---|---|---|---|
#18+
Го-стхи, на хрен нужен UDF когда есть E.T. ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2016, 12:01 |
|
передача всей базы данных 1 раз в час в онлайн режиме
|
|||
---|---|---|---|
#18+
Hello, Arioch! You wrote on 2 августа 2016 г. 12:08:23: Arioch> на хрен нужен UDF когда есть E.T. ?E.T. в данном случае тоже не ACID. ну а UDF, вообще "не пришей кобыле яйца" Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2016, 12:10 |
|
передача всей базы данных 1 раз в час в онлайн режиме
|
|||
---|---|---|---|
#18+
Го-стхине флудифлудеров я пока вижу двоих Го-стхи и Arioch. Вам обоим стоит немного подумать, вы предлагаете пройтись по вилам и граблям. Собственно автор предупрежден, дальше дело личное идти туда где обрыв или нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2016, 12:17 |
|
передача всей базы данных 1 раз в час в онлайн режиме
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky, варианты без граблей он отрицает 19480872 тогда ему предлагают варианты с наиболее изученными и мягкими граблями, которые можно обойти при аккуратности ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2016, 12:19 |
|
передача всей базы данных 1 раз в час в онлайн режиме
|
|||
---|---|---|---|
#18+
Ariochкоторые можно обойти при аккуратности Нельзя: триггеров на сейфпоинты не придумали. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2016, 12:49 |
|
передача всей базы данных 1 раз в час в онлайн режиме
|
|||
---|---|---|---|
#18+
Ariochна хрен нужен UDF когда есть E.T. ? External table, что ли? Не думаю. Во-первых, не уверен, можно ли ее создавать и дропать в триггере, а во-вторых, в случае отката все равно придется что-то выдумывать. МимопроходящийHello, Arioch! You wrote on 2 августа 2016 г. 12:08:23: Arioch> на хрен нужен UDF когда есть E.T. ?E.T. в данном случае тоже не ACID. ну а UDF, вообще "не пришей кобыле яйца" Не вижу проблемы. У ТС задача на insert-delete, никаких update. Откаты можно ловить в триггере и записывать специальный флаг (в файл репликации, соответственно, на каждый insert писать id транзакции). Вариант косой, конечно, но особых граблей не видно. Хотя в общем случае хранить таблицу истории прямо в БД более правильно. Ivan_Pisarevskyфлудеров я пока вижу двоих Го-стхи и Arioch. Вам обоим стоит немного подумать, вы предлагаете пройтись по вилам и граблям. Собственно автор предупрежден, дальше дело личное идти туда где обрыв или нет. Попрошу! Пишу исключительно по делу, коли где ошибаюсь - так хочу знать, в чем. Исключительно в целях самообразования и раскапывания истины, кто знает - вдруг и самому придется чем-то подобным озадачиться. А вот цедимые сквозь зубы реплики утомленных аксакалов делу ничуть не помогают. Dimitry SibiryakovAriochкоторые можно обойти при аккуратности Нельзя: триггеров на сейфпоинты не придумали. М-да, здесь проблема. Но в общем случае. Если в конкретной базе вставленная запись уже не может быть отменена (кроме как по rollback, который можно поймать в триггере) - этот фактор роли вроде бы не играет. Всё имхо. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2016, 14:39 |
|
передача всей базы данных 1 раз в час в онлайн режиме
|
|||
---|---|---|---|
#18+
Го-стхиrollback, который можно поймать в триггере Нельзя: в 1.5 нет триггеров на rollback. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2016, 14:46 |
|
передача всей базы данных 1 раз в час в онлайн режиме
|
|||
---|---|---|---|
#18+
Го-стхиА вот цедимые сквозь зубы реплики утомленных аксакалов делу ничуть не помогают.форум это не курсы молодого бойца, репликации обсуждают уже точно больше 10 лет, каждый раз "плясать от печки" несколько странно. На конкретное место в твоей схеме, где она обломится указано. МП отвечает строго по делу, это я тут "по древу растекаюсь". ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2016, 14:58 |
|
передача всей базы данных 1 раз в час в онлайн режиме
|
|||
---|---|---|---|
#18+
Го-стхиможно ли ее создавать и дропать в триггере с дуба рухнул ??? конечно же внешняя таблица - как и ЛЮБЫЕ метаданные - создается ОДИН раз а ты что, каждую запись хочешь в отдельный файл сбрасывать? весь диск засрать что ли однокластерным мусором? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2016, 15:10 |
|
передача всей базы данных 1 раз в час в онлайн режиме
|
|||
---|---|---|---|
#18+
Hello, Го-стхи! You wrote on 2 августа 2016 г. 17:16:36: Го-стхи> Не вижу проблемы.да потому что ты лошара! Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2016, 17:17 |
|
передача всей базы данных 1 раз в час в онлайн режиме
|
|||
---|---|---|---|
#18+
Ivan_Pisarevskyфорум это не курсы молодого бойца, репликации обсуждают уже точно больше 10 лет, каждый раз "плясать от печки" несколько странно. На конкретное место в твоей схеме, где она обломится указано. МП отвечает строго по делу, это я тут "по древу растекаюсь". Не КМБ? Странно. А то я тут постоянно вижу темы из серии "помогите написать select А и Б from В", и они ни у кого вроде не вызывают зубовного скрежета. Обсуждать-то обсуждают, а какого-то вменяемого результата не видать. Тогда бы хоть в FAQ добавили, дескать, репликация своими силами - табу, юзайте сторонний спец софт и не парьте мозг. А еще лучше была бы статейка, куда всех страждущих неофитов направляли бы черпать мудрости. "На конкретное место в твоей схеме, где она обломится указано" Где? Вот хоть убей - конкретики не вижу. "Дельность" этого самого дела оставим за кадром. Ariochс дуба рухнул ??? конечно же внешняя таблица - как и ЛЮБЫЕ метаданные - создается ОДИН раз Я не был уверен, потому так и сказал. С ET не работал. Ariochа ты что, каждую запись хочешь в отдельный файл сбрасывать? весь диск засрать что ли однокластерным мусором? Разумеется нет. Начинать новый файл с шагом репликации, иначе его просто так не скопируешь, а тогда какой в ET плюс по сравнению с обычной таблицей? Твое ж предложение, вот и развил бы тему подробнее ;) Dimitry SibiryakovНельзя: в 1.5 нет триггеров на rollback. Вот! Наконец полезное сообщение в этой теме. Кратко, по делу, без гонора. Дмитрий, уважаю. Мимопроходящийда потому что ты лошара! Прошу присутствующего здесь модератора зафиксировать оскорбление пользователя, а также флуд, и принять соответствующие меры. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2016, 18:52 |
|
передача всей базы данных 1 раз в час в онлайн режиме
|
|||
---|---|---|---|
#18+
Го-стхиТогда бы хоть в FAQ добавили, дескать, репликация своими силами - табу Не табу конечно, но репликацию своими силами сделать не так-то просто. Новички это не сделают точно, а если и сделают то с граблями. Те кто знает как это делать, никогда не будут применять для этих целей UDF. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2016, 19:07 |
|
передача всей базы данных 1 раз в час в онлайн режиме
|
|||
---|---|---|---|
#18+
Симонов Денисрепликацию своими силами сделать не так-то просто Вообще-то это просто. Своими силами и исключительно для своей базы это практически тривиальная задача. Все решения давно описаны в статьях и обсуждены на форумах. По ссылке kdv даже лежит болванка репликатора. Но времени, конечно, придётся потратить больше чем на 250 баксов. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2016, 19:21 |
|
передача всей базы данных 1 раз в час в онлайн режиме
|
|||
---|---|---|---|
#18+
Го-стхиAriochа ты что, каждую запись хочешь в отдельный файл сбрасывать? весь диск засрать что ли однокластерным мусором? Разумеется нет. Начинать новый файл с шагом репликации, иначе его просто так не скопируешь, а тогда какой в ET плюс по сравнению с обычной таблицей? Твое ж предложение, вот и развил бы тему подробнее Это не моё предложение. моё предложение было - апгрейднуться до Nbackup - 19480872 если это не получается, то второе предложение, хуже - добавить по столбцу во все интересующие таблицы - 19485321 что же до конкретно этого - то это было "если уж делать триггерами, то не через UDF, а тогда хотя бы через E.T." Чем E.T. лучше - cтандартный функционал сервера, против всех возможных косяков в самописной UDF А чистить эти файлы можно например по ночам, когда приложение будет закрыто. Но как я сказал, это не совет, а "уже если идёте туда, то лучше хотя бы переобуйтесь" ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2016, 21:47 |
|
передача всей базы данных 1 раз в час в онлайн режиме
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovПо ссылке kdv даже лежит болванка репликатора. Но времени, конечно, придётся потратить больше чем на 250 баксов. Да вроде даже в IBE это встроено, http://www.ibexpert.net/ibe/index.php?n=Doc.LogManager ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2016, 21:52 |
|
передача всей базы данных 1 раз в час в онлайн режиме
|
|||
---|---|---|---|
#18+
День добрый уважаемые профессионалы! Что сделала. 1. Апгрейдила сервер Firebird с версии 1.5 до версии 2.0 с целью воспользоваться утилитой nbackup Апгрейд прошел успешно, вопрос по утилите nbackup. Допустим я хочу создавать инкрементальный бэкап каждый час. и соответственно восстанавливать на удаленном сервере. c созданием все понятно: http://firebirdsql.org/manual/ru/nbackup-backups-ru.html#nbackup-backups-pract-ru Ночью делаем полную резервную копию: Код: sql 1.
и восстанавливаем ее сразу на удаленном узле Код: sql 1.
через час делаем рез копию уровня 1 Код: sql 1.
И хотим сразу восстановить ее на удаленном узле. Но в документации написано, что необходимо восстанавливать последовательно, те Код: sql 1.
Означает-ли это, что восстановление из инкрементальной резервной копии пойдет медленнее, чем из полной копии? и скажем на 9 час восстановления у меня таких файлов в цепочке будет уже 9? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2016, 09:43 |
|
передача всей базы данных 1 раз в час в онлайн режиме
|
|||
---|---|---|---|
#18+
Mari.P, Надо было сразу обновляться на 2.5 или 3.0. Двойка уже давно снята с поддержки. Тем более там какие-то баги были в nbackup. Mari.PОзначает-ли это, что восстановление из инкрементальной резервной копии пойдет медленнее, чем из полной копии? Да. В 2.5 инкрементные копии ещё и целиком читают файл БД на любом уровне. В 3.0 это значительно улучшено. Поэтому обычно делают план копирования чтобы не перебирать потом 100 инкрементов. Типа раз в день делают полную копию, а каждый час инкременты от неё. Восстанавливать с помощью nbackup сразу в БД можно будет в 4.0. Но в 4.0 будет и нативная логическая репликация master-slave. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2016, 09:54 |
|
передача всей базы данных 1 раз в час в онлайн режиме
|
|||
---|---|---|---|
#18+
Mari.P1. Апгрейдила сервер Firebird с версии 1.5 до версии 2.0 с целью воспользоваться утилитой nbackupНи в коем случае ! nbackup нормально работает только в 2.5 и выше Mari.PОзначает-ли это, что восстановление из инкрементальной резервной копии пойдет медленнее, чем из полной копии?Зависит от размера инкремента Mari.Pна 9 час восстановления у меня таких файлов в цепочке будет уже 9?Если каждый час делать инкремент 1-го уровня, то в цепочке будет всегда 2 файла. Но сам инкремент будет больше с каждым часом. Насколько - зависит от характера работы с БД. Если там обновляются одни и те же страницы, то может вообще не расти. Если каждый час делать инкремент следующего уровня, то инкременты будут потенциально меньшими (не обязательно), но в цепочке их нужно будет перечислить все. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2016, 10:07 |
|
|
start [/forum/topic.php?fid=40&msg=39284937&tid=1562027]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 266ms |
total: | 411ms |
0 / 0 |