Oracle PL/SQL和Shell脚本:从一个模式到另一个模式

Oracle PL/SQL和Shell脚本:从一个模式到另一个模式,oracle,plsql,oracle11g,plsqldeveloper,Oracle,Plsql,Oracle11g,Plsqldeveloper,我想每天将数据从一个表从一个模式加载到另一个模式 表位于不同的数据库中,因此出于某些安全目的,创建数据库链接将不是一个选项 大约有一百万条记录将得到处理 数据库位于不同的服务器上,从数据库“A”开始,我通过将emp详细信息和emp状态表合并一个月来获取员工状态详细信息,并将此数据加载到数据库“B”的其他表中。需要每天运行此活动 我需要每天在低高峰时间运行一个作业,以便将表的完整副本放入其他数据库 是否在sqlldr的帮助下导入/导出或加载数据 请告诉我正确的方法。。 提前谢谢 我的最佳选择是

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

  • 表位于不同的数据库中,因此出于某些安全目的,创建数据库链接将不是一个选项
  • 大约有一百万条记录将得到处理
  • 数据库位于不同的服务器上,从数据库“A”开始,我通过将emp详细信息和emp状态表合并一个月来获取员工状态详细信息,并将此数据加载到数据库“B”的其他表中。需要每天运行此活动
  • 我需要每天在低高峰时间运行一个作业,以便将表的完整副本放入其他数据库
  • 是否在sqlldr的帮助下导入/导出或加载数据
请告诉我正确的方法。。 提前谢谢


我的最佳选择是什么?

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


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

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


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

如果您想定期运行此程序,听起来您可能想看看Oracle调度程序

概述:

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

数据泵输出:

所以,您的赌注可能是创建一个shell脚本,该脚本使用数据泵从2号数据库创建导出文件,然后再次使用数据泵将所述文件导入1号数据库。 一旦你有了这个脚本,你就可以安排它在夜间运行,或者在你流量低的任何时候运行


关于

如果您想定期运行此程序,听起来您可能想看看Oracle调度程序

概述:

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

数据泵输出:

所以,您的赌注可能是创建一个shell脚本,该脚本使用数据泵从2号数据库创建导出文件,然后再次使用数据泵将所述文件导入1号数据库。 一旦你有了这个脚本,你就可以安排它在夜间运行,或者在你流量低的任何时候运行


关于

+1创建特定的dblink帐户和priv也是我所看到的。是推送还是拉取数据是另一个问题。您也可以只在其中一个数据库上创建DB链接,因此,如果一个数据库是面向internet/客户端的,则它永远不需要知道另一个数据库是否存在。+1创建特定的dblink acct和privs也是我所看到的。另一个问题是推送还是拉取数据。您也可以只在其中一个数据库上创建DB链接,这样,如果一个数据库是面向internet/客户端的,它就不需要知道另一个数据库存在。