首页 > 数据库 >mongodb单实例开启oplog

mongodb单实例开启oplog

时间:2024-05-10 13:55:39浏览次数:29  
标签:rs mongodb data Oplog 实例 oplog keyfile

需求

  • DTS传输同步数据的需求,需要将mongodb里的数据更新、数据增加操作同步给FC函数
    MongoDB中的Oplog(操作日志)是一个特殊的集合,用于记录数据库的所有操作。Oplog是MongoDB复制集中的一个重要组成部分,它允许从节点通过读取Oplog来实现与主节点的数据同步。所以要把单实例调整成复制集

mongodb改造

  • 创建一个用于加密内部通信的 keyfile。你可以使用 openssl 工具来生成这个 keyfile。例如
openssl rand -base64 756 > /data/mongodb-keyfile
  • 传输keyfile 到mongo容器里,并修改keyfile权限
docker cp /data/mongodb-keyfile mongodb:/data/mongodb-keyfile

docker exec -it mongodb bash
chown mongodb:mongodb mongodb-keyfile
chmod 400 mongodb-keyfile 
  • Mongodb 配置文件增加配置 replSet = single
[root@dev-test-lingowhale conf]# cat mongod.conf
# 数据库文件存储位置
dbpath = /data/db
# 开启oplog
replSet = single
# keyfile
# log文件存储位置
logpath = /data/log/mongod.log
# 使用追加的方式写日志
logappend = true
# 是否以守护进程方式运行
# fork = true
# 全部ip可以访问
bind_ip = 0.0.0.0
# 端口号
port = 27017
# 是否启用认证
auth = true
keyFile = /data/mongodb-keyfile
# 设置oplog的大小(MB)
oplogSize=2048
  • 重启mongodb
docker restart mongodb
  • 使用mongo shell连接到MongoDB,并使用以下命令初始化复制集
rs.initiate()
  • 登陆mongodb 查看oplog 是否已经开启
single:PRIMARY> db['oplog.rs'].stats()
{
        "ns" : "test.oplog.rs",
        "size" : 0,
        "count" : 0,
        "storageSize" : 0,
        "totalSize" : 0,
        "nindexes" : 0,
        "totalIndexSize" : 0,
        "indexSizes" : {
                
        },
        "scaleFactor" : 1,
        "ok" : 1,
        "$clusterTime" : {
                "clusterTime" : Timestamp(1715319432, 1),
                "signature" : {
                        "hash" : BinData(0,"mQRqjZJmFolrAiK6Hz3xZfvazKA="),
                        "keyId" : NumberLong("7366889040387244037")
                }
        },
        "operationTime" : Timestamp(1715319432, 1)
}

标签:rs,mongodb,data,Oplog,实例,oplog,keyfile
From: https://www.cnblogs.com/lixinliang/p/18184144

相关文章

  • 配置mysql多实例
    配置mysql多实例需要专用的、支持多实例的mysql软件。这里用到的是mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz解压mysql软件包tar-xfmysql-5.7.34-linux-glibc2.12-x86_64.tar.gz-C/usr/local/mysql配置多实例vim/etc/my.cnf[mysqld_multi]            ......
  • 【Azure Standard Logic App】Workflow积压非常严重的情况下, 执行实例居然不能自动缩
    问题描述测试标准版本的LogicApp应用,消费ServiceBus中的消息。当ServiceBus中堆积了大量消息的情况下,Workflow依旧只在一个实例上运行。而LogicApp的自动缩放设置的最大为20个,为什么没有自动缩放呢? 问题解答因为这个StandardLogicApp集成进入到一个虚拟网络中,默认情......
  • vsftpd多实例多用户不同权限
    ftp配置文件实现匿名用户和密码用户同样权限,更改#anon_other_write_enable=NO改配置可以实现匿名用户只能上传下载不能修改删除。setfacl-dR-mu:ftp:rwx/data/ftp2/dachui/ 设置ftp用户家目录acl权限可以实现同密码用户一样的权限。复制该配置文件修改改端口号或liste_ad......
  • 类为什么要实例化
    类的实例化(见名知意)​ 引言:我们都知道不管是什么编程语言创建一个“类”都要进行实例化,但是网上解释五花八门,各种高大上的解释让初学者看了头疼,这次我就通过Python语言通过自己的简单解释来让大家了解为什么要对类进行实例化。1、网上随便找的一篇对类的解释举例​ 类是一组......
  • MongoDB索引
    MongoDB索引概述索引支持在MongoDB中高效地执行查询。如果没有索引,MongoDB必须执行全集合扫描,即扫描集合中的每个文档,以选择与查询语句匹配的文档。这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常致命的。如果......
  • pymongo:Python下 MongoDB 的存储操作
    1.连接mongodb#########方法一##########importpymongo#MongoClient()返回一个mongodb的连接对象clientclient=pymongo.MongoClient(host="localhost",port=27017)#########方法二##########importpymongo#MongoClient的第一个参数host还可以直接传MongoDB......
  • Golang gin 框架使用 MongoDB 进行多表联查,以及分组查询
    主要针对gin框架中如何使用假设两张表order表{"_id":ObjectId("65aa2b2203abce203bbe3c7a"),"name":"骆驼祥子","route":"/test/v2/desktop","bookshelf":"03"}orderRemark表{......
  • Linux系统硬链接和软链接具体实例
    Linux系统硬链接和软链接具体实例目录Linux系统硬链接和软链接具体实例创建链接命令目录与链接目录文件在Linux中,元数据中的inode号(inode是文件元数据的一部分但其并不包含文件名,inode号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和使用,系......
  • MongoDB基本常用命令
    MongoDB基本常用命令数据库操作选择和创建数据库选择和创建数据库的语法格式:use数据库名称如果数据库不存在则自动创建,例如,以下语句创建articledb数据库:usearticledb查看有权限查看的所有的数据库命令showdbs或showdatabases注意:在MongoDB中,集合只有在内......
  • AI 数据观 | TapData Cloud + MongoDB Atlas:大模型与 RAG 技术有机结合,落地实时工单处
    本篇为「AI数据观」系列文章第二弹,在这里,我们将进一步探讨AI行业的数据价值。以RAG的智能工单应用场景为例,共同探索如何使用TapdataCloud+MongoDBAtlas实现具备实时更新能力的向量数据库,为企业工单处理的智能化和自动化需求,提供准实时的新鲜数据。完整分布教程指引,详见......