Rumah pangkalan data tutorial mysql 讲解Linux系统下如何自动备份MySQL数据的基本教程_MySQL

讲解Linux系统下如何自动备份MySQL数据的基本教程_MySQL

May 27, 2016 pm 01:45 PM
linux mysql sandaran Tutorial

1.先创建一个数据库备份目录:

1

2

3

4

mkdir backup

cd backup

mkdir mysqlbackup

cd mysqlbackup

Salin selepas log masuk

2.创建备份脚本

1

vi mysqlautobackup

Salin selepas log masuk

3.编写脚本:

1

2

filename=`date +%Y%m%d`

/mysql的bin目录/mysqldump --opt 数据库名 -u(mysql账号) -p(mysql密码) | gzip > /备份到哪个目录/name$filename.gz

Salin selepas log masuk


说明:以上采用gzip压缩,name可随意写,注意-u与mysql账号之间没有空格也无需括号,-p与mysql密码也是。
4.将脚本设置为可执行权限:

1

chmod +x autobackup

Salin selepas log masuk


5.写入计划任务:

1

2

crontab -e

01 01 * * * /bin/bash /脚本所在目录/mysqlautobackup

Salin selepas log masuk


每天凌晨1点零1分执行脚本。
重启计划任务:

1

/etc/rc.d/init.d/crond restart

Salin selepas log masuk


至此所有步骤完成。

一些常用技巧
1、创建保存备份文件的路径/mysqldata

1

#mkdir /mysqldata

Salin selepas log masuk

2、创建/usr/sbin/baktest文件
输入以下内容:

1

mysqldump -uroot -proot test | gzip > /mysqldata/test`date +%Y-%m-%d_%H%M%S`.sql.gz

Salin selepas log masuk

3、修改文件属性,使其可以执行

1

#chmod +x /usr/sbin/baktest

Salin selepas log masuk

4、修改/etc/crontab
在下面添加

1

01 3 * * * root /usr/sbin/baktest

Salin selepas log masuk

表示每天3点钟01分执行备份

5、重新启动crond

1

#/etc/rc.d/init.d/crond restart

Salin selepas log masuk

完成。


PS:
全备份脚本:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

#!/bin/bash

# Name:qbk全备份脚本

# mysql qbk scripts

# By zxsdw.com

# Last Modify:2015-01-21

#定义脚本存放路径

#scriptsDir=/usr/sbin

#定义用户名及密码

user=root

userPWD=密码

#定义要备份的数据库

database=数据库

#定义完全备份文件存放路径

bakDir=/backup/mysql

#eMailFile=$bakDir/email.txt

#eMail=admin@zxsdw.com

#定义日志文件

LogFile=$bakDir/mysqlbak.log

DATE=`date +%Y%m%d`

echo " " >> $LogFile

echo " " >> $LogFile

echo "--------------------------" >> $LogFile

echo $(date +"%y-%m-%d %H:%M:%S") >>$LogFile

echo "-----------------" >> $LogFile

cd $bakDir

DumpFile=$DATE.sql.gz

mysqldump --flush-logs -u$user -p$userPWD --quick $database| gzip >$DumpFile

echo "Dump Done" >> $LogFile

echo "[$DumpFile]Backup Success!" >> $LogFile

daily_databakDir=$bakDir/daily_backup

cd $bakDir/daily_backup

find $daily_databakDir -name "daily*" -type f -mtime +35 -exec rm {} \; > /dev/null 2>&1

Salin selepas log masuk


增量备份脚本

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

#!/bin/bash

# Name:zbk增量备份

# mysql zbk scripts

# By zxsdw.com

# Last modify:2015-01-21

 

 

#定义数据库用户名及密码

user=root

userPWD=密码

#定义数据库

database=数据库

#生成一个新的mysql-bin.00000X文件,如果err日志被清除,则自动新建一个。

/usr/local/mysql/bin/mysqladmin -u$user -p$userPWD flush-logs

#定义增量备份位置

daily_databakDir=/backup/mysql/daily_backup

#定义MYSQL数据日志目录

mysqlDataDir=/usr/local/mysql/var

#定义增量日志及目录

eMailFile=$daily_databakDir/email.txt

#eMail=admin@zxsdw.com

#定义变量DATE格式为20150127

DATE=`date +%Y%m%d`

#定义一个总的logFile日志

logFile=$daily_databakDir/mysql$DATE.log

 

 

#美化日志模板

echo "    " > $eMailFile

echo "-----------------------" >> $eMailFile

#时间格式为15-01-27 01:06:17

echo $(date +"%y-%m-%d %H:%M:%S") >> $eMailFile

echo "-------------------------" >> $eMailFile

 

 

#定义删除bin日志的时间范围,格式为20150124010540

TIME=$(date "-d 3 day ago" +%Y%m%d%H%M%S)

#定义需要增量备份数据的时间范围,格式为2015-01-26 01:04:11

StartTime=$(date "-d 1 day ago" +"%Y-%m-%d %H:%M:%S")

 

###########开始删除操作美化日志标题##############

echo "Delete 3 days before the log" >>$eMailFile

 

#删除三天前的bin文件,及更新index里的索引记录,美化日志标题

mysql -u$user -p$userPWD -e "purge master logs before ${TIME}" && echo "delete 3 days before log" |tee -a $eMailFile

 

#查找index索引里的bin 2进制文件并赋值给 i。

filename=`cat $mysqlDataDir/mysql-bin.index |awk -F "/" '{print $2}'`

for i in $filename

do

#########开始增量备份操作,美化日志标题###########

echo "$StartTime start backup binlog" >> $eMailFile

 

#利用mysqlbinlog备份1天前增加的数据,并gzip压缩打包到增量备份目录

/usr/local/mysql/bin/mysqlbinlog -u$user -p$userPWD -d $database --start-datetime="$StartTime" $mysqlDataDir/$i |gzip >> $daily_databakDir/daily$DATE.sql.gz |tee -a $eMailFile

 

done

 

 

#如果以上备份脚本执行成功,接着运行下面的删除脚本

if [ $? = 0 ]

then

# 删除mtime>32的增量日志备份文件

find $daily_databakDir -name "*.log" -type f -mtime +32 -exec rm {} \; > /dev/null 2>&1

cd $daily_databakDir

echo "Daily backup succeed" >> $eMailFile

else

echo "Daily backup fail" >> $eMailFile

#mail -s "MySQL Backup" $eMail < $eMailFile #备份失败之后发送邮件通知

#fi结束IF判断

fi

 

 

#把变量eMailFile的内容替换logFile内容

cat $eMailFile > $logFile

 

#如果上面的IF判断失败,再次运行删除mtime>32的增量日志备份文件

find $daily_databakDir -name "*.log" -type f -mtime +32 -exec rm {} \; > /dev/null 2>&1

rsync -vzrtopg --delete --progress --password-file=/usr/local/rsync/rsync.passwd root@$ip:/zxs/allimg/$(date -d -1day +%y%m%d) /zxs/allimg/

gunzip < /backup/mysql/daily_backup/ceshi.sql.gz | /usr/local/mysql/bin/mysql -u用户名 -p密码 数据库名 --force

--force参数 忽略错误

Salin selepas log masuk

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Peranan MySQL: Pangkalan Data dalam Aplikasi Web Peranan MySQL: Pangkalan Data dalam Aplikasi Web Apr 17, 2025 am 12:23 AM

Peranan utama MySQL dalam aplikasi web adalah untuk menyimpan dan mengurus data. 1.MYSQL dengan cekap memproses maklumat pengguna, katalog produk, rekod urus niaga dan data lain. 2. Melalui pertanyaan SQL, pemaju boleh mengekstrak maklumat dari pangkalan data untuk menghasilkan kandungan dinamik. 3.MYSQL berfungsi berdasarkan model klien-pelayan untuk memastikan kelajuan pertanyaan yang boleh diterima.

Contoh Pengenalan Laravel Contoh Pengenalan Laravel Apr 18, 2025 pm 12:45 PM

Laravel adalah rangka kerja PHP untuk membina aplikasi web yang mudah. Ia menyediakan pelbagai ciri yang kuat termasuk: Pemasangan: Pasang Laravel CLI secara global dengan komposer dan buat aplikasi dalam direktori projek. Routing: Tentukan hubungan antara URL dan pengendali dalam laluan/web.php. Lihat: Buat pandangan dalam sumber/pandangan untuk menjadikan antara muka aplikasi. Integrasi Pangkalan Data: Menyediakan integrasi keluar-of-the-box dengan pangkalan data seperti MySQL dan menggunakan penghijrahan untuk membuat dan mengubah suai jadual. Model dan Pengawal: Model mewakili entiti pangkalan data dan proses pengawal permintaan HTTP.

Seni Bina Linux: Melancarkan 5 Komponen Asas Seni Bina Linux: Melancarkan 5 Komponen Asas Apr 20, 2025 am 12:04 AM

Lima komponen asas sistem Linux adalah: 1. Kernel, 2. Perpustakaan Sistem, 3. Utiliti Sistem, 4. Antara Muka Pengguna Grafik, 5. Aplikasi. Kernel menguruskan sumber perkakasan, Perpustakaan Sistem menyediakan fungsi yang telah dikompilasi, utiliti sistem digunakan untuk pengurusan sistem, GUI menyediakan interaksi visual, dan aplikasi menggunakan komponen ini untuk melaksanakan fungsi.

Apr 16, 2025 pm 07:39 PM

Walaupun Notepad tidak dapat menjalankan kod Java secara langsung, ia dapat dicapai dengan menggunakan alat lain: menggunakan pengkompil baris arahan (Javac) untuk menghasilkan fail bytecode (fileName.class). Gunakan Java Interpreter (Java) untuk mentafsir bytecode, laksanakan kod, dan output hasilnya.

Selesaikan masalah sambungan pangkalan data: Kes praktikal menggunakan perpustakaan mini/db Selesaikan masalah sambungan pangkalan data: Kes praktikal menggunakan perpustakaan mini/db Apr 18, 2025 am 07:09 AM

Saya menghadapi masalah yang rumit ketika membangunkan aplikasi kecil: keperluan untuk mengintegrasikan perpustakaan operasi pangkalan data ringan dengan cepat. Selepas mencuba beberapa perpustakaan, saya mendapati bahawa mereka mempunyai terlalu banyak fungsi atau tidak serasi. Akhirnya, saya dapati Minii/DB, versi mudah berdasarkan YII2 yang menyelesaikan masalah saya dengan sempurna.

Cara memeriksa alamat gudang git Cara memeriksa alamat gudang git Apr 17, 2025 pm 01:54 PM

Untuk melihat alamat repositori Git, lakukan langkah -langkah berikut: 1. Buka baris arahan dan navigasi ke direktori repositori; 2. Jalankan perintah "Git Remote -V"; 3. Lihat nama repositori dalam output dan alamat yang sepadan.

Mysql vs Bahasa Pengaturcaraan Lain: Perbandingan Mysql vs Bahasa Pengaturcaraan Lain: Perbandingan Apr 19, 2025 am 12:22 AM

Berbanding dengan bahasa pengaturcaraan lain, MySQL digunakan terutamanya untuk menyimpan dan mengurus data, manakala bahasa lain seperti Python, Java, dan C digunakan untuk pemprosesan logik dan pembangunan aplikasi. MySQL terkenal dengan prestasi tinggi, skalabilitas dan sokongan silang platform, sesuai untuk keperluan pengurusan data, sementara bahasa lain mempunyai kelebihan dalam bidang masing-masing seperti analisis data, aplikasi perusahaan, dan pengaturcaraan sistem.

Kaedah pemasangan kerangka Laravel Kaedah pemasangan kerangka Laravel Apr 18, 2025 pm 12:54 PM

Ringkasan Artikel: Artikel ini menyediakan arahan langkah demi langkah terperinci untuk membimbing pembaca tentang cara memasang rangka kerja Laravel dengan mudah. Laravel adalah rangka kerja PHP yang kuat yang mempercepat proses pembangunan aplikasi web. Tutorial ini merangkumi proses pemasangan dari keperluan sistem untuk mengkonfigurasi pangkalan data dan menyediakan penghalaan. Dengan mengikuti langkah -langkah ini, pembaca dapat dengan cepat dan cekap meletakkan asas yang kukuh untuk projek Laravel mereka.

See all articles