쉘스크립트를 만들때 awk로 문자열을 가공할때 작은 따옴표 (' ') 를 넣어야 할때가 있습니다. 작은 따옴표는 홑따옴표 , single quote 라고도 하죠. 의외로 쌍따옴표 (" ") 넣는 것보다 간단하지 않았습니다. 가공하는 방법 몇가지를 정리해보려고 합니다. 아래는 문자열과 변형하여 출력할 결과물입니다. --원본 123 abc 321 ddff 433 dfg -- 원하는 결과 value is 'abc' value is 'ddff' value is 'dfg' 쌍따옴표 (" ")는 아래와 같이 역슬래시( \ )를 사용하면 쉽게 표시할 수 있습니다. 하지만 홑따옴표는 동일한 방법으로는 안되네요. $ "123 abc" | awk '{ print "value is \"abc\" " }' value is "..
안녕하세요. Informix 12.10.FC14버전에서 한글이 포함된 경우 SUBSTRING_INDEX함수가 오작동하는 현상을 발견해서 공유드립니다. 참고로 Informix의 SUBSTRING_INDEX 함수는 구분자를 사용하여 문자열을 추출하는 함수입니다. 자바의 split 함수, MySQL/MariaDB의 SUBSTRING_INDEX 함수와 동일한 기능을 제공합니다. 아래는 SUBSTRING_INDEX 함수 사용시 잘못된 결과가 발생하는 케이스입니다. 마지막 글자가 잘리는 문제가 있네요. 문자열에 한글이 포함되어 있을때만 발생합니다. > select substring_index('가나;다라;마바사;아자차카',';', 1) from sysmaster:sysdual; (constant) 가 1 row(s..
PostgreSQL 모니터링 중에 DB 파일이 저장되는 파일시스템의 사용량이 약 한달동안 400 GB나 증가한 것을 확인했습니다. 먼저 $PGDATA 내에서 커진 파일들을 조사해보니 실제로 base 디렉토리의 파일들이 대부분의 용량을 차지하고 있었습니다. 사용자 테이블은 사용량에 큰 변동이 없었습니다. 그래서 혹시나 하는 마음에 카탈로그 테이블 크기를 살펴보니 pg_catalog.pg_attribute 테이블의 크기가 600 GB에 육박하고 있었습니다. pg_attribute 테이블은 '컬럼에 대한 정보'를 담고 있는 카탈로그 테이블인데 사용자 테이블처럼 INSERT, DELETE가 실행되면서 dead tuple이 발생하기도 하고 autovacuum이 실행되고 있는 점도 신기했습니다. 어쨌든 너무 과도한..
인포믹스 sysmaster:sysonlinelog 테이블 관련으로 테스트한 내용을 공유드립니다. 테스트한 인포믹스 버전은 12.10.FC6과 12.10.FC13, 11.70.FC8, 11.50.FC1 입니다. IBM문서에 따르면 인포믹스의 특정 버전 이하에서는 sysonlinelog 테이블에 쿼리를 실행하는 경우 인포믹스 메시지 로그 파일에 접근하기 위해 AIO 파일 핸들을 여는데 쿼리가 완료되어도 핸들이 닫히지 않는 문제가 있다고 합니다. 이로 인해 인포믹스 프로세스에 할당된 File Descriptor가 점차 증가하게 되고, OS 설정 값인 nofile에 도달하면 AIO 파일 핸들이 필요한 다른 작업도 실패하게 됩니다. 예를 들면 실행계획을 확인하는 SET EXPLAIN도 파일을 생성할 수 없게 되고..
안녕하세요. 오늘의 분리수거라는 앱을 사용한 후기와 제 생각을 공유하고자 글을 씁니다. 저는 오늘의 분리수거 서비스를 2022년 4월 3일 가입했고 2022년 7월 29일 탈퇴했습니다. 탈퇴한 이유는 뒤에서 좀 더 말씀드리겠지만 분리수거에 대한 보상을 받기가 어렵기 때문입니다. 오늘의 분리수거는 페트병이나 우유곽등을 수거하는 기계를 전국에 설치해 회원들이 재활용품을 넣으면 포인트를 지급하는 형식으로 운영하고 있습니다. 포인트가 어느정도 쌓이면 일정 포인트 상당의 상품을 신청할 수 있습니다. 마포구청의 4월 구정신문을 보고 페트병을 모아 피자를 받는다는 기사를 보고 페트병 모으기를 시작했습니다. 예를 들어 피자한판을 신청하려면 2000 포인트가 필요한데, 페트병 하나에 10포인트이므로 200개를 기계에 투..
인포믹스 online.log 파일에서 체크포인트 수행시 발생하는 메시지 관련해 테스트한 내용을 공유드립니다. 인포믹스 버전은 12.10.FC12였고 메시지는 아래와 같은 형식으로 표시되었습니다. 16:20:40 Physical Logging while in Critical Section: Number of pages logged in critcal section: 20 Remaining Phyical Log: 11665210 메시지로 볼때 한 트랜잭션내에서 많은 건수를 처리하는 것이 아닌가 추측되었는데요. 먼저 해당 메시지가 발생하는 시간대의 쿼리들을 확인해보았습니다. 몇가지 의심되는 쿼리를 찾았지만 특정짓기가 어려웠는데, 팀에서 logical log 파일에서 해당 시각의 트랜잭션 이력을 찾았고 해당시각..
얼마전에 인포믹스 14.10.FC8 버전을 설치하는 과정에서 발견한 내용을 공유드립니다. 14.10.FC7부터 청크 미러링이 기본적으로 활성화되고, MIRROR 파라미터는 사용되지 않으며 무시됩니다. MIRRORPATH에 파일위치가 설정되어 있으면, 인스턴스가 새로 생성될 때만 rootdbs의 미러 청크가 만들어집니다. 아래의 예시처럼 인스턴스를 새로 생성하는 경우에는, MIRROR 설정여부와 관계없이 rootdbs의 미러 청크가 생성된 것을 확인할 수 있습니다. 인포믹스를 In-place로 업그레이드를 할 경우 MIRRORPATH에 파일위치가 설정되어 있으면 아래와 같이 오류가 발생하지만, 미러 청크가 생성되지는 않고 인스턴스도 잘 기동됩니다. 대신 에러메시지가 발생하므로 MIRROR와 MIRRORPA..
안녕하세요. 이번 글에서는 인포믹스 테이블 복구 기능에 대해서 소개드리고자 합니다. 데이터베이스의 물리적인 오류나 사용자의 실수(UPDATE/DELETE)로 데이터가 손실되었을 때 테이블 복구 기능을 사용합니다. 오라클의 FLASHBACK과 유사한 기능으로 볼수도 있습니다. FLASHBACK은 언두영역의 과거 데이터를 복구하는 반면, 인포믹스의 테이블 복구기능은 백업본을 스캔하여 특정 테이블의 데이터를 추출하여 복구합니다. Informix의 테이블 복구기능의 장점은 아래와 같습니다. 1. ontape 또는 onbar로 백업받은 이미지가 존재할 경우, 백업된 시점의 데이터를 복구할 수 있다. 2. 백업 전체를 리스토어 할 필요없이 특정 테이블만 추출하여 복구가 가능하다. 따라서 복구시 테이블 크기만큼의 여..
- Total
- Today
- Yesterday