2011-05-04 4 views
4

데이터베이스 코드를 배포하는 데 사용되는 스크립트 집합이 2000 개 이상 있습니다. 올바른 종속성 순서를 따르는 단일 배포 스크립트를 만드는 데 사용할 수있는 도구가 있는지 여부를 아는 사람이 있습니까?Oracle 용 스키마 비교를 사용하여 배포 스크립트 만들기

나는 이것이 Redgate의 SQL Compare를 사용하여 수행 할 수 있음을 알고 있지만, SQL Server를 사용하면 좋습니다. Oracle 용 Schema Compare 도구의 제한된 정보에서이 기능이없는 것 같습니다.

답변

3

I는 (대체로 물체가 EXPDP 추출 된 순서에 기초하여) 다음과 같은 순서로 갈 것이다 (사용자 정의 형식에 의존 테이블 컬럼)

  • SYNONYM
  • TYPE
  • DB_LINK
  • SEQUENCE
  • 표 - 표
  • 표 - GRANT
  • 표-INDEX
  • TABLE-CONSTRAINT는
  • 표-코멘트
  • 패키지 (기존 인덱스에 의해 강제 PK 제약을 할 수 있습니다)
  • 기능
  • 절차
  • VIEW
  • 표-REF 제약 조건
  • 테이블 트리거
  • 테이블 인덱스 (기능)
  • 보기
  • 구체화
  • VIEW LOG 구체화
  • JOB
+0

이 목록을 보내 주시면 정말 유용 할 것입니다. 필자는 "Schema Compare for Oracle"을 사용할 수 없다고 생각하여이 정보가 실제로 유용 할 것입니다. 이제 2.5k 패키지 스크립트를 빠르게 실행하는 방법을 알아 내야합니다. -s –

2

구현 방법에 따라 올바른 순서로 스크립트를 시작하는 스크립트를 만들 수 있습니다.

  • 테이블/시퀀스
  • 조회수/유형
    • (일반적으로 발생 순서 문제 나 의존성이 있다면 자신이 만든거야 그래서 force 옵션에 "코드"유형 또는 다른 뷰 및 유형)
  • 패키지/절차/기능/트리거
    • (이이 의존성에서 생성되는 경우 당신이 잘못된 개체를 다시 컴파일 할 때 순서는 여전히 유효하지 않은 개체를 다시 컴파일

    킥 오프 RDBMS와/관리자/utlrp을 만들 수 있지만 무효)

  • 외래 키 제약 것이다.

  • +0

    rdbms/admin/utlrp에 대한 포인터 주셔서 감사합니다. 정말 유용 할 것입니다. –

    +0

    또한 노출 된 PL/SQL 버전 인'UTL_RECOMP.RECOMPILE_PARALLEL'과'UTL_RECOMP.RECOMPILE_SERIAL'이 있습니다. –

    1

    나는 완전히 문제를 이해했는지 모르겠지만, 다음과 같은 시도 할 수 있습니다 :

    1. 실행하여 현재 스크립트를 사용하여 데이터베이스 만들기
    2. 빈 스키마 만들기
    3. 레드 게이트의 스키마 비교를 사용하여 데이터베이스 비교 빈 스키마
    4. 저장 (종속성 순서에 있어야합니다) 스크립트 다음
    0

    가있는 데이터베이스 개체의 다른 유형에 대한 설치 스크립트를 실행하는 순서에 대한 일반적인 지침이다와 전자 : 그들은 항상 유효합니다 및 기타 개체들을 참조 수 있기 때문에

    Package specifications 
    
    Tables (with constraints and indexes) in proper order 
    
    Sequences (because they are most often used by triggers) 
    
    Triggers 
    
    Synonyms 
    
    Views (because they may reference functions, procedures, or synonyms) 
    
    Package bodies 
    
    Data (optionally disabling all constraints before loading the data and re-enabling them afterwards) 
    

    패키지 사양은 먼저 나열됩니다. 패키지 본문은 아마도 다른 객체 유형을 참조하기 때문에 만들어진 마지막 객체 유형이어야합니다. 종속성 문제로 인해 함수와 프로 시저를 패키지에 포함시키는 것이 좋습니다.