mysqlpump 資料庫備份程式

eric0435發表於2022-03-17

mysqlpump工具執行邏輯備份,生成一組SQL語句集可以被用來執行重建源資料庫物件定義和表資料。它將dump一個或多個MySQL資料庫備份或者傳輸到另一個MySQL伺服器。

mysqlpump有以下功能:
.並行處理資料庫和資料庫物件,提高dump速度。

.更好地控制那個資料庫和資料庫物件(表,儲存過程,使用者賬號)將被dump。

.建立壓縮輸出

.程式指示器

.對於dump檔案重新載入,透過在行資料插入後透過新增索引可以為InnoDB錶快速的建立第二索引

預設情況下,mysqlpump會dump所有資料庫。為了顯性指定其行為,使用--all-databases選項

shell>mysqlpump --all-databases

為了dump單個資料庫,或資料庫中特定的表,在命令列中指定資料庫名,緊接著指定表名:

shell>mysqlpump db_name
shell>mysqlpump db_name tab_name1 tab_name2 ...

為了將所有的命名引數作為資料庫名,使用--databases選項

shell>mysqlpump --databases db_name1 db_name2 ...

預設情況下,mysqlpump不會dump使用者賬號定義,即使你dump了mysql系統資料庫包含了授權表。為了dump授權表內容以邏輯格式的形式create user和grant語句輸出,使用--users選項並壓制所有資料庫的dump:

shell>mysqlpump --exclude-databases=%  --users

上面命令中的%是一個萬用字元對於--exclude-databases選項來匹配所有資料庫的名字.

為了重加一個dump檔案,執行它所包含的語句。例如,使用mysql工具

[mysql@localhost ~]$ mysqlpump --host=192.168.1.250 --port=33306 -uroot -p123456 mysql imptest >imptest_dump.sql
mysqlpump: [Warning] Using a password on the command line interface can be insecure.
Dump progress: 1/1 tables, 0/2 rows
Dump completed in 1259 milliseconds
[mysql@localhost ~]$ ls -lrt
總用量 3532
drwxrwxr-x. 2 mysql mysql       6 9月   6 13:03 perl5
-rw-r--r--. 1 mysql mysql 3605196 10月 21 17:27 backup.sql
-rw-r--r--. 1 mysql mysql      32 10月 28 11:46 imptest.txt
-rw-r--r--. 1 mysql mysql    1253 10月 29 14:49 imptest_dump.sql
[mysql@localhost ~]$ cat imptest_dump.sql
-- Dump created by MySQL pump utility, version: 5.7.26, Linux (x86_64)
-- Dump start time: Tue Oct 29 14:49:10 2019
-- Server version: 5.7.26
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE;
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET @@SESSION.SQL_LOG_BIN= 0;
SET @OLD_TIME_ZONE=@@TIME_ZONE;
SET TIME_ZONE='+00:00';
SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT;
SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS;
SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION;
SET NAMES utf8mb4;
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysql` /*!40100 DEFAULT CHARACTER SET latin1 */;
CREATE TABLE `mysql`.`imptest` (
`id` int(11) DEFAULT NULL,
`n` varchar(30) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
;
INSERT INTO `mysql`.`imptest` VALUES (100,"Max Sydow"),(101,"Count Dracula");
SET TIME_ZONE=@OLD_TIME_ZONE;
SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT;
SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS;
SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
SET SQL_MODE=@OLD_SQL_MODE;
-- Dump end time: Tue Oct 29 14:49:11 2019
[mysql@localhost ~]$ mysql --host=192.168.1.250 --port=33306 -uroot -p123456 mysql

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-2871754/,如需轉載,請註明出處,否則將追究法律責任。

相關文章