mysql分庫備份與分表備份
1、分庫備份
要求:將mysql資料庫中的使用者資料庫備份,備份的資料庫檔案以時間命名
指令碼內容如下:
[root@db01 scripts]# vim backup_database.sh
#!/bin/bash
mysql_user=root
mysql_pass=123456
mkdir -p /backup
for n in `mysql -u$mysql_user -p$mysql_pass -e 'show databases;' 2>/dev/null|grep -ev '_schema|mysql'|sed '1d'`;
domysqldump -u$mysql_user -p$mysql_pass -b $n 2>/dev/null>/backup/$_`date +%y_%m_%d`.sql
done
執行指令碼進行測試:
[root@db01 scripts]# sh -x backup_database.sh
+ mysql_user=root
+ mysql_pass=123456
+ mkdir -p /backup
++ mysql -uroot -p123456 -e 'show databases;'
++ grep -ev '_schema|mysql'
++ sed 1d
+ for n in '`mysql -u$mysql_user -p$mysql_pass -e '\''show databases;'\'' 2>/dev/null|grep -ev '\''_schema|mysql'\''|sed '\''1d'\''`'
+ mysqldump -uroot -p123456 -b oldboy
+ for n in '`mysql -u$mysql_user -p$mysql_pass -e '\''show databases;'\'' 2>/dev/null|grep -ev '\''_schema|mysql'\''|sed '\''1d'\''`'
+ mysqldump -uroot -p123456 -b oldgirl
+ for n in '`mysql -u$mysql_user -p$mysql_pass -e '\''show databases;'\'' 2>/dev/null|grep -ev '\''_schema|mysql'\''|sed '\''1d'\''`'
+ mysqldump -uroot -p123456 -b test
[root@db01 scripts]#
檢查備份情況:
[root@db01 scripts]# tree /backup/
/backup/
├──oldboy_2018_07_04.sql
├──oldgirl_2018_07_04.sql
└──test_2018_07_04.sql
0 directories, 3 files
[root@db01 scripts]#
2、分庫分表備份
要求:備份每個資料庫的表,同乙個庫中的表,放在對應資料庫名字命名的目錄下
指令碼內容如下:
[root@db01 scripts]# vim backup_tables.sh
#!/bin/bash
mysql_user=root
mysql_pass=123456
mkdir -p /backup
for n in `mysql -u$mysql_user -p$mysql_pass -e 'show databases;' 2>/dev/null|grep -ev '_schema|mysql'|sed '1d'`;
domkdir -p /backup/$n
for m in `mysql -u$mysql_user -p$mysql_pass $n -e "show tables;" 2>/dev/null|sed '1d'`;
domysqldump -u$mysql_user -p$mysql_pass $n $m 2>/dev/null>/backup/$/$_`date +%y_%m_%d`.sql
done
done
執行指令碼進行測試:
[root@db01 scripts]# sh -x backup_tables.sh
+ mysql_user=root
+ mysql_pass=123456
+ mkdir -p /backup
++ mysql -uroot -p123456 -e 'show databases;'
++ grep -ev '_schema|mysql'
++ sed 1d
+ for n in '`mysql -u$mysql_user -p$mysql_pass -e '\''show databases;'\'' 2>/dev/null|grep -ev '\''_schema|mysql'\''|sed '\''1d'\''`'
+ mkdir -p /backup/oldboy
++ sed 1d
++ mysql -uroot -p123456 oldboy -e 'show tables;'
+ for m in '`mysql -u$mysql_user -p$mysql_pass $n -e "show tables;" 2>/dev/null|sed '\''1d'\''`'
+ mysqldump -uroot -p123456 oldboy students
+ for m in '`mysql -u$mysql_user -p$mysql_pass $n -e "show tables;" 2>/dev/null|sed '\''1d'\''`'
+ mysqldump -uroot -p123456 oldboy test
+ for m in '`mysql -u$mysql_user -p$mysql_pass $n -e "show tables;" 2>/dev/null|sed '\''1d'\''`'
+ mysqldump -uroot -p123456 oldboy test2
+ for n in '`mysql -u$mysql_user -p$mysql_pass -e '\''show databases;'\'' 2>/dev/null|grep -ev '\''_schema|mysql'\''|sed '\''1d'\''`'
+ mkdir -p /backup/oldgirl
++ mysql -uroot -p123456 oldgirl -e 'show tables;'
++ sed 1d
+ for m in '`mysql -u$mysql_user -p$mysql_pass $n -e "show tables;" 2>/dev/null|sed '\''1d'\''`'
+ mysqldump -uroot -p123456 oldgirl test3
+ for n in '`mysql -u$mysql_user -p$mysql_pass -e '\''show databases;'\'' 2>/dev/null|grep -ev '\''_schema|mysql'\''|sed '\''1d'\''`'
+ mkdir -p /backup/test
++ mysql -uroot -p123456 test -e 'show tables;'
++ sed 1d
+ for m in '`mysql -u$mysql_user -p$mysql_pass $n -e "show tables;" 2>/dev/null|sed '\''1d'\''`'
+ mysqldump -uroot -p123456 test test4
[root@db01 scripts]#
檢查備份情況:
[root@db01 scripts]# tree /backup/
/backup/
├──oldboy
│├── students_2018_07_04.sql
│├── test_2018_07_04.sql
│└── test2_2018_07_04.sql
├──oldgirl
│└── test3_2018_07_04.sql
└──test
└── test4_2018_07_04.sql
3 directories, 5 files
[root@db01 scripts]#
mysql分庫分表備份 mysql分庫分表備份
一 單獨備份資料庫 mysqldump uroot poldboy oldboy opt oldboy.sql 最簡單的備份 1 mysql基於myisam引擎 mysqldump uroot poldboy b x f oldboy gzip opt oldboy.sql.gz 2 5.5以後預設...
mysql分表分庫實現 MySql分表分庫思路
一.資料庫瓶頸 1.1io瓶頸 第一種 磁碟讀io瓶頸,熱點資料太多,資料庫快取放不下,每次查詢時會產生大量的io 分庫和垂直分表 第二種 網路io瓶頸,請求的資料太多,網路頻寬不夠 分庫 1.2cpu瓶頸 第一種 sql問題,如sql中包含join,group by,order by,非索引字段條...
MySQL範圍分表分庫 mysql 分表分庫策略
唯一id的生成 下面列舉幾種常見的唯一id生成方案,需要滿足兩大核心需求 1.全域性唯一 2趨勢有序 1.用資料庫的auto increment 自增id 來生成,每次通過寫入資料庫一條記錄,利用資料庫id自增的特性獲取唯一,有序的id。優點 使用資料庫原有的功能,相對簡單 能夠保證唯一 能夠保證遞...