본문 바로가기

DB

(3)
[AWS Document DB] Replication 구조 읽기 일관성(Write Concern) 이슈 해결 방안 회사에서 운영 중인 서비스의 Main Database를 AWS Document로 사용 중인데, 한 가지 문제가 발생하였다. Read Prefrence를 AWS의 권장 설정 사항인 secondaryPreferred로 설정할 경우 쓰기는 기본 인스턴스(Primary)에 읽기는 복제본(Secondary)에 수행하도록 구성되어있다. 여기서 문제 발생하는데, Primary에 작성된 데이터가 실제 Replica들에 반영되는데 시간이 소요되어 아래 이미지와 같은 현상이 존재한다는 것이다. 물론 AWS에서 어느 정도 지연 속도를 보장해준다고 하지만 이를 위해 억지로 Delay를 넣어줄 수는 없는 노릇이라, (확실하지는 않으나 100ms ~ 300ms 정도 보장해준다는 가이드를 본 것 같다.) 실제 서비스에서 이것때문에..
Maria DB 프로시저 생성, 이벤트 스케줄러 등록(create procedure, event) 마리아 DB는 기본적으로 MySQL과 문법이 같거나 비슷하다. 프로시저의 생성은 아래와 같이 수행한다. 보통 프로시저 명명 규칙은 아래와 같이 수행하니 참고한다. {서비스}_{대상 테이블 명}_{수행 액션}_SP (Ex. ERP_USER_MASTER_MOD_SP) /* 세미콜론과 같은 명령 종료부를 프로시저 선언 종료부로 인식하지 않게, 프로시저의 시작과 끝의 기호를 선정한다. 일반적으로 // 를 사용한다. (참고 https://mariadb.com/kb/ko/delimiters/) */ DELIMITER $$ /* 프로시저 생성, 파라메터는 IN 파라메터명 TYPE 과 같이 입력한다. */ create procedure PROCEDURE_NAME(IN PARAMETER_NAME1 VARCHAR(10),..
DB별 JDBC URL, Driver 각 DATABASE의 Dirver, JDBC URL 입니다. MSSQL com.microsoft.sqlserver.jdbc.SQLServerDriver jdbc:sqlserver://HOST:PORT;DatabaseName=DBNAME ORACLE oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@//HOST:PORT:SID jdbc:oracle:thin:@//HOST:PORT/SERVICENAME MYSQL com.mysql.jdbc.Driver jdbc:mysql://HOST:PORT/DBNAME DB2 com.ibm.db2.jcc.DB2Driver jdbc:db2://HOST:PORT/DBNAME POSTGRESQL org.postgresql.Driver jd..