mysql的邏輯備份
Mysql物理備份可以利用mysqldump工具來備份相應的資料庫的文字資料,其命令相對也很簡單。
C:Userspc>mysqldump
-help
Usage: mysqldump
[OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS]
DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases
[OPTIONS]
For more options,
use mysqldump --help
例如備份xiaoyu的tab02表
C:Userspc>mysqldump
-u root -p xiaoyu tab02 >f:tab02.txt
Enter password:
******
備份xiaoyu的tab02和tab01的表
C:Userspc>mysqldump
-u root -p xiaoyu tab02 tab01 >f:tab02.txt
Enter password:
******
備份xiaoyu這個database
C:Userspc>mysqldump
-u root -p xiaoyu >f:tab02.txt
Enter password:
******
備份相應的條件的資料文字記錄
C:Userspc>mysqldump
-u root -p xiaoyu t_qury01 --where='id=3' > f:test01.txt
Enter password:
******
Mysqldump還可以使用—no-data不匯出建表語句,只匯出文字檔案資料;--no-create-info不匯出rows,只匯出建表的ddl語句, .
-master-data或者--master-data=2時mysqldump會將當前mysql使用的binlog日誌的名稱和位置記錄到dump檔案中,並且是以change_master語句的形式,--master-data=1將會把change-master以註釋的形式存在,這些資訊可以在實施slave線上搭建時有用。即使不搭建slave也可以在某些情況下利用binlog做進一步恢復。
當然這些dump檔案都是ddl和dml的文字檔案,可以擴平臺遷移,同樣mysql也提供了純文字的檔案備份,簡而言之就是資料來源。
C:Userspc>mysqldump
-u root -p -T f:app xiaoyu tab02 --fields_terminated_by=,
--fields_enclosed_by="
Enter password:
******
這樣就會在f:app目錄下生成一個tab02.sql的ddl檔案和tab02.txt存檔案檔案,tab02.txt也就是資料來源。
也可以先進入到mysql資料庫中,用如下形式匯出文字檔案的資料來源,不過疑惑的是該命令在linux環境下正常執行,在windows環境下居然抱許可權不足,無法寫入。
mysql> select *
into outfile '/tmp/test01.txt'
-> fields terminated by ',' enclosed by
'"'
-> from userinfo limit 10;
那麼相對的邏輯備份的恢復就很簡單了,ddl和dml的文字檔案可以用如下方式:
Source path和myql –u root –p <
/tmp/test01.txt恢復即可。
這裡順便提一下對於mysql的邏輯備份和恢復的理解,由於邏輯備份時是一個一個表的備份,就有可能造成資料的不一致,有些應用可能影響不大但是對於關係比較嚴格的系統就不能忽略了,可以在備份開始時採取lock table(針對所有儲存引擎)或者—single_transaction的形式來備份,前者lock table write只提供讀取功能,後者是利用innodb等儲存引擎的事務一致性來實現的。
資料來源方式的邏輯恢復也相對簡單,這裡個人一般使用如下方式:
[root@Analyser ~]#
mysqlimport -u root -p cobra --fields_terminated_by=,
--fields_optionally_enclosed_by=" /tmp/userinfo.txt
注意再測試mysqlimport過程中,如果該表有索引資訊,那麼用mysqimport 資料來源很可能會出現
mysqlimport: Error:
1062, Duplicate entry '0' for key 'SYS_C009326', when using table: userinfo
此時是因為索引造成,採取的truncate表後然後倒入資料來源正常。
雖然資料來源檔案佔用空間小,但是還是推薦使用mysqldump的形式來進行邏輯備份,簡單而且命令相對來說比較容易記憶。
[@more@]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25362835/viewspace-1058999/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql 邏輯備份 (mysqldump)MySql
- MySql邏輯備份恢復MySql
- Mysql備份與恢復(2)---邏輯備份MySql
- 圖解MySQL邏輯備份的實現流程圖解MySql
- 簡記MySQL的邏輯備份(mydumper+mysqldump)MySql
- 邏輯備份--mysqldumpMySql
- 邏輯備份全庫或者邏輯備份多個使用者的資料
- Oracle裡邏輯備份、物理備份、Rman備份的區別Oracle
- 揭祕ORACLE備份之--邏輯備份(EXP)Oracle
- 揭祕ORACLE備份之--邏輯備份(EXPDP)Oracle
- MongoDB 邏輯備份工具mongodumpMongoDB
- Oracle 邏輯備份 expdp/impdpOracle
- expdp 邏輯備份指令碼指令碼
- Oracle邏輯備份指令碼Oracle指令碼
- openGauss-邏輯備份
- MySQL備份與恢復——基於MyDumper/MyLoader 邏輯備份恢復MySql
- Windows邏輯備份-EXPDP(保留5天內邏輯備份)批處理指令碼Windows指令碼
- ORACLE備份和恢復 - 邏輯備份 exp/impOracle
- MySQL備份與恢復——基於OUTFILE /LOAD DATA 邏輯備份恢復MySql
- 資料庫邏輯備份(轉)資料庫
- ORACLE資料庫的邏輯備份(轉)Oracle資料庫
- MySQL5.7.11 mysqlpump 多執行緒邏輯備份工具MySql執行緒
- MySQL鎖(一)全域性鎖:如何做全庫的邏輯備份?MySql
- Oracle主備架構下的邏輯備份考慮Oracle架構
- oracle邏輯備份之--資料泵Oracle
- Oracle 邏輯備份之EXPDP精講Oracle
- windows下exp邏輯備份並且定期維護備份Windows
- Oracle physical standby中的邏輯備份(exp命令)Oracle
- mysql 開發進階篇系列 42 邏輯備份與恢復MySql
- MySQL5.7 透過邏輯備份遷移到GreatSQL注意事項MySql
- 認識資料庫物理備份和邏輯備份區別資料庫
- 使用Windows指令碼進行邏輯備份Windows指令碼
- 資料庫(表)的邏輯備份與恢復資料庫
- 阿里面試官:知道 MySQL 邏輯備份與恢復測試麼?阿里面試MySql
- 物理備份是以block來區別邏輯備份的(os block或oracle block) ?BloCOracle
- MySQL 官方出品,比 mydumper 更快的多執行緒邏輯備份工具-MySQL Shell Dump & LoadMySql執行緒
- Oracle邏輯備份與恢復選項說明Oracle
- WINDOWS下部署ORACLE邏輯匯出備份指令碼WindowsOracle指令碼