Linux 資料庫分庫分表定時備份

2021-10-25 04:33:53 字數 3091 閱讀 5875

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

crontab
yum 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 基本思想之為什麼要分庫分表?資料庫中的資料量不一定是可控的,在未進行分庫分表的情況下,隨著時間和業務的發展,庫中的表會越來越多,表中的資料量也會越來越大,相...

資料庫分庫 分表

分庫的優點是 實現簡單,庫與庫之間界限分明,便於維護,缺點是不利於頻繁跨庫操作,單錶資料量大的問題解決不了。分表的優點是 能解決分庫的不足點,但是缺點卻恰恰是分庫的優點,分表實現起來比較複雜,特別是分表規則的劃分,程式的編寫,以及後期的 資料庫拆分移植維護。實際應用中,一般網際網路企業的路線都是先分...