2012-01-21 2 views
0

20 명의 사용자 (스키마)가있는 Oracle 데이터베이스가 있습니다. 이러한 스키마는 동의어와 외래 키를 통해 함께 짜여져 있습니다. 이제는 데이터 (일부 사용자)의 일부를 postgreSQL 데이터베이스로 가져 가고 싶습니다. 문제의 일부를 해결하기 위해 postgreSQL에서 Oracle (그리고 Oracle에서 PostgreSQL)으로 데이터베이스 링크를 만들 수 있지만 어떻게 외래 키 문제 (postgreSQL와 Oracle 간의 외래 키)를 해결할 수 있습니까? 가장 좋은 방법은 무엇입니까?Postgres 데이터베이스를 Oracle 서버에 올바르게 연결하는 방법은 무엇입니까?

+0

어떻게 연결하나요? –

+0

아직 링크를 구현하지 않았습니다. 나는 db 링크를 생각하고 있었다. 가능한 한 솔루션을 찾고 Oracle에서 postgreSQL으로 전체 마이그레이션을 시작하는 첫 단계를 시작하려고합니다. – gpasse

+0

왜 다른 스키마의 데이터를 링크해야합니까? –

답변

1

접근 (이 오라클과 PostgreSQL 사이에 특정 링크를 만드는 방법에 대한 것이 아니라 어떻게 그것을 방지하기 위해) :

는 별도의 데이터베이스로 오라클과 PostgreSQL 데이터베이스를 고려하십시오. 즉, 두 데이터베이스 시스템간에 주요 관계가 없습니다.

동물과 같은 두 데이터베이스에서 참조해야하는 데이터 (*)은 키 관계와 데이터 무결성을 그대로 유지하기 위해 두 데이터베이스에 모두 표시 할 수 있습니다. 모든 데이터를 복제 할 필요는 없지만 모든 행이 있는지 확인할 수 있습니다. 두 시스템간에 공유 데이터 (동물)를 동기화하십시오.

예 :

PostgreSQL을 데이터베이스 :

Animals: [id, name, bio, blobs, etc.] 

오라클 데이터베이스 :

Animals: [id, name] 
Owners: [id, name] 
AnimalOwners: [ownerId, animalId] 

는 일반적으로 하나의 주요 데이터베이스에서 동물 데이터를 관리 할이 경우에 나는 PostgreSQL의 가정 . PostgreSQL에서 Animal 행을 업데이트 할 때마다 변경 사항 (해당되는 경우)을 Oracle의 Animal 테이블에 복사하십시오.

(*) 키를 잊어 버리고 associatons를 만들 때 다른 데이터베이스에 필요한 행이 있는지 여부를 명시 적으로 확인할 수 있습니다. 또한, 소유하고 있거나 소유하고있는 동물 (유형)을 제거하지 않도록주의해야합니다.

+0

그건 재미 있어요. 나는 PostgreSQL 데이터베이스의 독립성을 유지하기 때문에 링크를 전혀 만들지 않는 아이디어를 좋아합니다. 내 관점을 선택해야하는 것도 사실입니다. 필자의 주요 데이터베이스를 선택하십시오. – gpasse

관련 문제