将数据转发到Oracle数据库

时间:2011-08-24 10:43:31

标签: mysql oracle distributed

我们有一个应用程序从各种网络设备收集日志并将其保存在MySQL数据库中。这种情况每10分钟发生一次MySQL数据库保留了一周的日志。

如果任何日志消息符合某些条件,是否有可能使MySQL将此类日志转发到Oracle数据库?例如,如果行以“ABC”开头,MySQL应转发所有日志。

可以这样做吗?

3 个答案:

答案 0 :(得分:2)

这是一种方法(我主要使用Oracle,所以编程是在Oracle方面):

  1. 创建从Oracle到mySQL的数据库链接。使用DB链接Oracle 可以读取mySQL数据库中的表。这需要Heterogeneous Services
  2. 设置一个读取MySQL表并在Oracle中插入记录的Oracle作业 表。该作业执行类似于此的SQL:

    INSERT INTO oracle_log_table (field1, field2, field3)
    SELECT field1, field2, field3
    FROM mySQL_link.mysql_log_table
    WHERE mySQL_link.mysql_log_table.line LIKE "ABC%"
    AND _expression to check that the line is new_;

答案 1 :(得分:1)

MySQL不会为你做这件事。但是,您可以使用脚本自动执行此过程。

您可以使用mysqldump实用程序获取符合导出到Oracle标准的记录。像这样的东西(替换你的db用户,db密码,'ABC'列名,数据库名和表名):

mysqldump --user=DBUSER --password=DBPASS --compatible=oracle 
    --no-create-db --no-create-info  
    --where="log_line LIKE 'ABC%'" 
    --result-file=sql_for_oracle.sql
    DATABASE_NAME TABLE_NANE

然后,您可以使用Oracle上的sqlplussql_for_oracle.sql导入Oracle。

答案 2 :(得分:0)

您可以使用GoldenGate for MySQL执行此操作(请参阅the Administrator's Guide中的第17章)。