DataBase
-
mysql public key retrieval is not allowed 오류 해결 (Dbeaver)DataBase/Mysql 2023. 8. 29. 15:50
DB 환경 docker로 mysql 이미지를 pull로 땡겨 온 후 컨테이너 생성 현상 "public key retrieval is not allowed " 문구 발생 후 연결 실패 해결법 MySQL 8.0 이상부터 생길 수 있는 문제였고 useSSL과 allowPublickeyRetrieval을 설정을 하면 해결이 된다. - useSSL: mysql db와 연결 시 SSL을 사용할지 여부를 나타낸다.(기본값은 MySQL 서버는 SSL을 지원한다) - allowPublickeyRetrieval : Mysql 서버가 공개 키를 검색할 수 있는지 나타내는 옵션(Mysql 8.0 이상부터는 false로 설정되어 있음) , 'ture'로 설정 시 서버가 사용자의 공개 키를 검색할 수 있어서 이 옵션은 주로 SS..
-
도커에 오라클 설치하기(mac m1 pro)DataBase/oracle 2023. 8. 21. 02:35
m1 pro 애플 실리콘 칩에서 도커에 오라클 xe11g를 설치해 실행하려고 하다가 잘안되서 구글링 중 가뭄속에 단비같은 글을 발견하게 되어서 공유하고자 한다. 1. colima 설치 https://github.com/abiosoft/colima 2. docker 설치 저는 여기서 docker destop을 설치하였습니다. 3. colima 실행 colima start --memory 4 --arch x86_64 4. 도커 실행 docker run --restart unless-stopped --name oracle -e ORACLE_PASSWORD=패스워드 -p 1521:1521 -d gvenzl/oracle-xe # docker logs -f (컨테이너명) docker logs -f oracle 참..
-
Too Many Connection 트러블 슈팅DataBase/Mysql 2023. 2. 16. 13:41
현상 배치 테스트 중 개발 DB 서버에 커넥션 연결 시 Too Many Connection 현상 발생 Mysql 상태 확인 max_connections : 최대 접속 수(151) Aborted_connections : MySQL 서버에 접속이 실패된 수(156530) Connections : 연결된 스레드 수(5601532) Max_used_connections : 최대로 동시에 접속한 수 (152) Threads_connected : Thread Cache의 Thread 수 (145) Threads_connected : 현재 연결된 Thread 수(151) Threads_created : 접속을 위해 생성된 Thread 수(17010) Threads_running : Sleeping 되어 있지 않은 T..
-
Connection/Read TimeoutDataBase/DB 이론 2022. 8. 22. 17:23
✅ Connection/Read Timeout에 대해서 알아보자 Connection Timeout Connection Timeout은 종단(EndPoint) 간 연결하는데 소요되는 최대 시간을 의미한다. 예를 들어, JAVA Application JDBC API DBMS 간의 소켓 통신을 이용해 통신한다. 이때 TCP 3 Way Handshake를 통해 연결을 생성하고, 이러한 연결을 소요되는 데 걸리는 시간을 의미한다.(그림 1 참고) Connection Timeout을 지정하지 않게되면 어떻게 될까? DB와의 커넥션을 맺는 임계치를 지정하지 않으면 커넥션을 맺기 위해 무한 대기 상태에 빠지게 되어 DeadLock에 걸리게 된다. 즉 프로세스가 정상 동작하지 못하게 된다. Read Timeout rea..
-
트랜잭션 2편DataBase/DB 이론 2022. 8. 5. 23:24
✅ 트랜잭션 격리 수준에 대해서 알아보자 트랜잭션 격리수준(Isolation level) 트랜잭션 격리수준이란 동시에 여러 트랜잭션이 처리될 때, 트랜잭션끼리 얼마나 서로 고립되어 있는지를 나타내는 것이다. 쉽게 말하자면 특정 트랜잭션이 다른 트랜잭션에 변경한 데이터를 볼 수 있도록 허용할지 말지를 결정하는 것이다. 트랜잭션 격리 수준은 크게 4가지로 구성되어 있다. READ UNCOMMITED(커밋되지 않은 읽기) READ COMMITTED(커밋된 읽기) REPEATABLE READ(반복 가능한 읽기) SERIALIZABLE(직렬화 가능) READ UNCOMMITED ->SERIALIZBLE 순으로 갈수록 고립(격리) 정도가 높아지며, 성능이 떨어집니다. 격리 수준이 낮을수록 동시성은 증가하지만 격리 ..
-
트랜잭션 1편DataBase/DB 이론 2022. 7. 26. 23:51
✅ 트랜잭션에 대해서 알아보자 DB 트랜잭션 이란, 데이터베이스 상태를 변경시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다. 트랜잭션의 목적은 데이터베이스의 완전성 유지와 무결성을 유지하기 위해 사용된다. 하나의 트랜잭션에는 N개의 SQL(질의어)가 포함되어 있다. 하나의 트랜잭션은 Commit 되거나 혹은 Rollback이 되어야 한다. 트랜잭션의 특징 1.Atomicity(원자성) 보장 원자성은 수행하고 있는 트랜잭션에 의해 변경된 내역을 유지하면서, 이전에 Commit 된 상태를 임시 영역에 따로 저장함으로써 보장한다. 이전 Commit 된 데이터들이 저장되는 영역을 롤백 세그먼트라고 하며, 현재 수행하고 있는 트랜잭션에 의해 새롭게..