熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> MySQL >> 正文

計劃備份mysql數據庫

2013-11-23 20:59:14  來源: MySQL 

  :mysql是我們使用最多的數據庫如果在日常中正確的對mysql數據進行備份下面我們就來做這事通過腳本來實現

  ###################################################################################################################################
    #!/bin/bash
    #backup My databases
    #by luox at
    source /home/cacti/bash_profile
    PATH=/home/cacti/local/mysql/bin:/home/cacti/local/php/bin:/home/cacti/local/apache/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

  #date +%Y%m%d
    #backup bbs database
    mysqldump S /home/cacti/tmp/mysqlsock u bbsuser ppDdWShDzwXSLzSCB defaultcharacterset=gbk opt extendedinsert=false hexblob bbsuser >/home/cacti/backup/bbsuser_bak_`date +%Y%m%d`sql

  #compress the bak files
    bzip /home/cacti/backup/bbsuser_bak_`date +%Y%m%d`sql

  #remove week old bak files
    find /home/cacti/backup/ name *bz ctime + exec rm {} \;

  ##################################################################################################################################
    通過上面的腳本就可以實現備份數據簡單介紹一下mysqldump這個命令的使用(上文中粗體bbsuser指的是數據庫名)
    S 指定數據庫使用的sock文件一個系統中可以運行多個不同端口的mysql如果要連接這個數據庫就需要用到這個參數來指定sock文件
    u 指定用戶在這裡如果我們備份bbsuser數據庫只需要用到bbsuser這個用戶就可以了當然root用戶也可以只不過我們寫在腳本裡當然用權限小點更佳
    p 指定密碼使用將密碼括起來
    defaultcharacterset= 用於設置數據庫的格式這和數據庫使用默認的語言有關可以連接到數據庫裡使用show variables;來查看當前一般有utf gbk
    opt 實施備份可能是最常用的方法因為備份速度上的優勢
    extendedinsert=false 是為了導出為多行Insert不然可能因為Insert語句過長出錯
    hexblob 使用十六進制格式導出二進制字符串字段
    A alldatabases Dump all the databases This will be same as databases with all databases selected 可以用於備份所有數據庫
    PS:使用date +%Y%m%d 可以顯示出當天的日期我們在備份時也加個這參數可以起很好的標識備份文件日期作用如果在mysqldump中引用date需要使用`date +%Y%m%d`

  bzip 可以將文件壓縮成bz的文件並且刪除掉原來的

  通過find來查找然後根據時間如果多於天(周)就進行刪除

  :接下來還可以將這個腳本執行放到Crontab中讓腳本一天運行一次就可以對數據進行很好的備份了
    #################################################################################
    #backup my database
    * * * /home/cacti/backup/backupmysqlsh >/dev/null >&
    #################################################################################

  :數據庫的導入
    /home/cacti/local/mysql/bin/mysql S /home/cacti/tmp/mysqlsock ubbsuser ppDdWShDzwXSLzSCB bbsuser </home/cacti/backup/bbsuser_bak_sql

  本文出自 gzmaster 博客請務必保留此出處


From:http://tw.wingwit.com/Article/program/MySQL/201311/29406.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.