Skip to content

备份与恢复

对于企业而言,每天都会产生大量数据,那么对于数据库的备份就非常重要。在系统崩溃或者硬件故障,又或者用户误操作的情况下,你可以恢复数据并重启系统,不会造成数据丢失。

另外,数据备份也作为升级 MatrixOne 安装之前的保障,同时数据备份也可以可用于将 MatrixOne 安装转移到另一个系统。

MatrixOne 目前仅支持通过 modump 实用程序进行逻辑备份。modump 是一个命令行实用程序,用于生成 MatrixOne 数据库的逻辑备份。它生成可用于重新创建数据库对象和数据的 SQL 语句。你可以在 modump 章节中查找它的语法说明和使用指南。

我们将通过一个简单的示例来讲述如何使用 modump 实用程序完成数据备份和还原的过程。

步骤

1. 构建 modump 二进制文件

参见构建 modump 二进制文件章节,完成 modump 二进制文件构建。

如果你已经完成了 modump 的构建,那么你可以继续阅读下一章节 2. 生成单个数据库的备份

2. 生成单个数据库的备份

示例如下,使用以下 SQL 创建的数据库 t 及其表 t1

DROP DATABASE IF EXISTS `t`;
CREATE DATABASE `t`;
USE `t`;
create table t1
(
    c1  int primary key auto_increment,
    c2  tinyint not null default 4,
    c3  smallint,
    c4  bigint,
    c5  tinyint unsigned,
    c6  smallint unsigned,
    c7  int unsigned,
    c8  bigint unsigned,
    c9  float,
    c10 double,
    c11 date,
    c12 datetime,
    c13 timestamp on update current_timestamp,
    c14 char,
    c15 varchar,
    c16 json,
    c17 decimal,
    c18 text,
    c19 blob,
    c20 uuid
);
insert into t1 values (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, '2019-01-01', '2019-01-01 00:00:00', '2019-01-01 00:00:00', 'a', 'a', '{"a":1}','1212.1212', 'a', 'aza', '00000000-0000-0000-0000-000000000000');

如果要生成单个数据库的备份,可以运行以下命令。该命令将生成命名为 t 的数据库的备份,其中包含 t.sql 文件中的结构和数据。

./modump -u dump -p 111 -h 127.0.0.1 -P 6001 -db t > t.sql

如果要在数据库中生成单个表的备份,可以运行以下命令。该命令将生成命名为 t 的数据库的 t1 表的备份,其中包含 t.sql 文件中的结构和数据。

./modump -u dump -p 111 -db t -tbl t1 > t1.sql

Note

如果你有多个数据库,你需要多次运行 modump 来一条一条生成 SQL。

3. 恢复备份到 MatrixOne 服务器

将导出的. sql 文件恢复至 MatrixOne 数据库相对简单。要恢复你的数据库,你必须先创建一个空数据库,并使用 MySQL 客户端进行恢复。

将 MatrixOne 与 MySQL 客户端连接至同一服务器上,并确保导出的. sql 文件也在同一服务器上。

mysql> create database t if not exists;
mysql> source /YOUR_SQL_FILE_PATH/t.sql

成功执行以上命令后,执行以下命令,检查是否在命名为 t 数据库上创建了所有对象。

mysql> use t;
mysql> show tables;
mysql> select count(*) from t1;