AWS Lambda将数据从Oracle数据库迁移到Aurora

时间:2019-02-04 02:00:12

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

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

我尝试过:

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中编写代码。

2 个答案:

答案 0 :(得分:0)

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

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

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

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

Final folder sctructure

就是这样,将文件夹中的文件压缩并上传到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;
}

答案 1 :(得分:0)

<块引用>

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

甲骨文企业版

甲骨文标准版

Oracle 快捷版

甲骨文个人版

对于自我管理的 Oracle 数据库,AWS DMS 支持所有 Oracle 版本 10.2 及更高版本(版本 10.x)、11g 的数据库版本 高达 12.2、18c 和 19c。对于 Amazon RDS for Oracle 数据库, 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