015. MySQL to Oracle (Using SQL Developer)

IRISH·2024년 3월 11일
0

Oracle

목록 보기
16/17
post-thumbnail
  • 학습일자 : 2024.03.11

1단계. SQL Developer에서 MySQL 연결하기

  • SQL Developer은 Oracle 기반이므로, SQL Developer에서 MySQL을 사용하기 위해서는 SQL Developer에 MySQL을 연결해야 함
  • https://reference-m1.tistory.com/122 를 참고하여 연결진행
    • MySQL Jar가 존재해야 하는데….
    • MySQL Jar가 기존에 없으면 다운로드 진행 (있었는지를 먼저 확인)
      • 있다면, C:\Program Files\Java\jdk-17.0.1\lib 경로에 아마 있을 것임
        • 물론, JDK 버전명은 다를 수 있음

  • 이외에 SQL Developer에서 MySQL Jar 파일 등록하는 부분은 위 URL 참고하면 됨

에러 1

⇒ 아래처럼 "Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server" 에러가 발생

  • 나와 같은 경우는, 과거에 사용했던 MySQL을 더이상 사용할 필요가 없다 판단하여, 작업 관리자의 서비스에서 중단해두었음. 이 때문에 에러가 발생
    • 서비스에서 MySQL(나와 같은 경우는 Maria DB) 상태를 실행 중으로 변경

에러 2

⇒ Access denied for user ‘hr’ @ ‘localhost’ (using password : YES)

  • MySQL Client에서 사용자 이름으로 사용할 계정 권한을 부여를 먼저 해줘야 함

  • 이후 테스트 실행했더니 테스트를 성공으로 이끌 수 있었음

SQL Developer에서 MySQL 연결 접속

⇒ 아래와 같이 “Oracle 접속” 외에도 “MySQL 접속”이 뜨는 것을 확인할 수 있음

MySQL to Oracle 마이그레이션 진행

https://jhparkkk.tistory.com/11 를 참고하여 진행

  • MySQL의 oracle_to_mysql을 마이그레이션하여 Oracle로 옮겨보겠다.

⇒ 원래는 migration_mysql 이란 곳에 하려다가 에러가 발생해서 migrationMySQL로 진행했다.

하지만, 캡처는 migration_mysql 상태로 했다는 것만 알면된다.

  • migration_mysql로 접속

  • 프로젝트 이름, 설명 및 출력 디렉토리 지정

  • 이전할 Mysql connection 선택 1

  • 이전할 Mysql connection 선택 2
  • Target Oracle connection을 선택 1

  • Target Oracle connection을 선택 2

  • 요약

  • 테이블이 잘 온 것을 알 수 있다.

  • 데이터도 잘 온 것을 알 수 있다.

느낀점

몇 개월 전에 회사에서 Window OS 기반으로 Oracle을 운영하다가, Linux OS 기반으로 Oracle 운영하는 방식으로 변경을 진행했다. 이 때문에 당연히 마이그레이션이 진행되었다.

물론, 이 때는 같은 DBMS 상에서 OS가 변경됨에 따른 마이그레이션이었지만, 나는 한 번 타 DBMS 간의 마이그레이션을 공부하면 좋을 것 같다는 생각을 했다.

그래서 Oracle을 MySQL로 변환하던지, MySQL을 Oracle로 변환하던지 중 어떤 것을 하면 좋을까 고민하다가 최종적으로 MySQL을 Oracle로 변환하는 것을 택했다.

그 이유는 SQL Developer에서 마이그레이션을 진행할 예정이었는데, SQL Developer 내에서는 Oracle을 다른 DBMS로 이전하는 것은 불가했기 때문이다.

어찌됐든, MySQL을 우선 SQL Developer에 설치했는데, 설치 과정부터 에러가 연거푸 발생해서 힘들었다. [mqsql 서비스를 중지 상태로 두었던 것으로 인한 에러, mysql에 계정을 생성하지 않아 발생했던 에러 등] → (역시…. 처음에 설치할 때랑 환경설정 할 때가 가장 힘든 것 같아…)

아무튼 에러 해결 끝에 DB Migration을 진행하는데, 이것도 에러가 한 번 발생했었다. 이 에러는 아마 MySQL의 특정 계정 내에 있는 모든 내용을 마이그레이션 하려다가 에러가 발생했던 것 같다. 그래서, 그냥 MySQL에서 내가 옮기고 싶은 테이블만 각각 이전 작업을 진행했더니, 테이블의 구조와 데이터가 모두 옮겨졌다. 이로써, 마이그레이션 하는 법은 모두 끝났다.

마이그레이션을 내가 직접해보기 전에, 마이그레이션과 관련되서 미리 조사를 좀 해보았다.

공부를 하면서 느꼈던 것은, 마이그레이션이 테이블 구조나 데이터를 옮기는 단순한 과정처럼 보이지만 실질적으로는 그렇지 않다는 것이다.

같은 DBMS 기종 안에서도 버전이 다를 때의 문제 등 여러 가지를 따져야 하는 것을 보았다.

물론, DB를 옮겨야 하는 상황은 언제든 발생할 수 있다. 하지만, 이거를 내가 담당하고 싶지는… 않다 ㅎㅎ

그래도 개인적으로 공부해서 마이그레이션을 끝내어서 기쁘다 🙂

profile
#Software Engineer #IRISH

0개의 댓글

관련 채용 정보