1:官方百萬級別的測試數(shù)據(jù)庫:
在自流井等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站設計 網(wǎng)站設計制作定制網(wǎng)站,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,品牌網(wǎng)站制作,成都營銷網(wǎng)站建設,外貿(mào)營銷網(wǎng)站建設,自流井網(wǎng)站建設費用合理。
官方測試數(shù)據(jù)庫github網(wǎng)址:
下載到目錄,解壓即可,運行命令:
2:自己創(chuàng)建簡單測試數(shù)據(jù)庫:
快速隨機生成測試語言的網(wǎng)站:
選擇sql和想生成的字段,點擊生成Generate!生成即可。
在MySQL輸入生成的語句即可。
3:測試備份還原時用到的命令
刪庫跑路測試(先備份好)
還原后查詢庫的表數(shù)據(jù)是否完整。
采用復制整個數(shù)據(jù)存放目錄
1:查看數(shù)據(jù)庫數(shù)據(jù)存放位置
有兩種方法:
1):在數(shù)據(jù)庫中用命令 show variables like 'datadir'; 查看
2):在配置文件中查看,配置了 datadir 目錄的可查看。沒有配置的默認為 /var/lib/mysql/ 位置
Linux中查看配置文件
2:復制目錄或者目錄下某個數(shù)據(jù)庫名
3:還原時直接復制文件夾到數(shù)據(jù)庫目錄即可
mysqldump又可叫做全量備份。
參數(shù) --databases 同 -B ,單獨一個庫,也可省略。
1、備份命令mysqldump格式
格式:mysqldump -h主機名 -P端口 -u用戶名 -p密碼 database 數(shù)據(jù)庫名 文件名.sql
備份testDatabase數(shù)據(jù)庫
2、備份MySQL數(shù)據(jù)庫為帶刪除表的格式
備份MySQL數(shù)據(jù)庫為帶刪除表的格式,能夠讓該備份覆蓋已有數(shù)據(jù)庫而不需要手動刪除原有數(shù)據(jù)庫。
3、直接將MySQL數(shù)據(jù)庫壓縮備份
備份并壓縮
4、備份MySQL數(shù)據(jù)庫某個(些)表
備份testDatabase中的myTable表,不需要用參數(shù) --databases 或者 -B
5、同時備份多個MySQL數(shù)據(jù)庫
同時備份testDatabase和 employees兩個庫
6、備份服務器上所有數(shù)據(jù)庫
參數(shù) --all-databases 同 -A
7、還原MySQL數(shù)據(jù)庫的命令
1) 不指定數(shù)據(jù)名還原,默認生成原數(shù)據(jù)庫名稱,還原所有數(shù)據(jù)庫。
2) 指定數(shù)據(jù)名還原,還原指定單個數(shù)據(jù)庫,需在數(shù)據(jù)庫種預先創(chuàng)建一個testDatabase名稱。
3) 還原壓縮的MySQL數(shù)據(jù)庫
4) 進入數(shù)據(jù)庫用source導入
增量備份是針對于數(shù)據(jù)庫的bin-log日志進行備份的,增量備份是在全量的基礎上進行操作的。增量備份主要是靠mysql記錄的bin-log日志。
1:查看是否開啟bin-log日志
進入mysql輸入命令可查看。
顯示如下為開啟狀態(tài),日志文件在/var/lib/mysql/以binlog.00001的格式保存。
如未開啟,需要在配置文件種配置
2:查看目前使用的bin-log日志文件
進入mysql查看命令。
顯示如下,目前使用的是binlog.000022文件,所有操作都記錄在此文件。
查看當前testDatabase的表myTable數(shù)據(jù)如下,
3:刷新日志,使用新的日志文件(備份)
在命令端執(zhí)行命令
日志文件從 binlog.000022 變?yōu)?binlog.000023
這時相當與已經(jīng)備份成功,備份文件即為上次的binlog.000022日志文件。
4:刪除數(shù)量,從日志還原數(shù)據(jù)
1) 刪除ABC行
查詢以及沒有ABC行列。
2) 恢復數(shù)據(jù)ABC行
退出mysql,在命令端用mysqlbinlog命令恢復到binlog.000022日志狀態(tài)。
進入數(shù)據(jù)庫再次查看數(shù)據(jù),ABC已經(jīng)恢復。
增量備份完成。
備份數(shù)據(jù)庫
使用mysqldump命令備份數(shù)據(jù)庫
還原數(shù)據(jù)庫
1、使用mysql命令還原數(shù)據(jù)庫
將game_backup.sql 還原至 game 數(shù)據(jù)庫:
2、使用source命令還原數(shù)據(jù)庫
如果數(shù)據(jù)庫過大,建議可以使用source命令
在實際工作中,一個MySQL實例中可能有多個database。而我們備份時,通常采用完全備份,將所有database都備份到一個文件中。
但是,偶爾會遇到只恢復一個database或者一個表的情況。怎么解決呢?科多大數(shù)據(jù)帶你來看看。
一、利用全備恢復一個庫 (database) 的數(shù)據(jù)
案例:朋友在群里問, MySQL全庫備份。如何只恢復一個庫?
1、采用–one-database 選項。不建議使用該方式,經(jīng)常出現(xiàn)問題。
# mysql -uroot -pxx -D db1 -o
2、從全備份文件中將需要的庫的建表語句和INSERT數(shù)據(jù)拿出來,然后再導入
# sed -n '/^-- Current Database: `db1`/,/^-- Current Database: `/p' all.dmp db1.sql
# mysql -uroot -pxx -D db1
二、利用全備恢復一張表 (table) 的數(shù)據(jù)
生產(chǎn)中遇到開發(fā)同事更新表時未加上where條件,造稱 order_status 列所有數(shù)據(jù)都被更新為0.
通常,mysqldump對全庫進行備份?;謴蜁r如果恢復全庫,太耗時間又沒有必要。所以,我們只恢復想要的表即可。
mysqldump備份中,既有表結(jié)構(gòu),又有INSERT INTO語句包含數(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 語句,用于數(shù)據(jù)的恢復
# grep -i 'INSERT INTO `ecs_ugo_order_info`' mysqldump_2017-05-23.sql data.sql
3、根據(jù)得到的表結(jié)構(gòu)創(chuàng)建表,并導入數(shù)據(jù)
mysql -uroot -pxxx xx
4、拼接update語句
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)庫中將order_status恢復成正常值
# mysql -uroot -pxxx xx /tmp/ecs_ugo_order_info_rercovery.sql