PostgreSQL 7.2 ChangeLog
간단한 설치법및 업그레이드 방법은 다음 URL 을 참조하시기 바랍니다.
http://database.sarang.net/?inc=read&aid=3990&criteria=pgsql&subcrit=tutorials&record_idx=0&currpg=0
PostgreSQL 7.2 에서 변경된 사항들에 대해서 한번 알아 보도록 하겠습니다. 모든 부분을 다 다룰수는 없으며, 단지 저가 사용해 온 경험에 의존하여 말씀 드리도록 하겠습니다. 이하 존어는 생략토록 하겠습니다.
PostgreSQL 7.2 는 많은 논란 끝에 탄생한 버전 중의 하나입니다. 아직은 그 많은 논란 중 많은 부분을 다 반영하지는 못했지만 그런대로 쓸만한 DBMS 로 변경 중이라는 생각이 듭니다.
PostgreSQL 7.2 의 Release note 의 첫머리에 보면 다음과 같은 글이 있습니다.
This release improves PostgreSQL for use in high-volume applications.
그만큼 자신이 있다는 말일까요 :-) 저가 보기에는 그야 말로 hig-volume application 에서 사용하기 위해 향상되었다는 정도가 옳은 것 같습니다. 아직 VLDB 에 어울리는 DBMS 라는 생각은 들지 않습니다.
이제 주된 변동사항들을 살펴 보도록 합시다.
1. VACUUM -- 이제 vacuum 시에 더 이상 table lock 을 사용하지 않습니다. 그러므로 사용자들은 vacuum 중일지라도 얼마든지 정상적인 작업을 할수 있습니다.
2. Transaction -- four billion transaction 에도 별다른 문제점은 없다고 장담하고 있군요. :-)
3. OID's -- 이제는 사용자가 table 생성시에 OID 를 이용하지 않고도 생성할수 있습니다. OID's 사용이 옵션으로 바뀌었군요.
4. OPTIMIZATION -- 사용자가 "Analyze" 명령어를 실행하는 동안에 시스템은 column 통계에 대한 histogram 을 계산하여서 이것을 DBMS 최적화에 사용합니다.
5. Security -- 기존에는 MD5 encryption 을 지원하지 않았으나 이제는 MD5 암호를 password 에서 지원해 줍니다. Linux 와 BSD 에서 Unix-domain socket authentication option 을 사용할 수 있습니다.
6. Statistics -- 관리자는 새로운 테이블 접근 통계 모듈을 이용할수 있는데 이를 통해서 테이블과 인덱스 사용에 대한 정보를 얻을 수 있습니다. 물론 이것은 관리자에게 도움을 주겠지요.
7. Internalization -- Program 과 라이브러리 메시지가 몇개국 언어로 번역되어 제공되고 있습니다. confgure 시에 옵션에서 --enable-NLS=language 형식으로 옵션를 주셔야 합니다.
8. 그리고 7.2 버전의 Data 구조는 이전 버전과 호환이 되지 않으므로 반드시 pg_dump 를 통해 dump 받으시고, psql 을 이용하여 restore 시켜줘야 합니다.
9. "pg_hba.conf" 와 "pg_ident.conf" 파일은 이제 SIGHUP 시그널을 주어야만이 reload 시킵니다. 이전 버전까지는 DBMS 로 접속시마다 파일의 내용을 읽어 들였는데 이제는 그렇질 않다는 것을 알아 주시기 바랍니다. 즉 pg_bha.conf 와 pg_ident.conf 파일을 수정하였다면 postgresql 을 restart 시켜 줘야 한다는 것입니다. 물론 이에 대한 대책으로 pg_ctl reload 라는 옵션이 생겼습니다. pg_ctl 을 이용할 경우 이를 이용하시면 될 듯 합니다.
10. data/time 에서 current 를 이제 이용할수 없습니다. 만약 이것을 이용한 프로그램이 있다면 수정하시기 바랍니다.
11. timestamp() 라는 함수는 더 이상 사용되지 않습니다. 그 대신 tmestamp 문자열이나 또는 CAST 를 이용하시기 바랍니다.
12. GRANT/REVOKE 가 하나의 명령어에서 여러명의 사용자를 동시에 제어 할수 있도록 변경되었습니다.
13. non-superuser 사용자가 vacuum 명령어를 실행할수 있도록 변경되었습니다.
14. SET SESSION AUTHORIZATION 이라는 명령어가 신설되었습니다.
15. 사용자 조건문에서 expr=NULL 을 expr IS NULL 로 자동으로 변경하도록 되었습니다.
16. SHARE UPDATE EXCLUSIVE lock 모드가 추가되었습니다.
17. runtime 과 row counts 를 보여 줄수 있도록 EXPLAIN ANALYZER 명령어가 추가되었습니다.
18. temporary sequential 를 허용합니다.
19. sequence 에서 이제 내부적으로 int8 을 사용합니다. 이전의 int4 에 대해서 합리적으로 변경되었다는 생각이 드는군요.
20. TABLE 컬럼 형식에 SERIAL8 을 명시해 주면 int8의 sequence 를 생성합니다. 이직은 default 가 int4 의 sequence 를 생성하도록 되어 있습니다.
21. CHECK constraint 를 수정 또는 drop 할수 있습니다. ALTER TABLE/DROP CONSTRAINT 명령어를 통해서 할수 있습니다.
22. 이미 존재하는 함수에 대비해서 CREATE OR REPLACE FUNCTION 명령어가 가능합니다.
23. ALTER TABLE / ADD [ UNIQUE | PRIMARY ] 이 추가되었습니다.
24. view 내에서 컬럼 이름의 변경이 가능합니다.
25. 인덱스의 컬럼 이름을 변경하기 위해서 ALTER TABLE / RENAME COLUMN 를 사용할수 있습니다.
26. partial index 의 사용이 가능합니다.
27. RESET ALL/SHOW ALL 명령어가 추가되었습니다.
28. LOCK A, B, C functionality 추가
29. CREATE/ALTER USER 명령어에 ENCRYPTED/UNENCRYPTED option 추가
30. convert(), convert2() 함수가 추가되었습니다.
31. non-superuser 는 pg_statistic 테이블로 접근을 못하도록 되었습니다.
32. SELECT ... LIMIT #,# 구문은 다음 버전에서 없어질 예정입니다. 그 대신에 LIMIT 와 OFFSET 절을 명시해 주는 방식을 취할 예정이라고 합니다.
SELECT ... LIMIT 10 OFFSET 20;
이상이 대략적인 변동 사항입니다. 참고하시기 바랍니다. 시간 나면 차근차근 시간내어 설명을 드리도록 하겠습니다. :-)
|