AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 26360
Accepted
Stuart Woodward
Stuart Woodward
Asked: 2009-06-16 22:14:55 +0800 CST2009-06-16 22:14:55 +0800 CST 2009-06-16 22:14:55 +0800 CST

如何区分两个 Oracle 10g 模式?

  • 772

我觉得两个大型复杂的 Oracle 模式之间应该是相同的,因此决定转储和比较它们以进行调查。我找到了一篇文章 ( http://www.dba-oracle.com/art_builder_get_schema_syntax.htm ),它提供了以下命令来转储表和索引定义。

SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) FROM USER_TABLES u;
SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name) FROM USER_INDEXES u;

但是,当我转储和比较模式的输出假脱机时,几乎每一行都存在微不足道的差异,这使得差异毫无价值。例如,模式名称包含在每个表定义中。

有没有更好的方法来做到这一点,它将以一种可以使用差异工具轻松比较的格式提供最重要的模式数据。我对表、索引和触发器感兴趣。

我正在使用 Oracle 数据库 10g 企业版 10.2.0.3.0 版

sql database oracle oracle10g
  • 6 6 个回答
  • 25144 Views

6 个回答

  • Voted
  1. Best Answer
    Sualeh Fatehi
    2009-06-17T11:28:55+08:002009-06-17T11:28:55+08:00

    我编写的免费开源SchemaCrawler工具可以满足您的需求。SchemaCrawler 以可区分的纯文本格式(文本、CSV 或 XHTML)输出模式的详细信息(表、视图、过程等)。SchemaCrawler 还可以以相同的纯文本格式输出数据(包括 CLOB 和 BLOB)。您可以使用标准 diff 程序将当前输出与输出的参考版本进行比较。

    https://www.SchemaCrawler.com

    您需要为您的数据库提供 JDBC 驱动程序。

    • 14
  2. Bob
    2010-01-08T12:05:17+08:002010-01-08T12:05:17+08:00

    你不需要这些东西。

    otn.oracle.com

    Oracle 有一个名为 SQL Developer 的免费工具。它有一个模式差异。

    • 6
  3. splattne
    2009-06-16T22:51:42+08:002009-06-16T22:51:42+08:00

    您可以使用TOAD 是用于 Oracle 开发的出色通用工具。有用于测试的试用版。从功能列表中:

    • 数据比较和同步向导
    • 跨数据库平台同步数据

    您可以测试的另一个产品是OraPowerTools:

    OraPowerTools 是本地 oracle 数据库实用程序的集合。该集合包括 OraEdit PRO,一个完整的 Oracle 开发环境,用于 Oracle 的 DBDiff,比较和升级任何 2 个 oracle 数据库,以及用于 Oracle 的 DBScripter,从您的 oracle 数据库的对象和/或数据中创建 sql 脚本。

    作为免费替代方案,您可以查看这篇 CodeProject 文章:Oracle 架构比较工具

    这个小型 VB.NET 应用程序允许您将 Oracle 数据库模式相互比较。这在确保您的开发实例与生产实例相同时非常有用;特别是在实施前端更改时。

    1:1:http ://www.toadsoft.com/toad_oracle.htm

    • 4
  4. Andrew
    2009-08-01T06:53:55+08:002009-08-01T06:53:55+08:00

    我们使用DKGAS 'DBDiff for Oracle',它可以比较整个模式或其中的一部分(表、序列、索引、约束、权限、包、对象和数据),作为比较报告或升级脚本。

    我们使用后者作为数据库升级脚本的基础。

    • 2
  5. David Pashley
    2009-06-17T00:27:48+08:002009-06-17T00:27:48+08:00

    如果您能够运行 Perl,您可以查看SQLFairy,它应该能够将您的模式转储为 SQL。然后,您可以使用标准文本差异工具。还有一个工具将采用两个模式并生成 ALTER 命令以使它们相同。

    • 1
  6. Stefan Pflanz
    2009-06-25T11:18:27+08:002009-06-25T11:18:27+08:00

    如果您有一些钱可以花,请考虑使用 PowerDIFF for Oracle:http ://www.orbit-db.com 。该工具可以出色地比较表、索引和触发器,并带有许多比较选项来自定义“差异”操作。可选地生成总差异脚本(DDL 和 DML 命令)。您需要一个 ODBC 驱动程序来连接到数据库。

    • 1

相关问题

  • 如何验证 SQLite db3 文件是否有效/一致

  • 使用安全组管理 MS SQL 2005

  • 对于具有许多不同服务的少数服务器来说,一个好的主机名约定?

  • 如何控制 SQL Anywhere 中的临时文件增长?

  • SQL Server 2008 Express - “最佳”备份解决方案?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve