본문 바로가기

Developer/DataBase

(15)
MySQL 백업 도구 사용법 (mysqldump, xtrabackup, innobackupex) 9.1 mysqldump 필요한 권한 SELECT SHOW VIEW TRIGGER LOCK TABLES FILE CREATE ALTER DATABASE 사용법과 옵션 mysqldump 도구는 MySQL 클라이언트 프로그램으로, MySQL이 설치된 디렉터리에서 mysql-mysqladmin과 같은 클라이언트 프로그램과 같은 디렉토리에 들어있음. 전체 데이터 베이스 백업하기 mysqldump --all-databases [기타 옵션] -u[유저명] -p[패스워드] > /data/backup.sql 백업한 결과를 특정 파일로 저장하고 싶다면 리다이렉션(”>”)을 이용해 백업 결과 파일을 명시적으로 지정 mysqldump가 백업을 수행할 땐 데이터를 순차적으로 읽어서 출력하므로 디렉터리의 유휴 공간이 없으면 수..
redis 란, 기본사용법 Redis 소개 왜 Collection이 중요한가? Redis Collections Redis 운영 Redis 데이터 분산 Redis Failover Redis Persistence(RDB, AOF) : 메모리에 저장하는것. 실시간으로 사용 불가함 Redis Pub/Sub Redis Stream 확률적 자료구조 : Hyperloglog Redis Module 1. Redis 소개 In-Memory Data Structure Store 인메모리데이터이기 때문에 버그패치 등 직접 고쳐서 사용할 수 있지만, 기업용으로 사용할 경우에는 고치면 외부에 공개해야함. Open Source(BSD 4 License) Support data structures Strings(key-value), set, sorted-s..
MySQL 테이블 삭제하기 (DROP TABLE) MySQL 에서 테이블을 삭제하기 위해서는 DROP TABLE 구문을 사용한다. DROP TABLE [테이블명] 만약 테이블이 없다면 1051 에러가 발생할 수 있기 때문에 if exists 구문을 추가한다. DROP TABLE if exists [테이블명] 만약 마스터-슬레이브 DB 구조에서, 마스터 DB 에만 존재하는 테이블에 drop table 쿼리를 호출하면 슬레이브 DB에서 에러가 발생한다. 따라서, if exists 구문을 필수로 사용해줘야한다. mysql> show slave status \G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event ..
MySQL 5.7 doens't yet support 'LIMIT & IN/ALL/ANY/SOME subquery' 현재 mysql 5.7.26 버전 사용중. SELECT VERSION(); 위의 버전에서는 LIMIT 이 포함된 서브쿼리를 지원하지 않는 것으로 확인하였다. SELECT * FROM `test_table` WHERE `number` IN (SELECT DISTINCT `number` FROM test_table LIMIT 5); 위와 같이 LIMIT 이 포함된 서브쿼리가 있는 쿼리를 실행시키면 아래와 같이 에러가 발생한다. This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery' 이 때, 위의 쿼리를 직접 사용할 수는 없지만 임시테이블을 사용하여 쿼리를 사용할 수 있다. SELECT `number` FROM `test_tab..
MySQL Query 추적 1. MySQL root 로그인 2. general_log(query log) 확인 show variables like 'general%'; general_log 의 value 가 OFF 상태면, 로그 기록이 꺼져 있는 상태인것이다. general log를 ON 상태로 활성화 시키면, MySQL이 쿼리 요청 받는 즉시 general log에 기록한다. 3. general log 상태를 ON으로 바꾼다. set global general_log=on; 2번에서 show variables like 'general%' 를 했을 때, general_log_file 의 value에 해당하는 경로에 로그가 작성된다. 재시작할 필요없이 바로 적용되니 확인 가능.
[MySQL] 백업 도구 - mysqldump mysqldump? 적은 양의 데이터를 백업할 때 가장 간편하게 사용 가능 필요 권한 SELECT : 백업 대상 테이블의 데이터 조회 SHOW VIEW : 뷰 객체 백업 시 뷰 조회 TRIGGER : 트리거 객체 백업 LOCK TABLES : --single-transaction 옵션 사용하지 않고, 백업할 때 데이트 변경을 박기위한 테이블 단위 잠금 FILE : mysqldump의 결과 백업 파일 생성 및 디스크 저장 CREATE : 백업 파일 복구 권한 ALTER DATABASE : 프로시저, 트리거 백업 시 해당 캐릭터 인코딩 보존에 사용 전체 데이터 베이스 백업 mysqldump --all-databases [기타 옵션] -u[USER_NAME] -p[PASSWORD] > /data/table_a..
[MySQL] Replication(복제) 레플리케이션 이란? Replication은 단어 그대로 복제를 의미 하나의 마스터 DB에서 하나 이상의 슬레이브 DB로 데이터를 비동기적으로 복제하는 기능. -> 읽기 부하 분산 또는 고가용성이 목적 레플리케이션의 목적 스케일-아웃(Scale-out)을 위한 솔루션 마스터 DB : DML(INSERT, UPDATE, DELETE ... ) 쿼리 전용으로 사용 슬레이브 DB : 읽기(SELECT) 쿼리 전용 데이터의 안정성 보장 마스터 DB에 영향을 주지않고, 슬레이브 DB로 레플리케이션 시킨다. 데이터 분석 슬레이브 DB에 레플리케이션된 실시간 데이터로 분석 작업 가능 레플리케이션 설정 - 마스터 DB 마스터 DB에서 my.cnf 파일을 확인한다. log-bin이 활성화 되어 있어야한다. mysql-bi..
[MySQL] 타입 변환 함수 - 문자를 숫자로 CAST sql 쿼리를 사용하다보면 1. 문자를 숫자로 변환하거나 2. 숫자를 문자로 변환하는 과정이 필요할 때가 있다. 이 때 사용하는 함수가 CAST 함수이고, SELECT CAST('12345' as int(5)); SELECT CAST(12345 as CHAR(5)); 위와 같이 사용가능하다. cast 에 사용할 수 있는 type은 binary, char, signed, date, datetime, time, unsigned 등이 있으니 참고하면 된다. 그리고 varchar의 경우에는 사용이 불가하니, char로 대체해서 사용한다.