안녕하세요.
이번에 업그레이드 테스트를 해보려고 하는데,
혹시 참고할만한 사이트나 자세하게 나와있는 사이트 아시는것 있으시면 추천좀 부탁 드립니다.
감사합니다.
pg_upgrade로 검색하면 많이 나오고 메뉴얼만 봐도 충분합니다
복잡하지는 않습니다 기본적으로
말씀해주신데로 검색하고 메뉴얼을 봤는데..
전 메뉴얼 처럼 진행이 되질 않습니다.....
어느 부분에서 막히는지에 대한 정보가 필요합니다. 에러나...
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
경로가 다르다고 나오는데요..ㅜㅜ
저 경로가 맞는데.. 이해가 안가네요ㅠㅠ
일단 올려주긴 것만 봐서는 정확하게는 파악하지는 못하겠지만
1) 기존 것 backup은 필수
2) --check 옵션을 먼저 사용하여 수행
3) -U postgres User입력
4) pg_hba.conf에 trust로 되어 있거나 .pgpass가 등록되었는지
port는 궂이 안적어도 됩니다.
이에 해당되는 내용중에 걸리는 부분을 찾아보세요
걸리는것이 설치 방식인데요..
9.3.16은 wget으로 받아서 압축풀고 make world 이런식으로 설치를했는데,
9.6.3은 rpm을 받아서 설치하고 initDB를 진행하는 식으로 했는데,
설치 방식이 달라서 그런걸까요..
update시 check하는 것은
version이 다른지 check하고
그 다음에는 install user를 check합니다.
install user를 명시해보고 하시고요 9.6의 data는 초기구성한상태 그대로여야 합니다.
Install User을 체크한다고 하신것이 OS User 말씀하시는 건가요~?
OS User는 postgres 인데..
9.3.16과 9.6.3 같은 User로 설치하면 안되는 것인가요~?..
같은 유저면 문제없을거고요..
메뉴얼을 보고 차분히 해보세요
DB도 둘 다 내려가 있어야 합니다.
https://www.postgresql.org/docs/9.6/static/pgupgrade.html
이게 말씀하시는 메뉴얼 맞는거죠~?
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 옵션에 지정할 클러스터를 새로 만들어서 시도해 보세요.
제가 지금 다시 해보면서 생각한건데..
9.3.16을 설치할때 postgres 계정으로 설치를 진행하는데
이 계정에 .bash_profile 을 보면 PG_HOME 같은것을 지정하잖아요
그러면 9.6.3을 설치할땐 같은 계정으로 해도 상관없는건가요?
.bash_profile을 수정하고 설치해야 하나요?
옵션에서 지정을 별도로 해주시면 환경변수를 안따라가기 때문에 크게 문제는 없어보입니다.
문제점을 찾았습니다.
설치할때 옵션지정은 당연히 해주는데..
9.6.3을 설치하면
psql 로 접속을하면 9.3.16으로 나옵니다..
그렇다면 pg_upgrade수행 할때 9.3 binary로 했을 확률이 높습니다.
pg_upgrade 수행할 때 9.6 binary에 해당하는 pg_upgrade를 절대 경로로 실행 시켜보세요
하위 version pg_upgrade로 수행하면 진행이 안됩니다.
그냥 깔끔하게 9.6 설치할때는 .bash_profile을 전부 수정해서 새로운 경로에 되도록 하니 정상적을오 upgrade 되었습니다..
pg_upgrade 자체는 정말 간단한거 같은데..
경로 지정이 햇갈리네요..
지금은 source를 다운받아 설치하는 식으로 진행했지만..
실제로는 yum으로 설치하여 진행해야 하는데..
그럼 bin 디렉토리도 /usr/pgsql-9.6 이런식으로 자동으로 되어지던데요ㅠㅠ
따로 특별하게 컴파일 하실것이 아니시라면 바이너리 설치를 통해 경로를 지정해서 설치하는 것을 권고드립니다.
바이너리 설치라는게.. 어떻게 설치하는것을 말씀하시는건가요..?
알아서 경로가 잡히는 것을 말씀하시는 건가요..?
EDB나 다른 회사에서 제공하는 PostgreSQL 소스를 최적화해서 바이너리 파일로 만들어논거입니다.
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
저는 대충 위의 방식으로 설치하는데.. 저것은 무슨방식인가요
소스 컴파일이죠
설치는 크게 rpm설치, 소스 설치, 바이너리 설치가 있고요
소스의 경우 원하는 입맛대로 설치할 수 있다는 장점이있는거죠
그럼 바이너리설치는 어떻게 하는건지.. 예문같은게 잇나요~?
EDB 홈페이지에 들가셔서 가입하고 download하고 설치하면 됩니다.
설치경로만 설치할때 지정해주면 알아서 깔립니다.
오호 간단한거였군요 ..ㅎㅎ
끝까지 치절한 답변 감사드립니다!