MySQL ಗಾಗಿ ಆರ್ಕೆಸ್ಟ್ರೇಟರ್: ಅದು ಇಲ್ಲದೆ ನೀವು ದೋಷ-ಸಹಿಷ್ಣು ಯೋಜನೆಯನ್ನು ಏಕೆ ನಿರ್ಮಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ

ಯಾವುದೇ ದೊಡ್ಡ ಯೋಜನೆಯು ಒಂದೆರಡು ಸರ್ವರ್‌ಗಳೊಂದಿಗೆ ಪ್ರಾರಂಭವಾಗಿದೆ. ಮೊದಲಿಗೆ ಒಂದು ಡಿಬಿ ಸರ್ವರ್ ಇತ್ತು, ನಂತರ ಓದುವಿಕೆಯನ್ನು ಅಳೆಯಲು ಗುಲಾಮರನ್ನು ಸೇರಿಸಲಾಯಿತು. ತದನಂತರ - ನಿಲ್ಲಿಸಿ! ಒಬ್ಬ ಯಜಮಾನನಿದ್ದಾನೆ, ಆದರೆ ಅನೇಕ ಗುಲಾಮರಿದ್ದಾರೆ; ಗುಲಾಮರಲ್ಲಿ ಒಬ್ಬರು ಹೊರಟುಹೋದರೆ, ಎಲ್ಲವೂ ಚೆನ್ನಾಗಿರುತ್ತದೆ, ಆದರೆ ಮಾಸ್ಟರ್ ಹೋದರೆ ಅದು ಕೆಟ್ಟದಾಗಿರುತ್ತದೆ: ಅಲಭ್ಯತೆ, ನಿರ್ವಾಹಕರು ಸರ್ವರ್ ಅನ್ನು ಹೆಚ್ಚಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದಾರೆ. ಏನ್ ಮಾಡೋದು? ಮಾಸ್ಟರ್ ಅನ್ನು ಕಾಯ್ದಿರಿಸಿ. ನನ್ನ ಸಹೋದ್ಯೋಗಿ ಪಾವೆಲ್ ಈಗಾಗಲೇ ಇದರ ಬಗ್ಗೆ ಬರೆದಿದ್ದಾರೆ ಲೇಖನ, ನಾನು ಅದನ್ನು ಪುನರಾವರ್ತಿಸುವುದಿಲ್ಲ. ಬದಲಿಗೆ, MySQL ಗಾಗಿ ನಿಮಗೆ ಖಂಡಿತವಾಗಿಯೂ ಆರ್ಕೆಸ್ಟ್ರೇಟರ್ ಏಕೆ ಬೇಕು ಎಂದು ನಾನು ನಿಮಗೆ ಹೇಳುತ್ತೇನೆ!

ಮುಖ್ಯ ಪ್ರಶ್ನೆಯೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸೋಣ: "ಮಾಸ್ಟರ್ ಹೋದಾಗ ನಾವು ಕೋಡ್ ಅನ್ನು ಹೊಸ ಯಂತ್ರಕ್ಕೆ ಹೇಗೆ ಬದಲಾಯಿಸುತ್ತೇವೆ?"

  • ನಾನು ವಿಐಪಿ (ವರ್ಚುವಲ್ ಐಪಿ) ಯೊಂದಿಗಿನ ಯೋಜನೆಯನ್ನು ಹೆಚ್ಚು ಇಷ್ಟಪಡುತ್ತೇನೆ, ನಾವು ಅದರ ಬಗ್ಗೆ ಕೆಳಗೆ ಮಾತನಾಡುತ್ತೇವೆ. ಇದು ಸರಳ ಮತ್ತು ಅತ್ಯಂತ ಸ್ಪಷ್ಟವಾಗಿದೆ, ಆದರೂ ಇದು ಸ್ಪಷ್ಟವಾದ ಮಿತಿಯನ್ನು ಹೊಂದಿದೆ: ನಾವು ಕಾಯ್ದಿರಿಸುವ ಮಾಸ್ಟರ್ ಹೊಸ ಯಂತ್ರದೊಂದಿಗೆ L2 ವಿಭಾಗದಲ್ಲಿರಬೇಕು, ಅಂದರೆ, ನಾವು ಎರಡನೇ DC ಯನ್ನು ಮರೆತುಬಿಡಬಹುದು. ಮತ್ತು, ಸೌಹಾರ್ದಯುತ ರೀತಿಯಲ್ಲಿ, ನೀವು ದೊಡ್ಡ L2 ದುಷ್ಟ ಎಂದು ನಿಯಮವನ್ನು ಅನುಸರಿಸಿದರೆ, ಏಕೆಂದರೆ L2 ಪ್ರತಿ ರಾಕ್ಗೆ ಮಾತ್ರ, ಮತ್ತು L3 ಚರಣಿಗೆಗಳ ನಡುವೆ ಇರುತ್ತದೆ, ಮತ್ತು ಅಂತಹ ಯೋಜನೆಯು ಇನ್ನೂ ಹೆಚ್ಚಿನ ನಿರ್ಬಂಧಗಳನ್ನು ಹೊಂದಿದೆ.
  • ನೀವು ಕೋಡ್‌ನಲ್ಲಿ DNS ಹೆಸರನ್ನು ಬರೆಯಬಹುದು ಮತ್ತು ಅದನ್ನು /etc/hosts ಮೂಲಕ ಪರಿಹರಿಸಬಹುದು. ವಾಸ್ತವವಾಗಿ, ಯಾವುದೇ ನಿರ್ಣಯ ಇರುವುದಿಲ್ಲ. ಯೋಜನೆಯ ಪ್ರಯೋಜನ: ಮೊದಲ ವಿಧಾನದ ಯಾವುದೇ ಮಿತಿ ಗುಣಲಕ್ಷಣಗಳಿಲ್ಲ, ಅಂದರೆ, ಕ್ರಾಸ್-ಡಿಸಿ ಅನ್ನು ಸಂಘಟಿಸಲು ಸಾಧ್ಯವಿದೆ. ಆದರೆ ನಂತರ ಸ್ಪಷ್ಟವಾದ ಪ್ರಶ್ನೆಯು ಉದ್ಭವಿಸುತ್ತದೆ: ಪಪಿಟ್-ಅನ್ಸಿಬಲ್ ಮೂಲಕ ನಾವು ಎಷ್ಟು ಬೇಗನೆ ಬದಲಾವಣೆಯನ್ನು / ಇತ್ಯಾದಿ/ಹೋಸ್ಟ್‌ಗಳಿಗೆ ತಲುಪಿಸಬಹುದು?
  • ನೀವು ಎರಡನೇ ವಿಧಾನವನ್ನು ಸ್ವಲ್ಪ ಬದಲಾಯಿಸಬಹುದು: ಎಲ್ಲಾ ವೆಬ್ ಸರ್ವರ್‌ಗಳಲ್ಲಿ ಕ್ಯಾಶಿಂಗ್ ಡಿಎನ್‌ಎಸ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿ, ಅದರ ಮೂಲಕ ಕೋಡ್ ಮಾಸ್ಟರ್ ಡೇಟಾಬೇಸ್‌ಗೆ ಹೋಗುತ್ತದೆ. DNS ನಲ್ಲಿ ಈ ನಮೂದುಗಾಗಿ ನೀವು TTL 60 ಅನ್ನು ಹೊಂದಿಸಬಹುದು. ಸರಿಯಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸಿದರೆ, ವಿಧಾನವು ಉತ್ತಮವಾಗಿದೆ ಎಂದು ತೋರುತ್ತದೆ.
  • ಸೇವೆಯ ಅನ್ವೇಷಣೆಯೊಂದಿಗೆ ಒಂದು ಯೋಜನೆ, ಕಾನ್ಸುಲ್ ಮತ್ತು ಇತ್ಯಾದಿಗಳ ಬಳಕೆಯನ್ನು ಸೂಚಿಸುತ್ತದೆ.
  • ಇದರೊಂದಿಗೆ ಆಸಕ್ತಿದಾಯಕ ಆಯ್ಕೆ ProxySQL. ನೀವು ProxySQL ಮೂಲಕ MySQL ಗೆ ಎಲ್ಲಾ ಟ್ರಾಫಿಕ್ ಅನ್ನು ರೂಟ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ; ProxySQL ಸ್ವತಃ ಯಾರು ಮಾಸ್ಟರ್ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಬಹುದು. ಮೂಲಕ, ನನ್ನಲ್ಲಿ ಈ ಉತ್ಪನ್ನವನ್ನು ಬಳಸುವ ಆಯ್ಕೆಗಳಲ್ಲಿ ಒಂದನ್ನು ನೀವು ಓದಬಹುದು ಲೇಖನ.

ಗಿಥಬ್‌ನಲ್ಲಿ ಕೆಲಸ ಮಾಡುವ ಆರ್ಕೆಸ್ಟ್ರೇಟರ್‌ನ ಲೇಖಕರು ಮೊದಲು ವಿಐಪಿಯೊಂದಿಗೆ ಮೊದಲ ಯೋಜನೆಯನ್ನು ಜಾರಿಗೊಳಿಸಿದರು ಮತ್ತು ನಂತರ ಅದನ್ನು ಕಾನ್ಸುಲ್‌ನೊಂದಿಗೆ ಸ್ಕೀಮ್‌ಗೆ ಪರಿವರ್ತಿಸಿದರು.

ವಿಶಿಷ್ಟ ಮೂಲಸೌಕರ್ಯ ವಿನ್ಯಾಸ:

MySQL ಗಾಗಿ ಆರ್ಕೆಸ್ಟ್ರೇಟರ್: ಅದು ಇಲ್ಲದೆ ನೀವು ದೋಷ-ಸಹಿಷ್ಣು ಯೋಜನೆಯನ್ನು ಏಕೆ ನಿರ್ಮಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ
ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳಬೇಕಾದ ಸ್ಪಷ್ಟ ಸಂದರ್ಭಗಳನ್ನು ನಾನು ತಕ್ಷಣ ವಿವರಿಸುತ್ತೇನೆ:

  • ವಿಐಪಿ ವಿಳಾಸವನ್ನು ಯಾವುದೇ ಸರ್ವರ್‌ಗಳಲ್ಲಿನ ಸಂರಚನೆಯಲ್ಲಿ ನೋಂದಾಯಿಸಬಾರದು. ನಾವು ಪರಿಸ್ಥಿತಿಯನ್ನು ಊಹಿಸೋಣ: ಮಾಸ್ಟರ್ ರೀಬೂಟ್ ಮಾಡಿದರು, ಮತ್ತು ಅದು ಲೋಡ್ ಆಗುತ್ತಿರುವಾಗ, ಆರ್ಕೆಸ್ಟ್ರೇಟರ್ ವಿಫಲವಾದ ಮೋಡ್ಗೆ ಹೋದರು ಮತ್ತು ಗುಲಾಮರಲ್ಲಿ ಒಬ್ಬರನ್ನು ಮಾಸ್ಟರ್ ಮಾಡಿದರು; ನಂತರ ಹಳೆಯ ಮಾಸ್ಟರ್ ಏರಿದರು, ಮತ್ತು ಈಗ ವಿಐಪಿ ಎರಡು ಕಾರುಗಳಲ್ಲಿದ್ದಾರೆ. ಇದು ಕೆಟ್ಟದ್ದು.
  • ಆರ್ಕೆಸ್ಟ್ರೇಟರ್ಗಾಗಿ, ಹಳೆಯ ಮಾಸ್ಟರ್ ಮತ್ತು ಹೊಸ ಮಾಸ್ಟರ್ ಅನ್ನು ಕರೆಯಲು ನೀವು ಸ್ಕ್ರಿಪ್ಟ್ ಬರೆಯಬೇಕಾಗುತ್ತದೆ. ಹಳೆಯ ಮಾಸ್ಟರ್‌ನಲ್ಲಿ ನೀವು ifdown ಅನ್ನು ಚಲಾಯಿಸಬೇಕು ಮತ್ತು ಹೊಸ ಮಾಸ್ಟರ್‌ನಲ್ಲಿ - ifup vip. ವೈಫಲ್ಯದ ಸಂದರ್ಭದಲ್ಲಿ, ಹಳೆಯ ಮಾಸ್ಟರ್ಸ್ ಸ್ವಿಚ್‌ನಲ್ಲಿರುವ ಪೋರ್ಟ್ ಅನ್ನು ಯಾವುದೇ ಸ್ಪ್ಲಿಟ್‌ಬ್ರೇನ್ ತಪ್ಪಿಸಲು ಸರಳವಾಗಿ ಆಫ್ ಮಾಡಲಾಗಿದೆ ಎಂಬುದನ್ನು ಈ ಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ ಸೇರಿಸುವುದು ಒಳ್ಳೆಯದು.
  • ಮೊದಲು VIP ಅನ್ನು ತೆಗೆದುಹಾಕಲು ಮತ್ತು/ಅಥವಾ ಸ್ವಿಚ್‌ನಲ್ಲಿರುವ ಪೋರ್ಟ್ ಅನ್ನು ನಂದಿಸಲು ಆರ್ಕೆಸ್ಟ್ರೇಟರ್ ನಿಮ್ಮ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಕರೆದ ನಂತರ, ನಂತರ ಹೊಸ ಮಾಸ್ಟರ್‌ನಲ್ಲಿ VIP ರೈಸಿಂಗ್ ಸ್ಕ್ರಿಪ್ಟ್ ಎಂದು ಕರೆದ ನಂತರ, ಹೊಸ VIP ಈಗ ಎಂದು ಎಲ್ಲರಿಗೂ ಹೇಳಲು arping ಆಜ್ಞೆಯನ್ನು ಬಳಸಲು ಮರೆಯಬೇಡಿ. ಇಲ್ಲಿ.
  • ಎಲ್ಲಾ ಗುಲಾಮರು read_only=1 ಅನ್ನು ಹೊಂದಿರಬೇಕು ಮತ್ತು ನೀವು ಗುಲಾಮನನ್ನು ಯಜಮಾನನಿಗೆ ಬಡ್ತಿ ನೀಡಿದ ತಕ್ಷಣ, ಅದು read_only=0 ಅನ್ನು ಹೊಂದಿರಬೇಕು.
  • ಇದಕ್ಕಾಗಿ ನಾವು ಆಯ್ಕೆ ಮಾಡಿದ ಯಾವುದೇ ಗುಲಾಮನು ಮಾಸ್ಟರ್ ಆಗಬಹುದು ಎಂಬುದನ್ನು ಮರೆಯಬೇಡಿ (ಆರ್ಕೆಸ್ಟ್ರೇಟರ್‌ಗೆ ಸಂಪೂರ್ಣ ಆದ್ಯತೆಯ ಕಾರ್ಯವಿಧಾನವಿದೆ, ಇದಕ್ಕಾಗಿ ಗುಲಾಮನನ್ನು ಮೊದಲ ಸ್ಥಾನದಲ್ಲಿ ಹೊಸ ಯಜಮಾನನಿಗೆ ಅಭ್ಯರ್ಥಿಯಾಗಿ ಪರಿಗಣಿಸಬೇಕು, ಅದು ಎರಡನೇ ಸ್ಥಾನದಲ್ಲಿದೆ ಮತ್ತು ಯಾವ ಗುಲಾಮ ಮಾಡಬೇಕು ಯಾವುದೇ ಸಂದರ್ಭದಲ್ಲಿ ಆಯ್ಕೆ ಮಾಡಬಾರದು ಮಾಸ್ಟರ್). ಗುಲಾಮನು ಯಜಮಾನನಾದರೆ, ಗುಲಾಮನ ಹೊರೆ ಅದರ ಮೇಲೆ ಉಳಿಯುತ್ತದೆ ಮತ್ತು ಯಜಮಾನನ ಹೊರೆ ಸೇರಿಸಲ್ಪಡುತ್ತದೆ, ಇದನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳಬೇಕು.

ನಿಮ್ಮ ಬಳಿ ಆರ್ಕೆಸ್ಟ್ರೇಟರ್ ಇಲ್ಲದಿದ್ದರೆ ನಿಮಗೆ ಆರ್ಕೆಸ್ಟ್ರೇಟರ್ ಏಕೆ ಬೇಕು?

  • ಆರ್ಕೆಸ್ಟ್ರೇಟರ್ ಸಂಪೂರ್ಣ ಟೋಪೋಲಜಿಯನ್ನು ಪ್ರದರ್ಶಿಸುವ ಅತ್ಯಂತ ಬಳಕೆದಾರ-ಸ್ನೇಹಿ ಚಿತ್ರಾತ್ಮಕ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಹೊಂದಿದೆ (ಕೆಳಗಿನ ಸ್ಕ್ರೀನ್‌ಶಾಟ್ ಅನ್ನು ನೋಡಿ).
  • ಆರ್ಕೆಸ್ಟ್ರೇಟರ್ ಯಾವ ಗುಲಾಮರು ಹಿಂದುಳಿದಿದ್ದಾರೆ ಮತ್ತು ಎಲ್ಲಿ ನಕಲು ಸಾಮಾನ್ಯವಾಗಿ ಮುರಿದಿದೆ ಎಂಬುದನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಬಹುದು (ಎಸ್‌ಎಂಎಸ್ ಕಳುಹಿಸಲು ಆರ್ಕೆಸ್ಟ್ರೇಟರ್‌ಗೆ ನಾವು ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳನ್ನು ಲಗತ್ತಿಸಿದ್ದೇವೆ).
  • ಯಾವ ಗುಲಾಮರು GTID ದೋಷವನ್ನು ಹೊಂದಿದ್ದಾರೆಂದು ಆರ್ಕೆಸ್ಟ್ರೇಟರ್ ನಿಮಗೆ ಹೇಳುತ್ತದೆ.

ಆರ್ಕೆಸ್ಟ್ರೇಟರ್ ಇಂಟರ್ಫೇಸ್:

MySQL ಗಾಗಿ ಆರ್ಕೆಸ್ಟ್ರೇಟರ್: ಅದು ಇಲ್ಲದೆ ನೀವು ದೋಷ-ಸಹಿಷ್ಣು ಯೋಜನೆಯನ್ನು ಏಕೆ ನಿರ್ಮಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ
ಜಿಟಿಐಡಿ ಎರಂಟ್ ಎಂದರೇನು?

ಆರ್ಕೆಸ್ಟ್ರೇಟರ್ ಕೆಲಸ ಮಾಡಲು ಎರಡು ಮುಖ್ಯ ಅವಶ್ಯಕತೆಗಳಿವೆ:

  • MySQL ಕ್ಲಸ್ಟರ್‌ನಲ್ಲಿರುವ ಎಲ್ಲಾ ಯಂತ್ರಗಳಲ್ಲಿ ಹುಸಿ GTID ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವುದು ಅವಶ್ಯಕ; ನಾವು GTID ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದ್ದೇವೆ.
  • ಎಲ್ಲೆಡೆ ಒಂದು ರೀತಿಯ ಬಿನ್‌ಲಾಗ್‌ಗಳು ಇರುವುದು ಅವಶ್ಯಕ, ನೀವು ಹೇಳಿಕೆಯನ್ನು ಬಳಸಬಹುದು. ನಾವು ಯಜಮಾನ ಮತ್ತು ಹೆಚ್ಚಿನ ಗುಲಾಮರು ರೋ ಅನ್ನು ಹೊಂದಿದ್ದ ಸಂರಚನೆಯನ್ನು ಹೊಂದಿದ್ದೇವೆ ಮತ್ತು ಇಬ್ಬರು ಐತಿಹಾಸಿಕವಾಗಿ ಮಿಶ್ರ ಮೋಡ್‌ನಲ್ಲಿ ಉಳಿದಿದ್ದಾರೆ. ಪರಿಣಾಮವಾಗಿ, ಆರ್ಕೆಸ್ಟ್ರೇಟರ್ ಈ ಗುಲಾಮರನ್ನು ಹೊಸ ಮಾಸ್ಟರ್ಗೆ ಸಂಪರ್ಕಿಸಲು ಬಯಸಲಿಲ್ಲ.

ಉತ್ಪಾದನಾ ಗುಲಾಮರಲ್ಲಿ ಅತ್ಯಂತ ಮುಖ್ಯವಾದ ವಿಷಯವೆಂದರೆ ಮಾಸ್ಟರ್‌ನೊಂದಿಗೆ ಅದರ ಸ್ಥಿರತೆ ಎಂದು ನೆನಪಿಡಿ! ನಿಮ್ಮ ಮಾಸ್ಟರ್ ಮತ್ತು ಸ್ಲೇವ್ ಎರಡರಲ್ಲೂ ನೀವು ಗ್ಲೋಬಲ್ ಟ್ರಾನ್ಸಾಕ್ಷನ್ ಐಡಿ (GTID) ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದ್ದರೆ, ಈ ಯಂತ್ರಗಳಲ್ಲಿ ಡೇಟಾ ಬದಲಾವಣೆಗಳಿಗಾಗಿ ಅದೇ ವಿನಂತಿಗಳನ್ನು ವಾಸ್ತವವಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗಿದೆಯೇ ಎಂದು ಕಂಡುಹಿಡಿಯಲು ನೀವು gtid_subset ಕಾರ್ಯವನ್ನು ಬಳಸಬಹುದು. ಇದರ ಬಗ್ಗೆ ನೀವು ಇನ್ನಷ್ಟು ಓದಬಹುದು ಇಲ್ಲಿ.

ಹೀಗಾಗಿ, ಆರ್ಕೆಸ್ಟ್ರೇಟರ್ ನಿಮಗೆ GTID ದೋಷಾರೋಪಣೆಯ ಮೂಲಕ ಮಾಸ್ಟರ್‌ನಲ್ಲಿಲ್ಲದ ಗುಲಾಮರ ಮೇಲೆ ವಹಿವಾಟುಗಳಿವೆ ಎಂದು ತೋರಿಸುತ್ತದೆ. ಇದು ಏಕೆ ನಡೆಯುತ್ತಿದೆ?

  • ಸ್ಲೇವ್‌ನಲ್ಲಿ Read_only=1 ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿಲ್ಲ, ಯಾರೋ ಸಂಪರ್ಕಪಡಿಸಿದ್ದಾರೆ ಮತ್ತು ಡೇಟಾವನ್ನು ಬದಲಾಯಿಸಲು ವಿನಂತಿಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಿದ್ದಾರೆ.
  • Super_read_only=1 ಅನ್ನು ಸ್ಲೇವ್‌ನಲ್ಲಿ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿಲ್ಲ, ನಂತರ ನಿರ್ವಾಹಕರು, ಸರ್ವರ್ ಅನ್ನು ಗೊಂದಲಗೊಳಿಸಿ, ಒಳಗೆ ಹೋಗಿ ವಿನಂತಿಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದರು.
  • ನೀವು ಹಿಂದಿನ ಎರಡೂ ಅಂಶಗಳನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಂಡರೆ, ಇನ್ನೂ ಒಂದು ಟ್ರಿಕ್ ಇದೆ: MySQL ನಲ್ಲಿ, ಬಿನ್‌ಲಾಗ್‌ಗಳನ್ನು ಫ್ಲಶ್ ಮಾಡುವ ವಿನಂತಿಯು ಬಿನ್‌ಲಾಗ್‌ಗೆ ಹೋಗುತ್ತದೆ, ಆದ್ದರಿಂದ ಮೊದಲ ಫ್ಲಶ್‌ನಲ್ಲಿ, ಮಾಸ್ಟರ್ ಮತ್ತು ಎಲ್ಲಾ ಗುಲಾಮರ ಮೇಲೆ GTID ದೋಷವು ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ. ಇದನ್ನು ತಪ್ಪಿಸುವುದು ಹೇಗೆ? Perona-5.7.25-28 binlog_skip_flush_commands=1 ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಪರಿಚಯಿಸಿತು, ಇದು ಬಿನ್‌ಲಾಗ್‌ಗಳಿಗೆ ಫ್ಲಶ್ ಬರೆಯುವುದನ್ನು ನಿಷೇಧಿಸುತ್ತದೆ. mysql.com ವೆಬ್‌ಸೈಟ್‌ನಲ್ಲಿ ಸ್ಥಾಪಿತವಾದ ಒಂದಿದೆ ದೋಷ.

ಮೇಲಿನ ಎಲ್ಲವನ್ನೂ ನಾನು ಸಂಕ್ಷಿಪ್ತವಾಗಿ ಹೇಳುತ್ತೇನೆ. ನೀವು ಇನ್ನೂ ಆರ್ಕೆಸ್ಟ್ರೇಟರ್ ಅನ್ನು ವಿಫಲ ಮೋಡ್‌ನಲ್ಲಿ ಬಳಸಲು ಬಯಸದಿದ್ದರೆ, ಅದನ್ನು ವೀಕ್ಷಣೆ ಮೋಡ್‌ನಲ್ಲಿ ಇರಿಸಿ. ನಂತರ ನೀವು ಯಾವಾಗಲೂ MySQL ಯಂತ್ರಗಳ ಪರಸ್ಪರ ಕ್ರಿಯೆಯ ನಕ್ಷೆಯನ್ನು ಹೊಂದಿರುತ್ತೀರಿ ಮತ್ತು ಪ್ರತಿ ಯಂತ್ರದಲ್ಲಿ ಯಾವ ರೀತಿಯ ಪುನರಾವರ್ತನೆ ಇದೆ, ಗುಲಾಮರು ಹಿಂದುಳಿದಿದ್ದಾರೆಯೇ ಮತ್ತು ಮುಖ್ಯವಾಗಿ, ಅವರು ಮಾಸ್ಟರ್‌ನೊಂದಿಗೆ ಎಷ್ಟು ಸ್ಥಿರರಾಗಿದ್ದಾರೆ ಎಂಬುದರ ಕುರಿತು ದೃಶ್ಯ ಮಾಹಿತಿ!

ಸ್ಪಷ್ಟ ಪ್ರಶ್ನೆ: "ಆರ್ಕೆಸ್ಟ್ರೇಟರ್ ಹೇಗೆ ಕೆಲಸ ಮಾಡಬೇಕು?" ಅವರು ಪ್ರಸ್ತುತ ಗುಲಾಮರಿಂದ ಹೊಸ ಮಾಸ್ಟರ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಬೇಕು, ತದನಂತರ ಎಲ್ಲಾ ಗುಲಾಮರನ್ನು ಅದಕ್ಕೆ ಮರುಸಂಪರ್ಕಿಸಬೇಕು (ಇದಕ್ಕಾಗಿ GTID ಅಗತ್ಯವಿದೆ; ನೀವು binlog_name ಮತ್ತು binlog_pos ನೊಂದಿಗೆ ಹಳೆಯ ಕಾರ್ಯವಿಧಾನವನ್ನು ಬಳಸಿದರೆ, ನಂತರ ಪ್ರಸ್ತುತ ಯಜಮಾನನಿಂದ ಹೊಸದಕ್ಕೆ ಗುಲಾಮನನ್ನು ಬದಲಾಯಿಸುವುದು ಸರಳವಾಗಿ ಅಸಾಧ್ಯ!). ನಾವು ಆರ್ಕೆಸ್ಟ್ರೇಟರ್ ಅನ್ನು ಹೊಂದುವ ಮೊದಲು, ನಾನು ಒಮ್ಮೆ ಇದನ್ನು ಕೈಯಾರೆ ಮಾಡಬೇಕಾಗಿತ್ತು. ದೋಷಯುಕ್ತ ಅಡಾಪ್ಟೆಕ್ ನಿಯಂತ್ರಕದಿಂದಾಗಿ ಹಳೆಯ ಮಾಸ್ಟರ್ ನೇತಾಡುತ್ತಿದ್ದರು; ಇದು ಸುಮಾರು 10 ಗುಲಾಮರನ್ನು ಹೊಂದಿತ್ತು. ನಾನು ವಿಐಪಿಯನ್ನು ಯಜಮಾನನಿಂದ ಒಬ್ಬ ಗುಲಾಮನಿಗೆ ವರ್ಗಾಯಿಸಬೇಕಾಗಿತ್ತು ಮತ್ತು ಇತರ ಎಲ್ಲ ಗುಲಾಮರನ್ನು ಅದಕ್ಕೆ ಮರುಸಂಪರ್ಕಿಸಬೇಕಾಗಿತ್ತು. ನಾನು ಎಷ್ಟು ಕನ್ಸೋಲ್‌ಗಳನ್ನು ತೆರೆಯಬೇಕಾಗಿತ್ತು, ನಾನು ಎಷ್ಟು ಏಕಕಾಲಿಕ ಆಜ್ಞೆಗಳನ್ನು ನಮೂದಿಸಿದೆ ... ನಾನು 3 ಗಂಟೆಯವರೆಗೆ ಕಾಯಬೇಕಾಗಿತ್ತು, ಇಬ್ಬರನ್ನು ಹೊರತುಪಡಿಸಿ ಎಲ್ಲಾ ಗುಲಾಮರಿಂದ ಲೋಡ್ ಅನ್ನು ತೆಗೆದುಹಾಕಿ, ಇಬ್ಬರು ಮಾಸ್ಟರ್‌ಗಳಿಂದ ಮೊದಲ ಯಂತ್ರವನ್ನು ಮಾಡಿ, ತಕ್ಷಣ ಎರಡನೇ ಯಂತ್ರವನ್ನು ಲಗತ್ತಿಸಿ ಅದಕ್ಕೆ, ಎಲ್ಲಾ ಇತರ ಗುಲಾಮರನ್ನು ಹೊಸ ಯಜಮಾನನಿಗೆ ಲಗತ್ತಿಸಿ ಮತ್ತು ಹೊರೆ ಹಿಂತಿರುಗಿ. ಒಟ್ಟಾರೆಯಾಗಿ, ಭಯಾನಕ ...

ಫೇಲ್‌ಓವರ್ ಮೋಡ್‌ಗೆ ಹೋದಾಗ ಆರ್ಕೆಸ್ಟ್ರೇಟರ್ ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ? ನಾವು ಮಾಸ್ಟರ್ ಅನ್ನು ಹೆಚ್ಚು ಶಕ್ತಿಶಾಲಿ, ಹೆಚ್ಚು ಆಧುನಿಕ ಯಂತ್ರವನ್ನಾಗಿ ಮಾಡಲು ಬಯಸುವ ಪರಿಸ್ಥಿತಿಯ ಉದಾಹರಣೆಯಿಂದ ಇದನ್ನು ಸುಲಭವಾಗಿ ವಿವರಿಸಲಾಗಿದೆ.

MySQL ಗಾಗಿ ಆರ್ಕೆಸ್ಟ್ರೇಟರ್: ಅದು ಇಲ್ಲದೆ ನೀವು ದೋಷ-ಸಹಿಷ್ಣು ಯೋಜನೆಯನ್ನು ಏಕೆ ನಿರ್ಮಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ
ಚಿತ್ರವು ಪ್ರಕ್ರಿಯೆಯ ಮಧ್ಯವನ್ನು ತೋರಿಸುತ್ತದೆ. ಈ ಹಂತದವರೆಗೆ ಈಗಾಗಲೇ ಏನು ಮಾಡಲಾಗಿದೆ? ನಾವು ಕೆಲವು ಗುಲಾಮರನ್ನು ಹೊಸ ಯಜಮಾನನನ್ನಾಗಿ ಮಾಡಲು ಬಯಸುತ್ತೇವೆ ಎಂದು ನಾವು ಹೇಳಿದ್ದೇವೆ, ಆರ್ಕೆಸ್ಟ್ರೇಟರ್ ಎಲ್ಲಾ ಇತರ ಗುಲಾಮರನ್ನು ಅದರೊಂದಿಗೆ ಮರುಸಂಪರ್ಕಿಸಲು ಪ್ರಾರಂಭಿಸಿದರು, ಹೊಸ ಮಾಸ್ಟರ್ ಸಾರಿಗೆ ಯಂತ್ರವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಾರೆ. ಈ ಯೋಜನೆಯೊಂದಿಗೆ, ಯಾವುದೇ ದೋಷಗಳು ಸಂಭವಿಸುವುದಿಲ್ಲ, ಎಲ್ಲಾ ಗುಲಾಮರು ಕೆಲಸ ಮಾಡುತ್ತಾರೆ, ಆರ್ಕೆಸ್ಟ್ರೇಟರ್ ಹಳೆಯ ಮಾಸ್ಟರ್‌ನಿಂದ ವಿಐಪಿಯನ್ನು ತೆಗೆದುಹಾಕುತ್ತಾರೆ, ಅದನ್ನು ಹೊಸದಕ್ಕೆ ವರ್ಗಾಯಿಸುತ್ತಾರೆ, ಓದಲು_ಮಾತ್ರ=0 ಮಾಡುತ್ತದೆ ಮತ್ತು ಹಳೆಯ ಮಾಸ್ಟರ್ ಅನ್ನು ಮರೆತುಬಿಡುತ್ತಾರೆ. ಎಲ್ಲಾ! ನಮ್ಮ ಸೇವೆಯ ಅಲಭ್ಯತೆಯು ವಿಐಪಿ ವರ್ಗಾವಣೆ ಸಮಯವಾಗಿದೆ, ಇದು 2-3 ಸೆಕೆಂಡುಗಳು.

ಇವತ್ತಿಗೂ ಅಷ್ಟೆ, ಎಲ್ಲರಿಗೂ ಧನ್ಯವಾದಗಳು. ಶೀಘ್ರದಲ್ಲೇ ಆರ್ಕೆಸ್ಟ್ರೇಟರ್ ಬಗ್ಗೆ ಎರಡನೇ ಲೇಖನ ಇರುತ್ತದೆ. ಪ್ರಸಿದ್ಧ ಸೋವಿಯತ್ ಚಲನಚಿತ್ರ "ಗ್ಯಾರೇಜ್" ನಲ್ಲಿ ಒಂದು ಪಾತ್ರವು "ನಾನು ಅವನೊಂದಿಗೆ ವಿಚಕ್ಷಣಕ್ಕೆ ಹೋಗುವುದಿಲ್ಲ!" ಆದ್ದರಿಂದ, ಆರ್ಕೆಸ್ಟ್ರೇಟರ್, ನಾನು ನಿಮ್ಮೊಂದಿಗೆ ವಿಚಕ್ಷಣಕ್ಕೆ ಹೋಗುತ್ತೇನೆ!

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ