테스트를 위하여
2억개 데이터를 인서트 중이다
csv파일을 dbeaver 를 이용하여 넣었었는데 상당히 오래걸리고 하루가 지나도 다 인서트가 안되며 결국 에러가 났었다
(그때 당시 에러는 캐시파일 용량이 어쩌고.. 근데 캐시 용량을 늘리더라도 또 에러가 날지 안날지 모르고요~ 에러나면 하나도 커밋 안되고 다 롤백되는게 문제였다.)
dbeaver로 넣었을 때 또 다른 문제점이 있다
회사 내부망 서버라서 VDI로 접속해야 접근이 가능한데
VDI가 끊기면 ... 인서트중인것도 날라간다는 것
그래서 서버에서 계속 실행되길 원했다
파이썬 코드 짜구
nohup 명령어 & 로 실행해놓음
nohup python path/insert_batch.py > dev/null &
db서버는 내 서버가 아닌데
내가 하는 작업이 위험한 작업이라고 느껴졌고
혹시 서버가 고장날지도 모른단 생각에...
내 서버에 오라클 설치부터 하였다.
내 리눅스 서버에 오라클 설치해서 거기에 인서트해두고 삭제 배치 돌려서 테스트할라고...
작업하다가 문제가 아주 많이 생겼다
다행히 다 해결되었고 아직 인서트중이다 (방금 돌림,, 3시간 소요예상중)
오라클 설치도 3일정도 걸리구
인서트를 위한 파이썬 코드는 2일정도
아래 링크는 오라클 설치에 관하여 정리한 글임
Rocky Linux 8.10에 오라클 19c 설치하기 (Silent 모드)
리눅스에 오라클을 설치했다잘 몰라서 찾아보면서 맨땅에 헤딩함 다음번에 또 설치해야 할 수 있으니 정리!! oracle 계정과 그룹 생성# 그룹 생성sudo groupadd oinstall # 사용자 생성oracle
harang011226.tistory.com
인서트 코드짜는건 비교적 쉽게 금방 끝낼 수 있었다.
그런데 내가 처음에 대충 짠 코드를 돌려놓고 모니터링 제대로 안했다가
서버가 아예 죽었다..ㅋㅋ
메모리를 많이 써서 스왑메모리까지 쓸 정도였는데 그걸 보고도 안일하게 생각했었는데,,
그때 프로세스를 죽였어야 했다
자원을 너무 많이 쓰고 메모리가 계속 올라서 그런 것 같다
자원반환이 제대로 안된듯 했다
어제 저녁에 서버가 죽어서 작업을 못했고..
오늘 설날인데 본사 가서 물리서버 재부팅하고 왔다
아무도 없어서 눈치보임(?) 나쁜짓 하러 온것도 아닌데
인서트는
multiprocessing.Pool 로 4개 프로세스로 돌렸었다
그런데 생각해보니 같은 테이블에 인서트라 어차피 락 걸려서 안될듯싶어서 아예 multiprocessing 모듈을 안쓰구 한개만 돌게끔 수정함
또 파일 한개에 1억 9천만개 데이터가 다 있었는데,
그거를 파일 20개로 나눴다.
물론 그 파일 20개로 나누는 작업도 코드 짜서 돌림^^
정규표현식 이용해서 분할한 파일 20개의 경로들을 리스트로 가져와서 한개씩 for문 돌며
파일 하나씩 읽고 인서트하는거로 바꿨다
설날 내내 거의 이것만 붙잡고 있었는데 해결되어서 천만다행이다 ㅋㅋ
이제 삭제 배치를 테스트해봐야겠지만...^__^
주말에도 화이탱..
금욜에 메일로 보낼 작업계획서랑
금욜에 거래처 가서 볼 것들도 확인해봐야하네......
거래처 개발서버에서 테스트중인데 잘 안되서 설 전에 로그 다 찍어뒀는데
으아 확인하기 싫다ㅋㅋ
설날에 어디 안갔는데 전혀 심심하지 않았다
오히려 시간이 부족했다
조금만 더 줘라ㅠ
'기타' 카테고리의 다른 글
유니티6 게임 개발 후 WebGL 배포하기 - 니꼬쌤 강의 😎 (김치런 게임 만들기) (0) | 2025.01.30 |
---|---|
해외 진짜 가고만다 (0) | 2024.12.26 |
또 다시 첫출근! (0) | 2024.05.13 |
😭 (0) | 2024.05.07 |
담주에 첫출근🙌 (0) | 2024.05.02 |