앞서 arm 기반 mac OS에 Oracle Databse 19c Docker로 설치하는 글을 작성했다.
글이 너무 길어져 컨테이너 실행 까지만 포스팅했고, 여기서 SQL Plus
와 SQL Developer
로 oracle database 19c
컨테이너에 연결하는 내용을 적겠다.
접속을 위해서는 Docker 컨테이너가 실행중이어야 한다. Docker Desktop
으로 들어가 해당 컨테이너가 실행 중인지 확인 후 멈춰있다면 실행을 해야한다.
SQL Plus로 접속하기
오라클 데이터베이스에 접속하는 방법 중 하나인 SQL Plus
를 이용한 방법이다. docker
컨테이너는 docker exec
명령어로 접속할 수 있다.
docker exec -it test19c sqlplus
-it
옵션은 i
옵션과 t
옵션을 축약해 적용한 것이다.
-i
옵션 : --interactive
옵션으로 표준 입력(STDIN)을 유지한다. 이를 통해 컨테이너에 bash 명령을 입력할 수 있게 한다.
-t
옵션 : --tty
옵션으로 컨테이너 내에서 명령을 실행할 때 터미널에서 직접 실행하는 것처럼 출력이 시각화된다.
맥 터미널에서 위 명령어를 실행하면 첨부한 사진처럼 컨테이너에 접속이 된다. sqlplus
를 실행하고 사용자 이름과 비밀번호를 입력하면 CLI
방식으로 데이터베이스와 상호작용이 가능하다.
여기서 비밀번호는 앞서 컨테이너 생성 시 환경변수(-e
옵션) ORACLE_PASSWORD
에 설정한 값이다.
SQL Developer
로 접속하기SQL Developer 다운로드
위 링크로 들어가 자신에게 알맞은 OS
를 선택해 설치한다.
나는 M2
맥북에어라서 ARM64
버전을 설치했다.
설치 후 실행하면 아래와 같은 화면이 뜬다.
여기서 수동으로 접속 생성 버튼을 누른다.
이 접속 생성 화면에서 입력해야 할 내용은 다음과 같다.
Name
: 접속은 여러 접속을 만들 수 있어 각 접속마다 임의로 정하면 된다. 한글도 가능하다.사용자 이름
: 데이터베이스에 등록되어있는 사용자 이름비밀번호
: 해당 사용자의 비밀번호비밀번호 저장
: 접속 목록에서 접속할 때 비밀번호를 저장해놓아 재입력을 안해도 된다. 옵션을 체크하는게 좋다.SID
: 데이터베이스 인스턴스의 아이디서비스 이름
: 여러 인스턴스를 묶어 하나의 서비스로 구성된 것의 이름데이터베이스 접속 방법은 SID
와 서비스 이름(Service Name)
이 있는데, 아직 하나의 인스턴스밖에 존재하지 않아 둘 중 아무거나 사용해도 무방하다.
SID, Service Name
확인접속을 위해 실행중인 데이터베이스의 SID
와 Service Name
을 확인해보겠다.
우선 데이터베이스에 접속해야 하니 sql plus
로 먼저 접속해보겠다.
맥 터미널에서 다음과 같이 입력해 sql plus
로 접속한다.
docker exec -it test19c sqlplus
이후 아래 명령어로 SID
와 Service Name
을 확인한다.
show parameter service_name; -- 서비스 이름 조회
select instance_name from v$instance; -- SID 조회
SID
와 서비스 이름
모두 FREE
인 것을 알 수 있다. 그러므로 아래와 같이 입력을 해서 접속을 생성할 수 있다.
아직 사용자를 생성하지 않았으니 sys
관리자 계정으로 접속하며, SQL plus
에서 sys as sysdba
로 접속했던 것을 여기서는 롤
로 SYSDBA
를 설정해주면 된다.
비밀번호 역시 앞서 설정해두었던 것과 같다. 접속을 선택할 때마다 다시 입력하기 귀찮으니 비밀번호 저장을 체크했다.
포트는 컨테이너 실행 시 -p
옵션을 통해 1521
포트로 외부에서 컨테이너의 1521
포트와 연결되도록 포트포워딩을 했으니 그대로 입력하면 된다.
SID
나 서비스 이름
둘 중 하나를 선택해 FREE
를 입력하고 접속
을 누른다.
위 처럼 양식을 채우면 아래와 같이 접속이 완료된 것을 볼 수 있다. SHOW USER;
로 현재 사용자를 볼 수 있다.