Replication Type (볡μ νμ )
MySQLμ 볡μ λ 2κ°μ§ νμ μΌλ‘ λλκ³ , κ° λ°©μμ λμ μ리μ κ΅¬μΆ λ°©λ²μ μμλ³΄κ² μ΅λλ€.
λ°μ΄λ리 λ‘κ·Έ νμΌ μμΉ κΈ°λ° λ³΅μ (Binary Log File Position Based Replication)
Source Serverμ Binaray Logμ κΈ°λ‘λ λ³κ²½ λ΄μ(λ°μ΄λ리 λ‘κ·Έ μ΄λ²€νΈ)λ€μ μλ³νλ λ°©μ
κΈλ‘λ² νΈλμμ ID κΈ°λ° λ³΅μ (Global Transaction Identifiers Based Replication)
κ° νΈλμμ μ κ³ μ ν μλ³μ(ID)λ₯Ό λΆμ¬νμ¬ μΆμ νλ λ°©μμ λλ€.
Binary Log File Position Based
μ΄ λ°©μμ 볡μ κΈ°λ₯μ΄ μ²μ λμ λμ λλΆν° μ 곡λ λ°©μμΌλ‘, λ ν리카 μλ²μμ μμ€ μλ²μ λ°μ΄λ리 λ‘κ·Έ νμΌλͺ κ³Ό νμΌ λ΄μμμ μμΉ(Offest or Postion)λ‘ λ°μ΄λ리 λ‘κ·Έ μ΄λ²€νΈλ₯Ό μλ³ν΄μ 볡μ κ° μ§νλλ ννμ λλ€.
볡μ λ₯Ό μ²μ ꡬμΆν λ λ ν리카 μλ²μ μμ€ μλ²μ μ΄λ€ μ΄λ²€νΈλΆν° λκΈ°νλ₯Ό μνν κ²μΈκ°μ λν μ 보λ₯Ό μ€μ ν©λλ€.
볡μ κ° μ€μ λ λ ν리카 μλ²λ μμ€ μλ²μ μ΄λ μ΄λ²€νΈκΉμ§ λ‘컬 λμ€ν¬λ‘ κ°μ Έμκ³ , μ μ©νλμ§μ λν μ 보λ₯Ό κ΄λ¦¬
μ μ 보λ₯Ό μμ€ μλ²μ μ λ¬ν΄μ μ΄νμ λ°μ΄λ리 λ‘κ·Έ μ΄λ²€νΈλ€μ κ°μ Έμ΅λλ€.
μ΄λ¬ν μ΄μ λ‘ μμ€ μλ²μμ λ°μν κ° μ΄λ²€νΈμ λν μλ³μ΄ λ°λμ νμν©λλ€.
1. ν΅μ¬ λμ μ리: νμΌ μ΄λ¦κ³Ό μμΉ(Offset)
μμ€ μλ²μ λ°μ΄λ리 λ‘κ·Έμ κΈ°λ‘λ λ³κ²½ λ΄μλ€μ 물리μ μΈ νμΌ μμΉλ‘ μλ³νλ λ°©μμ λλ€.
λ ν리카 μλ²λ μμ€ μλ²μκ² "μμ€ μλ²μΌ, mysql-bin.0001 νμΌμ 4820λ² μμΉλΆν° λ³κ²½λ λ΄μ©μ 보μ¬μ€." λΌκ³ μμ²νλ©° λκΈ°νλ₯Ό μ§νν©λλ€.
λ ν리카 μλ²λ μ΄μ²λΌ κ° μ΄λ²€νΈλ€μ μλ³νκ³ μμ μ μ μ© λ΄μμ μΆμ ν¨μΌλ‘μ¨ λ³΅μ λ₯Ό μΌμμ μΌλ‘ μ€λ¨ν μ μμΌλ©°, μ¬κ°ν λλ μμ μ΄ λ§μ§λ§μΌλ‘ μ μ©νλ μ΄λ²€νΈ μ΄νμ μ΄λ²€νΈλ€λΆν° λ€μ μ½μ΄μ¬ μ μμ΅λλ€.
μ¦, 볡μ κ³Όμ μμ κ°μ₯ μ€μν μ 보λ λ‘κ·Έ νμΌλͺ (File Name)κ³Ό νμΌ λ΄ μμΉ(File Offset)μ μ‘°ν©μ λλ€.
2. 볡μ νλ‘μΈμ€
λκΈ°ν μ§μ μ€μ :
볡μ λ₯Ό μ²μ ꡬμΆν λ, λ ν리카 μλ²λ μμ€ μλ²μ
"μ΄λ νμΌ, μ΄λ μμΉ"λΆν° λ°μ΄ν°λ₯Ό κ°μ Έμ¬μ§ μ€μ ν©λλ€.
μ΄λ²€νΈ μμ λ° κΈ°λ‘:
λ ν리카 μλ²λ μμ€ μλ²λ‘λΆν° μ΄λ²€νΈλ₯Ό λ°μμ λ‘컬 λμ€ν¬(릴λ μ΄ λ‘κ·Έ)μ μ μ₯νκ³ μ΄λ₯Ό μ μ©ν©λλ€.
μμΉ κ΄λ¦¬:
λ ν리카 μλ²λ μμ μ΄ μμ€ μλ²μ μ΄λ²€νΈλ₯Ό μ΄λκΉμ§ κ°μ Έμκ³ , μ΄λκΉμ§ μ μ©νλμ§λ₯Ό μ§μμ μΌλ‘ κ΄λ¦¬ν©λλ€.
μ΄λ¬ν 볡μ νλ‘μΈμ€ λλΆμ 볡μ λ₯Ό μΌμμ μΌλ‘ μ€λ¨νλ€κ° μ¬κ°νλλΌλ, λ ν리카 μλ²λ κΈ°μ΅ν΄ λ λ§μ§λ§ μμΉ(Offset) μ΄νμ μ΄λ²€νΈλΆν° λ€μ μμ²νμ¬ λλ½ μμ΄ λ°μ΄ν°λ₯Ό λκΈ°νν μ μμ΅λλ€.
3. νμ μ£Όμ μ¬ν: κ³ μ ν server_id
λ°μ΄λ리 λ‘κ·Έ κΈ°λ° λ³΅μ μμ κ°μ₯ μ€μν μ€μ μ server_idμ
λλ€.
볡μ ν ν΄λ‘μ§μ μ°Έμ¬νλ λͺ¨λ MySQL μλ²λ λ°λμ μλ‘ λ€λ₯Έ κ³ μ ν server_idλ₯Ό κ°μ ΈμΌ ν©λλ€.
κΈ°λ³Έκ°: 1 (μ€μ νμ§ μμΌλ©΄ μΆ©λ λ°μ)
λ ν리카 μλ²μ μ€μ λ κ°κ³Ό λμΌν κ²½μ° λ ν리카 μλ²μμλ ν΄λΉ μ΄λ²€νΈλ₯Ό μ μ©νμ§ μκ³ λ¬΄μνκ² λ©λλ€.
GTID Based Replication
MySQL 5.6 λ²μ λΆν° λμ λ GTID(Global Transaction Identifier) λ°©μμ 물리μ μΈ νμΌ μμΉκ° μλ, λ Όλ¦¬μ μΈ νΈλμμ IDλ₯Ό κΈ°λ°μΌλ‘ 볡μ λ₯Ό μνν©λλ€.
1. GTIDλ?
GTIDλ μμ€ μλ²μμ 컀λ°λ κ° νΈλμμ μ λΆμ¬λ μ μμ μΌλ‘ κ³ μ ν μλ³μμ λλ€.
source_uuid: νΈλμμ μ΄ μ΅μ΄λ‘ λ°μν μλ²μ κ³ μ μλ³μ
transaction_id: ν΄λΉ μλ²μμ νΈλμμ μ΄ λ°μν μμ(μΌλ ¨λ²νΈ)
μλ₯Ό λ€μ΄ 3E11FA47...:23μ΄λΌλ GTIDλ νΉμ μλ²μμ 23λ²μ§Έλ‘ λ°μν νΈλμμ
μμ μλ―Έν©λλ€. μ΄ IDλ μ 체 볡μ κ·Έλ£Ή λ΄μμ μ μΌν©λλ€.
2. ν΅μ¬ λμ μ리: μλ ν¬μ§μ
λ (Auto-Positioning)
νμΌ μμΉ κΈ°λ° λ³΅μ κ° "μ’ν(νμΌλͺ
+μμΉ)"λ₯Ό μΌμΌμ΄ λ§μ·λ€λ©΄, GTID 볡μ λ μ§ν©(Set) κ°λ
μ μ¬μ©ν©λλ€.
λ ν리카 μλ²λ μμ€ μλ²μ μ°κ²°ν λ, "λλ μ§κΈκΉμ§ μ΄λ¬ν GTID μ§ν©μ μ²λ¦¬νμ΄"λΌκ³ μμ μ μνλ₯Ό 보λ λλ€.
μμ€ μλ²λ μμ μ΄ κ°μ§ νΈλμμ μ€ λ ν리카μ μλ νΈλμμ λ§ μλμΌλ‘ μ λ³νμ¬ λ³΄λ΄μ€λλ€.
κ΄λ¦¬μκ° λ‘κ·Έ νμΌλͺ μ΄λ μμΉλ₯Ό μ§μ κ³μ°νκ±°λ μ λ ₯ν νμκ° μμΌλ―λ‘ μ΄μμ΄ ν¨μ¬ νΈλ¦¬ν΄μ§λλ€.
3. μ₯μ
κ°νΈν μ₯μ μ‘°μΉ(Failover):
μμ€ μλ²κ° λ€μ΄λμ΄ μλ‘μ΄ μμ€ μλ²λ₯Ό μ μΆν΄μΌ ν λ, GTID λ°©μμ μλ² κ° λκΈ°ν μ§μ μ μλμΌλ‘ κ³μ°ν΄μ£Όλ―λ‘ λ³΅κ΅¬ μ μ°¨κ° λ§€μ° κ°λ¨ν©λλ€. (νμΌ κΈ°λ° λ³΅μ λ μ΄ κ³Όμ μ΄ λ³΅μ‘νκ³ μλ κ³μ°μ΄ νμν μ μμ΅λλ€.)
λ°μ΄ν° μΌκ΄μ±:
νΈλμμ λ¨μλ‘ μλ³νλ―λ‘ λ°μ΄ν° λλ½μ΄λ μ€λ³΅ μ μ©μ λ νμ€νκ² λ°©μ§ν μ μμ΅λλ€.
Last updated