RDB, AOF 둘 다 모두 redis 데이터를 영구적으로 저장하는 방식이다.차이점을 알아보자.RDB(Redis DataBase) RDB는 스냅샷을 찍어서 redis 데이터를 영구적으로 보관하는 방식이다.특정 시점의 redis 데이터를 dump.rdb 파일로 스냅샷을 뜬다.rdb 파일은 바이너리 파일이기 때문에 직접 읽을 수는 없다. 특정 시점(저장 시점) 설정하기RDB에는 저장하는 방식이 두 가지가 있다. SAVE와 BGSAVE이다. SAVE 방식은 blocking 방식으로 redis의 동작을 잠시 정지시킨 후 스냅샷을 생성하고 디스크에 저장한다.// redis.conf// 참고로 아래의 옵션 3개는 default이다.save 900 1 // 900초(15분) 동안 1번 이상 key 변경이 발생하..
Database
MySQL on Docker Series 1. Master-Slave Replication 구성하기 2. Bridge Network를 이용한 Replication 구성하기 이전 포스팅에서 컨테이너 환경에서 MySQL 서버 3대(Master DB 1대, Slave DB 2대)를 구축했다. 그런데 MySQL Master DB 컨테이너가 재실행되면서 IP 주소가 변경되는 경우, Replication이 깨질 수 있기 때문에 Slave DB에 각각 접속해서 Master DB 컨테이너의 IP를 수정해야 하는 번거로움이 생긴다. 이러한 번거로움을 해결하기 위해 Docker Bridge Network를 구성하고 net alias를 사용하여 IP 변경에도 문제가 발생하지 않도록 할 수 있다. Bridge Network란..
MySQL on Docker Series 1. Master-Slave Replication 구성하기 2. Bridge Network를 이용한 Replication 구성하기 해당 포스팅은 컨테이너 환경에서 MySQL 서버 3대(Master DB 1대, Slave DB 2대)를 구축 것이 목표이다. Mac OS에 도커를 설치하여 아래와 같이 MySQL 5.7.30 서버 3대를 실행할 예정인데, 볼륨 마운트를 사용할 예정이다. 따라서 마운트할 호스트 디렉토리는 아래와 같다. // db001 (Master DB) $ ~/db/db001/data $ ~/db/db001/conf, ~/db/db001/conf/my.cnf $ ~/db/db001/log // db002 (Slave DB-1) $ ~/db/db002/..
모든 데이터베이스 목록 조회 SELECT * FROM sys.sysdatabases 데이터베이스 AAA에 생성된 모든 SP(Stored Procedure) 목록 조회 SELECT * FROM AAA.sys.procedures 데이터베이스 AAA에 생성된 모든 테이블 목록 조회 SELECT * FROM AAA.sys.tables 데이터베이스 AAA 내 USER 테이블의 모든 Column 정보 조회 USE [AAA] EXEC sp_columns @table_name='USER' 데이터베이스 AAA 내 모든 테이블, 테이블의 PK 정보 조회 SELECT TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
SET ANSI_NULLS {ON | OFF} NULL값에 대한 비교를 할 때 '표준'을 따를 것인지 구분하는 구문입니다. NULL 값을 비교할 때 '표준'은 컬럼 IS NULL로 비교하고 비표준은 컬럼 = NULL로 비교합니다. ON 키워드를 사용하면 표준을 사용한다는 의미이고 OFF는 표준, 비표준 모두를 사용한다는 의미입니다. ----표준1---- SET ANSI_NULLS ON GO DECLARE @aa nvarchar(500); IF @aa = NULL BEGIN SELECT '1111' END ELSE BEGIN SELECT '2222' # 얘가 출력된다. END ------------- ----표준2---- SET ANSI_NULLS ON GO DECLARE @aa nvarchar(500);..