SELECT datname, age(datfrozenxid) FROM pg_database ORDER BY age(datfrozenxid) desc; datname | age -------------------------+------------ aaaaaaaaaaaaaaaa | 1485485076 bbbbbbbbbbbbbbbbbbbbbbb | 1481342364 cccccccccccccccccccc | 1461333757 dddddddddddddddddd | 1330037484 postgres | 1329674313 fffffffff | 1156326849 ggggggggggggggggggggggg | 100464636 template1 | 382402 template0 | 378203 (9 rows)..
2020년 상반기에 4대 주요 웹브라우저 회사인 Google, Microsoft, Apple, Mozilla의 브라우저에서 TLS 1.0 및 1.1 지원을 종료한다고 합니다. 현재 TLS 프로토콜은 TLS 1.0, 1.1, 1.2, 1.3의 4가지 버전이 있지만, 1.0, 1.1은 POODLE 및 DEAST와 같은 공격에 취약한 것으로 알려져 있습니다. 이에 OpenSSL을 명령어로 프로토콜에 따라서 접속이 가능한지 확인 하는 방법을 소개합니다. OpenSSL로 프로토콜 접속 테스트 openssl의 s_client 명령어와 프로토콜 옵션을 넣어서, 특정 프로토콜로 접속이 가능한지 확인할 수 있습니다. 정상적으로 접속이되면, 인증서 정보 및 접속 정보가 출력되고 종료 됩니다. # openssl s_clie..
간혹 shell에서 직접 실행하면, 정상적으로 잘 동작하는 스크립트가 crontab에 등록하면 정상적을 동작하지 않는 경우가 발생하곤 합니다. 대부분 shell의 환경 변수와 crontab의 환경 변수가 달라서 발생을 하게 됩니다. 스크립트 내에서 외부 명령어를 실행하는 경우에 PATH 환경변수가 달라서 명령어 위치를 찾지 못해서 에러가 발생하는 경우가 대표적인 예입니다. 이런 문제를 해결하기 위해서 crontab 실행 시 환경 변수를 맞춰서 실행하는 방법을 소개합니다. 환경 변수 확인 현재 로그인된 shell의 환경 변수 값을 확인 하는 방법은 set 명령어를 이용하면 확인 할 수 있습니다. # set |egrep '^PATH' PATH=/usr/local/sbin:/usr/local/bin:/sbin..
Apache 접속 인증 추가는 .htaccess에 인증 설정을 추가하는 방법이 가장 잘 알려져 있고, 많이 사용되고 있습니다. 단, .htaccess는 디렉토리 설정으로 Apache에서는 httpd.conf에 설정된 directory 설정과 해당 경로의 .htaccess 파일중 하나만 인식하는 문제가 있습니다. 그렇기 때문에 접속 인증만 추가해야하는 경우에는 virtualhost 설정에 location 설정을 통해서 .htaccess를 사용하지 않고, 인증 설정을 할 수 있습니다. 패스워드 파일 생성 # htpasswd -c /home/warpmemory/www/secret/.htpasswd warpmemory New password: mypassword Re-type new password: mypas..
./mk-query-digest --since '2011-01-30 00:00:00' --until '2011-01-30 12:00:00' --limit 20 --print --show-all /usr/local/mysql/var/mysql-slow.log --since : 시작 년일시분초 --until : 종료 년일시분초 --limit : 출력 제한(제일 오래걸리 쿼리 순) --print : 슬로우 쿼리 출력 --show-all : 레포트 내용 중략 없이 전부 출력 --report-histogram : 히스토그램으로 출력
개요 mariadb의 Synchronous 방식 다중 마스터 클러스터입니다. Active-Active 방식의 다중 마스터 구성 - 모든 노드에서 읽기/쓰기가 가능 클러스터 내 노드 자동 컨트롤 - 특정 노드 장애 시 자동으로 해당 노드 제거 자동으로 신규 노드 추가 완벽하게 병렬적으로 데이터를 횡단 위로 복제 기존은 MySQL 클라이언트 방식으로 동작 제한 사항과 알려진 이슈 InnoDB 만 정상적으로 지원한다. MyISAM 은 실험적으로만 지원중이다. ROW 데이터 기반으로 복제가 이루어지기 때문에 반드시 Primary Key가 있어야 한다. 최대 가능한 트랜잭션 사이즈는 wsrep_max_ws_rows와 wsrep_max_ws_size에 정의된 설정 값에 제약을 받으며, 데이터 파일 로드 처리 시 매..
코어 제한 플러그인들에 대한 공통적으로 사용되는 설정도, 섹션 설정에 모두 기술되어야 한다. 지원 프로토콜 제한 압축 SSL(MySQL 서버 간의 핸드 셰이크는 포함되지 않음) 현재 로컬 파일 데이터 로드는 지원하지 않음 MySQL 마스터/슬레이브 리플리케이션 모니터링 제한 Galera Cluster 모니터링 제한 마스터 노드는 MIN(wsrep_local_index)으로만 선택됨 connection router 제한 마스터가 변경될 때, 현재 connection router는 변경에 대한 체크를 할 수 없음 Read/Write Splitter 제한 Scale-out 제한 마스터-슬레이브 리플리케이션 클러스터는 read-only 쿼리에 대해 다음과 같은 상황에서 마스터로 라우트 된다. 트랜젝션 내에서 실..
MySQL 5.5.3 이상 버전에서 Alter 테이블 작업 시, Alter가 진행되지 못하고 계속 대기하는 문제가 발생하여, show processlist를 통해서 확인해보니 "Waiting for table metadata lock" 상태로 락이 발생하고 있었습니다. 찾아보니, 5.5 이전 버전에서 DDL 작업시 트랜젝션을 고려하지 않는 문제가 있었는데, 이를 해결하기 위하여, 메타 데이터락이라는 정책을 추가했고, 트랜젝션이 유지 되는 동안에 DDL 작업이 들어오면 락이 걸리는 것이었습니다. (락이 걸리면, lock_wait_timeout 설정에 따라서 (기본값은 1년), 대기후 DDL 작업은 자동으로 취소됨.) 현재 최신 버전인 5.5.27 기준으로 어느 세션에 의해 메타데이터 락이 걸렸는지 확인할 ..
# 아파치 프로세스 갯수 제한 MaxClients 256 # => 아파치 차일드 프로세스 256개로 제한 # 아파치 프로세스 시간 제한 RLimitCPU 20 20 # => 아파치 CPU 점유 시간 20초로 제한 # 아파치 프로세스 메모리 제한 RLimitMEM 30000000 30000000 # => 아파치 메모리 점유 30Mb로 제한 위 설정을 조합하여, CPU 부하 및 메모리 사용 과다로 인해 과다 스왑이 발생하여, 아파치 httpd 서버가 다운되는 현상을 막아 줄 수 있다.
- Total
- Today
- Yesterday
- Ansible
- 명령어
- code
- 코드
- Python
- 외부링크
- 예제
- RESTful
- check
- MariaDB
- Windows
- limits
- client
- error
- monitoring
- Module
- apache
- 번역
- configuration
- httpd
- engineering
- example
- PowerShell
- deview
- File
- Linux
- mysql
- command
- 이슈처리
- Web
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |