Mysql備份和恢復
轉:http://blog.csdn.net/feng_sundy/article/details/3496744
邏輯備份:
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 202.194.132.237 -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 202.194.132.237 -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="2005-04-20 9:59:59" binlogfile | mysql -u root -p test
跳過故障的時間點,繼續執行後面的binlog,完成恢復
mysqlbinlog --start-date="2005-04-20 9:59:59" binlogfile | mysql -u root -p test
基於位置恢復:
mysqlbinlog --start-date="2005-04-20 9:55:59" --stop-date="2005-04-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='"'
邏輯備份:
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 202.194.132.237 -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 202.194.132.237 -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="2005-04-20 9:59:59" binlogfile | mysql -u root -p test
跳過故障的時間點,繼續執行後面的binlog,完成恢復
mysqlbinlog --start-date="2005-04-20 9:59:59" binlogfile | mysql -u root -p test
基於位置恢復:
mysqlbinlog --start-date="2005-04-20 9:55:59" --stop-date="2005-04-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='"'
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10973950/viewspace-719533/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【MySQL】MySQL備份和恢復MySql
- MySQL 備份和恢復 一MySql
- Mysql備份恢復MySql
- mysql 備份恢復MySql
- 【MySql】innobackupex增量備份和恢復MySql
- 【MySql】innobackupex 增量備份和恢復MySql
- MySQL備份和恢復方法彙總MySql
- MySQL日誌管理,備份和恢復MySql
- MySQL備份和恢復工具圖譜MySql
- 【Mysql】xtrabackup 備份和恢復測試MySql
- MySQL備份與恢復——基於Xtrabackup物理備份恢復MySql
- MySQL備份與恢復MySql
- MySQL 備份與恢復MySql
- 備份和恢復
- Mysql備份與恢復(1)---物理備份MySql
- mysql備份和恢復測試(一)--xtrabackupMySql
- mysql innobackupex增量備份恢復MySql
- MySql邏輯備份恢復MySql
- Mysql的備份與恢復MySql
- mysql備份恢復測試MySql
- Mysql 備份與恢復 二MySql
- windwos server 路由備份和恢復 路由表備份和恢復Server路由
- MySQL 非常規恢復與物理備份恢復MySql
- redis 備份和恢復Redis
- 備份和恢復redisRedis
- Oracle 備份和恢復Oracle
- Mysql備份與恢復(2)---邏輯備份MySql
- MySQL備份與恢復——基於MyDumper/MyLoader 邏輯備份恢復MySql
- Backup And Recovery User's Guide-備份和恢復概覽-備份和恢復介紹-備份和恢復的目的GUIIDE
- 使用Mysqldump備份和恢復MySQL資料庫MySql資料庫
- 使用mysqldump對mysql進行備份和恢復MySql
- 使用xtrabackup對mysql進行備份和恢復MySql
- MySQL備份和恢復資料表的方法MySql
- MySQL備份和恢復具體實施(上)MySql
- java中實現MYSQL的備份和恢復JavaMySql
- 入門MySQL——備份與恢復MySql
- docker 中 MySQL 備份及恢復DockerMySql
- 《入門MySQL—備份與恢復》MySql