新聞中心
MySQL的備份與還原,非常規(guī)備份,全量備份,增量備份
1:官方百萬(wàn)級(jí)別的測(cè)試數(shù)據(jù)庫(kù):
公司主營(yíng)業(yè)務(wù):做網(wǎng)站、成都做網(wǎng)站、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶(hù)真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶(hù)帶來(lái)驚喜。成都創(chuàng)新互聯(lián)推出梅列免費(fèi)做網(wǎng)站回饋大家。
官方測(cè)試數(shù)據(jù)庫(kù)github網(wǎng)址:
下載到目錄,解壓即可,運(yùn)行命令:
2:自己創(chuàng)建簡(jiǎn)單測(cè)試數(shù)據(jù)庫(kù):
快速隨機(jī)生成測(cè)試語(yǔ)言的網(wǎng)站:
選擇sql和想生成的字段,點(diǎn)擊生成Generate!生成即可。
在MySQL輸入生成的語(yǔ)句即可。
3:測(cè)試備份還原時(shí)用到的命令
刪庫(kù)跑路測(cè)試(先備份好)
還原后查詢(xún)庫(kù)的表數(shù)據(jù)是否完整。
采用復(fù)制整個(gè)數(shù)據(jù)存放目錄
1:查看數(shù)據(jù)庫(kù)數(shù)據(jù)存放位置
有兩種方法:
1):在數(shù)據(jù)庫(kù)中用命令 show variables like 'datadir'; 查看
2):在配置文件中查看,配置了 datadir 目錄的可查看。沒(méi)有配置的默認(rèn)為 /var/lib/mysql/ 位置
Linux中查看配置文件
2:復(fù)制目錄或者目錄下某個(gè)數(shù)據(jù)庫(kù)名
3:還原時(shí)直接復(fù)制文件夾到數(shù)據(jù)庫(kù)目錄即可
mysqldump又可叫做全量備份。
參數(shù) --databases 同 -B ,單獨(dú)一個(gè)庫(kù),也可省略。
1、備份命令mysqldump格式
格式:mysqldump -h主機(jī)名 -P端口 -u用戶(hù)名 -p密碼 database 數(shù)據(jù)庫(kù)名 文件名.sql
備份testDatabase數(shù)據(jù)庫(kù)
2、備份MySQL數(shù)據(jù)庫(kù)為帶刪除表的格式
備份MySQL數(shù)據(jù)庫(kù)為帶刪除表的格式,能夠讓該備份覆蓋已有數(shù)據(jù)庫(kù)而不需要手動(dòng)刪除原有數(shù)據(jù)庫(kù)。
3、直接將MySQL數(shù)據(jù)庫(kù)壓縮備份
備份并壓縮
4、備份MySQL數(shù)據(jù)庫(kù)某個(gè)(些)表
備份testDatabase中的myTable表,不需要用參數(shù) --databases 或者 -B
5、同時(shí)備份多個(gè)MySQL數(shù)據(jù)庫(kù)
同時(shí)備份testDatabase和 employees兩個(gè)庫(kù)
6、備份服務(wù)器上所有數(shù)據(jù)庫(kù)
參數(shù) --all-databases 同 -A
7、還原MySQL數(shù)據(jù)庫(kù)的命令
1) 不指定數(shù)據(jù)名還原,默認(rèn)生成原數(shù)據(jù)庫(kù)名稱(chēng),還原所有數(shù)據(jù)庫(kù)。
2) 指定數(shù)據(jù)名還原,還原指定單個(gè)數(shù)據(jù)庫(kù),需在數(shù)據(jù)庫(kù)種預(yù)先創(chuàng)建一個(gè)testDatabase名稱(chēng)。
3) 還原壓縮的MySQL數(shù)據(jù)庫(kù)
4) 進(jìn)入數(shù)據(jù)庫(kù)用source導(dǎo)入
增量備份是針對(duì)于數(shù)據(jù)庫(kù)的bin-log日志進(jìn)行備份的,增量備份是在全量的基礎(chǔ)上進(jìn)行操作的。增量備份主要是靠mysql記錄的bin-log日志。
1:查看是否開(kāi)啟bin-log日志
進(jìn)入mysql輸入命令可查看。
顯示如下為開(kāi)啟狀態(tài),日志文件在/var/lib/mysql/以binlog.00001的格式保存。
如未開(kāi)啟,需要在配置文件種配置
2:查看目前使用的bin-log日志文件
進(jìn)入mysql查看命令。
顯示如下,目前使用的是binlog.000022文件,所有操作都記錄在此文件。
查看當(dāng)前testDatabase的表myTable數(shù)據(jù)如下,
3:刷新日志,使用新的日志文件(備份)
在命令端執(zhí)行命令
日志文件從 binlog.000022 變?yōu)?binlog.000023
這時(shí)相當(dāng)與已經(jīng)備份成功,備份文件即為上次的binlog.000022日志文件。
4:刪除數(shù)量,從日志還原數(shù)據(jù)
1) 刪除ABC行
查詢(xún)以及沒(méi)有ABC行列。
2) 恢復(fù)數(shù)據(jù)ABC行
退出mysql,在命令端用mysqlbinlog命令恢復(fù)到binlog.000022日志狀態(tài)。
進(jìn)入數(shù)據(jù)庫(kù)再次查看數(shù)據(jù),ABC已經(jīng)恢復(fù)。
增量備份完成。
如何用mysql命令備份和恢復(fù)
Mysql數(shù)據(jù)庫(kù)備份和還原常用的命令是進(jìn)行Mysql數(shù)據(jù)庫(kù)備份和還原的關(guān)鍵,沒(méi)有命令,什么都無(wú)從做起,更談不上什么備份還原,只有給系統(tǒng)這個(gè)命令,讓它去執(zhí)行,才能完成Mysql數(shù)據(jù)庫(kù)備份和還原的操作,下面為大家分享一下操作的常用的命令。
一、備份命令
1、備份MySQL數(shù)據(jù)庫(kù)的命令
!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
--mysqldump-hhostname-uusername-ppassword databasenamebackupfile.sql
2、備份MySQL數(shù)據(jù)庫(kù)為帶刪除表的格式
備份MySQL數(shù)據(jù)庫(kù)為帶刪除表的格式,能夠讓該備份覆蓋已有數(shù)據(jù)庫(kù)而不需要手動(dòng)刪除原有數(shù)據(jù)庫(kù)。
!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
--mysqldump-–add-drop-table-uusername-ppassword databasenamebackupfile.sql
3、直接將MySQL數(shù)據(jù)庫(kù)壓縮備份
!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
--mysqldump-hhostname-uusername-ppassword databasename|gzipbackupfile.sql.gz
4、備份MySQL數(shù)據(jù)庫(kù)某個(gè)(些)表
!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
--mysqldump-hhostname-uusername-ppassword databasename specific_table1 specific_table2backupfile.sql
5、同時(shí)備份多個(gè)MySQL數(shù)據(jù)庫(kù)
!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
--mysqldump-hhostname-uusername-ppassword –databases databasename1 databasename2 databasename3multibackupfile.sql
6、僅僅備份數(shù)據(jù)庫(kù)結(jié)構(gòu)
!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
--mysqldump –no-data –databases databasename1 databasename2 databasename3structurebackupfile.sql
7、備份服務(wù)器上所有數(shù)據(jù)庫(kù)
!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
--mysqldump –all-databasesallbackupfile.sql
二、還原命令
1、還原MySQL數(shù)據(jù)庫(kù)的命令
!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
--mysql-hhostname-uusername-ppassword databasenamebackupfile.sql
2、還原壓縮的MySQL數(shù)據(jù)庫(kù)
!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
--gunzipbackupfile.sql.gz|mysql-uusername-ppassword databasename
3、將數(shù)據(jù)庫(kù)轉(zhuǎn)移到新服務(wù)器
!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
--mysqldump-uusername-ppassword databasename|mysql –host=*.*.*.*-C databasename
總結(jié)
做好數(shù)據(jù)備份和還原,定好合適的備份策略,這是一個(gè)DBA所做事情的一小部分,萬(wàn)事開(kāi)頭難,就從現(xiàn)在開(kāi)始吧!
怎么備份和還原mysql數(shù)據(jù)庫(kù)
備份數(shù)據(jù)庫(kù)
使用mysqldump命令備份數(shù)據(jù)庫(kù)
還原數(shù)據(jù)庫(kù)
1、使用mysql命令還原數(shù)據(jù)庫(kù)
將game_backup.sql 還原至 game 數(shù)據(jù)庫(kù):
2、使用source命令還原數(shù)據(jù)庫(kù)
如果數(shù)據(jù)庫(kù)過(guò)大,建議可以使用source命令
如何進(jìn)行數(shù)據(jù)庫(kù)備份和恢復(fù) mysql
MySQL備份和還原,都是利用mysqldump、mysql和source命令來(lái)完成的。
1.Win32下MySQL的備份與還原
1.1 備份
開(kāi)始菜單 | 運(yùn)行 | cmd |利用“cd /Program Files/MySQL/MySQL Server 5.0/bin”命令進(jìn)入bin文件夾 | 利用“mysqldump -u 用戶(hù)名 -p databasename exportfilename”導(dǎo)出數(shù)據(jù)庫(kù)到文件,如mysqldump -u root -p voicevoice.sql,然后輸入密碼即可開(kāi)始導(dǎo)出。
1.2 還原
進(jìn)入MySQL Command Line Client,輸入密碼,進(jìn)入到“mysql”,輸入命令"show databases;",回車(chē),看看有些什么數(shù)據(jù)庫(kù);建立你要還原的數(shù)據(jù)庫(kù),輸入"create database voice;",回車(chē);切換到剛建立的數(shù)據(jù)庫(kù),輸入"use voice;",回車(chē);導(dǎo)入數(shù)據(jù),輸入"source voice.sql;",回車(chē),開(kāi)始導(dǎo)入,再次出現(xiàn)"mysql"并且沒(méi)有提示錯(cuò)誤即還原成功。
2.Linux下MySQL的備份與還原
2.1 備份
[root@localhost ~]# cd /var/lib/mysql (進(jìn)入到MySQL庫(kù)目錄,根據(jù)自己的MySQL的安裝情況調(diào)整目錄)
[root@localhost mysql]# mysqldump -u root -p voicevoice.sql,輸入密碼即可。
2.2 還原
法一:
[root@localhost ~]# mysql -u root -p 回車(chē),輸入密碼,進(jìn)入MySQL的控制臺(tái)"mysql",同1.2還原。
法二:
[root@localhost ~]# cd /var/lib/mysql (進(jìn)入到MySQL庫(kù)目錄,根據(jù)自己的MySQL的安裝情況調(diào)整目錄)
[root@localhost mysql]# mysql -u root -p voicevoice.sql,輸入密碼即可。
MySQL全備份如何只恢復(fù)一個(gè)庫(kù)或者一個(gè)表?
在實(shí)際工作中,一個(gè)MySQL實(shí)例中可能有多個(gè)database。而我們備份時(shí),通常采用完全備份,將所有database都備份到一個(gè)文件中。
但是,偶爾會(huì)遇到只恢復(fù)一個(gè)database或者一個(gè)表的情況。怎么解決呢?科多大數(shù)據(jù)帶你來(lái)看看。
一、利用全備恢復(fù)一個(gè)庫(kù) (database) 的數(shù)據(jù)
案例:朋友在群里問(wèn), MySQL全庫(kù)備份。如何只恢復(fù)一個(gè)庫(kù)?
1、采用–one-database 選項(xiàng)。不建議使用該方式,經(jīng)常出現(xiàn)問(wèn)題。
# mysql -uroot -pxx -D db1 -o
2、從全備份文件中將需要的庫(kù)的建表語(yǔ)句和INSERT數(shù)據(jù)拿出來(lái),然后再導(dǎo)入
# sed -n '/^-- Current Database: `db1`/,/^-- Current Database: `/p' all.dmp db1.sql
# mysql -uroot -pxx -D db1
二、利用全備恢復(fù)一張表 (table) 的數(shù)據(jù)
生產(chǎn)中遇到開(kāi)發(fā)同事更新表時(shí)未加上where條件,造稱(chēng) order_status 列所有數(shù)據(jù)都被更新為0.
通常,mysqldump對(duì)全庫(kù)進(jìn)行備份?;謴?fù)時(shí)如果恢復(fù)全庫(kù),太耗時(shí)間又沒(méi)有必要。所以,我們只恢復(fù)想要的表即可。
mysqldump備份中,既有表結(jié)構(gòu),又有INSERT INTO語(yǔ)句包含數(shù)據(jù)。所以獲得者兩部分內(nèi)容即可。
1、獲得表結(jié)構(gòu)
# sed -e'/./{H;$!d;}' -e 'x;/CREATE TABLE `ecs_ugo_order_info`/!d;q' mysqldump_2017-05-23.sql
2、獲得INSERT INTO 語(yǔ)句,用于數(shù)據(jù)的恢復(fù)
# grep -i 'INSERT INTO `ecs_ugo_order_info`' mysqldump_2017-05-23.sql data.sql
3、根據(jù)得到的表結(jié)構(gòu)創(chuàng)建表,并導(dǎo)入數(shù)據(jù)
mysql -uroot -pxxx xx
4、拼接update語(yǔ)句
mysql select concat('update xx.ecs_ugo_order_info set order_status=',order_status,' where order_id=',order_id,';') from ecs_ugo_order_info into outfile '/tmp/ecs_ugo_order_info_rercovery.sql';
結(jié)果如下:
1.update xx.ecs_ugo_order_info set order_status=6 where order_id=3254778;
2.update xx.ecs_ugo_order_info set order_status=6 where order_id=3254824;
3.update xx.ecs_ugo_order_info set order_status=6 where order_id=3254870;
5、在生產(chǎn)庫(kù)中將order_status恢復(fù)成正常值
# mysql -uroot -pxxx xx /tmp/ecs_ugo_order_info_rercovery.sql
新聞名稱(chēng):mysql怎么表備份恢復(fù),mysql 備份 恢復(fù)
當(dāng)前鏈接:http://fisionsoft.com.cn/article/hsgedc.html