一、資料備份與恢複
資料備份的方式
實體備份:拷貝存放庫和表檔案的目錄(使用cp、tar等指令備份)
邏輯備份:備份生成庫、表、插入記錄時的sql語句(使用mysqldump或第三方軟體)
資料備份時候的政策
完整備份:備份資料庫伺服器上的所有庫,所有表。mysqldump
差異備份:備份自從完整備份之後生成的新資料、
增量備份:備份自從上一次備份後生成的新資料。
注:在生産環境中通常使用備份政策組合
完整備份+差異備份
完整備份+增量備份
使用mysqldump完整備份
注:mysqldump是由MySQL-client提供的
格式:
mysqldump -h(伺服器ip) -u(使用者名)-p(密碼) 資料庫名 > /備份目錄/xxx.sql
mysqldump -h(伺服器ip) -u(使用者名)-p(密碼) 資料庫名 > xxx.sql
如果實在本機操作可以使用:mysqldump資料庫名 > xxx.sql
資料庫名的表示方式
資料庫名:表示備份這個庫裡的所有表
示例:mysqldump-hlocalhost -uroot -p userdb > /bakdb/userdb.sql
資料庫名 表名:直備份資料庫中的某個表
示例:mysqldump-hlocalhost -uroot -p userdb user_tab > /bakdb/userdb.user_tab.sql
--all-databases:備份伺服器上的所有庫上的所有表
示例:mysqldump-hlocalhost -uroot -p --all-databases > /bakdb/mysql.sql
-B 資料庫名1 資料庫2 資料庫名N:對某幾個庫做完整備份
mysqldump-hlocalhost -uroot -p123456 -B userdb studb > twodb.sql
注:
備份檔案名不能重名,如果重名了,會覆寫之前的備份;
-p後面可以直接根密碼,或者隻寫-p,在之後輸入密碼;
資料恢複的文法格式
mysql -h(資料庫ip) -u(使用者名)-p(密碼) [資料庫名] < 備份檔案名
mysql -hlocalhost-uroot -p123456 userdb < userdb.sql
注:當備份的時候備份的是多個資料庫時,備份的資料含有建庫和切換庫的語句,恢複的時候不需要指定資料庫名;
mysql -hlocalhost-uroot -p123456 < twodb.sql
完整備份的缺陷:
用完整備份恢複資料隻能恢複到完整備份時候的資料,新生成的資料無法恢複;
本文轉自 murongqingqqq 51CTO部落格,原文連結:http://blog.51cto.com/murongqingqqq/1381880