
JPA수업시간에 페이징을 배우는 중 Oracle11c 이하에서는 OFFSET과 FETCH FIRST 절을 사용할 수 없었고 버전으로 인한 오류가 발생하였다.
게시판을 조회하면서 생긴 오류이다.
해당 프로젝트를 실행하면서 오류 전 경고가 떴었다.
비교적 크기가 작은 11c를 도커로 사용 중이였다. springBoot에서 properties를 추가, 수정도 해보았지만 다른 버전들과의 충돌로 가장 간단하게 Oracle을 21버전으로 새로 설치하기로 했다.
처음엔 docker Hub에서 이미지를 받았지만 계정 로그인에서 계속 문제가 생겨 참고하게된 블로그이다.
참고한 블로그 : https://taisou.tistory.com/898
$ docker pull container-registry.oracle.com/database/express:latest
- Oracle공식 레포지터리에서 최신 이미지를 받았다.
$ docker run -d --name oracle21 --restart=unless-stopped -p 1521:1521 -e ORACLE_PWD=1234 container-registry.oracle.com/database/express:latest
- run : 컨테이너 실행(없으면 생성 후 실행)
- -d : 컨테이너를 백그라운드(데몬) 모드로 실행
- --name : 컨테이너명
- --restart=unless-stopped : 컨테이너가 중지되거나 Docker 데몬이 재시작되더라도 컨테이너를 다시 시작할 수 있게 해준다.
- -p 1521:1521
: 호스트의 포트 1521을 컨테이너의 포트 1521에 매핑한다. Oracle 데이터베이스의 기본 포트가 1521이므로, 이 설정을 통해 호스트 시스템에서 Oracle 데이터베이스에 접근할 수 있다.- -e ORACLE_PASSWORD=비밀번호: 환경 변수를 설정합니다. 여기서는 Oracle 데이터베이스의 관리자 비밀번호를 사용자가 입력한 비밀번호로 설정한다.
설치는 여기서 끝났다.
다음은 터미널에서 오라클에 접속하는 방법이다.
$ docker exec -it 컨데이너id(3자리) bash$ docker sqlplus
- 접속 후 id로 system과 처음 컨테이너 생성시 입력했던 password를 입력하면 된다.(password는 입력해도 보이지 않는다.)
오라클 설치는 여기서 끝났다.
Docker 로 새로 오라클을 설치했고 11버전의 오라클은 컨테이너 접속이 정지되었기 때문에 사용할 수 없다. 지금은 새로운 21버전의 오라클의 컨테이너가 실행중인 상황이다.
이때 스프링에서 프로젝트를 실행하면 프로젝트와 연결된 DB가 없기 때문에 오류가 생긴다. (properties에 저장된 DB의 username,password가 모두 틀렸다고 오류가 난다.)
오라클에 접속하여 해당 데이터를 다시 만들어주고(프로젝트에서 설정해준 username과 password를 똑같이 설정해야 한다.) 실행하면 된다.
springBoot프로젝트를 실행해보면 정상적으로 실행되는 것을 확인할 수 있다!!!!
