Pencadangan & pemulihan pangkalan data pada MariaDB¶
Persiapan¶
-
host sumber
-
host tujuan
- ketersediaan akses pengguna pada host sumber dan tujuan untuk melakukan:
- mencadangkan pangkalan data
- memulihkan pangkalan data
- program
MariaDB-backup
Proses¶
- Proses akan dilakukan pada konsol peladen tujuan
- Nama pengguna dan kata sandi pada kedua peladen sudah disiapkan sama
ssh -v db02-mariadb104-01
Alat¶
dnf install -y MariaDB-backup
Akses pengguna¶
# variabel
PENGGUNA_CADANG_PULIH="nama_pengguna"
SANDI_CADANG_PULIH="lalalalululi"
PELADEN_CADANG_PULIH="%"
# membuat pengguna pencadangan & pemulihan
mysql -uroot -hlocalhost -p <<EOF
CREATE USER '${PENGGUNA_CADANG_PULIH}'@'${PELADEN_CADANG_PULIH}' IDENTIFIED BY '${SANDI_CADANG_PULIH}';
GRANT RELOAD, PROCESS, LOCK TABLES, REPLICATION CLIENT, SELECT ON *.* TO '${PENGGUNA_CADANG_PULIH}'@'${PELADEN_CADANG_PULIH}';
FLUSH PRIVILEGES;
EOF
Pencadangan & pemulihan¶
# variable
PELADEN_SUMBER="10.20.30.40"
PORTA_SUMBER="112233"
PANGKALAN_DATA_SUMBER="nama_skema"
NAMA_BERKAS_SQL="${PANGKALAN_DATA_SUMBER}_`date +"%Y%m%d"`.sql"
PENGGUNA_CADANG_PULIH="nama_pengguna"
# pencadangan pangkalan data
mysqldump --single-transaction \
--quick \
-h $PELADEN_SUMBER \
-P $PORTA_SUMBER \
-u $PENGGUNA_CADANG_PULIH \
-p $PANGKALAN_DATA_SUMBER \
> $NAMA_BERKAS_SQL
# mengintip isi berkas hasil pencadangan pangkalan data
head -n 25 $NAMA_BERKAS_SQL
# variable
PELADEN_APLIKASI="10.20.30.0"
PELADEN_PANGKALAN_DATA="10.20.30.255"
PENGGUNA_APLIKASI="app00_kecebadai"
PANGKALAN_DATA_APLIKASI="app00_kecebadai"
SANDI_APLIKASI="lalalalililu"
CHARSET="utf8mb4"
COLLATION="utf8mb4_general_ci"
# membuat pangkalan data, pengguna aplikasi dan memberikan aksesnya
mysql -uroot -hlocalhost -p <<EOF
CREATE DATABASE ${PANGKALAN_DATA_APLIKASI} CHARACTER SET = '${CHARSET}' COLLATE = '${COLLATION}';
GRANT ALL PRIVILEGES ON ${PANGKALAN_DATA_APLIKASI}.* TO '${PENGGUNA_APLIKASI}'@'${PELADEN_APLIKASI}' IDENTIFIED BY '${SANDI_APLIKASI}';
FLUSH PRIVILEGES;
EOF
# pemulihan menggunakan akun root
mysql -u $PENGGUNA_APLIKASI -h $PELADEN_PANGKALAN_DATA \
-p $PANGKALAN_DATA_APLIKASI \
< $NAMA_BERKAS_SQL
Penyelesaian¶
Rujukan¶
- https://bencane.com/2011/12/12/creating-a-read-only-backup-user-for-mysqldump/
- https://www.serverlab.ca/tutorials/linux/database-servers/create-a-read-only-backup-account-for-mysql/
- https://www.linode.com/docs/databases/mysql/use-mysqldump-to-back-up-mysql-or-mariadb/
- https://www.shellhacks.com/mysql-run-query-bash-script-linux-command-line/