database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL News 9731 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 9731
PostgreSQL 9.6.1 나왔습니다.
작성자
김상기(ioseph)
작성일
2016-11-14 16:16
조회수
4,226

약 한 달 전에 나왔는데,

pgday 준비하고, 이런 저런 사정으로 이제 소개하네요.

 

이번 패치판은 기존 패치와 달리 보안 버그가 없는 기능 문제들의 해결로만 구성되었습니다.

 

E.1. Release 9.6.1

출시일: 2016-10-27

이 릴리즈는 9.6.0 버전의 다양한 문제점들을 개선한 것이다. 9.6 메이저 릴리즈 새 기능에 대한 부분은 E.2절에서 다룬다.

E.1.1. 9.6.1 버전으로 업그레이드 하기

9.6.X 버전에서는 덤프/복원 작업을 할 필요는 없다.

하지만, 아래에서 다루는 내용 가운데, 첫 두가지 사항에서 언급하고 있는 실자료 지도와 빈 공간 지도 파일과 관련 있는 시스템이라면, 아래에서 설명하는 대로 적당한 조치가 필요하다.

E.1.2. 바뀐점

  • 테이블 빈 공간 지도와 실자료 지도 파일의 내용 정리 관련 WAL 처리를 수정함. (Pavan Deolasee, Heikki Linnakangas)

    서버 비정상 종료 뒤 복구 작업에서 이 파일들이 바르게 복구되지 않거나, 대기 서버에서 바르지 않게 기록될 수 있었다. 이미 테이블 파일에서 삭제 처리된 페이지임에도 불구하고, 빈 공간 지도에는 잘못된 정보가 남아 있을 수 있었다. 서버 오류 메시지는 "could not read block XXX: read only 0 of 8192 bytes" 이런 형태로 나타났다. 자료 파일 페이지 체크섬 기능을 사용하고 있다면, 실자료 지도에서 체크섬 실패 오류도 함께 있을 수 있었다.

    이 문제가 발생하는 환경, 그에 따른 조치 사항 등은 다음 페이지에서 자세히 다룬다. https://wiki.postgresql.org/wiki/Free_Space_Map_Problems

  • pg_upgrade 명령을 이용해 9.6 버전으로 업그레이드 할 경우 실자료 지도 파일의 자료가 깨지는 문제 수정 (Tom Lane)

    빅-엔디안 장비에서 새 실 자료 지도에 기록할 바이트가 잘못된 순서로 기룩되어 잘못된 지도를 만들 수 있었다. 윈도우즈에서, 줄바꿈 문자에 바이트들이 연속해서 나올 경우 옛 실자료 지도를 텍스트 모드로 읽어 잘못된 처리를 했다. 이 두번째 오류는 pg_upgrade 명령을 사용할 때 대부분 바로 발생했다.

    빅-엔디안 장비 (많은 비인텔칩이 이 방식으로 처리된다)에서 9.6 이전 버전을 pg_upgrade 명령으로 업그레이드 한 경우, 실자료 지도를 잘못 만들었다. 이런 경우라면, 버전 업그레이드하고, 다시 만들어야 한다. 조치 방법은 contrib/pg_visibility 확장 모듈에서 제공하는 pg_truncate_visibility_map() 함수를 이용해서 실자료 지도를 정리하면 된다. 자세한 이야기는 https://wiki.postgresql.org/wiki/Visibility_Map_Problems 페이지에서 다룬다.

  • INSERT ... ON CONFLICT 명령을 이용한 자체 충돌 상황의 자료 입력 작업에서 순차적인 오류를 막았다. (Thomas Munro, Peter Geoghegan)

  • DISTINCT 옵션이 있는 집계 함수 작업시 쓰고 버리는 위험성을 수정했다. (Peter Geoghegan)

    이 문제는 쿼리 실패나, 잘못된 쿼리 결과를 반환했었다.

  • 윈도우 함수를 사용할 때, 다형 집계 처리에 대한 부분을 고쳤다. (Tom Lane)

    The aggregate's transition function was told that its first argument and result were of the aggregate's output type, rather than the state type. 집계 작업에서 사용하는 전환 함수가 그 통계치 자료형을 사용하지 않고, 해당 집계 함수의 반환 자료형과 첫번째 인자 자료형을 사용했다. 이 문제는 다형 전환 함수가 사용되었을 경우, 쿼리 오류가 발생하거나, 서버 비정상 종료까지 일어날 수 있었다.

  • 로우 수준 보안 정책이 있는 테이블을 칼럼 이름 목록을 포함하는 COPY 명령을 사용할 때 생긴 문제를 고침. (Adam Brightwell)

  • track_io_timing 설정값이 on 인 경우 EXPLAIN 작업에서 바르게 XML이 출력되도록 고침. (Markus Winand)

    이전 버전에서는 <I/O-Read-Time> 형태의 XML 구문에 맞지 않는 태그를 사용했다. 이 부분을 <I-O-Read-Time> 태그를 사용하도록 고침.

  • 미리 준비된 트랜잭션 내의 TRUNCATE 작업에 대한 통계 정보를 고침. (Stas Kelvich)

  • 테이블을 만들거나 변경할 때 상속된 CHECK 제약조건을 병합할 때 생긴 문제 고침. (Tom Lane, Amit Langote)

    같은 CHECK 제약조건을 상위 테이블과 하위 테이블 모두 사용할 수 있다. NOT VALID 제약조건이 있는 하위 테이블이 유요한 제약조건이 있는 상위 테이블과 병협되는 것을 막았다. 또한 상속되는 제약 조건과 NO INHERIT 하위 제약조건 간의 병합도 막았다.

  • pg_settings 뷰에서 보이는 값을 좀 더 읽기 편하게 바꿨음. min_wal_size, max_wal_size 설정의 unit 적용. (Tom Lane)

  • jsonb_set()에서 배열 요소 변경 처리 수정 (Tom Lane)

    대상 자료에서 해당 JSON 배열 요소가 이미 있으면, 새 값으로 바꾸지 않고, 삭제 함.

  • 버퍼 잠금 없이 튜플 가시성을 검사하는 것으로 자료 손실이 발생할 수 있는 아주 드문 상황을 수정함 (Thomas Munro, Peter Geoghegan, Tom Lane)

  • 서버 재 실행 시 커밋 시간 처리 부분 수정 (Julien Rouhaud, Craig Ringer)

    track_commit_timestamp 설정값이 on인 상태에서 정상적인 서버 재 시작 뒤 오래된 커밋 시간 조회가 비정상적일 수 있었음.

  • 서브트랜잭션의 WAL 출력이 디스크로 저장될 만큼 충분히 클 때, 논리적 WAL 디코딩 작업이 잘못 처리하던 부분을 고침. (Andres Freund)

  • 논리적 WAL 디코딩에서 잘못된 메모리 포인터 참조 문제를 고침. (Stas Kelvich)

  • 리눅스 huge 페이지를 사용하는 경우, 필요한 크기의 두 배를 요청하도록 바꿈 (Tom Lane)

    이 처리는 OS 기본 huge 페이지 크기가 정확하지 않은 시스템에서 munmap() 함수 처리가 실패할 경우를 막는다. 비정상 종료에 따른 복구 작업을 할 경우가 아니고는 로그 메시지 처리하는 작업 외에 다른 특별한 영향을 끼치지 않는다.

  • libpq 라이브러리를 이용한 다중 연결에서 SSL 컨텍스트를 공유하지 않음 (Heikki Linnakangas)

    다른 연결을 위해서 다른 SSL 매개변수를 사용하는 경우, 드물에 문제점이 발생했었다.

  • libpq 라이브러리의 발생하기 드문 메모리 누수 문제를 고침. (Tom Lane)

    이 문제는 PQreset() 사용 시 오류를 출력하는 부분에서 발생한다고 보고되었지만, 이 문제 외에도 더 있을 수 있었다.

  • pg_upgrade에서 로드 가능한 라이브러리를 이름 순으로 확인 함. (Tom Lane)

    언어 변환 모듈에서 그 기본 언어와 자료형 모듈을 참조할 때, 로드 되는 라이브러리들의 의존성이 교차 참조 되는 경우 문제가 생기는 것을 피하기 위한 방법이다.

  • pg_upgrade 명령에서 인덱스 접근 방법 확장 모듈이 있는 경우에 대한 처리를 고침 (Tom Lane)

    정상적으로 처리하려면, 서버가 ALTER EXTENSION ADD/DROP ACCESS METHOD 명령을 지원해야 한다. 이 기능은 사용자가 접근 방법을 지정할 수 있도록 한 것에 대한 지원 기능인데, 이전 버전에서 빼먹었다.

  • pg_upgrade 명령에서 파일 복사, 링크, 재기록 작업에서 발생하는 오류를 보다 자세히 보이도록 개선함 (Tom Lane, Álvaro Herrera)

  • 7.4 이전 버전에서 pg_dump 명령이 실행 되도록 고침 (Amit Langote, Tom Lane)

  • pg_rewind 명령에서 --source-server 옵션과 --source-target 옵션을 같이 쓸 수 없게 막음 (Michael Banck)

  • pg_rewind 명령을 사용할 때, 원본 서버에서 synchronous_commit 설정을 off 로 변경한다. (Michael Banck, Michael Paquier)

    이 정책은 원본 서버가 동기식 복제를 사용하고 있을 때도 pg_rewind 명령이 실행 될 수 있게 하기 위함이다.

  • pg_xlogdump 명령에서 --follow 옵션을 이용해서 다음 WAL 조각 파일들도 읽을 수 있도록 개선함 (Magnus Hagander)

    이 기능은 서버에서 다음 조각을 만들 때 지연이 생길 수 있다.

  • 업데이트 취소 작업이 있었던 튜플의 TID를 바르게 출력 할 수 있도록 contrib/pg_visibility 모듈 수정함. (Tom Lane)

  • PL/Python 빌드 작업에서 안정적으로 병렬 작업을 할 수 있도록 makefile을 수정함. (Pavel Raiskup)

  • 팔레스타인과 터키의 일광시간법 변경과, 터키와 러시아 일부 지역의 역사적 변경 사항들이 반영된 2016h tzdata 파일로 갱신함. 남극 대륙, 구 소련, 스리랑카 일부 지역 타임존 약어를 숫자로 바꿈.

    IANA 타임존 데이터베이스는 예전부터 모든 타임존의 약어로 글자로 된 약어를 제공했었다. 이 때, 지역 주민들 사이에, 극 소수로 사용하거나 사용하지 않는 경우에도 약어를 정했었다. 영어 약어를 실세계 안에서 사용되지 않는 경우 이 약어들을 그냥 UTC 옵셋으로 바꾸는 작업을 정책적으로 진행 중이다. 당분간, PostgreSQL에서는 이런 타임존 약어들을 계속 사용할 수 있지만, 앞으로는 pg_timezone_names 뷰와 그 외의 출력에서도 IANA 정책에 따라 없앨 예정이다.

    이번 업데이트에서는, 아르메니아 타임존의 의미로 쓰인 AMT 약어는 더 이상 사용되지 않는다 . 이 약어는 아마존 시간으로 사용된다. 따라서 타임존 자료에서는 UTC+4가 아니라, UTC-4로 변경했다.

[Top]
No.
제목
작성자
작성일
조회
9868PostgreSQL 9.6.4 나왔습니다.
김상기
2017-08-11
2467
9812PostgreSQL 9.6.3 나왔습니다.
김상기
2017-05-14
2725
9761PostgreSQL 9.6.2 나왔습니다.
김상기
2017-02-10
2887
9731PostgreSQL 9.6.1 나왔습니다.
김상기
2016-11-14
4226
9717PostgreSQL 9.6 나왔습니다.
김상기
2016-10-04
3164
9697PostgreSQL 9.5.4 나왔습니다.
김상기
2016-08-12
2988
9667PostgreSQL 9.5.3 나왔습니다.
김상기
2016-05-24
3314
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.051초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다