두 개의 Oracle 10g 스키마를 어떻게 구별 할 수 있습니까?


14

나는 두 개의 복잡한 오라클 스키마가 동일해야한다는 차이점이 있다고 생각합니다. 따라서 조사하기 위해 덤프하고 차이점을 결정했습니다. 테이블 및 인덱스 정의를 덤프하는 다음 명령을 제공 하는 기사 ( 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;

그러나 출력 스키마의 스풀을 덤프하고 비교했을 때 거의 모든 라인에 사소한 차이가 있었으므로 그 차이는 가치가 없었습니다. 예를 들어 스키마 이름이 각 테이블 정의에 포함되어 있습니다.

diff 도구를 사용하여 쉽게 비교할 수있는 형식으로 가장 중요한 스키마 데이터를 제공하는 더 좋은 방법이 있습니까? 테이블, 인덱스 및 트리거에 관심이 있습니다.

Oracle Database 10g Enterprise Edition 릴리스 10.2.0.3.0을 사용하고 있습니다.

답변:


14

내가 작성한 무료 오픈 소스 SchemaCrawler 도구는 필요한 작업을 수행합니다. SchemaCrawler는 스키마의 세부 정보 (테이블, 뷰, 프로 시저 등)를 다른 일반 텍스트 형식 (텍스트, CSV 또는 XHTML)으로 출력합니다. SchemaCrawler는 동일한 일반 텍스트 형식으로 데이터 (CLOB 및 BLOB 포함)를 출력 할 수도 있습니다. 표준 diff 프로그램을 사용하여 현재 출력을 참조 버전의 출력과 비교할 수 있습니다.

https://www.SchemaCrawler.com

데이터베이스에 JDBC 드라이버를 제공해야합니다.


2
나는 FAQ가 오픈 소스 프로젝트와의 관계를 공개해야한다고 말하는 것을 훨씬 나중에 깨달았으며 지금 시작했습니다. 그러나 나는 내 대답을 기다리고 있으며 탐험 할 가치가있는 해결책이라고 생각합니다. 나는 과거의 두 회사에서 SchemaCrawler를 사용했으며 두 개발 팀 모두이 도구가이 목적에 유용한 도구라는 데 동의했습니다. (아니, 나는 보스가 아니었다.)
Sualeh Fatehi

6

이 물건은 필요 없습니다.

otn.oracle.com

Oracle에는 SQL Developer라는 무료 도구가 있습니다. 스키마 차이가 있습니다.


4

TOAD를 사용 하면 Oracle 개발을위한 훌륭한 도구입니다. 테스트를위한 평가판이 있습니다. 기능 목록에서 :

  • 데이터 비교 및 ​​동기화 마법사
  • 데이터베이스 플랫폼간에 데이터 동기화

테스트 할 수있는 또 다른 제품은 OraPowerTools입니다 .

OraPowerTools는 기본 oracle 데이터베이스 유틸리티 모음입니다. 이 모음에는 OraEdit PRO, 완벽한 Oracle 개발 환경, DBDiff for Oracle, 2 개의 oracle 데이터베이스를 비교 및 ​​업그레이드하고, DBScripter for Oracle은 Oracle 데이터베이스의 객체 및 / 또는 데이터에서 SQL 스크립트를 작성합니다.

무료 대안으로이 CodeProject 기사 : Oracle 용 스키마 비교 도구를 확인할 수 있습니다.

이 작은 VB.NET 애플리케이션을 사용하면 Oracle 데이터베이스 스키마를 서로 비교할 수 있습니다. 개발 인스턴스가 프로덕션 인스턴스와 동일한 지 확인할 때 매우 유용합니다. 특히 프론트 엔드 변경을 구현할 때.

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


2

우리는 DKGAS 'DBDiff for Oracle'을 사용하며 , 전체 스키마 또는 그 일부 (테이블, 시퀀스, 인덱스, 제약 조건, 권한, 패키지, 객체 및 데이터)를 비교 보고서 또는 업그레이드 스크립트로 비교할 수 있습니다.

데이터베이스 업그레이드 스크립트의 기초로 후자를 사용합니다.


1

Perl을 실행할 수 있다면 SQLFairy를 보면 스키마 덤프를 SQL로 생성 할 수 있습니다. 그런 다음 표준 텍스트 디핑 도구를 사용할 수 있습니다. 또한이 이 스키마를 가지고 그들에게 동일하게 만들기 위해 ALTER 명령을 생성합니다.


1

지출 할 돈이 있으면 PowerDIFF for Oracle ( http://www.orbit-db.com)을 사용해 보십시오 . 이 도구는 테이블, 인덱스 및 트리거를 비교하고 'diff'작업을 사용자 정의하기위한 여러 비교 옵션을 제공합니다. 총 차이 스크립트 (DDL 및 DML 명령)가 선택적으로 생성됩니다. 데이터베이스에 연결하려면 ODBC 드라이버가 필요합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.