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 9861 게시물 읽기
No. 9861
postgresql upgrade 9.3.16 to 9.6.3
작성자
검콤이(검콤이)
작성일
2017-07-14 13:40
조회수
8,425

안녕하세요.

이번에 업그레이드 테스트를 해보려고 하는데,

혹시 참고할만한 사이트나 자세하게 나와있는 사이트 아시는것 있으시면 추천좀 부탁 드립니다.

 

감사합니다.

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

pg_upgrade로 검색하면 많이 나오고 메뉴얼만 봐도 충분합니다

 

복잡하지는 않습니다 기본적으로

김주왕(kimjuking)님이 2017-07-14 13:53에 작성한 댓글입니다.

말씀해주신데로 검색하고 메뉴얼을 봤는데..

전 메뉴얼 처럼 진행이 되질 않습니다.....

검콤이(검콤이)님이 2017-07-17 17:46에 작성한 댓글입니다.

어느 부분에서 막히는지에 대한 정보가 필요합니다. 에러나...

김주왕(kimjuking)님이 2017-07-17 17:51에 작성한 댓글입니다.

pg_upgrade -b /usr/local/pgsql/bin -B /usr/pgsql-9.6/bin -d /PG_DATA/MST_DATA -D /PG_DATA96/MST_DATA -P 5432 -p 5436

 

이렇게 진행을 하게되면..

 

Performing Consistency Checks

-----------------------------

Checking cluster versions

New cluster data and binary directories are from different major versions.

Failure, exiting

 

경로가 다르다고 나오는데요..ㅜㅜ

저 경로가 맞는데.. 이해가 안가네요ㅠㅠ

검콤이(검콤이)님이 2017-07-18 13:57에 작성한 댓글입니다.

일단 올려주긴 것만 봐서는 정확하게는 파악하지는 못하겠지만

 

1) 기존 것 backup은 필수

2) --check 옵션을 먼저 사용하여 수행

3) -U postgres User입력

4) pg_hba.conf에 trust로 되어 있거나 .pgpass가 등록되었는지

port는 궂이 안적어도 됩니다.

 

이에 해당되는 내용중에 걸리는 부분을 찾아보세요

 

김주왕(kimjuking)님이 2017-07-18 16:11에 작성한 댓글입니다.
이 댓글은 2017-07-18 16:11에 마지막으로 수정되었습니다.

걸리는것이 설치 방식인데요..

9.3.16은 wget으로 받아서 압축풀고 make world 이런식으로 설치를했는데,

9.6.3은 rpm을 받아서 설치하고 initDB를 진행하는 식으로 했는데,

설치 방식이 달라서 그런걸까요..

검콤이(검콤이)님이 2017-07-18 16:52에 작성한 댓글입니다.

update시 check하는 것은

version이 다른지 check하고

그 다음에는 install user를 check합니다.

install user를 명시해보고 하시고요 9.6의 data는 초기구성한상태 그대로여야 합니다.

김주왕(kimjuking)님이 2017-07-18 17:24에 작성한 댓글입니다.

Install User을 체크한다고 하신것이 OS User 말씀하시는 건가요~?

OS User는 postgres 인데..

9.3.16과 9.6.3 같은 User로 설치하면 안되는 것인가요~?..

검콤이(검콤이)님이 2017-07-18 17:34에 작성한 댓글입니다.

같은 유저면 문제없을거고요..

메뉴얼을 보고 차분히 해보세요

DB도 둘 다 내려가 있어야 합니다.

김주왕(kimjuking)님이 2017-07-18 17:40에 작성한 댓글입니다.

https://www.postgresql.org/docs/9.6/static/pgupgrade.html

 

이게 말씀하시는 메뉴얼 맞는거죠~?

검콤이(검콤이)님이 2017-07-18 18:00에 작성한 댓글입니다.

For example:
  pg_upgrade -d oldCluster/data -D newCluster/data -b oldCluster/bin -B newCluster/bin
or
  $ export PGDATAOLD=oldCluster/data
  $ export PGDATANEW=newCluster/data
  $ export PGBINOLD=oldCluster/bin
  $ export PGBINNEW=newCluster/bin
  $ pg_upgrade
 

도움말에서 나오는 것 처럼,

-B 옵션에 지정한 db 엔진과, -D 옵션에서 지정한 디비 클러스터가 서로 버전이 다르다고 하는 오류였습니다.

 

-B 옵션에 지정한 경로의 initdb 명령으로 -D 옵션에 지정할 클러스터를 새로 만들어서 시도해 보세요.

김상기(ioseph)님이 2017-07-18 18:22에 작성한 댓글입니다.

제가 지금 다시 해보면서 생각한건데..

9.3.16을 설치할때 postgres 계정으로 설치를 진행하는데

이 계정에 .bash_profile 을 보면 PG_HOME 같은것을 지정하잖아요

그러면 9.6.3을 설치할땐 같은 계정으로 해도 상관없는건가요?

.bash_profile을 수정하고 설치해야 하나요?

검콤이(검콤이)님이 2017-07-20 10:02에 작성한 댓글입니다.

옵션에서 지정을 별도로 해주시면 환경변수를 안따라가기 때문에 크게 문제는 없어보입니다.

김주왕(kimjuking)님이 2017-07-20 10:28에 작성한 댓글입니다.

문제점을 찾았습니다.

설치할때 옵션지정은 당연히 해주는데..

9.6.3을 설치하면

psql 로 접속을하면 9.3.16으로 나옵니다..

검콤이(검콤이)님이 2017-07-20 10:40에 작성한 댓글입니다.

그렇다면 pg_upgrade수행 할때 9.3 binary로 했을 확률이 높습니다.

 

pg_upgrade 수행할 때 9.6 binary에 해당하는 pg_upgrade를 절대 경로로 실행 시켜보세요

 

하위 version pg_upgrade로 수행하면 진행이 안됩니다.

김주왕(kimjuking)님이 2017-07-20 10:53에 작성한 댓글입니다.
이 댓글은 2017-07-20 10:54에 마지막으로 수정되었습니다.

그냥 깔끔하게 9.6 설치할때는 .bash_profile을 전부 수정해서 새로운 경로에 되도록 하니 정상적을오 upgrade 되었습니다..

pg_upgrade 자체는 정말 간단한거 같은데..

경로 지정이 햇갈리네요..

지금은 source를 다운받아 설치하는 식으로 진행했지만..

실제로는 yum으로 설치하여 진행해야 하는데..

그럼 bin 디렉토리도 /usr/pgsql-9.6 이런식으로 자동으로 되어지던데요ㅠㅠ

검콤이(검콤이)님이 2017-07-20 11:12에 작성한 댓글입니다.

따로 특별하게 컴파일 하실것이 아니시라면 바이너리 설치를 통해 경로를 지정해서 설치하는 것을 권고드립니다.

김주왕(kimjuking)님이 2017-07-20 11:28에 작성한 댓글입니다.

바이너리 설치라는게.. 어떻게 설치하는것을 말씀하시는건가요..?

알아서 경로가 잡히는 것을 말씀하시는 건가요..?

검콤이(검콤이)님이 2017-07-20 13:07에 작성한 댓글입니다.
이 댓글은 2017-07-20 13:08에 마지막으로 수정되었습니다.

EDB나 다른 회사에서 제공하는 PostgreSQL 소스를 최적화해서 바이너리 파일로 만들어논거입니다.

김주왕(kimjuking)님이 2017-07-20 13:50에 작성한 댓글입니다.

cd && mkdir soft && cd soft

wget https://ftp.postgresql.org/pub/source/v9.3.5/postgresql-9.3.5.tar.gz

tar xvzf postgresql-9.3.5.tar.gz

cd postgresql-9.3.5

./configure --prefix=/usr/local/pgsql --enable-nls --with-perl --with-libxml --with-pam --with-openssl

make world

make install-world

 

[root] EXECUTE COMMAND

echo "include /usr/local/pgsql/lib" >> /etc/ld.so.conf

/sbin/ldconfig

 

[postgres] EXECUTE COMMAND

locale=C

initdb -D $PGDATA -E UTF8 --locale=ko_KR.utf8 -U pgdba -W -X $PGXLOG

 

 

저는 대충 위의 방식으로 설치하는데.. 저것은 무슨방식인가요

검콤이(검콤이)님이 2017-07-20 14:11에 작성한 댓글입니다.
이 댓글은 2017-07-20 14:11에 마지막으로 수정되었습니다.

소스 컴파일이죠

 

설치는 크게 rpm설치, 소스 설치, 바이너리 설치가 있고요

 

소스의 경우 원하는 입맛대로 설치할 수 있다는 장점이있는거죠

김주왕(kimjuking)님이 2017-07-20 14:19에 작성한 댓글입니다.

그럼 바이너리설치는 어떻게 하는건지.. 예문같은게 잇나요~?

검콤이(검콤이)님이 2017-07-20 15:20에 작성한 댓글입니다.

EDB 홈페이지에 들가셔서 가입하고 download하고 설치하면 됩니다.

설치경로만 설치할때 지정해주면 알아서 깔립니다.

김주왕(kimjuking)님이 2017-07-20 15:43에 작성한 댓글입니다.

오호 간단한거였군요 ..ㅎㅎ

끝까지 치절한 답변 감사드립니다!

검콤이(검콤이)님이 2017-07-20 16:27에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
9865PostgreSQL 에도 remap_table 같은 기능이 있나요? [4]
검콤이
2017-07-31
7628
98641억건 table의 partition 구성을 준비중입니다. [2]
김은경
2017-07-24
8963
9863PostgreSQL / MySQL Benchmark Tool [4]
컴공
2017-07-18
8440
9861postgresql upgrade 9.3.16 to 9.6.3 [24]
검콤이
2017-07-14
8425
9860테이블스페이스 생성시 왜 이런 에러가 잘까요?? [1]
억규
2017-07-06
8070
9859postgresql default 계정 패스워드가 변경된 상황..? [3]
검콤이
2017-07-04
8318
9858postgres 데이터 타입 중 int형 [1]
postgres
2017-06-30
8577
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다