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 Q&A 7445 게시물 읽기
No. 7445
7.3.4 >> 8.3.3 업그레이드
작성자
김지현
작성일
2008-06-19 17:54
조회수
6,757

안녕하세요.


4년간 사용하던 postgreSQL 7.3.4를 이번에야 업그레이드를 했습니다.


2달을 여기 데이타베이스사랑넷을 참고하여 여러가지 삽질을 하며 헤메던 끝에


postgreSQL 8.3.3으로 업그레이드를 완료했습니다.


테스트를 진행하며 다른 DB로의 변경도 생각할 만큼 어려운 점이 있었으나


데이터베이스사랑넷이 큰 도움이 되었습니다.


이에 간략하게나 작업내용을 적어봅니다.

(잘못된 내용이라면 자삭하겠습니다. -▽-)



환경 : centOS, PHP

기존 DB 문자셋 EUC-KR(postgreSQL 7.3.4)

업글 DB 문자셋 UTF-8(postgreSQL 8.3.3)



1. postgreSQL 8.3.3을 다른 서버나 작업 로컬에 다른 포트로 설치합니다.


2. postgreSQL 8.3.3 버전의 명령어를 이용하여 데이터를 덤프 받습니다.

   제 경우 pg_dumpall로 모두 받았습니다.


3. 치환작업(1)

   제 경우 덤프 파일 내용의 ' 문자가 \\' 식으로 입력이 되어 있더군요.

   8.?.? 버전부터 pg escape string로 사용되던 \문자를 사용할 수 없어  ' 문자로 바꾸는 작업을 했습니다.

   find . -name '덤프파일명' -exec perl -pi -e "s/\\\\\\\'/''/g" {} \;

   => DB에는 '' (single quotes 2EA)로 들어갑니다.


4. 치환작업(2)

   역시 제 덤프 파일 내용을 보니 " 문자가 \\" 식으로 되어 있어 " 식으로 변경했습니다.

   find . -name '덤프파일명' -exec perl -pi -e "s/\\\\\\\"/\\\"/g" {} \;

   => DB에는 " (dubble quotes 1EA)로 들어갑니다.


5. 치환작업(3)(기존 덤프파일 문자셋이 EUC-KR인 경우)

   덤프파일 내에 SET client_encoding = 'EUC_KR';  => 이부분에 EUC_KR을 UTF-8로 바꾼 경우입니다.

   데이타에 관련 내용이 존제하면 아래 치환하는 조건을 좀거 세밀하게 줘야겠지요.

   find . -name '덤프파일명' -exec perl -pi -e "s/EUC_KR/UTF-8/g" {} \;


6. 덤프파일 분할(기존 덤프파일 문자셋이 EUC-KR인 경우)

   덤프파일 용량이 큰경우 iconv 사용에 문제가 있어서 나눠서 했습니다.

   1G좀 넘게 넘어가면 그러더군요.

   split -b 1000m [파일명]   (1G 단위로 나눴습니다.)

  

5. 문자셋 변경

   iconv -c -f cp949 -t utf8 [원본파일] > [변환파일]


6. 파일 합침

   cat [분할파일명들] > [합쳐질 파일명]


7. restore 잘들어갔습니다. -0-;;

   이전에 확인할 내용은

   server_encoding는 UTF-8 이여야하며

   client_encoding는 UHC 여야 합니다.

   나중에 해도 상관 없던거 같기도 했습니다.


마지막으로 pg escape string이  \에서 '으로 변경되어

PHP.ini 설정을 조금 변경해 주었습니다.


magic_quotes_sybase = on ( \ => ' 로 처리)



다른 작업 부분은 제외하고 DB 덤프 부분에 대해서만 적어 봤습니다.


혹시 제가 빼먹고 처리한 부분이 있을까요?


제가 많이 부족하지만 도움이 될가 적어봅니다.


많은 분들이 향상된 8.3.x버전을 이용하셨으면 좋겠습니다




  

이 글에 대한 댓글이 총 1건 있습니다.

감사합니다. ^^

박성철(gyumee)님이 2008-06-19 18:58에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
7449마이그레이션 : 오라클 to Postgres Plus Advanced Server [1]
윤태영
2008-06-25
8743
7447order by에 관한 질문입니다. [1]
Choi
2008-06-23
6016
7446insert 후 select만 일어날때 어떤 DBMS가 가장 빠를까요? [3]
도재영
2008-06-21
7564
74457.3.4 >> 8.3.3 업그레이드 [1]
김지현
2008-06-19
6757
7443PostgreSQL lib를 이용한 코딩중 PQexec()함수를 쓰는데... [3]
영광
2008-06-17
6479
7442postgreSQL은 MySQL보다 너무 느리다.?? [4]
성실
2008-06-13
7201
7441CREATE USER 시 사용자가 있는지 검사한 후 사용자 생성방법? [2]
김대청
2008-06-07
6624
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다