如何合并多台程序数据
说明
比如我目前使用2
台服务器A
、B
同时转码,需要将B
服务器切片等数据合并到A
服务器,下面就按照该例子配置演示。
且如果你在B
程序中给视频设置过分类,则A
中必须新建相同分类,即存在B
的分类名称。
合并数据库
1、导出B服务器数据库
首先使用SSH
客户端,比如Xshell
软件,登录B
服务器,再使用命令:
#没修改数据库信息的话,可直接复制粘贴到ssh运行
mongodump -h 127.0.0.1 -u ffmpeg -p ffmpeg -d ffmpeg -o /root --authenticationDatabase ffmpeg
-d
是选择要导出的数据库,-u
是用户名,-p
是密码,--authenticationDatabasehou
后面也是要备份的数据库。
导出后,数据库文件路径为/root/ffmpeg
,接下来只需要2
个文件,如下:
#视频库数据
movies.bson
movies.metadata.json
再将这2
个文件下载并上传到服务器A
。
2、将数据导入到A服务器
先将上面备份好的2
个存放在A
服务器的/root/ffmpeg
文件夹,不存在/root/ffmpeg
文件夹的话,就自己新建一个。
再使用SSH
客户端,比如Xshell
软件,登录A
服务器,再使用命令:
#没修改数据库信息的话,可直接复制粘贴到ssh运行,/root/ffmpeg为此前数据表存放文件夹
mongorestore -h 127.0.0.1 -u ffmpeg -p ffmpeg -d ffmpeg /root/ffmpeg --authenticationDatabase ffmpeg
-d
是选择要合并的数据库,-u
是用户名,-p
是密码,--authenticationDatabasehou
后面也是要合并的数据库。
此时你在A
的后台会发现A
和B
视频库数据合并一起了。
合并切片
使用SSH
客户端,比如Xshell
软件,登录A
服务器,安装一下rsync
:
#CentOS系统
yum install rsync -y
#Debian、Ubuntu系统
apt install rsync -y
再将B
中的切片文件夹转移到A
,同样在A
服务器中使用命令:
rsync -av -e 'ssh -p 9999' root@192.168.0.1:/home/express-ffmpeg/public/videos /home/express-ffmpeg/public/videos
9999
为B
的服务器端口,192.168.0.1
为B
的服务器IP
,前面的/home/express-ffmpeg/public/videos
为B
的切片目录,后面的为A
的切片目录,一定要对应好。
同步完成后,则就完全将B
的数据库信息和切片文件合并到A
中了。