DB 28

[MySQL] Dump

1. C:\Program Files\MySQL\MySQL Server 8.0\bin에서 cmd를 켠다. 2. 덤프 파일 생성mysqldump -u {mysql 계정명} -p {백업할 데이터베이스명} > {백업할 파일명}.sql  3. 해당 위치에 덤프 파일이 생성됨   참고 👇👇👇https://m.blog.naver.com/rhrkdfus/221535739080 [Database] Windows에서 MySQL DB 백업하기* 목차 1. 백업할 데이터베이스 확인하기 2. cmd 창에서 MySQL 경로로 이동 3. Database 백업하기 4. ...blog.naver.com

DB/MySQL 2024.05.28

Redis-Sentinel

🌈 TIL과반수 표를 받아야 해서 sentinel은 홀수인 3개로 구성했다.  ✨ Redis-SentinelRedis Sentinel은 Redis Cluster를 사용하지 않을 때 HA를 제공한다.MonitoringNotificationAutomatic failoverConfiguration provider  💕 sentinel 설치apt-get install redis-sentinel   🔍 sentinel.conf 수정bind 172.23.0.1 127.0.0.1 ::1로 수정한다.sentinel monitor mymaster 172.23.0.1 27890 1 👉 master의 호스트와 포트번호를 mymaster라는 이름으로 등록한다. 투표는 1개만 받아도 됨sudo vi /etc/redis/..

DB/Redis 2024.04.02

Mysql Event Scheduler

Scheduler는통계와 같은 Batch 작업, 순위 데이터처럼 DB에 과부하가 많이 걸리는 작업 또는 정기 데이터 백업과 같은 정기적으로 수행되어야하는 작업에 주로 사용한다. Event Scheduler 사용 여부 확인 SHOW VARIABLES LIKE 'event%'; Value가 OFF라면, SET GLOBAL event_scheduler=ON;으로 변경할 수 있다. 저장된 Event Scheduler가 있는지 확인 SHOW EVENTS; SELECT * FROM information_schema.EVENTS; Event Scheduler 작성예시 DROP EVENT IF EXISTS delete_event; CREATE EVENT delete_event ON SCHEDULE AT CURRENT_..

DB/MySQL 2023.12.28

JSON 타입에서 값 추출해서 JOIN하기

-- attraction 필드 값 예시 [{"order": 1, "orderDate": 1, "attractionId": 1886054}, {"order": 2, "orderDate": 1, "attractionId": 1920563}, {"order": 1, "orderDate": 2, "attractionId": 136249}, {"order": 2, "orderDate": 2, "attractionId": 136310}] attraction_plan 테이블에 있는 attraction 필드는 JSON 타입이고, JSON 객체를 담고 있는 배열이다. attractionId와 관광지 테이블의 attraction_info 테이블의 content_id 필드의 값을 이용해서 조인을 했다. select attr..

DB/MySQL 2023.11.21

연관 관계에 있는 데이터 삭제

alter table user_plan add constraint foreign key (plan_idx) references plan(plan_idx) on delete cascade; alter table attraction_plan add constraint foreign key (plan_idx) references plan(plan_idx) on delete cascade; 부모 테이블의 데이터가 삭제되면 연관된 자식 테이블의 데이터도 같이 삭제되도록 할려고 delete cascade를 줬다. 하지만, 안 된다. ### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Cannot delete or..

DB/MySQL 2023.11.19

MySQL 데이터 타입

Date, Time Data Types DATE 👉 'YYYY-MM-DD' TIME 👉 '00:00:00' DATETIME 👉 'YYYY-MM-DD hh:mm:ss' TIMESTAMP 👉 '1970-01-01 00:00:01' UTC에서 '2038-01-19 03:14:07' UTC까지의 범위 저장될 때는 현재 time zone ➡️ UTC로 변환되어 저장 조회할 때는 UTC ➡️현재 time zone으로 변환해서 읽음 YEAR 👉 0000 DATETIME 또는 TIMESTAMP는 microseconds도 포함할 수 있다. 이 경우 DATETIME은 '1000-01-01 00:00:00.000000' 에서 '9999-12-31 23:59:59.499999'까지의 범위이고 TIMESTAMP는 '1970-0..

DB/MySQL 2023.05.21

Redis

Redis데이터의 원래 소스보다 더 빠르게 액세스할 수 있는 임시 데이터 저장소주로 변하지 않는 데이터, 반복적으로 액세스하는 같은 데이터를 캐시에 저장단순한 key-value 구조In-memory 데이터 저장소서버 재시작 시 모든 데이터 유실복제 기능을 사용해도 실수 발생 시 데이터 복원 불가💀Redis를 캐시 이외의 용도로 사용한다면 적절한 데이터 백업이 필요데이터를 영구 저장하는 방법RDB바이너리 파일 형태로 저장된다.저장 당시 메모리에 있는 데이터 그대로를 사진 찍듯이 snapshot 방식으로 저장자동 👉 redis.conf 파일에서 SAVE 옵션(시간 기준)수동 👉 BGSAVE 커맨드를 이용해 cli 창에서 수동으로 RDB 파일 저장SAVE 커맨드는 절대 사용 ❌AOF(Append Only..

DB/Redis 2023.05.07

재고시스템으로 알아보는 동시성이슈 해결방법

작업환경 세팅 1. docker 설치 brew install docker brew link docker docker version 2. MySQL 설치 및 실행 docker pull mysql docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 --name mysql mysql docker ps 만약 docker: no matching manifest for linux/arm64/v8 in the manifest list entries. 에러가 발생한다면, docker pull --platform linux/x86_64 mysql 이 에러는 Mac, Windows를 사용하는 사람끼리 협업할 때 발생하는 문제다. 3. MySQL 데이터베이스 생성 docker ..

DB 2023.04.30