전체 글
-
RabbitMQ 실패 재시도하기 (NACK 처리 php code sample)개발/etc 2019. 10. 2. 16:00
1. Queue 생성 queue-delivery 프로퍼티 x-dead-letter-exchange : test.exchanger x-dead-letter-routing-key : delivery.failed UI queue-delivery.retriable 1. 프로퍼티 x-dead-letter-exchange : test.exchanger x-dead-letter-routing-key : delivery x-message-ttl: 3000 2. UI 2. exchanger 생성 3. excahnger bind queue 4. CODE
-
master 와 slave 의 쿼리실행 계획이 틀려진 이유는 ?개발/dbms 2019. 9. 17. 18:08
옵티마이저는 어떻게 계획을 세울까?? 우리가 쿼리를 실행하면 현대의 똑똑한 옵티마이저는 비용(cost based) 기반의 실행계획을 설립한다. 이때 비용(cost) 에 해당하는것을 참고하려면 통계정보를 얻어와야하는데 통계정보를 다음과 같은곳에 저장한다. use mysql; show tables like '%stats%'; -------------------------------- [통합 통계 정보 테이블] column_stats index_stats table_stats [스토리지 엔진 통계 정보 테이블] innodb_index_stats innodb_table_stats [스토리지 엔진 통계 정보 테이블] 을 사용하려면 innodb_stats_persistent 값이 ON 상태값이 되어있어야하는데 다음..
-
PHP mkdir 권한 문제(umask)개발/php 2018. 11. 9. 17:47
파일 업로드 관련 코드를 작성하던 도중 다음과 같은 코드가 있었다.$path = '/home/test/tmp'; if (is_dir($path) === false) { mkdir($path, 0777, true); }위 코드에서 보면 만들고자 하는 디렉토리는 /home/test/tmp 라는 디렉토리이고 recursive 옵션을 true 로 주어서 test 폴더와 tmp 폴더가 만들어지는고 test 와 tmp 폴더의 권한은 777 옵션이 적용되어있는 것을 기대 하였다.하지만 만들어진 디렉토리를 보니 권한이 755 로 잡혀잇는것이다.ls -al |grep test_dir drwxr-xr-x 3 root root 4096 9월 2 11:11 test_dir원인을 찾던도중 다음과 같은 원인을 찾을수 있었다.um..
-
mysql 을 두개 설치해보자개발/dbms 2018. 11. 9. 17:46
현재 mysql5.5 -> maria10.2 설치하기에 앞서 리눅스 피시에 maria10.2 설치를 해야하는 상황이 왔다. 다른 가상서버 혹은 docker 로 설치진행해도 되지만 옮겨야하는 데이터디렉토리 용량이 800g가 넘기때문에 그냥 리눅스 피시에 설치를 진행하도록 하겠다.소스코드 설치로 진행한다.1.컴파일을 하기위한 라이브러리 설치yum install cmake ncurses ncurses-devel bison gcc gcc-c++ -y2.source code 를 다운로드한다.cd /usr/local/src wget -N https://downloads.mariadb.org/interstitial/mariadb-10.2.7/source/mariadb-10.2.7.tar.gz tar zxvf mari..
-
github 블로그를 jekyll 를 통해 관리해보자개발/etc 2018. 11. 9. 17:45
환경 centos71.필수패키지 설치yum install gcc-c++ patch readline readline-devel zlib zlib-devel yum install libyaml-devel libffi-devel openssl-devel make yum install bzip2 autoconf automake libtool bison iconv-devel sqlite-devel2.RVM 설치curl -sSL https://rvm.io/mpapis.asc | gpg --import - curl -L get.rvm.io | bash -s stable source /etc/profile.d/rvm.sh rvm reload3.Verify Dependenciesrvm requirements run4.r..
-
Inoodb buffer pool 이란 ?개발/dbms 2018. 11. 9. 17:44
'mysql' innodb buffer pool 설정에 관해서 알아보자. 현재 내가 맡고 있는 업무는 사내프로젝트 유지보수를 하고있다. 문제가있는 테이블은 현재 정규화가 되어있지 않으며, 컬럼수는 약 100개 정도, 약 천만건정도의 데이터가 쌓여있으며 총 데이터 크기 60G , 인덱스길이 2G 정도 된다. DB 서버는 웹서버와 분리되어있지 않으며 현재 서버메모리는 8G . 모든 쿼리는 인덱스를 타지만, slow query 가 많이올라오고 loadaverage 는매일 업무가 시작되는 9시 10 이상 튄다. 소스가 오래되었기에, 테이블을 정규화해서 고치기에는 리스크가 너무컸다. 어떻게 하면 리스크없이 부하를 잡을수있을까 고민하던 찰나에 얼마전 읽은 `대규모 서비스를 지탱하는 기술` 책에서 캐시(os 캐시)를..
-
mariadb 에서 connected by 를 써보자!개발/dbms 2018. 11. 9. 17:43
oracle 에서 사용할수있는 connect by 가 mariadb 10.2 버전이후로부터는 아래와 같이 지원된다.1. 테이블 생성CREATE TABLE `menu` ( `idx` int(11) NOT NULL AUTO_INCREMENT, `parents_idx` int(11) DEFAULT NULL, `name` varchar(50) DEFAULT NULL, PRIMARY KEY (`idx`), KEY `menu_menu_idx_fk` (`parents_idx`), CONSTRAINT `menu_menu_idx_fk` FOREIGN KEY (`parents_idx`) REFERENCES `menu` (`idx`) ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=..
-
MongoDB 를 docker로 세팅해보자개발/etc 2018. 11. 9. 17:42
몽고디비를 로컬환경에 설치를 해야하는데 라우트서버와 샤드서버 콘피그서버를 설치하려니까 이것저것 해야할 부분들이 너무많아서 docker 로 설치하는 방법이 제일 빠를거 같아 docker 를 올려보았다.기본 세팅#docker 설치 yum -y install docker #docker compose 설치 sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose docker-compose --version docker-compose ve..