天天看點

備份

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>source     /tmp/two_table.sql

分庫分表備份:

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

  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

繼續閱讀