mariaDB6 MariaDB Galera Cluster- lock문제 MariaDB Galera Cluster- lock문제 MariaDB Galera Cluster 적용시, Lock 문제는 매우 심각하며, 이로 인하여 오히려 Cluster 보다는 replication방법이 더 나을수도 있다는 생각이 종종 든다. 이번에는 실제 Galera Cluster 적용시 겪게 된 문제를 예로 들어 보겠습니다.실제 적용되었던 서비스는 앱에서 사용자들의 액션(클릭같은행위)을 서버로 전송 하고 해당 데이터를 가공해서 저장 하는 시스템이였습니다. 앱에서 데이터를 전송 받아 DB로 쏴주는 서버가 약 6대정도 였고.... 트래픽은 DB입장에서 보면 100/초 정도 였습니다. (물론 실시간으로 저장된 정보를 다시 집계 하는 서버로 전송합니다.) 1. DB단위가 아닌 DB Server 단위로 적용.. IT 관련/Database 2017. 12. 30. MariaDB Galera Cluster - 복구/운영 MariaDB Galera Cluster -복구/운영 이전글에서 MariaDB Galera Cluster의 구성을 마쳤다면...MariaDB/Galera Cluster의 장점(특징)-. 모든 노드에서 데이터 변경 가능 (Active-Active 방식의 다중 마스터 구성 – 모든 노드에서 읽기/쓰기가 가능)-. 노드 장애 시에도 데이터 유실 없이 높은 가용성 달성-. 노드 사이의 트랜잭션 지원(클러스트 내 모든 노드 간 데이터 일관성을 보장)-. 클러스터 내 노드 자동 컨트롤 (노드 장애 시 자동으로 해당 노드 제거, 추가 가능) 이전글에서 모든 노드에서 데이터 변경 가능 하다 는 장점을 확인했다. 이번에는 노드 장애 시에도 데이터 유실 없이 높은 가용성 달성 클러스터 내 노드 자동 컨트롤 (노드 장애 시.. IT 관련/Database 2017. 12. 30. MariaDB Galera Cluster-설치/셋팅 MariaDB Galera Cluster 설치/셋팅 Galera Cluster 를 이야기 하기전에 Synchronous vs Asynchronous 의 차이를 알아보자 Asynchronous 방식으로 대표적인 것이 Replication 이다.모두 알고 있듯이 replication은 마스터 - 슬래이브로 이루어지고 데이터의 변경은 master에서만 이루지며, 변경된 데이터는 슬래이브로 복제된다. 데이터 분산 및 부하 분산에 현재도 매우 널리 사용되는 방식이다. 헌데 replication은 Asynchronous 방식으로 이루어 지므로 몇가지 문제가 발생한다. -. 마스터 노드에서 발생한 변화가 슬레이브 노드에 동시에 적용되는 것을 보장하지 않는다. -. 마스터-슬레이브 간 데이터 동기화 지연(엄격히 말하면.. IT 관련/Database 2017. 12. 30. [MySQL] 요일 구하기 함수 weekday() 주의 요일 구하기 함수 weekday() 주의 특정일자의 요일을 구하는 로직은 프로그램을 짤때 많이들 사용 하는 로직입니다.주로 사용 하는 몇몇 랭귀지의 예를 보면[javascript] var d = new Date(); d.getDay(); return : 0 = Sunday, 1 = Monday, .... 6 = Saturday [PHP] $date = date('w'); return : 0 = Sunday, 1 = Monday, .... 6 = Saturday 즉, 대부분의 프로그래밍 랭귀지에서는0 = Sunday, 1 = Monday, .... 6 = Saturday 로 리턴됩니다.전통적으로 sunday가 0부터 시작이지요. Database에서도 동일한 함수들을 제공 합니다.단, ODBC에서 표준은 요.. IT 관련/Database 2017. 12. 25. [MySQL] csv 파일을 직접 테이블로 Import csv 파일을 직접 테이블로 Import -- LOAD DATA INFILE statement LOAD DATA [LOCAL] INFILE 'file_name' INTO TABLE tbl_name [CHARACTER SET charset_name] [{FIELDS | COLUMNS} [TERMINATED BY 'string'] [[OPTIONALLY] ENCLOSED BY 'char'] [ESCAPED BY 'char'] ] [LINES [STARTING BY 'string'] [TERMINATED BY 'string'] ] ※ 주의점CSV File 를 읽어 이를 처리 하는 방버은 매우 빠른 속도를 제공합니다. 그러나 데이터 등록시 해당 테이블에는 lock이 걸릴 수 있습니다.처리 하려는 CSV 파일의 .. IT 관련/Database 2017. 12. 25. MariaDB Full outer join MariaDB Full Join 처리 MariaDB에서는 MySQL 과는 다르게 Full Join 은 지원하지 않는다. 그러나, 다른 방법을 통해 얼마든지 구현 가능하다. MySQL join 내용은 MySQL Join정리(http://cirius.tistory.com/1135 )를 참조 하세요. -- select from Table A full outer join Table B on A.key = B.key where A.key is null SELECT * FROM tableA a LEFT JOIN tableB b ON a.b_id = b.b_id UNION SELECT * FROM tableA a RIGHT JOIN tableB b ON a.b_id = b.b_id a_id A_col b_id b_i.. IT 관련/Database 2017. 12. 17. 이전 1 다음