mysqldump
安裝:yum -y install mysql-client / apt-get install mysql-client
使用:mysqldump -u root -p*** -h127.0.0.1 -p yyy db_name --default-character-set=utf8 > /data/***.sql
crontabyum install vixie-cron
yum install crontabs
crontab服務命令
service crond start //啟動服務
service crond stop //關閉服務
service crond restart //重啟服務
service crond reload //重新載入配置
shell指令碼
#!/bin/bash
mysql_user=root
mysql_pwd=e8rq1w1tgf57xorp
# backup path
backup_dir=/opt/mysqlbackup
# backup date
backup_date=
$(date +%y%m%d%h%m%s)
# backup count
backup_count=3
# base cmd
mysql_cmd=
"mysql -u$mysql_user -p$mysql_pwd"
mysql_dump=
"mysqldump -u$mysql_user -p$mysql_pwd -x -b -f -r"
# dbs
db_list=
`$mysql_cmd -e "show databases;"
|sed 1d|
egrep
"^db_"
`echo
"$db_list"
db_names=
($db_list
)echo
"$backup_date 需要備份的資料庫共 $ 個,分別為:$"
# to backup
for db_name in
$db_list;do
echo
"backup $db_name start"
# mkdirif[
! -d "$backup_dir/$db_name/"];
then
mkdir
$backup_dir/$db_name/
echo
"dictory $backup_dir/$db_name/ created"
fi# mysqldump -uroot -p -b db > /backup_dir/backup_name
$mysql_dump
$db_name
>
$backup_dir/$db_name/$db_name-$backup_date.dump
# log
echo
"backup $db_name-$backup_date.dump finished"
>>
$backup_dir/$db_name/log.txt
# history backup file name to be delete (with path)
rm_file_name=
$(ls -l -crt $backup_dir/$db_name/*.dump |
awk''
|head -1)
# current backup files count
current_backup_count=
$(ls -l -crt $backup_dir/$db_name/*.dump |
awk''
|wc -l)
# deleteif[
$current_backup_count -gt $backup_count];
then
rm$rm_file_name
# log
echo
"rm $rm_file_name finished"
>>
$backup_dir/$db_name/log.txt
fiecho
"backup $db_name finish"
done
echo -e "$backup_date backup finished\n\n"
定時任務配置shell=/bin/bash
path=/sbin:/bin:/usr/sbin:/usr/bin
mailto=root
home=/
# for details see man 4 crontabs
# example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) or jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (sunday=0 or 7) or sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
# 資料庫定時備份任務
00 */1 * * * root /opt/mysqlbackup/mysqlbackup.sh >> /opt/mysqlbackup/log.txt
暫無
mysqldump命令的安裝
liunx------shell指令碼備份資料庫
mysql資料備份與還原(mysqldump)
linux定時執行shell指令碼
shell指令碼 mysql資料庫分庫分表備份
背景 作為運維,備份及其重要,在進行刪改操作,無論是應用系統還是資料庫,還是系統檔案,備份是第一步,警惕一頓操作猛如虎的行為 備份 我可以根據庫備份,也可以根據庫中的表來備份。所以寫了2個指令碼,備份的粒度不一樣,就可以多方面去實現我們想要的恢復效果 一 分庫備份 user root passwd ...
資料庫分庫分表
1 基本思想之什麼是分庫分表?從字面上簡單理解,就是把原本儲存於乙個庫的資料分塊儲存到多個庫上,把原本儲存於乙個表的資料分塊儲存到多個表上。2 基本思想之為什麼要分庫分表?資料庫中的資料量不一定是可控的,在未進行分庫分表的情況下,隨著時間和業務的發展,庫中的表會越來越多,表中的資料量也會越來越大,相...
資料庫分庫 分表
分庫的優點是 實現簡單,庫與庫之間界限分明,便於維護,缺點是不利於頻繁跨庫操作,單錶資料量大的問題解決不了。分表的優點是 能解決分庫的不足點,但是缺點卻恰恰是分庫的優點,分表實現起來比較複雜,特別是分表規則的劃分,程式的編寫,以及後期的 資料庫拆分移植維護。實際應用中,一般網際網路企業的路線都是先分...