본문 바로가기

PostgreSQL

PostgreSQL 입문기!

이직을 하게 되면서 postgresql을 처음으로 쓰게 됐습니다. 이 서두가 어언 1년전이네요 벌써 ㅎㅎ

 

맨처음에 MySQL, Oracle과는 또 다른 성격의 DBMS라 너무 적응하기 싫고 사용하기 싫었지만 Main DB가 PostgreSQL여서 어쩔 수 없이 쓰게 되었습니다. 하지만 지금은 postgreSQL만의 장점이 분명이 있다고 생각하고 특정 부분에서는 postgresql을 쓰는게 더 유용할 수도 있겠다!? 라는 생각도 들기 시작했습니다.

 

이 카테고리가 앞으로 어떻게 나아갈지 모르겠지만 제 생각대로 쓰게 될 것이고 뭔가 책처럼 순차적으로 나아가는 방향은 아닐 것 같네요.

설치, 아키텍쳐, 쿼리, 파라미터 등등등 뭐... 이런게 책의 내용이겠죠!???ㅎ 저렇게 쓸수도 있겠지만 뭐 생각나는대로~ 정해놓으면 오히려 더 싫어지더라구요!! 그리고 postgresql 공식문서도 뭐.. 딱히 정리되어 있다고 보기 어렵구요 ㅎㅎ

 

첫 글이니 만큼 길게 쓰진 않겠지만! 장점이자 불편한 점이라고 생각하는 점 하나만 짚고 넘어가겠습니다.

바로 Replication 방식. (나중에 디테일하게 쓰겄지만유)

 

PostgreSQL의 replication 방식은 Log Shipping/Stream Replication이 존재하고, Stream Replication엔 Sync, Async가 있습니다.

뭐 다들 아시다 싶이 Sync는 완전히 slave까지 sync하는 방식이지만 async는 master에서 진행하고 slave에 반영되는거 상관없이 쭉쭉쭉 쿼리를 받는 거라고 보시면 됩니다.

 

일반적인 MySQL만 쓰셨던 분들도 익숙한 방식이죠!? binary log를 통해 async를 쓰고 있으니까요. postgresql에게는 wal log가 있습니다.

 

다만, PostgreSQL는 postgresql 10이전까지 physical replication 방식을 사용했습니다. 이게 뭘까요!? 물리적으로 완전히 같은 상황이다. 라고 생각하면 됩니다. query의 statement가 남지 않고 transaction file을 가지고와서 recovery 한다! 라고 보면 될 것 같습니다.

 

자꾸 길어지니까 우선 이런 차이점이 있다라고 먼저 말씀드리고 끝내겠습니다!

 

위 내용으로 인한 제한사항은 CDC가 안될거고, Big Query나 search용의 Async Streaming이 제대로 안되겠쥬?? 우선 이정도로 끗!