将数据转发到Oracle数据库

发布于 2024-12-01 04:20:44 字数 193 浏览 2 评论 0原文

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

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

这可以做到吗?

We have an application that collects the logs from various network devices and saves it in a MySQL database. This happens every 10 minutes. The MySQL database keeps a week worth of logs.

Is it possible to make MySQL forward such logs to an Oracle database if any of the log messages match certain criteria? For example, MySQL should forward all logs if the line starts with "ABC".

Can this be done?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

丘比特射中我 2024-12-08 04:20:44

这是一种实现方法(我主要使用 Oracle,因此编程是在 Oracle 端进行的):

  1. 创建从 Oracle 到 mySQL 的数据库链接。使用DB链接Oracle
    可以读取mySQL数据库中的表。这需要异构服务
  2. 设置一个 Oracle 作业来读取 MySQL 表并将记录插入到 Oracle 中
    桌子。该作业执行的 SQL 看起来与此类似:

    INSERT INTO oracle_log_table (field1, field2, field3)
    选择字段 1、字段 2、字段 3
    来自 mySQL_link.mysql_log_table
    WHERE mySQL_link.mysql_log_table.line LIKE "ABC%"
    AND _表达式来检查该行是否是新的_;

Here is one way of doing it (I've mainly worked with Oracle, so the programming is on the Oracle side):

  1. Create a DB link from Oracle to mySQL. Using the DB link Oracle
    can read tables in the mySQL database. This requires Heterogeneous Services.
  2. Set up an Oracle job that reads the MySQL table and inserts the records in an Oracle
    table. The job executes SQL that looks similar to this:

    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_;

白首有我共你 2024-12-08 04:20:44

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

您可以使用 mysqldump 实用程序获取符合导出到 Oracle 条件的记录。像这样的东西(替换你的数据库用户,数据库密码,'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上使用sqlplus导入sql_for_oracle.sql 进入甲骨文。

MySQL won't do it for you. However you could use a script to automate this process.

You can use the mysqldump utility to get records matching your criteria for export to Oracle. Something like this (substitute your db user, db password, 'ABC' column name, database name and table name):

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

Then you can use sqlplus on Oracle to import sql_for_oracle.sql into Oracle.

ぃ双果 2024-12-08 04:20:44

您可以使用 GoldenGate for MySQL 来执行此操作(请参阅章节17 在 管理员指南)。

You can do this with GoldenGate for MySQL (see chapter 17 in the Administrator's Guide).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文