Oracle Database에 연결(OracleToSQL)
Oracle 데이터베이스를 SQL Server로 마이그레이션하려면 마이그레이션하려는 Oracle 데이터베이스에 연결해야 합니다. 연결할 때 SSMA(SQL Server Migration Assistant)는 모든 Oracle 스키마에 대한 메타데이터를 가져온 다음 Oracle 메타데이터 탐색기 창에 표시합니다. SSMA는 데이터베이스 서버에 대한 정보를 저장하지만 암호를 저장하지는 않습니다.
프로젝트를 닫을 때까지 데이터베이스에 대한 연결은 활성 상태로 유지됩니다. 프로젝트를 다시 열 때 데이터베이스에 대한 활성 연결을 원하는 경우 다시 연결해야 합니다.
Oracle 데이터베이스에 대한 메타데이터는 자동으로 업데이트되지 않습니다. 대신 Oracle 메타데이터 탐색기에서 메타데이터를 업데이트하려면 수동으로 업데이트해야 합니다. 자세한 내용은 이 문서의 Oracle 메타데이터 새로 고침 섹션을 참조하세요.
필요한 Oracle 권한
최소한 Oracle 데이터베이스에 연결하는 데 사용되는 계정에는 다음 권한이 있어야 합니다.
Permission | 설명 |
---|---|
CONNECT |
데이터베이스에 연결(세션 만들기)하는 데 필요합니다. |
SELECT ANY DICTIONARY |
모든 개체를 검색하려면 시스템 사전 테이블(예: SYS.MLOG$ )을 쿼리하는 데 필요합니다. |
이를 통해 SSMA는 연결 사용자가 소유한 스키마의 모든 개체를 로드할 수 있습니다. 대부분의 실제 시나리오에서는 저장 프로시저 간에 스키마 간 참조가 있으며, SSMA는 성공적인 변환을 위해 참조된 모든 개체를 검색할 수 있어야 합니다. 다른 스키마에 정의된 개체에 대한 메타데이터를 가져오려면 계정에 다음과 같은 추가 권한이 있어야 합니다.
Permission | 설명 |
---|---|
SELECT ANY TABLE |
다른 스키마에서 테이블, 뷰, 구체화된 뷰 및 동의어를 검색하는 데 필요합니다. |
SELECT ANY SEQUENCE |
다른 스키마에서 시퀀스를 검색하는 데 필요합니다. |
CREATE ANY PROCEDURE |
다른 스키마의 프로시저, 함수 및 패키지에 대한 PL/SQL을 검색하는 데 필요합니다. |
CREATE ANY TRIGGER |
다른 스키마에서 트리거 정의를 검색하는 데 필요합니다. |
CREATE ANY TYPE |
다른 스키마에 정의된 형식을 검색하는 데 필요합니다. |
일부 SSMA 기능에는 추가 권한이 필요합니다. 예를 들어 마이그레이션된 데이터베이스 개체 테스트(OracleToSQL) 및 백업 관리(OracleToSQL) 기능을 사용하려면 연결 사용자에게 다음 권한을 부여해야 합니다.
Permission | 설명 |
---|---|
EXECUTE ANY PROCEDURE |
모든 스키마에서 테스트하려는 프로시저 및 함수를 실행하는 데 필요합니다. |
CREATE ANY TABLE 및 ALTER ANY TABLE |
변경 내용 추적 및 백업을 위해 임시 테이블을 만들고 수정하는 데 필요합니다. |
INSERT ANY TABLE 및 UPDATE ANY TABLE |
임시 테이블에 변경 내용 추적 및 백업 데이터를 삽입하는 데 필요합니다. |
DROP ANY TABLE |
변경 내용 추적 및 백업에 사용되는 임시 테이블을 삭제하는 데 필요합니다. |
CREATE ANY INDEX 및 ALTER ANY INDEX |
변경 내용 추적 및 백업에 사용되는 임시 테이블에서 인덱스를 만들고 수정하는 데 필요합니다. |
DROP ANY INDEX |
변경 내용 추적 및 백업에 사용되는 임시 테이블에 대한 인덱스를 삭제하는 데 필요합니다. |
CREATE ANY TRIGGER 및 ALTER ANY TRIGGER |
변경 내용 추적에 사용되는 임시 트리거를 만들고 수정하는 데 필요합니다. |
DROP ANY TRIGGER |
변경 내용 추적에 사용되는 임시 트리거를 삭제하는 데 필요합니다. |
이는 SSMA가 제대로 작동하는 데 필요한 제네릭 사용 권한 집합입니다. 마이그레이션 범위를 스키마 하위 집합으로 좁히려면 대신 제한된 개체 ALL
집합에 위의 권한을 부여하여 이 작업을 수행할 수 있습니다. 가능하지만 모든 종속성을 올바르게 식별하기 어려우므로 SSMA가 제대로 작동하지 않을 수 있습니다. 마이그레이션 프로세스 중에 잠재적인 권한 문제를 제거하려면 앞에서 정의한 대로 제네릭 집합을 고수하는 것이 좋습니다.
Oracle에 대한 연결 설정
데이터베이스에 연결할 때 SSMA는 데이터베이스 메타데이터를 읽은 다음 이 메타데이터를 프로젝트 파일에 추가합니다. 이 메타데이터는 개체를 SQL Server 구문으로 변환하고 데이터를 SQL Server로 마이그레이션할 때 SSMA에서 사용됩니다. Oracle 메타데이터 탐색기 창에서 이 메타데이터를 찾아보고 개별 데이터베이스 개체의 속성을 검토할 수 있습니다.
Important
연결을 시도하기 전에 데이터베이스 서버가 실행 중이고 연결을 허용할 수 있는지 확인합니다.
Oracle에 연결
파일 메뉴에서 Oracle에 연결을 선택합니다.
이전에 Oracle에 연결한 경우 명령 이름은 Oracle에 다시 연결됩니다.
공급자 상자에서 설치된 공급자에 따라 Oracle 클라이언트 공급자 또는 OLE DB 공급자를 선택합니다. 기본값은 Oracle 클라이언트입니다.
모드 상자에서 표준 모드, TNSNAME 모드 또는 연결 문자열 모드를 선택합니다.
표준 모드를 사용하여 서버 이름 및 포트를 지정합니다. 서비스 이름 모드를 사용하여 Oracle 서비스 이름을 수동으로 지정합니다. 연결 문자열 모드를 사용하여 전체 연결 문자열 제공합니다.
표준 모드를 선택하는 경우 다음 값을 제공합니다.
서버 이름 상자에 데이터베이스 서버의 이름 또는 IP 주소를 입력하거나 선택합니다.
데이터베이스 서버가 기본 포트()
1521
에서 연결을 허용하도록 구성되지 않은 경우 서버 포트 상자에 Oracle 연결에 사용되는 포트 번호를 입력합니다.Oracle SID 상자에 시스템 식별자를 입력합니다.
사용자 이름 상자에 필요한 권한이 있는 Oracle 계정을 입력합니다.
암호 상자에 지정된 사용자 이름의 암호를 입력합니다.
TNSNAME 모드를 선택하는 경우 다음 값을 제공합니다.
- 연결 식별자 상자에 데이터베이스의 TNS 별칭(연결 식별자)을 입력합니다.
- 사용자 이름 상자에 필요한 권한이 있는 Oracle 계정을 입력합니다.
- 암호 상자에 지정된 사용자 이름의 암호를 입력합니다.
연결 문자열 모드를 선택하는 경우 연결 문자열 상자에 연결 문자열 제공합니다.
다음 예제에서는 OLE DB 연결 문자열 보여줍니다.
Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;
다음 예제에서는 통합 보안을 사용하는 Oracle 클라이언트 연결 문자열 보여줍니다.
Data Source=MyOracleDB;Integrated Security=yes;
자세한 내용은 Oracle에 연결(OracleToSQL)을 참조하세요.
Oracle에 다시 연결
프로젝트를 닫을 때까지 데이터베이스 서버에 대한 연결은 활성 상태로 유지됩니다. 프로젝트를 다시 열 때 데이터베이스에 대한 활성 연결을 원하는 경우 다시 연결해야 합니다. 메타데이터를 업데이트하고, 데이터베이스 개체를 SQL Server로 로드하고, 데이터를 마이그레이션할 때까지 오프라인으로 작업할 수 있습니다.
Oracle 메타데이터 새로 고침
Oracle 데이터베이스에 대한 메타데이터는 자동으로 새로 고쳐지지 않습니다. Oracle 메타데이터 탐색기의 메타데이터는 처음 연결할 때 메타데이터의 스냅샷이거나 메타데이터를 수동으로 새로 고친 마지막 시간입니다. 모든 스키마, 단일 스키마 또는 개별 데이터베이스 개체에 대한 메타데이터를 수동으로 업데이트할 수 있습니다.
데이터베이스에 연결되어 있는지 확인합니다.
Oracle 메타데이터 탐색기에서 업데이트하려는 각 스키마 또는 데이터베이스 개체 옆의 확인란을 선택합니다.
스키마 또는 개별 스키마 또는 데이터베이스 개체를 마우스 오른쪽 단추로 클릭한 다음 데이터베이스에서 새로 고침을 선택합니다. 활성 연결이 없는 경우 SSMA는 연결할 수 있도록 Oracle에 연결 대화 상자를 표시합니다.
데이터베이스에서 새로 고침 대화 상자에서 새로 고칠 개체를 지정합니다.
- 개체를 새로 고치려면 화살표가 나타날 때까지 개체 옆에 있는 활성 필드를 선택합니다.
- 개체를 새로 고치지 않도록 하려면 X가 나타날 때까지 개체 옆에 있는 활성 필드를 선택합니다.
- 개체 범주를 새로 고치거나 거절하려면 범주 폴더 옆에 있는 활성 필드를 선택합니다.
색 코딩의 정의를 보려면 범례 단추를 선택합니다.
확인을 선택합니다.