프로그래밍/서버, DBMS 26

MySql - DB 저장 위치 변경 & 디스크 변경 (데이터 복사)

MySQL 데이터 저장 위치를 변경 (파일 위치 변경 또는 디스크 변경) 및 파일 데이터 복사 1) DBMS 끄기 sudo service mysql stop 2) 현재 저장 디렉터리 확인 mysql client로 확인 sudo mysql select @@datadir; 또는 cnf 파일로 확인 grep -nri datadir /etc/mysql grep 명령어로 검색하면 datadir이 명시된 파일 위치가 나온다. 내 경우 /etc/mysql/mariadb.conf.d/50-server.cnf 였음 위 파일 열어보면 알겠지만 해당 파일에 정의한 datadir이 mysql client로 나오는 것 3) conf 변경 /etc/mysql/mariadb.conf.d/50-server.cnf 내 ... # # ..

동일한 요청을 여러 서버에 Broadcasting 해주는 NginX mirror

1. 하나의 요청을 여러 서버가 알아야 할 때 아래의 그림과 같이 한 서버에 요청을 릴레이 하면서 또 다른 서버가 해당 요청을 알아야 할때 사용할 수 있는 mirror 기능이다. 2. NginX conf location / { mirror /mirror; proxy_pass http://location.to; } location /mirror { internal; proxy_pass http://location.to.mirror; } location으로 /mirror을 등록하고, internal 지시어를 통하여 해당 path는 내부적으로만 접근할 수 있게 강제한다. (외부에서 도메인이나 ip타고 들어오는 경우엔 접근할 수 없다는 의미) 그리고 해당 path에 proxy_pass를 설정한 다음 등록을 원하..

[책 요약] Effective SQL - SQL 코딩의 기술 요약 (Ch3. 데이터 모델 설계를 변경할 수 없는 경우)

Effective SQL, SQL 코딩의 기술이라는 책을 읽고 요약한 것으로, 실제 책과 동일하지 않을 수 있음. 개인 정리용 3.18 설계 변경이 불가능한 경우, 뷰로 데이터를 간소화 일반적으로 뷰는 하나 이상의 테이블이나 다른 뷰에 SQL 쿼리를 미리 정의해 두고 테이블처럼 데이터를 볼 수 있는 객체다. 뷰 사용하는 이유로는 아래와 같다. (1) 특정 데이터에 집중 (2) 컬럼 이름 간소화 또는 명료화 (3) 여러 테이블에 있는 데이터를 한눈에 보기 (4) 데이터 조작 간소화 (5) 중요 데이터 보호 (6) 하위 호환성 제공 (7) 데이터 커스터마이징 (8) 요약 데이터 제공 (9) 데이터 가져오기와 내보내기 3.19 비관계형 데이터를 정보성 데이터로 변환할 때는 ETL을 사용하자 ETL은 추출(Ex..

[책 요약] Effective SQL - SQL 코딩의 기술 요약 (Ch2. 인덱스 설계와 프로그램적 처리)

Effective SQL, SQL 코딩의 기술이라는 책을 읽고 요약한 것으로, 실제 책과 동일하지 않을 수 있음. 개인 정리용 2.10 인덱스를 만들 때는 널을 고려하자. 일부 데이터 베이스는 빈 문자열일 때, 이를 NULL으로 치환한다. 만약 NULL 데이터가 많은 상황에서 NULL 포함하지 않도록 인덱스를 생성한다면, scan에 대한 비용을 획기적으로 줄일 수 있다. 또한 Mysql의 경우 NULL이라도 서로 다른 값으로 취급하기 때문에, 반드시 인덱스 설계시에 NULL을 어떻게 처리할 지에 대한 고민을 수행해야 한다. 2.11 인덱스와 데이터 스캔을 최소화하도록 인덱스를 신중히 만들자. -> 적절한 인덱스를 만들도록 데이터 분석하고, 생성된 인덱스가 잘 사용되는지 확인 스캔 방식으로는 크게 테이블 ..

URL 리디렉션용 서비스 (쿠팡 파트너스 주소 숨기기)

URL 리디렉션용 서비스 (쿠팡 파트너스 주소 숨기기) 1. 주소를 숨겨야 한다. 모든 광고가 그렇듯, 주소로 필터링할 수 있다. 블로그나 카페등에서 이런 광고형 URL을 자주 사용하게 되는 경우, 저품질이나 검색이 안되는 현상을 자주 맞이하게 된다고 한다. 그래서 쿠팡 파트너스에서 만든 단축 URL을 다른 URL로 변경하여 블로그나, 카페 서비스에서 이를 알지 못하게 바꿔준다. 2. 어서와, 어려울까봐 준비했어. 일반 사용자가 도메인을 바꾸는 서비스를 만들거나 구축하기에는 너무 복잡하고 귀찮을 것 같아서, 준비했다. https://play.it-trip.com/short 3. 사용법 (1) 페이지에서 사용하는 방법 변경하고자 하는 쿠팡 주소를 입력하고, 발급 버튼을 누르면 된다. (2) API GET ..

[책 요약] Effective SQL - SQL 코딩의 기술 요약 (Ch1. 데이터 모델 설계)

Effective SQL, SQL 코딩의 기술이라는 책을 읽고 요약한 것으로, 실제 책과 동일하지 않을 수 있음. 개인 정리용 1. 개요 1.1 SQL or SEQUEL?? RDMBS에서 구조화된 간단한 영어 문장을 이용하여 Database에 질의를 할 수 있는 언어로 SEQUEL(Structured English QUEry Language, 시퀄)이라고 부르며, SEQUEL이라는 명칭이 이미 사용되고 있어 법적인 이유로 SQL(에스큐엘, ess-cue-el)으로 변경했다. 표준화가 늘 그렇듯, 널리 사용되는 RDBMS의 SQL들의 최소 공통 분모만을 담고 있으며, RDBMS별로 어떤식으로 구현됐는지, 혹은 세부적인 동작 방법, 리터럴은 다를 수 있다. (Ex, record 고유 키로 사용되는 정수 컬럼..

[서버] 작지만 강력한 미니 PC "PN50" - Ryzen 3세대, NUC 대체

1. 미니 PC - 초소형 폼팩터 HTPC 미니PC란 일반 데스크톱보다 작으면서 책상위에 올려두고 사용할 수 있는 PC를 말한다. 지금까지 간단한 홈씨어터 서버나 많은 공간을 차지하고 선정리가 복잡한 데스크톱 PC를 대체하는 수준에서 소수의 매니아들만 사용했었다. 사실 미니 PC는 꽤나 예전부터 사용되던 폼팩터로, 다양한 제품이 있었다. 이러한 제품들은 m-ATX 메인보드와 낮은 TDP를 가지는 CPU를 조합한 제품들이 많았고, 사실 전문적으로 생산하는 업체가 없었기 때문에 마이너한 분야로 취급 받았을 뿐이다. 그러나 인텔에서 NUC를 발매하게 되면서, 이 미니 PC 시장에 판도를 바꿔놨다. NUC의 경우 Next Unit of Computing으로 인텔에서 개발한 소형 폼팩터 개인 컴퓨터로, 손바닥만한..

[서버] NginX에서 Certbot 인증서 자동 갱신하기

NginX에서 Certbot 인증서 자동 갱신하기 1. certbot + NginX plugin 설치한 경우 아래와 같이 nginx 플러그인으로 설치한 경우 자동으로 Site conf에 SSL 인증서와 Redirection 옵션(선택시)이 들어간다. sudo apt-get install software-properties-common sudo apt-get update sudo apt-get install certbot sudo apt-get install python-certbot-nginx sudo certbot --nginx 이 경우에는 인증서 갱신시에 NginX를 켰다 끌 필요 없이 아래의 명령어를 사용하면 된다. sudo certbot renew --nginx 이제 이 내용을 crontab에 넣..

페이스북으로 공유카카오톡으로 공유카카오스토리로 공유트위터로 공유URL 복사