MMM MHA MMM(Multi-Master Replication Manager) Multi-Master의 단점을 보완하기 위해서 Manager 장비를 두어 가용성을 보장한다. Master(Active)와 Master(Passive) 양방향으로 복제한다. MMM의 작동 순서 Active Master에서 장애 발생 시 MMM Manager는 장애를 감지한다. Active Master의 접속을 차단하고 Passive Master로 서비스의 접속을 넘긴다. Fail Back은 수동으로 진행하는 것이 원칙이나, 패치 등으로 인한 정상 종료일 경우에는 Active Master를 재가동 시켜도 무관하다. read/write DB와 read DB로 운영 중에 read/write DB에서 장애가 발생 시 Manager..
Replication MySQL Replication이란 DB 이중화 방식 중 하나로서 MySQL에서는 리플레이케이션(복제) 기능을 제공하며, 해당 기능은 2대 이상의 DBMS를 나눠서 데이터를 저장하는 방식이다. 사용하기 위한 최소 구성은 Master와 Slave로 구성되어야 한다. 즉, Master와 Slave 간의 데이터 복제를 가능하게 한 것이다. Master DBMS Master DBMS는 웹 서버로부터 데이터 등록/수정/삭제 요청 시 바이너리로그를 생성하여 Salve 서버로 전달하게 된다. Slave DBMS Slave DBMS는 Master DBMS로부터 전달받은 바이너리로그를 데이터로 반영하게 된다. MySQL Replication의 사용목적 MySQL Replication의 사용목적은 실..
비밀번호 초기화 비밀번호 변경 //MySQL 8.0.15 이상 update mysql.user set authentication_string='변경 비밀번호' where user='root'; 권한 적용 flush privileges; 다시 접속하면 아래와 같은 오류 메시지가 나타나는 경우가 있다. ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 위 오류 메시지는 비밀번호가 틀렸다고 예상할 수 있는데.. 방금 변경했는데 왜 틀렸다고 나올까? 계정 테이블을 확인해보자. select authentication_string from user; 확인 결과, 비밀번호가 변경되었지만, 해쉬화가 되지 않아 암호화되지..
MySQL의 InnoDB에는 Adaptive Hash Index 기능이 있는데, 어떤 상황에서 어떤 효과가 있고 사용 시 주의해야할 점에 대해서 살펴보자 InnoDB의 B-Tree 인덱스 MySQL과 같은 RDBMS에서 대표적으로 가장 많이 사용되는 자료구조는 B-Tree이다. 데이터 사이즈가 아무리 커져도 특정 데이터 접근에 소요되는 비용이 크게 증가되지 않는다는 장점에 의해 B-Tree를 많이 사용하나, 상황에 따라서 최대의 효율을 발휘하지 못할 경우도 있다. 이런 경우에 대한 해결책으로 InnoDB에서는 Adaptive Hash Index 기능을 사용하는 것이다. InnoDB에서 B-Tree의 동작 방식 InnoDB에서 데이터들은 Primary Key 순으로 정렬되어 관리되고, Secondrary ..
트랜잭션 트랜잭션은 한 번 질의가 실행되면 질의가 모두 수행되가 모두 수행되지 않는 작업수행의 논리적인 단위이다. 즉, query를 하나 실행했을 때, 중간에 실행이 중단되었을 경우에는 처음부터 다시 실행할 수 있도록 Rollback 이 수행되고, 오류 없이 모든 실행이 완료되면 commit 을 실행하는 단위이다. 트랜잭션은 DBMS의 성능 측정에 직접적인 영향을 가지고 있다. DBMS의 성능은 초당 트랜잭션의 실행 수(Transaction per second)로 측정되기 때문이다. 트랜잭션을 왜 사용하는가? 가장 큰 이유는, 병렬 처리로 인해 DB 서버에 여러 개의 클라이언트가 동시에 액세스하거나 응용프로그램이 갱신을 처리하는 과정에서 중단될 수 있는 경우 데이터의 부정합성을 방지 하고자 할 때 사용한..
MyISAM vs Inno DB 트랜잭션 처리가 필요하고 대용량 데이터를 다루기 위해서는 InnoDB가 효율적이다. 트랜잭션 처리가 필요없고 운영에 Read Only 기능이 많은 서비스일수록 MyISAM이 효율적이다. SELECT가 많은 서비스 : MyISAM 데이터 변화가 많은 서비스 : InnoDB MyISAM과 InnoDB의 가장 대표적인 차이 두 스토리지 엔진에서 가장 대표적인 차이는, Locking에 대한 것이다. MyISAM : Table Rocking으로 Row Level Locking을 지원하지 못해, SELECT INSERT UPDATE DELETE 시 해당 테이블 전체에 Locking이 걸리게 된다. InnoDB : Row Level Locking을 지원함으로써, 특정 데이터가 변경, ..
Inno DB Inno DB는 높은 안정성과 성능을 유지하는 범용 스토리지 엔진이며, transactional-safe 테이블을 관리한다. MySQL8.0에서는 InnoDB를 기본 스토리지 엔진으로 사용하고 있다. Inno DB 스토리지 엔진 기능 Feature Support B-tree indexes Yes Backup/point-in-time recovery (Implemented in the server, rather than in the storage engine.) Yes Cluster database support No Clustered indexes Yes Compressed data Yes Data caches Yes Encrypted data Yes (Implemented in the s..
MyISAM MyISAM은 ISAM(Indexed Sequential Access Method)의 단점을 보완하기 위해 나온 버전으로, 이 엔진은 비-트랜젝션-세이프(non-transactional-safe) 테이블을 관리한다. MySQL 5.5 이전까지 기본 스토리지 엔진이었다. MyISAM 스토리지 엔진 기능 Feature Support B-tree indexes Yes Backup/point-in-time recovery (Implemented in the server, rather than in the storage engine.) Yes Cluster database support No Clustered indexes No Compressed data Yes (Compressed MyISAM t..
- Total
- Today
- Yesterday
- java
- 생성자
- mustache
- package-private
- flatMap
- Effective Java
- @Lazy
- 스프링부트
- springboot
- 점층적 생성 패턴
- 팩토리 메소드 패턴
- try catch finally
- junit
- jdk버전
- 정적팩터리메서드
- effectivejava
- ifPresent
- 빌더 패턴
- 빈 순환 참조
- 이펙티브자바
- 복사 팩토리
- try with resources
- JPA
- java8
- 인프런
- Spring
- 이펙티브 자바
- 연관관계
- 김영한
- 자바8
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |