【问题标题】:AWS Lambda migrate data from oracle db to AuroraAWS Lambda 将数据从 oracle db 迁移到 Aurora
【发布时间】:2021-03-09 01:42:57
【问题描述】:

我想编写 aws lambda 函数来从本地 oracle db 中获取数据并迁移到 aurora db。

我试过了:

var oracledb = require('oracledb-for-lambda');
var os = require('os');
var fs = require('fs');
'use strict';

str_host = os.hostname() + ' localhost\n';

fs.appendFile(process.env.HOSTALIASES,str_host , function(err){
    if(err) throw err;  
});

但我再次陷入困境,因为它似乎不起作用。

有人可以告诉我吗,我在 oracle db 和 aurora db 中有相同列的表,我想将 oracle 映射到 aurora。如何使用 aws lambda 在 java 或 python 中编写它。

【问题讨论】:

    标签: oracle amazon-web-services amazon-aurora


    【解决方案1】:

    oracledb_for_lambda”库的大小超过了70 MB,对于您每次编译和上传到 lambda 来说是相当大的。取而代之的是,您可以捆绑库并将其添加为 lambda 层。这样我们就可以将层直接包含到 Lambda 中。

    创建此捆绑包将是我们的第一步。在将其添加到图层之前,您需要创建以下文件夹结构。

    现在,在项目文件夹中,创建一个名为“nodejs”的文件夹,您需要将“node_modules”文件夹移动到这个“nodejs强>”文件夹。然后,复制“/node_modules/oracledb-for-lambda”中的“lib”文件夹,并将其粘贴到主项目目录之外。

    最后,您将获得如下图所示的文件夹结构。

    就是这样,压缩文件夹内的文件并将压缩文件上传到 S3

    您可以使用以下代码进行连接

    'use strict';
    var os = require('os');
    var fs = require('fs');
    var oracledb = require('oracledb-for-lambda');
    exports.handler = async (event, context) => {
        let str_host = os.hostname() + ' localhost\n';
        fs.writeFileSync(process.env.HOSTALIASES, str_host, function(err) {
            if (err) throw err;
        });
        var connAttr = {
            user: process.env.USERNAME,
            password: process.env.PASSWORD,
            connectString: process.env.CONNECTION_STRING
        };
    
        const promise = new Promise(function(resolve, reject) {
            oracledb.getConnection(connAttr, function(err, connection) {
                if (err) {
                    reject({
                        status: "ERROR"
                    });
                }
                resolve({
                    status: "SUCCESS"
                });
            });
        });
        return promise;
    }

    【讨论】:

      【解决方案2】:

      您可以使用 AWS DMS 从一个或多个 Oracle 数据库迁移数据。 使用 Oracle 数据库作为源,您可以将数据迁移到任何 AWS DMS 支持的目标。 DMS 支持以下 Oracle 数据库版本:

      Oracle 企业版

      Oracle 标准版

      Oracle 快捷版

      Oracle 个人版

      对于自我管理的 Oracle 数据库,AWS DMS 支持所有 Oracle 10.2 及更高版本(对于 10.x 版本)、11g 的数据库版本 以及高达 12.2、18c 和 19c。对于适用于 Oracle 数据库的 Amazon RDS AWS 管理,AWS DMS 支持所有 Oracle 数据库版本 版本 11g(版本 11.2.0.4 及更高版本)以及最高 12.2、18c 和 19c.

      https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html

      【讨论】:

        猜你喜欢
        • 2021-05-04
        • 2019-08-24
        • 2021-08-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-14
        相关资源
        最近更新 更多