Blog

  • VACUUM FULL ANALYZE

    PostgreSQL은 자료를 처리하는 과정에서 dead tuple이 발생하여 용량이 커진다고 한다. DB 용량이 작을 때는 문제가 되지 않지만, DB 용량이 커지고 디스크 용량에 가득차게 되면 문제가 생길 수 있을 것 같다.

    보통은 autovacuum이 동작하여 해결해 준다고 하지만, 좀 임박한 문제라면 직접 해결해도 된다. 명령어는 제목과 같다.

  • 특수 문자 컬럼명 사용

    PostgreSQL에서 한글 자료 입력에 문제는 없는 것 같다.

    자료 매핑에 이용하는 파일에서 header 부분을 영어로 바꿔서 사용하고 있었다. 한글이 지원이 되는 것 같고, 괄호같은 특수 문자도 사용할 수 있으므로 가능하면 그냥 사용해 보기로 한다. 한글 사용은 그대로 하면 되지만 괄호나 / 같은 특수 문자를 이용하기 위해서는 따옴표로 묶어 주면 된다.

    ALTER TABLE mapping.drug_mapping_by_hira ADD COLUMN "전문/일반" TEXT;
    ALTER TABLE mapping.drug_mapping_by_hira ADD COLUMN "제품코드(개정후)" TEXT;
    

    그런데 이러게 해도 별로 이득이 없다. 오히려 쿼리 작성할 때 오류만 뱉어낸다. 밑줄 정도로 바꾸어 주자.

  • NGINX 사용 시작

    nginx 를 이용해 보기로 하였다. 실제 운영중인 블로그에 처음부터 도입하기는 좀 위험하다 싶어서 다른 PC에서 우선 설치해 보기로 하였다. 우선 회사에서 파일 다운로드 좀 편하게 할려고 사용하는 NUC에 설치했다. 설치는 apt로 하면 되니까 어렵지는 않다.

    index.html 같은 파일이 없을 경우 apache에서는 폴더가 기본적으로 보이는데 nginx에서는 보이지가 않았다. 이 부분은 설정을 추가하여 주면 되는 것이다.

     /etc/nginx/sites-available/default 파일에서 다음의 부분을 찾아서 autoindex on;을 추가하여 준다.

    server {
            listen 80 default_server;
            listen [::]:80 default_server;
            root /var/www/blog;
    
            index index.php index.html index.htm;
    
            server_name domain.com www.domain.com;
    
            location / {
                    autoindex on;
            }
    }

  • vsftpd에서 file_open_mode

    리눅스에서 vsftpd를 이용해서 FTP로 파일을 주고 받고 있다. 본인의 계정으로 사용할 것이라면 별로 설정을 건드릴 필요는 없는데 PostgreSQL 사용자 계정인 postgres 에서 DB에 COPY할 파일에 접근이 안되는 문제가 있어 해결해 줄 필요가 있다. 644나 744로 하면 읽기 권한이 있음에도 파일에 접근을 못하는 문제가 있다.

    처음 파일 접근 권한 설정의 어려운 점은 umask라는 것인데, 이것은 기본 설정에서 해당 부분만큼 뺀 것을 권한으로 설정하라는 것이다. 내 목표는 업로드한 파일을 755로 만드는 것이니까 umask는 000으로 한다.

    그럼에도 불구하고 파일을 업로드하면 666으로 되어 있다. 파일 기본 권한 설정은 vsftpd.conf 파일에서 빠져 있기 때문으로 해당 부분을 추가하여 주면 된다. umask 아래에 위치해야 한다고 한다.

    local_umask=000
    file_open_mode=0755