Cara menggunakan backup var/lib/mysql

Praktik terbaik cadangan standar berlaku saat membuat kebijakan cadangan OpenStack Anda. Misalnya, seberapa sering membuat cadangan data Anda terkait erat dengan seberapa cepat Anda perlu pulih dari kehilangan data.

Catatan

Jika Anda tidak dapat kehilangan data sama sekali, Anda juga harus fokus pada penyebaran yang sangat tersedia. The OpenStack High Availability Guide menawarkan saran untuk menghilangkan satu titik kegagalan yang dapat menyebabkan gangguan sistem. Meskipun ini bukan dokumen yang sepenuhnya preskriptif, ia menawarkan metode dan teknik untuk menghindari downtime dan kehilangan data.

Pertimbangan cadangan lainnya termasuk:

  • Berapa banyak cadangan yang harus disimpan?

  • Haruskah cadangan disimpan off-site?

  • Seberapa sering cadangan harus diuji?

Sama pentingnya dengan kebijakan cadangan adalah kebijakan pemulihan [atau setidaknya pengujian pemulihan].

Yang Harus Dicadangkan

Sementara OpenStack terdiri dari banyak komponen dan komponen yang bergerak, membuat cadangan data penting cukup sederhana.

Bab ini hanya menjelaskan cara mencadangkan file konfigurasi dan database yang harus dijalankan oleh berbagai komponen OpenStack. Bab ini tidak menjelaskan cara membuat cadangan objek di dalam Object Storage atau data yang terkandung di dalam Block Storage. Umumnya area ini dibiarkan bagi pengguna untuk membuat cadangan sendiri.

Backup Database

Contoh arsitektur OpenStack menunjuk pengontrol cloud sebagai server MySQL. Server MySQL ini meng-host basis data untuk nova, glance, cinder, dan keystone. Dengan semua basis data ini di satu tempat, sangat mudah untuk membuat cadangan basis data:

# mysqldump --opt --all-databases > openstack.sql

Jika Anda hanya ingin membuat cadangan satu database, Anda dapat menjalankan:

# mysqldump --opt nova > nova.sql

di mana nova adalah basis data yang ingin Anda buat cadangannya.

Anda dapat dengan mudah mengotomatiskan proses ini dengan membuat tugas cron yang menjalankan skrip berikut sekali sehari:

#!/bin/bash
backup_dir="/var/lib/backups/mysql"
filename="${backup_dir}/mysql-`hostname`-`eval date +%Y%m%d`.sql.gz"
# Dump the entire MySQL database
/usr/bin/mysqldump --opt --all-databases | gzip > $filename
# Delete backups older than 7 days
find $backup_dir -ctime +7 -type f -delete

Skrip ini membuang seluruh database MySQL dan menghapus cadangan yang lebih lama dari tujuh hari.

Cadangan Sistem File

Bagian ini membahas file dan direktori mana yang harus didukung secara teratur, yang diatur oleh layanan.

Compute

Direktori /etc/nova pada cloud controller dan compute node harus secara teratur dicadangkan.

/var/log/nova tidak perlu dicadangkan jika semua log masuk ke area pusat. Sangat disarankan untuk menggunakan server logging pusat atau membuat cadangan direktori log.

# mysqldump --opt nova > nova.sql
0 adalah direktori penting lainnya untuk dicadangkan. Pengecualian untuk hal ini adalah subdirektori
# mysqldump --opt nova > nova.sql
1 pada compute node. Subdirektori ini berisi image KVM dari instance yang sedang berjalan. Anda ingin mencadangkan direktori ini hanya jika Anda perlu mempertahankan salinan cadangan dari semua instance. Dalam sebagian besar keadaan, Anda tidak perlu melakukan ini, tetapi ini dapat bervariasi dari cloud ke cloud dan tingkat layanan Anda. Perlu diketahui juga bahwa membuat cadangan instance KVM langsung dapat menyebabkan instance tersebut tidak bisa boot dengan benar jika pernah dipulihkan dari cadangan.

Katalog Image dan Pengiriman

# mysqldump --opt nova > nova.sql
2 and
# mysqldump --opt nova > nova.sql
3 ikuti aturan yang sama dengan counterpart Nova mereka.

# mysqldump --opt nova > nova.sql
4 juga harus didukung. Perhatikan
# mysqldump --opt nova > nova.sql
5.Jika Anda menggunakan back end berbasis file dari glance,
# mysqldump --opt nova > nova.sql
5 Di sinilah image disimpan dan perawatan harus diambil.

Ada dua cara untuk memastikan stabilitas dengan direktori ini. Yang pertama adalah memastikan direktori ini dijalankan pada array RAID. Jika disk gagal, direktori tersedia. Cara kedua adalah menggunakan alat seperti rsync untuk mereplikasi image ke server lain:

# rsync -az --progress /var/lib/glance/images backup-server:/var/lib/glance/images/

Identity

# mysqldump --opt nova > nova.sql
7 and
# mysqldump --opt nova > nova.sql
8 ikuti aturan yang sama dengan komponen lainnya.

# mysqldump --opt nova > nova.sql
9, meskipun tidak boleh berisi data apa pun yang digunakan, juga dapat dicadangkan untuk berjaga-jaga.

Block Storage

#!/bin/bash
backup_dir="/var/lib/backups/mysql"
filename="${backup_dir}/mysql-`hostname`-`eval date +%Y%m%d`.sql.gz"
# Dump the entire MySQL database
/usr/bin/mysqldump --opt --all-databases | gzip > $filename
# Delete backups older than 7 days
find $backup_dir -ctime +7 -type f -delete
0 and
#!/bin/bash
backup_dir="/var/lib/backups/mysql"
filename="${backup_dir}/mysql-`hostname`-`eval date +%Y%m%d`.sql.gz"
# Dump the entire MySQL database
/usr/bin/mysqldump --opt --all-databases | gzip > $filename
# Delete backups older than 7 days
find $backup_dir -ctime +7 -type f -delete
1 ikuti aturan yang sama dengan komponen lainnya.

#!/bin/bash
backup_dir="/var/lib/backups/mysql"
filename="${backup_dir}/mysql-`hostname`-`eval date +%Y%m%d`.sql.gz"
# Dump the entire MySQL database
/usr/bin/mysqldump --opt --all-databases | gzip > $filename
# Delete backups older than 7 days
find $backup_dir -ctime +7 -type f -delete
2 juga harus didukung.

Networking [jaringan]

#!/bin/bash
backup_dir="/var/lib/backups/mysql"
filename="${backup_dir}/mysql-`hostname`-`eval date +%Y%m%d`.sql.gz"
# Dump the entire MySQL database
/usr/bin/mysqldump --opt --all-databases | gzip > $filename
# Delete backups older than 7 days
find $backup_dir -ctime +7 -type f -delete
3 and
#!/bin/bash
backup_dir="/var/lib/backups/mysql"
filename="${backup_dir}/mysql-`hostname`-`eval date +%Y%m%d`.sql.gz"
# Dump the entire MySQL database
/usr/bin/mysqldump --opt --all-databases | gzip > $filename
# Delete backups older than 7 days
find $backup_dir -ctime +7 -type f -delete
4 ikuti aturan yang sama dengan komponen lainnya.

#!/bin/bash
backup_dir="/var/lib/backups/mysql"
filename="${backup_dir}/mysql-`hostname`-`eval date +%Y%m%d`.sql.gz"
# Dump the entire MySQL database
/usr/bin/mysqldump --opt --all-databases | gzip > $filename
# Delete backups older than 7 days
find $backup_dir -ctime +7 -type f -delete
5 juga harus didukung.

Object Storage

#!/bin/bash
backup_dir="/var/lib/backups/mysql"
filename="${backup_dir}/mysql-`hostname`-`eval date +%Y%m%d`.sql.gz"
# Dump the entire MySQL database
/usr/bin/mysqldump --opt --all-databases | gzip > $filename
# Delete backups older than 7 days
find $backup_dir -ctime +7 -type f -delete
6 sangat penting untuk didukung. Direktori ini berisi file konfigurasi swift serta file ring dan ring , yang jika hilang, membuat data di cluster Anda tidak dapat diakses. Praktik terbaik adalah menyalin file pembangun ke semua node penyimpanan bersama dengan file ring. Beberapa salinan cadangan tersebar di seluruh kluster penyimpanan Anda.

Telemetry

Cadangkan direktori

#!/bin/bash
backup_dir="/var/lib/backups/mysql"
filename="${backup_dir}/mysql-`hostname`-`eval date +%Y%m%d`.sql.gz"
# Dump the entire MySQL database
/usr/bin/mysqldump --opt --all-databases | gzip > $filename
# Delete backups older than 7 days
find $backup_dir -ctime +7 -type f -delete
7 yang berisi file konfigurasi Telemetry.

Orchestration

Buat cadangan file templat HOT

#!/bin/bash
backup_dir="/var/lib/backups/mysql"
filename="${backup_dir}/mysql-`hostname`-`eval date +%Y%m%d`.sql.gz"
# Dump the entire MySQL database
/usr/bin/mysqldump --opt --all-databases | gzip > $filename
# Delete backups older than 7 days
find $backup_dir -ctime +7 -type f -delete
8, dan direktori
#!/bin/bash
backup_dir="/var/lib/backups/mysql"
filename="${backup_dir}/mysql-`hostname`-`eval date +%Y%m%d`.sql.gz"
# Dump the entire MySQL database
/usr/bin/mysqldump --opt --all-databases | gzip > $filename
# Delete backups older than 7 days
find $backup_dir -ctime +7 -type f -delete
9 yang berisi file konfigurasi Orchestration.

Memulihkan Cadangan

Memulihkan cadangan adalah proses yang cukup sederhana. Untuk memulai, pertama pastikan bahwa layanan yang Anda pulihkan tidak berjalan. Misalnya, untuk melakukan pemulihan penuh nova pada pengontrol cloud, pertama-tama hentikan semua layanan nova:

# stop nova-api
# stop nova-consoleauth
# stop nova-novncproxy
# stop nova-objectstore
# stop nova-scheduler

Sekarang Anda dapat mengimpor basis data yang dicadangkan sebelumnya:

Anda juga dapat mengembalikan direktori nova yang didukung:

# mv /etc/nova{,.orig}
# cp -a /path/to/backup/nova /etc/

Setelah file dipulihkan, mulai kembali semuanya:

# start mysql
# for i in nova-api nova-consoleauth nova-novncproxy \
  nova-objectstore nova-scheduler
> do
> start $i
> done

Layanan lain mengikuti proses yang sama, dengan direktori dan database masing-masing.

Ringkasan

Pencadangan dan pemulihan selanjutnya adalah salah satu tugas pertama yang dipelajari oleh administrator sistem. Namun, setiap sistem memiliki item berbeda yang perlu diperhatikan. Dengan menjaga basis data, layanan gambar, dan lokasi sistem file yang sesuai, Anda dapat yakin bahwa Anda dapat menangani segala peristiwa yang membutuhkan pemulihan.

Apa itu Binlog?

Mengenal MySQL Binlog [MySQL Binary Logs] Salah satunya adalah Binary Logs, atau Binlog. Binlog dirancang untuk memudahkan transaction logging. Saat kita membuat database, membuat tabel, mengisi tabel, menghapus record, drop tables, maka semua proses tersebut akan tersimpan dalam MySQL Binlog.

Apa itu backup pada database?

Backup data merupakan proses membuat data cadangan dengan cara menyalin atau membuat arsip data sehingga dapat digunakan kembali apabila data mengalami kerusakan atau kehilangan.

Bài mới nhất

Chủ Đề