안녕하세요.
저는 지금 PC Local Database에 있는 자료를 중앙서버로 싱크로나이징을 해야 하는데
select 문으로 불러서 일일히 insert를 시키려니 시간이 엄청 많이 걸리고 (자료가 때로는 1만개)
그러다보니 데이터의 신뢰도가 떨어지고 있습니다. 혹시 좀 추천해주실 만한 방법이 있으신지요.
Dblink를 사용해서 insert into ,,,, select 를 사용하는 것이 좋은 방법인가요?
고수님들의 조언을 부탁드립니다.
여러 방법이 있겠지만,
제일 간편한 방법은
psql로 로컬로 접속해서 \copy 명령으로 옮길 자료를 파일로 뽑고,
psql로 리모트로 접속해서, \copy 명령으로 해당 테이블에 넣습니다.
psql의 \copy 명령 사용법을 익혀보세요.
여튼 이 작업의 자동화가 필요하다면, 자동화 작업 스크립트를 작성해야겠지요.
그 스크립트는 생각보다 제공해야할 기능이 많습니다.
(만들어 보면서 시행착오를 겪어가면서 하나 하나 보완해가세요. 이런 것 안하려고 EAI 솔루션을 도입하거든요.)
이 부분은 만드는 분의 몫으로 남겨놓겠습니다.
EAI 솔루션이 무엇인가요?
그리고 이 자동화를 위한 스크립트를 작성하기 위한 샘플 코드 사이트 같은 것 추천해 주실만한 것이 있으시면 부탁드립니다.
그리고 제가 copy 명령을 로컬 컴퓨터에서 행하려고 아래와 같이 썼습니다.
copy (SELECT vcode, itemcnt FROM vcodes ) to 'd:\tmp\test.copy'
그런데 오류 메시지가 아래와 같이 자자작.. 뜨네요.. 어떻게 해결해야 하나요?
저는 VC++ 를 써서 프로그램을 작성하고 있습니다. 중앙 서버는 우분투 서버입니다.
그런데, 제가 초보다보니 psql로 로컬로 접속해서 \copy 명령으로 옮길 자료를 뽑는다는 것을 어떻게 해야 하는지 이해가 안됩니다.
참조가 될만한 한글(ㅠㅠ) 사이트가 있으시면 부탁드립니다.
EAI 쪽은 구글 검색만으로도 많이 나오고요,
copy 쪽은 경로를 d:/tmp/test.copy 식의 유닉스 방식으로 써보세요.