mysql数据库整体备份和恢复_MySQL 数据库的备份和恢复
MySQL 數據庫的備份和恢復 基本知識>>>>>>> 邏輯備份: 1.mysqldump(數據導出工具) mysqldump options db_name[table_name]//備份單個數據庫 mysqldump 選項 --database database-name1 [databases-name2]....//備份指定的數據庫一個或者多個 mysqldump 選項 --all-database //備份所有的數據庫 鏈接選項: -u :指定用戶名 -p:指定密碼 -h:指定服務器ip或者域名 -P(大寫):指定端口 eg:/usr/bin/mysqldump -u root -h db1 -P 3306 -p BBS user>/home/wuxiaoxiao/user.txt輸出內容選項: --add-drop-database:每個數據庫創建語句之前加上drop database語句 --add-drop-table:每個表創建語句之前加上drop table語句 -n:不包含數據庫的創建語句 -t:不包含數據表的創建語句 -d:不包含數據 輸出格式選項: --compact:使輸出結果簡潔 -c --compact-insert:使輸出文件中的insert語句包含字段名 -T:將數據庫表中的數據備份為單純的數據文本和建表sql倆個文件 --fields-terminated-by=name(域分割符) --fields-enclosed-by=name(域引用符) --fields-optionally-enclosed-by=name(域可選引用符) --fields-escaped-by=name(轉移字符) eg:/usr/bin/mysqldump -u root -h db1 -P 3306 -p BBS user -T ./bak 字符集選項: --default-character-set=name:設置導出的客戶端字符集 eg:mysql -u root -p --compact --default-character-set=utf8 BBS user > test.txt 其他選項: -F:備份前刷新日志 -l:給所有表加讀鎖(備份期間使用,使備份的數據保持一致性) 備份: 備份所有數據庫: mysqldump -u root -p? --all-database? >? test.sql 備份數據庫test mysqldump -u root -p? test? >? test.sql 備份數據庫test下的temp表: mysqldump -u root -p? test demp >? test.sql 備份數據庫下的所有表為逗號分割的文本,備份到/temp mysqldump -u root -p test -T /temp --fields-terminated-by ',' 完全恢復: msyql -u root -p < bakfile 注意:將備份恢復后數據并不完整,還需要將備份后執行的日志進行重做 mysqlbinlog binlog-file | mysql -u root -p*** 舉個完整的mysqldump備份和恢復的例子: 上午9點備份數據庫 mysqldump -u root -p -l -F test > test.dmp 9點半備份完畢,然后想數據庫中插入數據 10點數據庫突然故障,數據無法訪問,需要恢復備份 mysql -u root -p test < test.dmp 恢復后的數據并不完整,9點半插入的數據并沒有恢復 使用mysqlbinlog恢復自mysqldump備份以來的binlog mysqlbinlog binlogfilename | mysql -u root -p test 基于時間點恢復: 如果上午10點發生了誤操作.可以用下面語句進行備份和binlog將數據庫恢復到故障前:mysqlbinlog --stop-date="2009-01-20 9:59:59" binlogfile | mysql -u root -p test 跳過故障的時間點,繼續執后面的binlog,完成恢復 mysqlbinlog --start-date="2009-01-20 9:59:59" binlogfile | mysql -u root -p test 基于位置恢復: mysqlbinlog --start-date="2009-01-20 9:55:59" --stop-date="2009-01-20 10:05:00" binlogfile >test.sql 查看此文件,找出出錯語句前后的位置號,例如是368312,368315 mysqlbinlog --stop-position="368312" binlogfile | mysql -u root -p test mysqlbinlog --start-position="368315" binlogfile | mysql -u root -p test 表的導入和導出: 導出: mysqldump -u username -p -T target_dir dbname tablename [options] options: --fields-terminated-by=name(域分割符) --fields-enclosed-by=name(域引用符) --fields-optionally-enclosed-by=name(域可選引用符) --fields-escaped-by=name(轉移字符) 備份數據庫下的所有表為逗號分割的文本,備份到/temp mysqldump -u root -p -T /temp test --fields-terminated-by ',' --fields-optionally-enclosed-by '"'導入: msyqlimport -u root -p [LOCAL] dbname order_tab.txt [options] OPTIONS: --fields-terminated-by=name(域分割符) --fields-enclosed-by=name(域引用符) --fields-optionally-enclosed-by=name(域可選引用符) --fields-escaped-by=name(轉移字符) eg:mysqlimport -u root -p test order.txt --fields-terminated-by=',' --fields-enclosed-by='"'>>>>>>>>>>> 現在來梳理下網站上的db備份過程: 1.? 首先我們在各db服務器上備份各自有的數據庫,在本地保留一份,然后通過rsync 同步到控制機上(storctrl3).? 各db服務器的備份目錄結構在”/data/” 下. 腳本每 天凌晨2點執行. 2.? 另外一種備份方法通過網絡備份.? 腳本在控制機上(storcrtl3): /data/mysqlbak/nagios? 腳本每天凌晨1點執行。 3.? db 恢復,先找到要恢復到哪個時間的備份數據庫..然后解壓縮,再倒入到對應的db 服務器上就可以了.
小編推薦:欲學習電腦技術、系統維護、網絡管理、編程開發和安全攻防等高端IT技術,請 點擊這里注冊賬號,公開課頻道價值萬元IT培訓教程免費學,讓您少走彎路、事半功倍,好工作升職加薪!
免責聲明:本站系公益性非盈利IT技術普及網,本文由投稿者轉載自互聯網的公開文章,文末均已注明出處,其內容和圖片版權歸原網站或作者所有,文中所述不代表本站觀點,若有無意侵權或轉載不當之處請從網站右下角聯系我們處理,謝謝合作!
總結
以上是生活随笔為你收集整理的mysql数据库整体备份和恢复_MySQL 数据库的备份和恢复的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电动汽车需求大增,LG 新能源预计 20
- 下一篇: 数据库安装mysql57_记录CentO