mysqldump備份單庫、部分庫、全庫、及排除部分庫
本文針對MySQL的mysqldump工具在使用時,對於某些場景需要備份多個資料庫或者排除部分資料庫的場景進行舉例。主要針對於備份的庫是否符合預期,其餘一些備份引數可根據使用場景增加調整。
我的環境的mysql的版本為
mysql> select version(); +-----------+ | version() | +-----------+ | 8.0.27 | +-----------+ 1 row in set (0.00 sec)
原本MySQL資料庫包含7個資料庫。
mysql> show databases; +--------------------+ | Database | +--------------------+ | database1 | | database2 | | information_schema | | mysql | | performance_schema | | sys | | xmaster | +--------------------+ 7 rows in set (0.00 sec)
1.mysqldump備份單庫
( --database database1 )
備份database1單庫
[mysql@mogdb-kernel-0005 back_demo]$ ll total 0 [mysql@mogdb-kernel-0005 back_demo]$ mysqldump -u root -p'mysql' --databases database1 > backup_01.sql mysqldump: [Warning] Using a password on the command line interface can be insecure. [mysql@mogdb-kernel-0005 back_demo]$ ll total 4 -rw-rw-r-- 1 mysql mysql 1470 Aug 16 12:13 backup_01.sql [mysql@mogdb-kernel-0005 back_demo]$ cat backup_01.sql | grep -i 'create database' CREATE DATABASE /*!32312 IF NOT EXISTS*/ `database1` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */; [mysql@mogdb-kernel-0005 back_demo]$
其中mysqldump: [Warning] Using a password on the command line interface can be insecure警告是因為我使用了明文密碼的原因。
2.mysqldump備份部分庫
( --database database1 database2)
備份database1和database2兩個庫
[mysql@mogdb-kernel-0005 back_demo]$ ll total 4 -rw-rw-r-- 1 mysql mysql 1470 Aug 16 12:13 backup_01.sql [mysql@mogdb-kernel-0005 back_demo]$ mysqldump -u root -p'mysql' --databases database1 database2> backup_02.sql mysqldump: [Warning] Using a password on the command line interface can be insecure. [mysql@mogdb-kernel-0005 back_demo]$ ll total 8 -rw-rw-r-- 1 mysql mysql 1470 Aug 16 12:13 backup_01.sql -rw-rw-r-- 1 mysql mysql 1687 Aug 16 12:29 backup_02.sql [mysql@mogdb-kernel-0005 back_demo]$ cat backup_02.sql | grep -i 'create database' CREATE DATABASE /*!32312 IF NOT EXISTS*/ `database1` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */; CREATE DATABASE /*!32312 IF NOT EXISTS*/ `database2` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */;
3.mysqldump備份全庫
( --all-databases ,或者 -A)
[mysql@mogdb-kernel-0005 back_demo]$ ll total 8 -rw-rw-r-- 1 mysql mysql 1470 Aug 16 12:13 backup_01.sql -rw-rw-r-- 1 mysql mysql 1687 Aug 16 12:29 backup_02.sql [mysql@mogdb-kernel-0005 back_demo]$ mysqldump -u root -p'mysql' --all-databases > backup_03.sql mysqldump: [Warning] Using a password on the command line interface can be insecure. [mysql@mogdb-kernel-0005 back_demo]$ ll total 1200 -rw-rw-r-- 1 mysql mysql 1470 Aug 16 12:13 backup_01.sql -rw-rw-r-- 1 mysql mysql 1687 Aug 16 12:29 backup_02.sql -rw-rw-r-- 1 mysql mysql 1219017 Aug 16 12:44 backup_03.sql [mysql@mogdb-kernel-0005 back_demo]$ cat backup_03.sql | grep 'CREATE DATABASE \/\*\!32312 IF NOT EXISTS\*\/ ' CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysql` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */; CREATE DATABASE /*!32312 IF NOT EXISTS*/ `database1` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */; CREATE DATABASE /*!32312 IF NOT EXISTS*/ `database2` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */; CREATE DATABASE /*!32312 IF NOT EXISTS*/ `xmaster` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */;
4.mysqldump排除部分庫備份
(利用xargs和grep篩選)
排除掉information_schema、performance_schema、sys、mysql、database1幾個庫,只備份其餘的庫。
[mysql@mogdb-kernel-0005 back_demo]$ ll total 1200 -rw-rw-r-- 1 mysql mysql 1470 Aug 16 12:13 backup_01.sql -rw-rw-r-- 1 mysql mysql 1687 Aug 16 12:29 backup_02.sql -rw-rw-r-- 1 mysql mysql 1219017 Aug 16 12:44 backup_03.sql [mysql@mogdb-kernel-0005 back_demo]$ mysql -uroot -p'mysql' -N -e "show databases;"|grep -Ev "information_schema|performance_schema|sys|mysql|database1"|xargs mysqldump -uroot -p'mysql' --databases > backup_04.sql mysql: [Warning] Using a password on the command line interface can be insecure. mysqldump: [Warning] Using a password on the command line interface can be insecure. [mysql@mogdb-kernel-0005 back_demo]$ ll total 1204 -rw-rw-r-- 1 mysql mysql 1470 Aug 16 12:13 backup_01.sql -rw-rw-r-- 1 mysql mysql 1687 Aug 16 12:29 backup_02.sql -rw-rw-r-- 1 mysql mysql 1219017 Aug 16 12:44 backup_03.sql -rw-rw-r-- 1 mysql mysql 2271 Aug 16 12:50 backup_04.sql [mysql@mogdb-kernel-0005 back_demo]$ cat backup_04.sql | grep 'CREATE DATABASE \/\*\!32312 IF NOT EXISTS\*\/ ' CREATE DATABASE /*!32312 IF NOT EXISTS*/ `database2` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */; CREATE DATABASE /*!32312 IF NOT EXISTS*/ `xmaster` /*!40100 DEFAULT CHARACTER SET utf8mb4 C
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69990629/viewspace-2913034/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysqldump 資料庫備份程式MySql資料庫
- mysql 備份資料庫 mysqldumpMySql資料庫
- 將MYSQLDUMP全庫備份分為單庫檔案的方法(自己寫的小工具)MySql
- rman 備份 全庫
- Oracle資料庫RMAN小結之備份部分Oracle資料庫
- rman資料庫全庫備份與恢復資料庫
- 【Mysql】mysqldump全備中還原指定的庫MySql
- 從mysqldump全備獲取指定庫的sqlMySql
- Mysqldump 在備庫進行備份時會阻塞備庫的sql_threadMySqlthread
- RMAN全庫備份指令碼指令碼
- Mysql備份和還原資料庫-mysqldumpMySql資料庫
- mysqldump來備份MYSQL資料庫(指令碼)MySql資料庫指令碼
- BMMySQL定時備份資料庫(全庫備份)的實現meuMySql資料庫
- 透過rman全庫備份遷移資料庫資料庫
- 完整的全庫備份(供資料庫遷移用)資料庫
- Mysqldump備份說明及資料庫備份指令碼分享-運維筆記MySql資料庫指令碼運維筆記
- 資料庫全備份指令碼資料庫指令碼
- 使用Mysqldump備份和恢復MySQL資料庫MySql資料庫
- Linux基礎命令---mysqldump資料庫備份LinuxMySql資料庫
- 有整庫備份的情況rman恢復全庫
- 資料庫的部分索引資料庫索引
- 備份之全庫一致性備份
- 利用MySQL全備份(mysqldump),如何只恢復一個庫或者一個表?MySql
- 使用mysqldump進行mysql資料庫備份還原MySql資料庫
- 主庫模型調整需要做一個全庫備份,備份與恢復指令碼模型指令碼
- rman全庫備份備份歸檔日誌檔案
- RMAN 全庫備份和 0級備份的區別
- flask框架資料庫部分(四)Flask框架資料庫
- JAVA面試二(資料庫部分)Java面試資料庫
- 使用 requests 庫傳送多部分表單資料
- 從MySQL全庫備份中恢復某個庫和某張表MySql
- 整庫(whole)備份-一致性整庫備份
- RMAN定時全備份資料庫之簡單例項資料庫單例
- Mysql資料庫備份及恢復MySql資料庫
- 資料庫備份資料庫
- ClickHouse資料庫單機安裝及備份恢復資料庫
- 2 Day DBA-管理方案物件-備份資料庫-練習:當資料庫OPEN時執行全資料庫備份物件資料庫
- 【Mysql】innobackupex備份還原單個庫MySql