linux - 复制mongodb数据目录到另一台服务器

标签 linux mongodb centos7

我正在运行 2 个带有 mongodb 数据库的 CentOS7 服务器。从第二台服务器删除数据目录后,我可以将数据目录从第一台服务器复制到第二台服务器吗?

我试过了但是出错了

[root@CentOS-73-64-minimal ~]# sudo service mongod start
Starting mongod (via systemctl):  Job for mongod.service failed because the control process exited with error code. See "systemctl status mongod.service" and "journalctl -xe" for details.
                                                           [FAILED]
[root@CentOS-73-64-minimal ~]# systemctl status mongod.service
● mongod.service - SYSV: Mongo is a scalable, document-oriented database.
   Loaded: loaded (/etc/rc.d/init.d/mongod; bad; vendor preset: disabled)
   Active: failed (Result: exit-code) since Tue 2017-02-28 14:00:53 UTC; 8s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 30516 ExecStop=/etc/rc.d/init.d/mongod stop (code=exited, status=0/SUCCESS)
  Process: 32249 ExecStart=/etc/rc.d/init.d/mongod start (code=exited, status=1/FAILURE)

Feb 28 14:00:53 CentOS-73-64-minimal systemd[1]: Starting SYSV: Mongo is a scalable, document-oriented database....
Feb 28 14:00:53 CentOS-73-64-minimal mongod[32249]: Error starting mongod. /var/run/mongodb/mongod.pid exists.
Feb 28 14:00:53 CentOS-73-64-minimal systemd[1]: mongod.service: control process exited, code=exited status=1
Feb 28 14:00:53 CentOS-73-64-minimal systemd[1]: Failed to start SYSV: Mongo is a scalable, document-oriented database..
Feb 28 14:00:53 CentOS-73-64-minimal systemd[1]: Unit mongod.service entered failed state.
Feb 28 14:00:53 CentOS-73-64-minimal systemd[1]: mongod.service failed.
[root@CentOS-73-64-minimal ~]# mongod
2017-02-28T14:01:17.068+0000 I CONTROL  [initandlisten] MongoDB starting : pid=32273 port=27017 dbpath=/data/db 64-bit host=CentOS-73-64-minimal
2017-02-28T14:01:17.068+0000 I CONTROL  [initandlisten] db version v3.2.12
2017-02-28T14:01:17.068+0000 I CONTROL  [initandlisten] git version: ef3e1bc78e997f0d9f22f45aeb1d8e3b6ac14a14
2017-02-28T14:01:17.068+0000 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
2017-02-28T14:01:17.068+0000 I CONTROL  [initandlisten] allocator: tcmalloc
2017-02-28T14:01:17.068+0000 I CONTROL  [initandlisten] modules: none
2017-02-28T14:01:17.068+0000 I CONTROL  [initandlisten] build environment:
2017-02-28T14:01:17.068+0000 I CONTROL  [initandlisten]     distmod: rhel70
2017-02-28T14:01:17.068+0000 I CONTROL  [initandlisten]     distarch: x86_64
2017-02-28T14:01:17.068+0000 I CONTROL  [initandlisten]     target_arch: x86_64
2017-02-28T14:01:17.068+0000 I CONTROL  [initandlisten] options: {}
2017-02-28T14:01:17.085+0000 I STORAGE  [initandlisten] exception in initAndListen: 29 Data directory /data/db not found., terminating
2017-02-28T14:01:17.085+0000 I CONTROL  [initandlisten] dbexit:  rc: 100
[root@CentOS-73-64-minimal ~]#

mogod 出来了

[root@CentOS-73-64-minimal ~]# mongod
2017-03-01T14:09:03.658+0000 I CONTROL  [initandlisten] MongoDB starting : pid=2                 304 port=27017 dbpath=/data/db 64-bit host=CentOS-73-64-minimal
2017-03-01T14:09:03.658+0000 I CONTROL  [initandlisten] db version v3.2.12
2017-03-01T14:09:03.658+0000 I CONTROL  [initandlisten] git version: ef3e1bc78e9                 97f0d9f22f45aeb1d8e3b6ac14a14
2017-03-01T14:09:03.658+0000 I CONTROL  [initandlisten] OpenSSL version: OpenSSL                  1.0.1e-fips 11 Feb 2013
2017-03-01T14:09:03.658+0000 I CONTROL  [initandlisten] allocator: tcmalloc
2017-03-01T14:09:03.658+0000 I CONTROL  [initandlisten] modules: none
2017-03-01T14:09:03.658+0000 I CONTROL  [initandlisten] build environment:
2017-03-01T14:09:03.658+0000 I CONTROL  [initandlisten]     distmod: rhel70
2017-03-01T14:09:03.658+0000 I CONTROL  [initandlisten]     distarch: x86_64
2017-03-01T14:09:03.658+0000 I CONTROL  [initandlisten]     target_arch: x86_64
2017-03-01T14:09:03.658+0000 I CONTROL  [initandlisten] options: {}
2017-03-01T14:09:03.775+0000 I -        [initandlisten] Detected data files in /                 data/db created by the 'wiredTiger' storage engine, so setting the active storag                 e engine to 'wiredTiger'.
2017-03-01T14:09:03.775+0000 I STORAGE  [initandlisten] wiredtiger_open config:                  create,cache_size=18G,session_max=20000,eviction=(threads_max=4),config_base=fal                 se,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snap                 py),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),stat                 istics_log=(wait=0),
2017-03-01T14:09:06.114+0000 I CONTROL  [initandlisten] ** WARNING: You are runn                 ing this process as the root user, which is not recommended.
2017-03-01T14:09:06.114+0000 I CONTROL  [initandlisten]
2017-03-01T14:09:06.115+0000 I FTDC     [initandlisten] Initializing full-time d                 iagnostic data capture with directory '/data/db/diagnostic.data'
2017-03-01T14:09:06.115+0000 I NETWORK  [HostnameCanonicalizationWorker] Startin                 g hostname canonicalization worker
2017-03-01T14:09:06.252+0000 I NETWORK  [initandlisten] waiting for connections                  on port 27017

最佳答案

首先,我假设两个服务器中的数据相同,您只需要在第二个 (B) 中复制第一个 (A)。

我会 mongodump从 A 到 B 的数据。它比乱用数据文件更干净(也更容易)。

enough documentation on MongoDB site涵盖这个话题。

关于linux - 复制mongodb数据目录到另一台服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42510807/

相关文章:

linux - [ bash ] : Handling many signals

ruby-on-rails - em-mongo 的例子?

node.js - 错误: npm install ERROR "No Valid versions available for dateFormat"?

bash - ~/.inputrc 中的条目被忽略

linux - UNIX - 需要有关 grep 命令的帮助

linux - 安装 iPod 上的多个安装事件

linux - 将一个文件(保持行顺序)与 "static"文件进行比较

java - 适用于 Java 2.1 和 MongoDB 的 Play 框架

mongodb - 如何在嵌入文档中查找某个元素

linux - 将 rsa token 复制到组内的远程主机