본문 바로가기

Others/데이터베이스

(31)
[리눅스] MySQL Dual Replication 설정 방법 단방향 Replication 설정 방법에 이어 양방향 Dual Repliction 설정 방법을 설명 드리겠습니다. 해당 방법은 기존의 Master 서버만이 Insert, Delete, Update 문을 실행했다면 FailOver를 통한 Slave 서버를 Mater 서버로 승격시킬 수 있는 방법입니다. 테스트 환경 CentOS Linux release 7.2.1511 (Core) MySQL 5.7.24 Master Server IP - 172.27.0.230 Slave Server IP - 172.27.0.84 쉽게 이해하기 위하여 Master 서버를 서버A, Slave 서버를 서버B 로 칭하겠습니다. 대상서버: 서버B 서버A 에서 서버B로 접근이 가능하도록 계정을 생성합니다. (mysql> grant r..
mysql dual replication으로 mysql HA 구성하기 mysql dual replication이란 일반적인 리플리케이션과 달리 서로가 마스터이자 슬레이브로 서로 양쪽의 db를 리플리케이션 함으로 어느쪽에서든 데이터가 생성되면 서로 복제하며 한쪽 DB가 죽어도 나머지 한쪽은 정상 작동되며 죽은 DB가 다시 살아날 경우 작동이 중지되어있던 시간동안 생긴 데이터가 바로 복제된다 # replication 설정 # db 1 #my.cnf 수정 vi /etc/my.cnf [mysqld] log-bin=mysql-bin server-id = 1 binlog_format = 'MIXED' #mysql 재시작 /etc/init.d/mysqld restart #리플리케이션에 이용할 db사용자 생성 mysql -u root -p mysql> create user 'repli'..
MySQL Replication을 이용하여 DBMS 단방향 이중화하기 웹서버 부하로 인해 L4를 이용하여 로드밸런싱으로 웹서버의 부하를 해결하였지만, DB 서버의 부하로 인하여 사이트가 느리게 열리는 현상이 발생하게 되었습니다 DB 서버를 이중화하는 방법은 없을까 하여 찾아보니 MySQL의 리플리케이션이라는 기능이 있더군요 이 기능을 이용하면 DB를 이중화 할 수 있는다는 것을 알게 되었습니다 이번 포스팅에서는 MySQL의 리플리케이션은 무엇이고, 리플리케이션을 이용한 DB를 이중화하는 방법을 알아보도록 하겠습니다. MySQL Replication(복제)란? 리플리케이션(Replication)은 복제를 뜻하며 2대 이상의 DBMS를 나눠서 데이터를 저장하는 방식이며, 사용하기 위한 최소 구성은 Master / Slave 구성을 하여야 됩니다. Master DBMS 역할 :..
MSSQL 테이블정의서 그냥 후다닥 만들때 사용하면 유용한 Query SELECT TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION, COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, IS_NULLABLE, COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS ORDER BY TABLE_NAME, ORDINAL_POSITION [출처] https://runicode.tistory.com/219 [펌] MSSQL 테이블정의서 그냥 후다닥 만들때 사용하면 유용한 Query SELECT TABLE_NAME, ORDINAL_POSITION, COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, IS_NULLABLE, COLUMN_DEFAULT FRO..
[Ubuntu] 우분투 서버(16.04)에 MySQL(5.7) 설치 1. MySQL 설치 먼저 명령어를 입력하여 설치 가능한 MySQL 버전을 확인한다. 여기에서는 5.7 버전을 설치할 것이다. # MySQL 버전을 확인 sudo apt-cache search mysql-server 다음으로 MySQL 설치 명령어를 실행한다. # MySQL 5.7 설치 sudo apt-get install mysql-server-5.7 설치 진행 도중 MySQL의 root(최상위 계정) 계정의 비밀번호를 입력하는 부분이 나온다. 적당한 비밀번호를 입력하고 엔터를 누른다. 다음은 비밀번호 확인이다. 방금 전 입력한 root 계정 비밀번호를 입력한다. 설치가 끝났으면 MySQL이 정상적으로 설치되었는지 확인해 본다. # MySQL 5.7 설치확인 /etc/init.d/mysql status..
mariaDB(mysql) 원격 접속 허용하기 (How to allow 'Remote access' for mariaDB(mysql)) & docker로 mariadb 실행하기위한 docker-compose.yml & custom.cnf 요즘은 maria DB 를 자주 사용하고 있습니다. 가볍고, 지원하는 툴도 가볍고, 무료이고.. 사용하기 편한 DB 인 것 같습니다. 하지만 모든 프로그램이 그렇듯, 최초에 설치하고 나면 설정해야 할 것들이 조금 있습니다. mysql 기반 maria DB 역시 마찬가지인데, 가장 큰 문제가 되는 것이 원격 접속에 대한 것입니다. 처음 maria DB를 설치하게 되면 root 계정에 대한 패스워드를 묻고, 설치를 마무리하게 됩니다. 서버에서 $ mysql -u root {패스워드} 를 입력하면 정상적으로 접속되는 것을 확인할 수 있는데, 문제는 원격에서 접속입니다. 하나의 Host 안에서 어플리케이션과 DB를 모두 사용한다면 큰 문제가 되지 않겠지만, 거의 그런 상황은 없어보이고, 개발.테스트 목적으로라도..
MYSQL ORDERBY 정렬 CASE order by 절에서 단순히 오름차순,내림차순이 아닌 직접 정렬순서를 지정하고 싶을때에는 CASE 구문을 사용하면 된다. 1. select * from 테이블 order by case when subject like '%연필%' then 1 when subject like '%지우개%' then 2 else 3 end --> subject 필드의 값이 연필인 레코드가 1순위, 지우개인 레코드는 2순위, 나머지 레코드는 3순위으로 정렬되어 노출된다. 2. SELECT * FROM 테이블 order by ( CASE agree WHEN 'Y' THEN 1 ELSE 3 END ), number desc --> agree 필드의 값이 'Y'인 경우 1순위로 노출되도록 하고 추가로 하는 정렬은 number의 내..
[MySQL] 게시판 limit 사용시 쿼리 한번에 페이징하기 - SQL_CALC_FOUND_ROWS & FOUND_ROWS SQL_CALC_FOUND_ROWS! 이걸 왜 이제 알았단 말이냐!! OTL... FOUND_ROWS() A SELECT statement may include a LIMIT clause to restrict the number of rows the server returns to the client. In some cases, it is desirable to know how many rows the statement would have returned without the LIMIT, but without running the statement again. To obtain this row count, include a SQL_CALC_FOUND_ROWS option in theSELECT state..