備份

Mysql備份:

庫備份

1)庫的備份

[root@localhost /]# mysqldump -uroot -p  db2 > /db2.sql

                                                                    庫名    導出來的文件

庫的還原

[root@localhost /]# mysql -uroot -p db2 < /db2.sql

                                                     得提前創建好db2庫

2)庫的備份

mysqldump -uroot -p123456 -B test > /tmp/test_B.sql    作用是在導出的文件中添加建庫和切換庫的語句。

                     庫名    導出來的文件

(mysqldump -uroot -p123456 -B test|gzip  > /tmp/test_B.sql.gz  備份時壓縮備份文件

備份多個庫:

mysqldump -uroot -p123456 -B mysql zhang | gzip > /tmp/mul_B.sql.gz

                        多個庫

庫的還原:

mysql -uroot -p123456 < /tmp/test_B.sql     因此還原時不用提前創建好庫並不用指定庫名。

分庫備份:

cat fenkubak.sh

#!/bin/sh

for dbname in `mysql -uroot -p123456 -e "show databases" | grep -Evi "database|information_schema|mysql"`

do

   mysqldump -uroot -p123456 -B --events $dbname|gzip > /tmp/${dbname}.sql.gz                                                  金庸新著

done

表備份:

1)表的備份

[root@localhost /]# mysqldump  -u  root  -p  db2  user >  db2_user.sql

                                                                         庫名  表名    導出來的文件名(導出到當前目錄下)

表的還原:(先切換庫,再還原)

mysql>use db

mysql>source     /db2_user.sql

2)多個表備份

mysqldump -uroot -p123456 zhang t1 ming > /tmp/two_table.sql

                    庫    多個表

表的還原:(先切換庫,再還原)

mysql>use db

mysql>source     /tmp/two_table.sql


分庫分表備份:

#!/bin/sh

USER=root

PASSWD=onetwothree

SOCKET=/data/3306/mysql.sock

MYLOGIN="mysql -u$USER -p$PASSWD -S$SOCKET"

MYDUMP="mysqldump -u$USER -p$PASSWD -S$SOCKET"

DATEBASE="$($MYLOGIN -e "show databases;"|egrep -vi "Data|_schema|mysql")"

for dbname in $DATEBASE

do

  TABLE="$($MYLOGIN -e "use $dbname;show tables;"|sed '1d')"

  for tname in $TABLE

  do

    MYDIR=/server/backup/$dbname/${dbname}_$(date +%F)

    [ ! -d $MYDIR ] && mkdir -p $MYDIR

    $MYDUMP $dbname $tname |gzip >$MYDIR/${dbname}_${tname}_$(date +%F).sql.gz

  done

done




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章