Biasanya setelah membuang database MySQL dengan mysqldump
perintah saya segera tar / gzip file yang dihasilkan. Saya mencari cara untuk melakukan ini dalam satu perintah:
Jadi dari ini:
mysqldump dbname -u root -p > dbname.sql
tar czvf dbname.sql.tgz dbname.sql
rm dbname.sql
Untuk sesuatu seperti ini:
mysqldump dbname -u root -p > some wizardry > dbname.sql.tgz
Atau bahkan lebih baik (karena saya biasanya scp'ing file dump ke server lain):
mysqldump dbname -u root -p > send dbname.sql.tgz to user@host
Saya menjalankan bash di debian.
mysqldump | tar cf - | gzip -c | ssh ... 'cat > file.tgz'
mysqldump --opt <database> | gzip -c | cat > $(date +%Y-%m-%d-%H.%M.%S).sql.gz
gzip -c > $(date +%Y-%m-%d-%H.%M.%S).sql.gz
netcat
bukannya perpipaan ke ssh. Anda akan menghemat sedikit pada overhead enkripsi ssh, jika sedang ditransfer melalui jaringan aman (atau Anda tidak peduli dengan keamanan). Saat ini Anda mungkin juga mempertimbangkan untuk menggunakanxz
bukangzip
.Jika Anda menjalankan ini secara lokal, gunakan saja perintah berikut untuk mencadangkan basis data Anda & zip menggunakan gzip:
(Edit: kunci -c diperbaiki)
sumber
gzip -c
, bukan?Gunakan pipa bernama.
Saya menggunakannya sepanjang waktu, ini luar biasa.
http://en.wikipedia.org/wiki/Named_pipe
sumber
mkfifo mysql_pipe; gzip -9 -c < mysql_pipe > name_of_dump.gz &; mysqldump database > mysql_pipe; rm mysql_pipe
di sana, satu baris. Tentu saja saya akan menyimpan pipa dan menggunakannya setiap waktu.Saya menulis skrip cepat untuk menyedot basis data mysql jarak jauh. Ini menggunakan kompresi mysql, kompresi gzip dan ssh. Mengisap basis data multi-GB dengan kecepatan luar biasa.
Manfaat sampingannya adalah tidak memerlukan ruang kosong di server basis data sumber, jadi Anda dapat menggunakannya untuk membuat cadangan basis data di server dengan nol ruang kosong sebelum melakukan pemangkasan data Anda.
Semoga ini bisa membantu seseorang.
sumber
Gunakan
pv
dan monitor rate!Atau, jika Anda tahu ukurannya (3GB), dapatkan perkiraan yang akurat:
sumber
Coba ini:
Tolong bukan karena saya tidak pandai hal-hal ini, saya hanya menggabungkan 2 opsi di web menjadi satu.
Mungkin lebih baik dalam beberapa hal lain tetapi ini adalah satu-liner yang bekerja untuk saya.
Namun itu perlu
ssh.keys
diinstal dan diterima jika Anda ingin menggunakannya dalam skrip ataucrontab
atau sama.sumber
Anda dapat melakukannya seperti:
mysqldump --add-drop-table -h dbhost -u dbuser -p dbname (tablename tablename ... ) | gzip -c > wp.sql.gz
misalnya
mysqldump --add-drop-table -h localhost -u root -p wordpress | gzip -c > wp.sql.gz
sumber
Saya telah mengerjakan skrip bash ini di bawah ini yang mencoba mengumpulkan semua saran bagus yang saya lihat ketika datang untuk dump / restore dengan mysql. Ini ditargetkan pada operasi jarak jauh.
Konfigurasikan ulang vars dan cobalah. :)
Fitur-fiturnya adalah:
Apa yang perlu diperbaiki:
Saya membagikan skrip ini di sini dengan harapan dapat ditingkatkan oleh komunitas. (paling baik dilihat dengan nano atau editor lain yang mewarnai kode)
--------------------------------- potong disini --------------- -------------------
sumber
Anda juga dapat menyimpan kata sandi Anda dalam file konfigurasi dan menggunakan opsi ini --defaults-extra-file:
File config dapat terlihat seperti ini:
sumber