메타데이터와 스키마 분석
Oracle 데이터 사전 기반 스키마 수집, 자동 변환과 수동 검토 분류 및 크기 조회 권한 오류
#핵심 요약
실습 도구는 Oracle 데이터 사전 ALL_TABLES, ALL_TAB_COLUMNS, ALL_CONSTRAINTS, ALL_INDEXES, ALL_VIEWS, ALL_SEQUENCES, ALL_SOURCE를 읽어 오브젝트를 자동, 검토, 수동으로 나눔
행 수는 통계값이 아니라 count(*)로 센 실제 값임
스키마 목록에는 접속 계정이 읽을 수 있는 스키마만 나옴
다른 스키마의 크기는 DBA_SEGMENTS가 필요해 일반 계정에서는 0으로 나옴
실습에서는 자기 스키마를 USER_SEGMENTS로 읽음
#개념과 동작 원리
| 이행 분류 | 대상 객체 | 자동화 및 검토 판단 근거 |
|---|---|---|
| 자동 | 테이블(컬럼, NOT NULL, 기본값, PK, UNIQUE, CHECK, FK, 일반 인덱스), 시퀀스, 변환이 끝난 뷰 | 규칙대로 바꾸면 뜻이 같음 |
| 검토 | DECODE, CONNECT BY, ROWNUM, NVL2, 복잡한 (+)가 남은 뷰 | 사람이 CASE, WITH RECURSIVE, LIMIT 등으로 고쳐야 함 |
| 수동 | 프로시저, 함수, 패키지, 트리거, 시노님, DB 링크, 함수 기반, 비트맵 인덱스 | PL/SQL과 PL/pgSQL은 문법이 달라 ora2pg나 사람이 변환함 |
실습 스키마의 분석 결과: 테이블 2개(CUST 100,000행 6.0MB, ORDERS 1,000,000행 38.1MB, CLOB 포함), PK, FK 3개 인식, 뷰 1(자동 변환), 시퀀스 1(자동), 프로시저 1(수동)로 자동 이행 가능 4/5 = 80%
분석 화면 아래 타입 매핑표와 컬럼별 변환 결과는 3단계와 같은 규칙임
타입 변환과 DDL 생성에 정리했음
데이터 사전 조회 SQL의 컬럼과 조건은 확인 불가
#사용 조건과 주의사항
수동으로 분류된 PL/SQL은 도구가 옮기지 않음
예제2에서 ora2pg로 변환한 결과와 비교해 봄
저장 프로그램 이행은 저장 프로그램 이행에 있음
여러 스키마의 크기를 보려면 DBA 권한 계정으로 접속해야 함
이행 도구에 DBA 계정을 쓰는 것이 적절한지는 기재 없음