备份与恢复
再稳定健壮的系统也无法保证不出故障,为了防止数据丢失,就需要定期做备份。MatrixDB提供了mxbackup
和mxrestore
工具来实现集群的备份与恢复。
1. mxbackup
1.1 mxbackup常用参数列表
参数 | 描述 |
---|---|
--dbname | 备份的数据库 |
--backup-dir | 存储备份文件的目录 |
--metadata-only | 仅备份元数据(DDL),不备份表内数据 |
--data-only | 和--metadata-only相反,只备份数据 |
--jobs | 并行备份时的任务数量,增加该值可以提高并行度 |
--include-table | 指定要备份的表,格式为\<schema-name>.\<table-name>,可以指定多个 |
mxbackup的详细使用方法请参考文档
1.2 备份示例
基本用法如下:
mxbackup --dbname test --backup-dir /home/mxadmin/backup
注意:mxbackup不提供数据库连接参数,所以要在master节点上执行,并使用免密账户登录。 登录前请配置好,PGHOST、PGUSER、PGPORT环境变量。
执行如上命令后,下面来看一下目录中文件内容。备份目录的文件层级如下:
mxseg{节点号}/backups/{日期}/{日期+时间戳}
备份数据就在该目录中。
节点号master为-1,segment从0开始递增。如果主机上有多个节点,则存在多个mxseg{节点号}目录。
2. mxrestore
mxrestore用来恢复用mxbackup生成的备份数据。用法如下:
mxrestore --backup-dir /home/mxadmin/backup --timestamp 20210820143820
--backup-dir
指定备份目录,与mxbackup一致
--timestamp
指定备份的时间戳,是备份目录中{日期+时间戳}这层的目录名,因为可能存在多次备份。
执行上述命令后,数据库则会进行恢复。
mxrestore的详细使用方法请参考文档