Two things are infinite: the universe and human stupidity; and I'm not sure about the universe ...
Albert Einstein

A computer would deserve to be called intelligent if it could deceive a human into believing that it was human ...
Alan Turing

Two things control men's nature, instinct and experience ...
Blaise Pascal

Thursday, February 16, 2006

Oracle Streams за синхронизација на две Oracle бази

Oracle Streams е техника на Oracle која служи за репликација на податоците од една база во друга.
Кога се работи за две бази кои што се поврзани преку LAN, синхронизацијата може да биде real-time.
Oracle Streams се базира на Oracle Advanced Queuing. Значи се работи за пренос на пораки од едно queue, кое се наоѓа на source базата, кон другото, кое се наоѓа на destination базата.
Oracle Streams го сочинуваат три главни процеси:

1. Capture процес
2. Propagation процес
3. Apply процес

Capture процесот ги прегледува извршените трансакции во архивираните логови (archived log) и од истите креира LCR (Logical Changed Record) кои ги сместува во source queue-то во вид на ANYDATA пораки.

Propagation процесот ги прифаќа овие пораки и ги праќа кон дестинациската база, т.е. ги сместува во дестинациското queue.

Apply процесот ги зема пристигнатите LCR-ови и во зависност од трансакцијата (DML), прави запишување, промена или бришење на податоци.
Исто така може да се реплицираат и DDL (Data Definition Language) трансакции

Синхронзацијата може да биде двострана, т.е. како од база1 до база2, така и од база2 до база1, за што постојат и техники за разрешување на конфликти.

Се на се, ова е фантастична техника која за прв пат Oracle ја претстави во верзијата 9i. Streams во 9i беа многу баговити и нестабилни. Поголеми подобрувања имаше во верзијата 10g Release 1.
Streams се фантастично усовршени во верзијата 10g Release 2.
Oracle ги препорачуваат за синхронизација на две бази, но сепак не велат дека протхедното решение Oracle Advanced Replication, базирано на материјализирани view-а е "мртво".
Streams имаат подршка за имплементација во RAC (Real Application Cluster) околина, може да имаат неограничено многу дестинациски бази.

Streams може да се употреби и како Disaster Recovery решение, но сепак Oracle за тоа го има Data Guard.

Streams може да работат во хетерогена околина, т.е. може да реплицираат Oracle база со друг тип на база (MS SQL Server, DB2, не сум сигурен за MySql)

******************************

Утре конечно ќе ги добијам резултатите дали архитектурата која што ја поставив ќе ги задоволува барањата да се синхронизираат две бази (во реално време).

Се работи за два Database сервера со следнава конфигурација:

Sun 280R
2 CPUs 4 GB RAM
Solaris 9

Потоа ќе додадеме еден Itanium2 Windows сервер за да симулираме синхронизација во хетерогена околина, во смисла на оперативни системи.

Како и да е утре ќе биде напорен ден за мене. Ако некој сака повеќе информации за Oracle Streams слободно нека ме контактира (e-mail адресата ќе ја најдете во мојот профил)

Останете ми со здравје, одам да спијам, касно е.

Comments on "Oracle Streams за синхронизација на две Oracle бази"

 

post a comment