https://github.com/csaba79-coder/database-replication
Database replication using MySQL Server - Spring - JPA - Hibernate
https://github.com/csaba79-coder/database-replication
database-replication
Last synced: 4 months ago
JSON representation
Database replication using MySQL Server - Spring - JPA - Hibernate
- Host: GitHub
- URL: https://github.com/csaba79-coder/database-replication
- Owner: Csaba79-coder
- License: mit
- Created: 2025-02-22T11:13:12.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2025-03-03T10:34:07.000Z (10 months ago)
- Last Synced: 2025-03-03T11:34:57.493Z (10 months ago)
- Topics: database-replication
- Language: Java
- Homepage:
- Size: 79.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

# Transactional Replication
## Pénzügyi tranzakciós rendszer 💰
Táblák: account, transaction, user, audit_log
Lehetőségek:
- Felhasználók közötti pénzátutalások.
- Egyenleg frissítése valós időben replikációval.
- Audit log replikálása, hogy minden tranzakció rögzítve legyen.
## Funkciók és tranzakciók 🔄
- Pénzutalás tranzakció
- Egy tranzakcióval frissíti a küldő és fogadó számlák egyenlegét.
- Minden sikeres tranzakció után létrehoz egy bejegyzést az `audit_log` táblában.
- Valós idejű replikáció
- Az összes tranzakció automatikusan tükröződik egy másodlagos adatbázisban.
- Az audit napló is azonnal szinkronizálódik.
- Tranzakciós védelem
- Rollback hiba esetén.
- Adatvesztés vagy duplikáció elkerülése.
### Lépések 🚀
1. Adatbázis séma megírása (DDL).
2. Spring Boot beállítása tranzakciókezeléssel és MySQL replikációval.
3. Tranzakciós szolgáltatások implementálása.
4. Tesztek írása, hogy minden működjön.
### SQL Command Classification 🗂️

### Funkciók ✅
- Minden tranzakcióhoz automatikusan létrejön egy audit bejegyzés.
- Nyomon követhető, hogy ki és mikor hajtott végre egy adott műveletet.
- Segít a hibák felderítésében és a biztonsági incidensek elemzésében.
# Adatbázis Replikációs Módszerek
A **snapshot replikáció** és a **transactional replikáció** két különböző típusú adatbázis-replikációs módszer, amelyek mindkettő arra szolgálnak, hogy az adatokat átvigyék egyik adatbázisból a másikba, de más-más módon és más céllal.
## 1. Snapshot Replikáció 📸
**Mi történik?**
A snapshot replikáció minden egyes replikációs ciklus során az adatbázis teljes állapotát (snapshot) másolja át a replikált adatbázisra. Más szóval, amikor a replikáció történik, a cél adatbázis teljesen felülíródik a forrás adatbázis aktuális állapotával.
**Használati esetek:**
- Akkor hasznos, ha nem szükséges a replikáció folyamatos frissítése.
- Ha a forrás és a cél adatbázis gyakran frissül, és nem szükséges minden apró tranzakciót átvinni.
- Ideális statikus vagy ritkán változó adatok esetén.
**Előnyök:**
- Egyszerű beállítás és kezelés.
- Nincs szükség tranzakciós logokra, egyszerűen az adatokat egyből átülteti.
**Hátrányok:**
- Nem valós idejű, az adatokat csak a ciklusokban másolja át.
- Ha nagy adatbázisról van szó, időigényes lehet.
---
## 2. Transactional Replikáció 🔄
**Mi történik?**
A transactional replikáció minden egyes tranzakciót másol át a forrás adatbázisból a cél adatbázisba. Tehát minden adatváltoztatás, mint INSERT, UPDATE, DELETE, valós időben tükröződik a replikált adatbázisban.
**Használati esetek:**
- Akkor hasznos, ha valós idejű adat szinkronizálásra van szükség.
- Ha a forrás adatbázis gyakran frissül, és minden egyes módosításnak azonnal meg kell jelenni a replikában.
**Előnyök:**
- Valós idejű szinkronizálás.
- Mivel a tranzakciók egyesével kerülnek replikálásra, a cél adatbázis mindig naprakész.
- Jobban skálázható dinamikusan változó adatoknál.
**Hátrányok:**
- Bonyolultabb beállítás és karbantartás.
- Magasabb erőforrás-igény a tranzakciók folyamatos figyelése és továbbítása miatt.
---
## Összehasonlítás
| Jellemző | Snapshot Replikáció | Transactional Replikáció |
|------------------------|--------------------------------------------------|--------------------------------------------------|
| **Módszer** | Teljes adatbázis másolása egy adott időpontban. | Csak a tranzakciók átvitele, folyamatos szinkronizálás. |
| **Frissítés típusa** | Ciklikus, időszakos teljes adatbázis másolása. | Azonnali, minden egyes adatváltoztatás átvitele. |
| **Használat** | Ritkán változó, statikus adatbázisoknál. | Dinamikusan változó adatoknál, real-time szinkronizálás. |
| **Kezelhetőség** | Egyszerűbb, kevesebb beállítást igényel. | Komplexebb beállítások, több erőforrást igényel. |
| **Előnyök** | Egyszerűség, könnyű karbantartás. | Valós idejű adat szinkronizálás, naprakész másolat. |
| **Hátrányok** | Nem valós idejű, időigényes, nem a leggyorsabb. | Erőforrás-igényes, bonyolultabb beállítás. |
