본문 바로가기

개발노트/SQL&DB

(5)
Mysql GTID-based Replication 오류 Skip 하기 뚜렷이 어떤 SQL 에러가 발생한 지 확인 가능하고, 그걸 Skip 해도 된다는 확신이 있으면 이 방법이 가장 쉽고 빠르다. 1. 문제가 된 gtid 트랜잭션 번호 찾기 2. 문제가 된 gtid 트랜잭션 건너 띄도록 빈(empty) 트랜잭션 주입 mysql> SET GTID_NEXT="c85b621b-8fd3-11e8-862c-020051680009:66194695"; Query OK, 0 rows affected (0.00 sec) mysql> begin; Query OK, 0 rows affected (0.00 sec) mysql> commit; Query OK, 0 rows affected (0.01 sec) mysql> SET GTID_NEXT="AUTOMATIC"; Query OK, 0 rows..
[pt-online-schema-change] 아주 큰 테이블(1billion rows) ALTER troubleshoot 및 후기 데이터로 먹고 사는 회사답게(?) 약 10억건이 넘는 rows 를 가진 테이블이 하나 존재한다. (그냥 샤딩, 파티셔닝 같은 걸 안 한거에요 ㅋㅋ)서비스가 시간이 지나갈수록 초기 설계 당시에는 고려가 되지 않은 사항들로 인해 변화된 요구사항에 의해 테이블도 그에 맞게 ALTER 가 필요했다.사실, 작년에도 on-premise (IDC)에 있던 데이터베이스를 클라우드 환경으로 이전할 때만 해도 이 테이블의 rows 는 약 5억~6억건 사이였던 것으로 기억한다.여튼, 그 때도 pt-online-schema-change 의 도움으로 무사히 ALTER 는 성공을 했었고, 별 이슈가 없었기에 사내에만 간단히 문서화한 게 전부였는데, 이번에는 뭔가 잘 안 되서 5번만에 성공을 하였는데 사실 정확하게 5번째에도 왜 ..
[ORACLE/ALTIBASE] 만 나이 구하는 쿼리 SELECT FLOOR(MONTHS_BETWEEN(SYSDATE, TO_DATE('19900517', 'YYYYMMDD'))/12 AS WESTERN_AGE 오라클에서도 지원되고 알티베이스에서도 지원 됨.
[오라클/알티베이스] 날짜 관련 함수 (년, 월, 일 연산 등) 알티베이스는 오라클과 아주 많이 흡사한데, 기본 함수 이름/사용법 등이 비슷해서 흡사하다고 느껴진다. (아래는 참고글(http://itpsolver.com/%EC%98%A4%EB%9D%BC%ED%81%B4-%EB%82%A0%EC%A7%9C-%EA%B4%80%EB%A0%A8-%ED%95%A8%EC%88%98-%EB%85%84-%EC%9B%94-%EC%9D%BC-%EB%8D%94%ED%95%98%EA%B8%B0-%EB%B9%BC%EA%B8%B0-%EB%93%B1%EB%93%B1/)을 참고하여 작성한 글입니다.) 자주 사용되는데 가끔 헷갈릴 때가 있어 매번 구글에서 찾아보곤 했는데 내 블로그에 정리해놓으면 더 편할 것 같음. 날짜에 대한 반올림/반내림 값 구하기 – 날짜 중에 일(dd)에 대한 반올림 SELE..
SQL % 퍼센트기호? LIKE '%' SQL에도 당연히 와일드 카드가 있다. '_' 와 '%' 인데 '_' 는 하나의 캐릭터(문자), '%' 는 스트링(문자열)을 의미한다. 주로 LIKE 키워드와 함께 쓰이는데 와일드카드 없이 LIKE문을 쓴다면 '='(등호) 와 결과가 같다. SELECT COL_NAME1, COL_NAME2 WHERE COL_NAME1 LIKE '%' 의 형태로 사용하게 된다. 이 예시문은 WHERE절이 있으나 마나 전체를 검색하는 쿼리문이다. WHERE절이 들어가는 모든 쿼리문에 들어갈 수 있는 것으로 알고 있다.