본문 바로가기

Database

(5)
Postgresql - transaction id wraparound ㅜㅜ 어느날 개발DB에서  DB가 read only가 되는 상태가 되어 있는것을 발견아래 이미지 처럼 to prevent wraparound 가 나타나며 autovacuum을 하고 있는 상태 였다. to prevent wraparound  는 transaction id가 2억개 넘으면 시작이 된다. 보통은 autovacuum으로 처리가 되는데아 근데 이게 데이터 들어 오는 속도 보다 autovacuum이 느리게 진행되어 데드라인인 20억건까지 밀리게 되어결과적으로 DB가 read only상태로 변경이 되었다. read  only상태는 그냥 운영 환경처럼 처리할수가 없다.(vacuum freeze가 아예 안먹고 single mode로 접속하라고 메시지가 나옵니다. ) 작업한 순서를 정리해 보면 1.  pg_ct..
Veritca 에 json type 데이터 적재 테스트 요즈음 로그성 데이터들이 많아져서 json type의 데이터를 적재해야 할경우가 생겨 적재 테스를 진행해 본다. 참고페이지 https://www.vertica.com/docs/8.1.x/HTML/index.htm#Authoring/FlexTables/FJSONPARSERreference.htm 1. 테스트로 사용할 json data를 생성한다. file명은 json_data.json {"name": "Everest", "type":"mountain", "height":29029, "hike_safety": 34.1} {"name": "Mt St Helens", "type":"volcano", "height":29029, "hike_safety": 15.4} {"name": "Denali", "type":..
[Postgresql]Full Backup & Resotore postgresql backup 및 restore 방법 입니다. (full backup) centos 기준입니다. 1. 현재 서버에 postgresql 이 설치 되어 있는지 확인합니다. 설치되어 있으면 3번부터 보세요 psql -V 이 커맨드를 쳐서 없다고 나오면 postgresql 을 설치합니다 2. yum list를 확인하여 설치하려는 버전이 있는지 우선 찾아 봅니다. (우리는 10버전대를 쓰니 10버전으로) yum list postgresql* 10버전이 없으면 설치 합니다. rpm -Uvh https://yum.postgresql.org/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm yum list postgresql* 를 다시 확인해 보고 10버..
[Vertica] 사용자 접속시 Load Balancing 과 BackupServerNode JDBC 설정방법 무료 tool인 dbeaver를 이용해서 접속하려고 합니다.  Vertica 사용자들이 주로 접속하는 노드가 다운되었을때 차선으로 다른 노드에 붙을수 있게 설정해 보겠습니다.노드 다운되니 서비스가 안된다고 민원이 쇄도하여 다운된 노드 복구때 까지 서비스 사용할수 있게 방법을 찾아 보았습니다.   step 1메뉴:   데이터베이스> 새 데이터베이스 연결   을 선택합니다.(화면 ui는 dbeaver 버전에 따라 조금씩 다를수 있습니다.)  step 2  접속 관련 정보를 입력하고 Edit Driver Settings를  누릅니다. step 3 Url Templete 에서  "?ConnectionLoadBalance=1&BackupServerNode=xxx.xxx.xxx.xxx,xxx.xxx.xxx.xxx"..
[Vertica] user pool 별 cpu 사용량 제어 하기 버티카 운영을 하던중 유저들이 몰리는 시간대에 heavy query 를 여러명의 유저가 동시에 실행시키면 cpu 사용량이 급증하는 현상이 있어 관리 차원에서 user pool 별로 사용량 제한을 걸어보았다. ALTER RESOURCE POOL CPUAFFINITYSET '80%' CPUAFFINITYMODE shared; 현재 버티카 버전은 8.1 이고 위 조치이후 cpu 사용율이 90% 넘어서 오던 메시지는 사라졌다. 대신 유저들의 sql 수행시간은 그만큼 더 걸리겠지만 .. 난 서버 안정성이 우선이라 어쩔수 없다. 추후 개별 마트를 만들어 주는방법등으로 수행성능을 향상 시켜 보아야 겠다