我正在运行 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 的数据。它比乱用数据文件更干净(也更容易)。
关于linux - 复制mongodb数据目录到另一台服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42510807/