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資料庫
- Mysqldump 在備庫進行備份時會阻塞備庫的sql_threadMySqlthread
- Linux基礎命令---mysqldump資料庫備份LinuxMySql資料庫
- Mysql備份和還原資料庫-mysqldumpMySql資料庫
- Mysqldump備份說明及資料庫備份指令碼分享-運維筆記MySql資料庫指令碼運維筆記
- BMMySQL定時備份資料庫(全庫備份)的實現meuMySql資料庫
- 使用Mysqldump備份和恢復MySQL資料庫MySql資料庫
- 資料庫的部分索引資料庫索引
- 利用MySQL全備份(mysqldump),如何只恢復一個庫或者一個表?MySql
- flask框架資料庫部分(四)Flask框架資料庫
- 使用 requests 庫傳送多部分表單資料
- 資料庫備份資料庫
- mysqldump 恢復單個資料庫MySql資料庫
- Mysql資料庫備份及恢復MySql資料庫
- mysqldump使用方法(MySQL資料庫的備份與恢復)MySql資料庫
- ClickHouse資料庫單機安裝及備份恢復資料庫
- JAVA面試二(資料庫部分)Java面試資料庫
- 然後再全庫匯入排除view資料庫在impdp匯入View資料庫
- oracle 備份資料庫,匯出資料庫Oracle資料庫
- 資料庫備份策略資料庫
- MongoDB資料庫備份MongoDB資料庫
- mysql 資料庫 備份MySql資料庫
- 資料庫單表備份還原shell資料庫
- Oracle ADG 備庫新增備庫Oracle
- 現代化自定製 - 列表和庫部分
- windows下使用mysqldump備份資料庫並上傳到阿里雲OSSWindowsMySql資料庫阿里
- 資料庫備份恢復資料庫
- SQL資料庫備份管理SQL資料庫
- mysqlpump 資料庫備份程式MySql資料庫
- 資料庫備份指令碼資料庫指令碼
- innobackupex 備份MySQL資料庫MySql資料庫
- 使用RMAN備份資料庫資料庫
- 【mysqldump】mysqldump及備份恢復示例MySql
- oracle資料庫備份之exp增量備份Oracle資料庫
- mysqldump匯出匯入所有庫、某些庫、某些表的例子MySql
- 定時備份MySQL資料庫MySql資料庫
- mysql資料庫備份命令大全MySql資料庫
- dnf資料庫備份&遷移資料庫