DBA大佬展现恐怖业务实力:MongoDB快速迁移到Oracle
Oracle和JSON结合起来,可谓是真正的王炸,最近也是进行业务整合,多数据模型可以解决的问题领域更加广泛。于是将MongoDB进行了迁移,整合到Oralce,尤其Oracle23ai版本是一个超级巨兽啊!JSON能力增强,比MongoDB更强!
接下来就介绍通过 MongoDB Store/Restore 功能将 MongoDB 的数据迁移到 Oracle Database
1.MongoDB概述
MongoDB使用JSON格式存储和操作数据,具有高度灵活性和可扩展性,是一种NoSQL数据库,不需要使用传统的表格结构,还带有很多强大的功能,包括聚合框架、索引、MapReduce等。
2.启动MongoDB
启动MongoDB服务
systemctl start mongod.service
systemctl enable mongod.service
3.查看MongoDB源数据
MongoDB 已经提前在admin数据库内创建了一个用户dbuser,
且有 testdb1,testdb2 的读写权限use admin;
db.createUser(
{
user: "dbuser",
pwd: "Oracle_4U",
roles: [ { role: "readWrite", db: "testdb1" } ,
{ role: "readWrite", db: "testdb2" } ]
}
在 Linux 的命令行,执行如下命令
mongosh localhost:27017 -u dbuser -p 'Oracle_4U' --authenticationDatabase "admin"
在 mongosh 提示符下查看数据:
use testdb1;
db.mongo_testdb1.find();
4.导出MongoDB数据
创建各自的 MongoDB 备份目录,使用 mongodump 工具导出 MongoDB 数据
mongodump --port 27017 --db=testdb1 \
-o /mongo_bakcup --gzip -u dbuser \
-p 'Oracle_4U' --authenticationDatabase admin
5.导入数据到Oracle
使用mongorestore工具导入数据到Oracle,在导入数据之前,我们首先清空 Oracle DB 中可能留存的数据,执行如下命令链接到 Oracle.
mongosh --tlsAllowInvalidCertificates
'mongodb://<user>:<password>@localhost:27017/<user>?authMechanism=PLAIN&authSource=$external&ss
l=true&retryWrites=false&loadBalanced=true'<user>为Oracle的用户名
<password>为Oracle的密码
在 mongosh 命令提示符下,执行如下命令清空数据
db.mongo_testdb1.drop();
执行如下命令导入MongoDB数据到Oracle
mongorestore --tlsInsecure --uri \
'mongodb://localhost:27017/<user>?authMechanism=PLAIN&authSource=$external&ssl=true&retryWrites=false&lo
adBalanced=true' -u <user> -p '<password>' \
--gzip --dir=/mongo_bakcup/testdb1<user>为Oracle的用户名
<password>为Oracle的密码。
/mongo_bakcup为刚刚创建的备份目录
6.查看Oracle入库数据
在 Linux 命令行中,执行如下命令登录到 oracle 数据库
sqlplus <数据库用户名>/<数据库密码>@localhost:1521/服务名
总结
Oracle对于JSON的支持是从12.1开始的。也就是说在Oracle数据库中,你可以存储、查询 JSON 数据格式,像访问普通的表一样,进行增删改操作、创建索引、创建虚拟列等,甚至可以把它放在内存数据库中(InMemory)提高性能。