percona mongo热备
https://www.percona.com/doc/percona-server-for-mongodb/LATEST/hot-backup.html#hot-backup
Hot Backup
Percona Server for MongoDB includes an integrated open-source hot backup system for the default WiredTiger storage engine. It creates a physical data backup on a running server without notable performance and operating degradation.
Making a backup
To take a hot backup of the database in your current dbpath, do the following:
Make sure to provide access to the backup directory for the
mongoduserchown mongod:mongod <backupDir>
Run the
createBackupcommand as administrator on theadmindatabase and specify the backup directory.> use admin
switched to db admin
> db.runCommand({createBackup: 1, backupDir: <backup_data_path})
{ "ok" : 1 }
If the backup was successful, you should receive an { "ok" : 1 } object. If there was an error, you will receive a failing ok status with the error message, for example:
> db.runCommand({createBackup: 1, backupDir: ""})
{ "ok" : 0, "errmsg" : "Destination path must be absolute" }
Saving a backup to a TAR archive
Implementation details
This feature was implemented in Percona Server for MongoDB 4.2.1-1.
To save a backup in the format of tar archive, use the archive field to specify the destination path:
> use admin
...
> db.runCommand({createBackup: 1, archive: <path_to_archive>.tar })
Streaming hot backups to a remote destination
Percona Server for MongoDB enables uploading hot backups to an Amazon S3 or a compatible storage service, such as MinIO.
This method requires that you provide the bucket field in the s3 object:
> use admin
...
> db.runCommand({createBackup: 1, s3: {bucket: "backup20190510", path: <some_optional_path>} })
In addition to the mandatory bucket field, the s3 object may contain the following fields:
| Field | Type | Description |
|---|---|---|
| bucket | string | The only mandatory field. Names are subject to restrictions described in the Bucket Restrictions and Limitations section of Amazon S3 documentation |
| path | string | The virtual path inside the specified bucket where the backup will be created. If the path is not specified then the backup is created in the root of the bucket. If there are any objects under the specified path, the backup will not be created and an error will be reported. |
| endpoint | string | The endpoint address and port - mainly for AWS S3 compatible servers such as the MinIO server. For a local MinIO server, this can be “127.0.0.1:9000”. For AWS S3 this field can be omitted. |
| scheme | string | “HTTP” or “HTTPS” (default). For a local MinIO server started with the minio server command this should field should contain HTTP. |
| useVirtualAddressing | bool | The style of addressing buckets in the URL. By default ‘true’. For MinIO servers, set this field to false. For more information, see Virtual Hosting of Buckets in the Amazon S3 documentation. |
| region | string | The name of an AWS region. The default region is US_EAST_1. For more information see AWS Service Endpoints in the Amazon S3 documentation. |
| profile | string | The name of a credentials profile in the credentials configuration file. If not specified, the profile named default is used. |
| accessKeyId | string | The access key id |
| secretAccessKey | string | The secret access key |
Credentials
If the user provides the access key id and the secret access key parameters, these are used as credentials.
If the access key id parameter is not specified then the credentials are loaded from the credentials configuration file. By default, it is ~/.aws/credentials.
An example of the credentials file
[default]
aws_access_key_id = ABC123XYZ456QQQAAAFFF
aws_secret_access_key = zuf+secretkey0secretkey1secretkey2
[localminio]
aws_access_key_id = ABCABCABCABC55566678
aws_secret_access_key = secretaccesskey1secretaccesskey2secretaccesskey3
Examples
Backup in root of bucket on local instance of MinIO server
> db.runCommand({createBackup: 1, s3: {bucket: "backup20190901500",
scheme: "HTTP",
endpoint: "127.0.0.1:9000",
useVirtualAddressing: false,
profile: "localminio"}})
Backup on MinIO testing server with the default credentials profile
The following command creates a backup under the virtual path “year2019/day42” in the backup bucket:
> db.runCommand({createBackup: 1, s3: {bucket: "backup",
path: "year2019/day42",
endpoint: "sandbox.min.io:9000",
useVirtualAddressing: false}})
Backup on AWS S3 service using default settings
> db.runCommand({createBackup: 1, s3: {bucket: "backup", path: "year2019/day42"}})
See also
- AWS Documentation: Providing AWS Credentials
- https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/credentials.html
Restoring data from backup
Restoring from backup on a standalone server
To restore your database on a standalone server, stop the mongod service, clean out the data directory and copy files from the backup directory to the data directory. The mongod user requires access to those files to start the service. Therefore, make the mongod user the owner of the data directory and all files and subdirectories under it, and restart the mongod service.
Run the following commands as root or by using the sudo command
# Stop the mongod service
$ systemctl stop mongod
# Clean out the data directory
$ rm -rf /var/lib/mongodb/*
# Copy backup files
$ cp -RT <backup_data_path> /var/lib/mongodb/
# Grant permissions to data files for the mongod user
$ chown -R mongod:mongod /var/lib/mongodb/
# Start the mongod service
$ systemctl start mongod
Restoring from backup in a replica set
The recommended way to restore the replica set from a backup is to restore it into a standalone node and then initiate it as the first member of a new replica set.
Note
If you try to restore the node into the existing replica set and there is more recent data, the restored node detects that it is out of date with the other replica set members, deletes the data and makes an initial sync.
Run the following commands as root or by using the sudo command
The restore steps are the following:
Stop the
mongodservice:$ systemctl stop mongod
Clean the data directory and then copy the files from the backup directory to your data directory. Assuming that the data directory is
/var/lib/mongodb/, use the following commands:$ rm -rf /var/lib/mongodb/*
$ cp -RT <backup_data_path> /var/lib/mongodb/Grant permissions to the data files for the
mongoduser$ chown -R mongod:mongod /var/lib/mongodb/
Make sure the replication is disabled in the config file and start the
mongodservice.$ systemctl start mongod
Connect to your standalone node via the
mongoshell and drop the local database> mongo
> use local
> db.dropDatabase()
percona mongo热备的更多相关文章
- KeepAlived+HaProxy+MyCat+Percona双机热备PXC集群
一.搭建PXC集群 1.环境:centos7+PXC5.7.21+mycat1.6.5 2.卸载mariadb rpm -qa | grep mariadb* yum -y remove mariad ...
- MySQL的热备percona-xtrabackup、innobackupex的安装方法
http://blog.csdn.net/dbanote/article/details/13295727 http://blog.csdn.net/yangzhawen/article/detail ...
- INNOBACKUPEX热备MYSQL数据
http://www.databaseclub.com/2014/11/innobackupex/ 1)对MySQL进行全备份1.备份数据 1 innobackupex --user=userna ...
- Docker下配置双机热备PXC集群
架构: 步骤: 1.安装centos7 ,设置宿主机IP:192.168.1.224 2.先更新yum软件管理器,再安装docker 1.yum -y update 2.yum install - ...
- MySQL 基于xtrabackup备份—热备工具
xtrabackup(仅对InnoDB存储引擎支持热备) percona公司开发 改进的MySQL分支:percona-server 存储引擎改进:InnoDB —> XtraDB 使用本地的R ...
- 利用XtraBackup给MYSQL热备(基于数据文件)
利用XtraBackup给MYSQL热备(基于数据文件) By JRoBot on 2013 年 11 月 26 日 | Leave a response 利用XtraBackup给MYSQL热备(基 ...
- CentOS系统MySQL双机热备配置
1 概述 在集成项目中需要应对不同环境下的安装配置,主流操作系统大致可以分为三种:Linux.Windows以及UNIX.其中Linux备受青睐的主要原因有两个: 首先,Linux作为自由软件有两个 ...
- 一张“神图”看懂单机/集群/热备/磁盘阵列(RAID)
单机部署(stand-alone):只有一个饮水机提供服务,服务只部署一份 集群部署(cluster):有多个饮水机同时提供服务,服务冗余部署,每个冗余的服务都对外提供服务,一个服务挂掉时依然可用 热 ...
- Keepalived+LVS+nginx双机热备
Keepalived简介 什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了, 也就是所谓的高可用或热备,用来防止单点故障的发生. Keepalived采 ...
- Mysql5.6主从热备配置
数据库是应用系统的核心,为了保证数据库的安全采用主从热备是很常见的方法,也就是主数据库DDL.DML都将被同步到从数据库. 一. 实验环境 操作系统:windowsserver 2008 R ...
随机推荐
- spark闭包检查
spark在执行算子时,如果算子内部用到了外部(Driver)端的对象或变量,就一定会出现闭包:spark在执行算子之前会进行闭包检查,也就是对外部对象或变量进行序列化检查:
- Unity旧版图集和新版图集
1.关于旧版图集 ===>结论:设置PackingTag就可以了. ===>分析:设置好PackingTag,那么在进行打包的时候,同一个标签的会被打到1个图集里面,图集最大为2048x2 ...
- atx
https://github.com/openatx/atx-agent/releases/download/0.9.4/atx-agent_0.9.4_linux_386.tar.gz
- 【STM32】电能表抄表功能实现|自学笔记
一.抄表的原理 抄表就是读电能表的测量参数,一般有电能,电压,电流,实时功率,功率因数等,用单板抄表其实就是读电能表种相应寄存器中的值.智能电表目前主流协议有DLT645国标各家通用,MODBUS各家 ...
- sqlserver存储过程学习
存储过程学习 一.定义变量 --简单赋值 declare @a int set @a=5 print @a --使用select语句赋值 declare @user1 nvarchar ...
- 关于前端:解决elementUI的对话框Dialog组件点击自动跳转到页面顶部问题
查看文档寻找解决办法 增加这两个参数即可完满解决 <el-dialog :lock-scroll="false" :append-to-body="true&quo ...
- conda出现Solving environment: failed错误
conda在使用create新建环境和install安装时报错"Solving environment: failed" 报错截图 解决方案 1.在cmd中输入 %HOMEPAT ...
- GIT 上传文件出错:fatal: Could not read from remote repository. 解决方案
问题 git push -u origin master 执行后报错 fatal: Could not read from remote repository. 解决方案 1. git执行 git ...
- node_exporter安装
1.node_exporter下载 node_exporter-1.3.1.linux-amd64.tar.gz tar -xzvf node_exporter-1.3.1.linux-amd64.t ...
- 老生常谈:String s1 = new String("abc") 创建了几个字符串对象及8 种基本类型的包装类和常量池
将创建 1 或 2 个字符串.如果池中已存在字符串常量"abc",则只会在堆空间创建一个字符串常量"abc".如果池中没有字符串常量"abc" ...