|
Тема
|
Репликация... IB / Firebird
|
|
Автор |
PhantomAS (стар ерген®) |
Публикувано | 07.04.03 09:19 |
|
Няколко питания по въпроса - предварително се извинявам за неясното обяснение (може би)
1. Ще трябва да се боря с такова нещо - а не съм се занимавал с готовите продукти за това (по то4но съм си правил собствена доста ограничена система за това). Но сега проекта е по голям и няма да мога да използвам това което бях правил. Ще се радвам ако някой сподели малко опит и насоки с какво да се захвана първо.
Малко инфо за проекта - няма да бъде голям - едва ли ще надхвърля 100 000 реда - най-голямата таблица - около 10-15 полета предимно числа; около 10-15 таблици - повечето едва ли ще имат пове4е от 2-3000 реда.
Проблема е, че данните ще се модифицират на 2 места - т.е. - част от данните ще се модифицират на едно, а друга на друго място.
2. Във връзка с първото - дайте идеи за уникални първични ключове - мисля да ползвам числа (long int), но мисля, че ще е добре да различавам данните и по сървъри - примерно нещата правени на сървър 1 - 10000001,2,3... нещо подобно ,а на сървър 2 20000001,2,3
Милех да вкарвам отделна колона и първичния ключ да се състои от 2 полета - но няма смисъл - при положение, че едното поле ще е константно - по добре може би да ползвам тригер за дефиниране на първичния ключ в зависимост от сървъра.
Ще съм благодарен ако има някой който се е занимавал с това да сподели малко инфо .
Черпенето осигурено ;-)))
---
Е т'ва е живот!
| |
Тема
|
Re: Репликация... IB / Firebird
[re: PhantomAS]
|
|
Автор |
NDeu (минаващ) |
Публикувано | 07.04.03 14:37 |
|
1. Ако съм те разбрал правилно, IMHO задачата няма общо решение, но за отделните частни случаи може да се намери частно решение. Ако искаш прегледай:
2. Аз използвам следния механизъм:
- Определям първите няколко бита от Id да идентифицират сървъра (напр.5 позволяват да се работи с до 31 сървъра, 0 използвам за служебни цели)
- На всеки сървър при инсталацията присвоявам номер (1..31), който записвам в самата база.
- При определяне на Id използвам UDF които от стойността на съответния генератор и идентификатора на сървъра връща съответната стойност
| |
Тема
|
Re: Репликация... IB / Firebird
[re: NDeu]
|
|
Автор |
PhantomAS (стар ерген®) |
Публикувано | 08.04.03 09:05 |
|
Явно съм преоткрил топлата вода ;-) - по точка 2 нямаме различия, както успях да прочета и във връзките които ми изпрати.
За съжаление се обедих, че готов софтуер, който да извършва оптимална репликация няма ?!? За съжаление това което видях като софтуер е доста старо (най-новото е от 2000 - при това връзката не работи), което ме навежда на мислълта, че ще трябва пак да пиша мое решение - което никак не ми е приятно - най-малкото, че ще отнеме време и ресурси - които в момента нямам.
Интересува ме дали си пробвал Replication Server-a който върви с IB ? И въобще какво е поведението му - ако се ползва по dial-up канал и дали въобще е възможно?!?
---
Е т'ва е живот!
| |
Тема
|
Re: Репликация... IB / Firebird
[re: PhantomAS]
|
|
Автор |
Topбaлaн (любопитко) |
Публикувано | 08.04.03 09:58 |
|
ако правилно съм те разбрал....
при този обем данни ми изглежда по-разумно да си направиш пълна репликация - нека няма уникални първични ключове по сървъри...ще ти спести много код
от друга страна, ако искаш да помни кои данни на кой сървър са модифицирани/въведени/изтрити - нищо не ти пречи да си направиш една таблица, в която да помниш първичните ключове на модифицираните/въведени/изтрити полета, и тази таблица може да си стои кротичко на всеки сървър без да се репликира....
| |
Тема
|
Re: Репликация... IB / Firebird
[re: PhantomAS]
|
|
Автор |
NDeu (минаващ) |
Публикувано | 08.04.03 12:17 |
|
За съжаление с Replication Server-а не съм работил
Връзките, които ти дадох са стари, защото проекта в който съм решавал този проблем беше от преди няколко години. Но можеш да потърсиш по-нови решения.
Редактирано от NDeu на 08.04.03 12:30.
| |
Тема
|
Re: Репликация... IB / Firebird
[re: Topбaлaн]
|
|
Автор |
PhantomAS (стар ерген®) |
Публикувано | 08.04.03 20:22 |
|
Не става - защото на две места ще се модифицират данните - а пък те са свързани ;-)) т.е. в една и съща таблица ще има модификации от две места (но отнасящи се за различни обекти) Реално канала ми поставя много кофти ограничения.
За пълното копиране - няма смисъл да се мисли - при база данни от 30 - 50 МВ ще е безумие за dial-up. Освен това с течение на годините данните ще растат, аз споменах данните само за 1 година ;-). Разбира се репликацията няма да засяга старите данни или тези което вече са синхронизирани.
Интересно ми е дали някой въобще се занимава с репликация при такива "ненормални условия" - имам предвид dial-up канала при това не на цифрова линия. Хубавото е че поне една от базите ще е on-line и връзката ще е през интернет.
---
Е т'ва е живот!
| |
|
не съм добре запознат, но имах подобни терзания за репликации....
та питах когото трябва и ми беше отговорено, че базата данни (аз за MS SQL Qerver) е умна...не точи много информация по канала за репликацията...
само че - dial-up хич не ми звучи сериозно...
ти пълната репликация не си я представяй като копиране на целия файл...
| |
|
Ами чесно казано след като доста мислих и четох по проблема - единствения възможен избор за пълна (оптимална) репликация е на база на check суми на таблици - и ако се различават - check сума на всички редове (като може да се оптимизира - ако се направят check суми на колони - и да се махнат излишните колони за трансфер). Но за съжаление не виждам такова готово решение - реално то може да се направи за всеки SQL сървър - стига той да подържа функции за извеждане на check суми ?!? - а пък за такова нещо не съм чувал.
Реално моята идея е неприложима или трудно приложима -и избягва всякакви журнали и прочие методи ползвани при репликацията(е не съвсем остават някои колизии - но и за тях съм помислил).
Ако имаш инфо за метода който се използва при репликация в MySQL ( ако има нещо стандартно като при IB 6/7) ще се радвам да споделиш.
Проблема е доста интересен - и ако някой не се е сбъсквал - не е гаранция, че при съвременните комуникации няма да се сблъска ;-)
---
Е т'ва е живот!
| |
|
IB / MySql
репликации съм правил само с хелп в едната ръка на MS SQL Server 2000 ама там проблеми няма - не се грижиш за нищо, освен да опишеш репликациите...
от там нататък - сървърът да му мисли...
представях си, че и в IB има нещо подобно...
| |
|
|
|
|