ಪರ್ಕೋನಾ ಎಕ್ಸ್ಟ್ರಾಬ್ಯಾಕಪ್ ಬಿಸಿ ಡೇಟಾಬೇಸ್ ಬ್ಯಾಕ್ಅಪ್ಗಳಿಗೆ ಉಪಯುಕ್ತವಾಗಿದೆ MySQL.
ಡೇಟಾ ಬ್ಯಾಕಪ್ ರಚಿಸುವಾಗ, ಯಾವುದೇ ಕೋಷ್ಟಕಗಳನ್ನು ಲಾಕ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ ಮತ್ತು ನಿಮ್ಮ ಸಿಸ್ಟಮ್ ಯಾವುದೇ ನಿರ್ಬಂಧಗಳಿಲ್ಲದೆ ಕಾರ್ಯನಿರ್ವಹಿಸುವುದನ್ನು ಮುಂದುವರಿಸುತ್ತದೆ.
XtraBackup 2.4 ಕೋಷ್ಟಕಗಳ ಬ್ಯಾಕಪ್ ಪ್ರತಿಗಳನ್ನು ರಚಿಸಬಹುದು ಇನ್ನೋಡಿಬಿ, ಎಕ್ಸ್ಟ್ರಾಡಿಬಿ и ಮೈಸಾಮ್ ಸರ್ವರ್ಗಳಲ್ಲಿ MySQL 5.11, 5.5, 5.6 ಮತ್ತು 5.7, ಮತ್ತು ಸರ್ವರ್ನಲ್ಲಿಯೂ ಸಹ ಪೆರ್ಕೋನಾ ಗೆ MySQL с ಎಕ್ಸ್ಟ್ರಾಡಿಬಿ.
ಜೊತೆ ಕೆಲಸ ಮಾಡಲು MySQL 8.x ಆವೃತ್ತಿಯನ್ನು ಬಳಸಬೇಕು XtraBackup 8.x. ಈ ಲೇಖನವು ಅದರ ಬಗ್ಗೆ ಮಾತ್ರ ಮಾತನಾಡುತ್ತದೆ XtraBackup 2.4.
ಮುಖ್ಯ ಅನುಕೂಲ ಎಕ್ಸ್ಟ್ರಾಬ್ಯಾಕಪ್ ಈ ಉಪಯುಕ್ತತೆಯು ಹೆಚ್ಚು ಲೋಡ್ ಮಾಡಲಾದ ಬ್ಯಾಕಪ್ ಪ್ರತಿಗಳನ್ನು ರಚಿಸಲು ಸೂಕ್ತವಾಗಿದೆಯೇ? ಸರ್ವರ್ಗಳು, ಹಾಗೆಯೇ ಕಡಿಮೆ ಸಂಖ್ಯೆಯ ವಹಿವಾಟುಗಳನ್ನು ಹೊಂದಿರುವ ವ್ಯವಸ್ಥೆಗಳಿಗೆ.
ನಿಮ್ಮ MySQL ಡೇಟಾಬೇಸ್ಗಳ ಒಟ್ಟು ಗಾತ್ರವು ಗಮನಾರ್ಹವಾಗಿದ್ದರೆ (ಹತ್ತಾರು ಗಿಗಾಬೈಟ್ಗಳು), ನಂತರ ಪ್ರಮಾಣಿತ ಉಪಯುಕ್ತತೆ mysqldump ಬ್ಯಾಕಪ್ ನಕಲನ್ನು ತ್ವರಿತವಾಗಿ ರಚಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವುದಿಲ್ಲ ಮತ್ತು ಡಂಪ್ ಅನ್ನು ಮರುಸ್ಥಾಪಿಸಲು ಸಾಕಷ್ಟು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ.
ಸೆಟ್ಟಿಂಗ್
ಸೆಟ್ಟಿಂಗ್ ಎಕ್ಸ್ಟ್ರಾಬ್ಯಾಕಪ್ ಭಂಡಾರದಿಂದ ಜಾಸ್ತಿಯಿದೆ ಪರ್ಕೋನಾ.
ಕೆಳಗಿನ ಆಜ್ಞೆಗಳನ್ನು ಅನುಕ್ರಮವಾಗಿ ಚಲಾಯಿಸಿ:
wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb
sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
sudo apt-get update
sudo apt-get install percona-xtrabackup-242. ಅನುಸ್ಥಾಪನೆಯ ನಂತರ, ಆಜ್ಞೆಯನ್ನು ಚಲಾಯಿಸಿ xtrabackup -v. ಏಕೆಂದರೆ, ಸರ್ವರ್ನಲ್ಲಿ ಉಪಯುಕ್ತತೆಯು ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವುದು ಮುಖ್ಯವಾಗಿದೆ. ಪರಿಣಾಮವಾಗಿ, ಈ ರೀತಿಯದನ್ನು ಪರದೆಯ ಮೇಲೆ ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತದೆ:
xtrabackup: ಗುರುತಿಸಲಾದ ಸರ್ವರ್ ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳು: - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect - innodbflushlogattrxcommit=0xtrabackup ಆವೃತ್ತಿ 2.4.20 MySQL ಸರ್ವರ್ 5.7.26 ಆಧರಿಸಿದೆ Linux (x8664) (ಪರಿಷ್ಕರಣೆ ಐಡಿ: c8b4056)

ಪ್ರವೇಶ ಹಕ್ಕುಗಳು, ಅನುಮತಿಗಳು ಮತ್ತು ಸವಲತ್ತುಗಳು
XtraBackup ಗೆ ಸಾಧ್ಯವಾಗುತ್ತದೆ:
ನಿಮ್ಮ MySQL ಸರ್ವರ್ಗೆ ಸಂಪರ್ಕಪಡಿಸಿ.
ಡೈರೆಕ್ಟರಿಗೆ ಪ್ರವೇಶ ಹಕ್ಕುಗಳನ್ನು ಹೊಂದಿರಿ ಡಾಟಾಡಿರ್.
ಬ್ಯಾಕ್ಅಪ್ ನಕಲನ್ನು ರಚಿಸುವಾಗ, ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಪ್ಯಾರಾಮೀಟರ್ಗೆ ಬರೆಯುವ ಹಕ್ಕುಗಳನ್ನು ಹೊಂದಿರಿ ಗುರಿ-ನಿರ್ದೇಶನ ಕ್ಯಾಟಲಾಗ್.
ಡೇಟಾದಿರ್ ಎಂದರೇನು?
ಡಾಟಾಡಿರ್ ಡೇಟಾಬೇಸ್ ಸರ್ವರ್ ಇರುವ ಡೈರೆಕ್ಟರಿಯಾಗಿದೆ MySQL ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ. ಎಲ್ಲಾ ಡೇಟಾಬೇಸ್ಗಳು, ಎಲ್ಲಾ ಕೋಷ್ಟಕಗಳು ಅಲ್ಲಿ ನೆಲೆಗೊಂಡಿವೆ. ಹೆಚ್ಚಿನ ವಿತರಣೆಗಳಲ್ಲಿ Linux ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ, ಈ ಡೈರೆಕ್ಟರಿ /var/lib/mysql.
ಟಾರ್ಗೆಟ್-ಡಿಆರ್ ಡೈರೆಕ್ಟರಿ ಎಂದರೇನು?
ಗುರಿ-ನಿರ್ದೇಶನ - ಇದು ಬ್ಯಾಕಪ್ ಅನ್ನು ಉಳಿಸುವ ಡೈರೆಕ್ಟರಿಯಾಗಿದೆ.
ಡೇಟಾಬೇಸ್ ಬಳಕೆದಾರರಿಗೆ ಬ್ಯಾಕಪ್ ಮಾಡಲು ಕೋಷ್ಟಕಗಳು ಮತ್ತು ಡೇಟಾಬೇಸ್ಗಳಿಗೆ ಕೆಳಗಿನ ಪ್ರವೇಶ ಹಕ್ಕುಗಳ ಅಗತ್ಯವಿದೆ:
ಟೇಬಲ್ಗಳನ್ನು ಮರುಲೋಡ್ ಮಾಡಿ ಮತ್ತು ಲಾಕ್ ಮಾಡಿ
ರೆಪ್ಲಿಕೇಶನ್ ಕ್ಲೈಂಟ್
ಟೇಬಲ್ಸ್ಪೇಸ್ ರಚಿಸಿ
ಪ್ರಕ್ರಿಯೆ
ಸೂಪರ್
ರಚಿಸಿ
ಸೇರಿಸಿ
ಆಯ್ಕೆಮಾಡಿ
ಸಂರಚನೆ
ಸಂರಚನೆ ಎಕ್ಸ್ಟ್ರಾಬ್ಯಾಕಪ್ ಪ್ರಮಾಣಿತ MySQL ಆಯ್ಕೆಗಳಂತೆಯೇ ವರ್ತಿಸುವ ಆಯ್ಕೆಗಳನ್ನು ಬಳಸಿ ಮಾಡಲಾಗುತ್ತದೆ.
ಇದರ ಅರ್ಥವೇನು?
ಕಾನ್ಫಿಗರೇಶನ್ ನಿಯತಾಂಕಗಳನ್ನು ಆಜ್ಞಾ ಸಾಲಿನಲ್ಲಿ ಅಥವಾ DBMS ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ನಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು, ಉದಾಹರಣೆಗೆ /etc/my.cnf.
XtraBackup ಸೌಲಭ್ಯವು ಪ್ರಾರಂಭದ ನಂತರ ವಿಭಾಗಗಳನ್ನು ಓದುತ್ತದೆ [mysqld] и [xtrabackup] MySQL ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ಗಳಿಂದ. ಪ್ರತಿ ಬ್ಯಾಕಪ್ ಸಮಯದಲ್ಲಿ ನಿಯತಾಂಕಗಳನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ನಿರ್ದಿಷ್ಟಪಡಿಸದೆಯೇ ನಿಮ್ಮ DBMS ನ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಉಪಯುಕ್ತತೆಯು ಬಳಸಿಕೊಳ್ಳುವಂತೆ ಇದನ್ನು ಮಾಡಲಾಗುತ್ತದೆ.
ಉದಾಹರಣೆಗೆ, ಮೌಲ್ಯ ಡಾಟಾಡಿರ್ ಮತ್ತು ಕೆಲವು ನಿಯತಾಂಕಗಳು ಇನ್ನೋಡಿಬಿ ನಿಮ್ಮ DBMS ನ ಕಾನ್ಫಿಗರೇಶನ್ನಿಂದ ನಾವು XtraBackup ಅನ್ನು ಪಡೆಯುತ್ತೇವೆ.
XtraBackup ಕೆಲಸ ಮಾಡಲು ನೀವು ವಿಭಾಗದಲ್ಲಿ ಇರುವ ನಿಯತಾಂಕಗಳನ್ನು ಅತಿಕ್ರಮಿಸಲು ಬಯಸುತ್ತೀರಿ [mysqld], ನಂತರ ಅವುಗಳನ್ನು ವಿಭಾಗದಲ್ಲಿನ ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ನಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಿ [xtrabackup]. ಅವುಗಳನ್ನು ನಂತರ ಓದುವುದರಿಂದ, ಅವರ ಆದ್ಯತೆಯು ಹೆಚ್ಚಿನದಾಗಿರುತ್ತದೆ.
ನೀವು ಯಾವುದೇ ನಿಯತಾಂಕಗಳನ್ನು ಸೇರಿಸಬೇಕಾಗಿಲ್ಲ my.cnf. ಅಗತ್ಯವಿರುವ ಎಲ್ಲಾ ನಿಯತಾಂಕಗಳನ್ನು ಆಜ್ಞಾ ಸಾಲಿನಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು. ಸಾಮಾನ್ಯವಾಗಿ ವಿಭಾಗದಲ್ಲಿ ಅನುಕೂಲಕರವಾಗಿ ಇರಿಸಬಹುದಾದ ಏಕೈಕ ವಿಷಯ [xtrabackup] ನಿಮ್ಮ my.cnf ಒಂದು ನಿಯತಾಂಕವಾಗಿದೆ ಗುರಿ_ದಿರ್, ಇದು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಬ್ಯಾಕ್ಅಪ್ಗಳನ್ನು ಇರಿಸಲಾಗುವ ಡೈರೆಕ್ಟರಿಯನ್ನು ಸೂಚಿಸುತ್ತದೆ. ಆದರೆ ಇದು ಐಚ್ಛಿಕ.
ಬ್ಯಾಕ್ಅಪ್ ಕಾಪಿಯೊಂದಿಗೆ ಡೈರೆಕ್ಟರಿಗೆ ಮಾರ್ಗವನ್ನು ಸೂಚಿಸುವ ಉದಾಹರಣೆ my.cnf:
[xtrabackup]
target_dir = /data/backups/mysql/ಬ್ಯಾಕಪ್ ಸ್ಕ್ರಿಪ್ಟ್
ಬ್ಯಾಕಪ್ ರಚಿಸಲು ನೀವು ಈ ಕೆಳಗಿನ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಬಳಸಬಹುದು:
#!/bin/bash
# Удаляем данные в каталоге бекапа
rm -rf /mysql/backup
# Cоздаём бекап
xtrabackup --user=xtrabackup
--password=xxxx_SECRET_xxxx
--backup
--target-dir=/mysql/backup
# Выполняем подготовку бекапа для развёртывания
xtrabackup --prepare --target-dir=/mysql/backup
# Создаём архив
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-"$(date +%F-%H:%M:%S)".gz /mysql/backupಸ್ಕ್ರಿಪ್ಟ್ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಸಮಯದಲ್ಲಿ ಏನಾಗುತ್ತದೆ?
ಮೊದಲನೆಯದಾಗಿ, ನಾವು ಬ್ಯಾಕಪ್ ನಕಲನ್ನು ಉಳಿಸುವ ಡೈರೆಕ್ಟರಿಯನ್ನು ತೆರವುಗೊಳಿಸುತ್ತೇವೆ (ಅಳಿಸುತ್ತೇವೆ):
rm -rf /mysql/backup.
ನಂತರ, ಉಪಯುಕ್ತತೆಯನ್ನು ಬಳಸಿ ಎಕ್ಸ್ಟ್ರಾಬ್ಯಾಕಪ್ ಬ್ಯಾಕಪ್ ನಕಲನ್ನು ರಚಿಸಿ ಮತ್ತು ಅದನ್ನು ಉಳಿಸಿ /mysql/backup/:
xtrabackup --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backupಹಿಂದೆ, ನಾವು MySQL ನಲ್ಲಿ ಬಳಕೆದಾರರನ್ನು ರಚಿಸಿದ್ದೇವೆ xtrabackup ಅಗತ್ಯವಿರುವ ಸವಲತ್ತುಗಳೊಂದಿಗೆ. ನಿಯತಾಂಕವನ್ನು ಬಳಸುವುದು target-dir ಬ್ಯಾಕ್ಅಪ್ ಅನ್ನು ಉಳಿಸಬೇಕಾದ ಡೈರೆಕ್ಟರಿಯನ್ನು ನಾವು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತೇವೆ.
ಒಂದು ಪ್ರಮುಖ ಅಂಶ!
ಸ್ಕ್ರಿಪ್ಟ್ ಲೈನ್ ಅನ್ನು ಗಮನಿಸಿ:
xtrabackup --prepare --target-dir=/mysql/backup
ಕ್ಯಾಟಲಾಗ್ ಡೇಟಾ /mysql/backup ಅವು ಬೇಯಿಸುವವರೆಗೆ ಸ್ಥಿರವಾಗಿರುವುದಿಲ್ಲ.
ಫೈಲ್ಗಳನ್ನು ನಕಲಿಸುವಾಗ ಬದಲಾವಣೆಗಳು ಸಂಭವಿಸಬಹುದು ಎಂಬುದು ಸತ್ಯ. ಕಾರ್ಯಾಚರಣೆ xtrabackup --prepare --target-dir=/mysql/backup ಕಾಲಾನಂತರದಲ್ಲಿ ಬ್ಯಾಕಪ್ ಡೇಟಾವನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಸ್ಥಿರಗೊಳಿಸುತ್ತದೆ.
ನೀವು ಯಾವುದೇ ಯಂತ್ರದಲ್ಲಿ ಡೇಟಾ ತಯಾರಿ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಮಾಡಬಹುದು. ಮೂಲ DBMS ಇರುವ ಸರ್ವರ್ನಲ್ಲಿ ಇದನ್ನು ಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲ. ನೀವು ಬ್ಯಾಕ್ಅಪ್ ಅನ್ನು ಟಾರ್ಗೆಟ್ ಸರ್ವರ್ಗೆ ನಕಲಿಸಬಹುದು ಮತ್ತು ಅದನ್ನು ಅಲ್ಲಿ ಸಿದ್ಧಪಡಿಸಬಹುದು.
ನಾವು ಮಾಡುವ ಕೊನೆಯ ಕೆಲಸವೆಂದರೆ ಆರ್ಕೈವ್ ಅನ್ನು ರಚಿಸುವುದು, ಅದರಲ್ಲಿ ನಾವು ನಮ್ಮ ಬ್ಯಾಕಪ್ ಅನ್ನು ಇರಿಸುತ್ತೇವೆ:
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-«$(date % F% H% M% S)».gz /mysql/backupಬ್ಯಾಕಪ್ ಅನ್ನು ಮರುಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ
ನೀವು ಟಾರ್ಗೆಟ್ ಸರ್ವರ್ಗೆ ಬ್ಯಾಕಪ್ ಅನ್ನು ಮರುಸ್ಥಾಪಿಸುವ ಮೊದಲು, ಡೇಟಾವು ತಯಾರಿಕೆಯ ಹಂತದ ಮೂಲಕ ಹೋಗಬೇಕು. ಇದನ್ನು ಹೇಗೆ ಮಾಡಬೇಕೆಂದು ಮೇಲೆ ನೋಡಿ.
ಡೇಟಾ ಮರುಪಡೆಯುವಿಕೆ ಪ್ರಕ್ರಿಯೆಯು ತುಂಬಾ ಸರಳವಾಗಿದೆ. ನೀವು ಆರ್ಕೈವ್ನಿಂದ ಬ್ಯಾಕಪ್ ಅನ್ನು ಹೊರತೆಗೆಯಬೇಕು ಮತ್ತು ಡೇಟಾವನ್ನು ಬದಲಾಯಿಸಬೇಕು ಡಾಟಾಡಿರ್.
ಡೇಟಾಡಿರ್ನಲ್ಲಿ ಡೇಟಾವನ್ನು ಹೇಗೆ ಬದಲಾಯಿಸುವುದು?
ಎರಡು ಆಯ್ಕೆಗಳನ್ನು ಪರಿಗಣಿಸೋಣ.
ಆಯ್ಕೆ 1
ಉಪಯುಕ್ತತೆಯನ್ನು ಬಳಸಿ ಎಕ್ಸ್ಟ್ರಾಬ್ಯಾಕಪ್. ನೀವು ಆಯ್ಕೆಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕಾಗಿದೆ --ನಕಲು-ಹಿಂತಿರುಗಿ.
ಕೆಳಗಿನ ಆಜ್ಞೆಯು ಬ್ಯಾಕಪ್ ಅನ್ನು ವರ್ಗಾಯಿಸುತ್ತದೆ ಡಾಟಾಡಿರ್ ಗುರಿ ಸರ್ವರ್:
xtrabackup --copy-back --target-dir=/mysql/backupಆಯ್ಕೆ 2
ನೀವು ಅದನ್ನು ವಿಭಿನ್ನವಾಗಿ ಮಾಡಬಹುದು, ಉಪಯುಕ್ತತೆ ಇಲ್ಲದೆ ಮಾಡಿ ಎಕ್ಸ್ಟ್ರಾಬ್ಯಾಕಪ್.
ನೀವು ಮಾಡಬೇಕಾಗಿರುವುದು ಬ್ಯಾಕಪ್ ಅನ್ನು ನಕಲಿಸುವುದು ಡಾಟಾಡಿರ್. ನೀವು ಇದನ್ನು ಮಾಡಬಹುದು cp ಅಥವಾ rsync.
ಬ್ಯಾಕ್ಅಪ್ ಅನ್ನು ಮರುಸ್ಥಾಪಿಸುವ ವಿಧಾನವು ಡೈರೆಕ್ಟರಿಯ ವಿಷಯಗಳನ್ನು ಬದಲಿಸಲು ಕುದಿಯುತ್ತದೆ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಬಹಳ ಮುಖ್ಯ. ಡಾಟಾಡಿರ್.
ನೀವು ಟಾರ್ಗೆಟ್ ಸರ್ವರ್ನಲ್ಲಿ ಬ್ಯಾಕಪ್ ಅನ್ನು ಮರುಸ್ಥಾಪಿಸಲು ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು, ನೀವು ಮಾಡಬೇಕು:
MySQL ಸರ್ವರ್ ಅನ್ನು ನಿಲ್ಲಿಸಿ.
ಫೋಲ್ಡರ್ ತೆರವುಗೊಳಿಸಿ ಡಾಟಾಡಿರ್ ಅಥವಾ ಅದರ ವಿಷಯಗಳನ್ನು ಮತ್ತೊಂದು ಸ್ಥಳಕ್ಕೆ ಸರಿಸಿ. ಕ್ಯಾಟಲಾಗ್ ಡಾಟಾಡಿರ್ ಖಾಲಿಯಾಗಿರಬೇಕು.
ಗೆ ಡೇಟಾ ವರ್ಗಾವಣೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಿದ ನಂತರ ಡಾಟಾಡಿರ್ MySQL ಸರ್ವರ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಬಹುದು.
ಬಳಸಿದ ವಸ್ತುಗಳು
.
ಮೂಲ: www.habr.com
