분류 전체보기

Redis 클러스터 구동 전 사전 설정redis.conf3개의 노드를 구성할 conf 파일을 설정해 줍니다.cluster-enabled : 클러스터로 사용합니다.cluster-config-file : 노드별로 클러스터 노드 정보를 conf 파일에 저장합니다.cluster-node-timeout : 노드간 통신이 되지 않아 timeout 되는 시간을 설정합니다. 1234567891011121314151617181920212223242526272829$ cat redis_7000.confcluster-enabled yescluster-config-file nodes-7000.confcluster-node-timeout 3000port 7000dir /home/psh/7000appendonly yesdaemo..
레디스 클러스터복제노드를 포함하는 모든 노드가 서로 통신하며 정보를 주고 받습니다.클라이언트는 어느 노드든지 접속이 가능하며 클러스터 구성정보를 가져와서 보유하며입력되는 키에 따라 해당 노드에 접속하여 요청을 처리합니다. 일부 노드가 다운되더라도 다른 노드에 영향을 미치지 않습니다.그러나 과반수 이상의 노드가 다운되는 경우 클러스터가 깨지게 됩니다. 마스터 노드는 1개 이상의 복제 노드를 가질 수 있습니다.노드가 추가되거나 삭제 될 때 클러스터를 중지할 필요는 없으나, 노드 간 키가 이동될 때 해당 키에 락이 걸릴 수 있습니다. 레디스 서버는 노드끼리 통신을 하고 있기 때문에, 별도의 센티넬이 필요치 않습니다.특정 마스터가 다운되는 경우 다른 마스터들이 다운된 마스터의 복제서버로 장애조치를 진행합니다. ..
센티넬의 자동 Failover 기능 센티넬은 마스터, 복제서버가 정상적인지 감지하고 있다가마스터 서버가 다운되면 복제서버를 자동으로 마스터로 승격시켜 주는 기능을 수행합니다. 센티넬 Failover 테스트센티넬이 모니터링 하고 있는 서버모든 레디스는 하나의 서버에 구성되어 있어서 포트로만 구분하였습니다.마스터 6379복제1 6380복제2 6381센티넬 8000 1. 마스터 서버 shutdown 12$ redis-cli -p 6379127.0.0.1:6379> shutdowncs 2. 마스터 된 서버의 info replication 확인복제1(6380) 서버에서 확인을 했으며 복제2(6381) 서버가 마스터로 승격된 것을 확인할 수 있습니다. 1234567891011121314151617181920127...
센티넬이란일반적으로 운영환경에서는 마스터와 복제로 구성됩니다.운영 중 예기치 않은 이슈로 마스터가 다운되면, 서버 담당자는 복제를 마스터로 올리고 클라이언트가 새로운 마스터에 접속할 수 있도록 해야 합니다. 센티넬은 마스터와 복제서버의 네트워크 통신이 가능한지 시도하고 있다가, 마스터에서 통신이 되지 않으면 자동으로 복제를 마스터로 올립니다. 센티넬의 기능모니터링센티넬은 마스터, 복제서버가 제대로 동작하고 있는지 주기적으로 검사합니다. 자동 장애조치마스터가 예기치 않게 다운되었을 때 복제 서버를 마스터로 올립니다.복제 서버가 여러개 있을 경우 다른 복제서버는 새로운 마스터로부터 데이터를 받을 수 있도록 재 구성합니다.기존 마스터가 구동되는 경우 복제로 전환하여 새로운 마스터로부터 데이터를 받을 수 있도록..
마스터서버에서 복제서버로 Failover 하는 방법마스터가 다운되었다면 복제서버를 마스터로 변경해야 합니다.이 때 복제서버에서 사용하는 명령어 입니다. 1127.0.0.1:6380> replicaof no onecs 마스터 서버 복구 후 마스터서버로 FailBack 하는방법기존 마스터 서버 : '127.0.0.1 6379' (이하 6379)현 마스터 서버 : '127.0.0.1 6380' (이하 6380) replicaof 명령을 사용하여 failback 방법1. 6379 를 마스터로 바라보는 복제서버가 없는지 확인합니다. (복제서버의 데이터 유실 방지를 위해)2. 6379 를 마스터로 구동합니다.3. 6380 서버에서 클라이언트 접속을 차단합니다.4. 6379 에서 6380 의 복제서버로 구성하여 데이..
Redis Replication 복제 방식Redis 에서는 복제 방식으로 '전체 동기화' 와 '부분 동기화' 를 제공하고 있습니다. 전체 동기화 (Full synchronization)복제 순서1. 마스터는 자식 프로세스를 생성합니다.2. 자식 프로세스는 백그라운드로 데이터를 RDB 파일로 백업합니다.3. 백업하는 동안 마스터에 새로 들어온 명령은 처리 후 복제 버퍼에 저장합니다.4. RDB 파일 백업이 완료되면, 마스터는 파일을 복제서버로 전송합니다.4. 복제 서버는 파일을 받아 디스크에 저장하고 메모리로 로드합니다.5. 마스터는 복제버퍼에 저장된 명령을 복제서버에 전송합니다. 특이사항1. 마스터가 다운되는 경우 복제서버는 1초마다 마스터에 접속을 시도합니다.2. 마스터가 살아나면 복제서버는 복제 순서..
sp_prepexec 란 매개변수가 있는 트랜잭션을 실행할 수 있게 해줍니다.미리 컴파일 된 실행계획을 재사용할 수 있습니다. 자세한 사용법은 아래 URL 을 참고해주세요.https://docs.microsoft.com/ko-kr/sql/relational-databases/system-stored-procedures/sp-prepexec-transact-sql?view=sql-server-ver15 실행계획 재사용 테스트테스트 SP 생성합니다.@isvar 매개인자값에 따라 결과가 달라집니다. 12345678910111213141516171819CREATE PROCEDURE [dbo].[nxp_test01](@isvar tinyint,@result varchar(10) = null OUTPUT)ASset..
데이터 파일 사용량이 가득찰 때 발생하는 이슈데이터파일의 사용량이 가득차게 되면, SQL Server 는 AutoGrow 옵션에 설정된 크기만큼 데이터파일 크기를 증가시킵니다.이 때 자동증가가 완료될 때까지 다른 세션의 트랜잭션은 대기하게 됩니다. 디스크의 성능이 좋지 않아서 데이터파일의 크기를 증가시키는데 오랜 시간이 걸리게 되면,파일 증가가 시간 내에 완료되지 못하고 파일 증가도 롤백되고, 에러로그에 아래와 같이 기록됩니다. - SQL Server has encountered x occurrences of I/O requests taking longer than 15 seconds to complete on file - Autogrow of file 'FILE_NAME' in database 'DAT..
Redis 의 복제 (Replication 이중화)이중화 개념으로 데이터를 거의 실시간(비동기 방식)으로 다른 레디스 노드에 복사하는 방식입니다.서비스를 제공하던 마스터 노드가 다운되더라도, 복제 노드에서 서비스를 계속해서 진행할 수 있습니다. 기본적으로 복제서버는 읽기만 가능합니다.이 옵션은 redis.conf 파일의 replica-read-only 파라미터로 쓰기가 가능하게 변경할 수 있습니다. 복제(Replication 이중화)가 없을 때의 문제점1. 단일로 운영되던 Redis 가 어떤 이슈로 인해 다운된 경우 서비스를 할 수 없습니다.2. Redis 를 다시 구동하기 위해 AOF 파일을 읽을때도, 만약 파일이 크다면 읽는 시간이 오래 소요됩니다.3. 하드웨어 장애로 인해 AOF 나 RDB 파일이 ..
Redis RDB 백업 개념Redis 는 백업을 위해 RDB 방식과 AOF 방식을 지원합니다.이 중 RDB 방식에 대해 다뤄보겠습니다. RDB 방식RDB는 특정 시점의 메모리에 있는 데이터 전체를 바이너리 파일로 저장하는 방식입니다.바이너리 파일로 저장되기 때문에 사람이 읽을 수 없습니다.AOF 파일보다 사이즈가 작아 레디스 시작시 AOF 파일보다 빨리 로드할 수 있습니다. RDB 파일기본값으로 dump.rdb 파일에 기록됩니다. RDB 저장시점redis.conf 파일에서 save 파라미터로 저장 시점을 정할 수 있습니다.RDB 를 저장하지 않기 위해서는 save 명령어를 주석처리 하면 됩니다. RDB 저장 방법SAVE 혹은 BGSAVE 명령어로 RDB 를 저장합니다.SAVE 명령 시 레디스에서는 클라이..
꽁담
'분류 전체보기' 카테고리의 글 목록 (27 Page)