【问题标题】:Oracle PL/SQL and Shell scripting: from one schema to another schemaOracle PL/SQL 和 Shell 脚本:从一种模式到另一种模式
【发布时间】:2012-09-06 22:26:55
【问题描述】:

我想每天将数据从一个表从一个模式加载到另一个模式。

  • 表位于不同的数据库中,因此出于某些安全目的,创建数据库链接将不是一个选项....
  • 大约百万条记录将被处理....
  • 数据库位于不同的服务器上,从数据库“A”我通过组合一个月的 emp 详细信息和 emp 存在表来获取员工存在详细信息,并将此数据加载到数据库“B”的其他表中。需要每天运行此活动。
  • 我需要每天在高峰时段运行一项作业,以便将表的完整副本复制到其他数据库中...
  • 会在 sqlldr 的帮助下导入/导出或加载数据吗?

请告诉我正确的方法.. 在此先感谢..

我最好的选择是什么?

【问题讨论】:

    标签: oracle plsql oracle11g plsqldeveloper


    【解决方案1】:

    嗯,似乎使用数据库链接最适合您的情况。如果要从数据库中读取表,则应具有读取权限。也许您可以要求 DBA 创建一个仅对特定表具有读取权限的帐户(用户)。然后您可以使用数据库链接与新用户连接。 您无法更新或删除表中的数据,因为您连接的用户没有写入权限。这样可以解决安全问题。

    exp/imp 和 sqlldr 是不同的工具。他们不一起工作。您只能从导出文件中导入数据。您无法使用 sqlldr 加载导出文件。

    【讨论】:

    • +1 创建特定的 dblink acct 和 privs 也是我所看到的。是推送还是拉取数据是另一个问题。
    • 您也可以仅在 一个 数据库上创建 DB 链接,因此如果一个是面向互联网/客户端的,它永远不需要知道另一个存在。
    【解决方案2】:

    如果你想定期运行它,听起来你可能想看看 Oracle 调度器

    概览:http://docs.oracle.com/cd/B28359_01/server.111/b28310/schedover001.htm

    要导出数据并将其添加到新数据库中,您可能需要使用 Oracle DataPump,它可以安全地为您执行导出和导入。

    数据泵导出:http://docs.oracle.com/cd/B28359_01/server.111/b28319/dp_export.htm

    因此,您可能会创建一个 shell 脚本,该脚本使用数据泵从 2 号数据库创建导出文件,然后再次使用数据泵将所述文件导入 1 号数据库。 获得该脚本后,您可以安排它在夜间或流量较低的任何时间运行。

    问候

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-12
      • 2020-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-17
      相关资源
      最近更新 更多