sql문을 loop로 돌리고 퇴근을 하다보면 Network error:Software caused connection abort라는 에러가 발생한다.
결국 마지막에 commit;을 하지 않고 퇴근하면 하루내내 돌린게 사라지는 magic을 경험하게 된다.
먼저 Network error: Software cuased connection abort를 해결하는 방법!
위와 같이 설정하고 좀더 확실하게 하고 싶으면 nohub을 이용하면 되는데 nohub을 이용하면 로그아웃 후에도 종료 없이 프로그램을 실행할 수 있다.
1) 실행하고 싶은 문들을 sql 파일로 만든다.
vi test.sql
set timing on; --얼마나 걸렸는지 시간 측정 SELECT count(*) FROM TB_SAMPLE01; --테이블 확인 명령어 commit; --테이블 적용 명령어 QUIT; --나가는 명령어 |
명령어 끝에는 quit;를 해주는 것이 좋다.
2) sql문 실행
일반 sql문과 비슷한데 맨 앞에는 nohup을 맨뒤에 &를 넣어주면 된다.
nohup sqlplus 접속할아이디/접속할비밀번호 @돌리고싶은sql &
ex) nohup sqlplus magicdb/magicdb @test.sql &^C
3) 잘 돌아갔는지 확인하기
엔터를 입력했을 때 실행이 다 되었으면 바로 Done으로 보이고 nohub으로 실행시킨후 내일 확인하고 싶을 때는 nohub.out파일을 확인하면 된다. 살펴보면 아래와 같이 잘 실행된 것을 확인할 수 있다.
* 실시간으로 nohub log 메세지 보는 법
tail -f ./nohup.out
tail은 문서의 끝부터 일정 라인을 보여주는 명령어, -f 옵션은 추가되는 내용을 보여줍니다.
tail 로그를 확인 중 나가고 싶으면 ctrl+c 하면 됩니다.
* nohub 종료
ps -ef로 해당 쉘 pid 확인해서 kill로 종료시키면 된다.
kill [pid of test.sh]
좀 더 정확히 확인하는 방법은
ps -ef | grep sqlplus 를 하면 test2가 @update.sql을 실행하고 있는것을 볼 수 있다. 그 pid를 kill 시키면 된다.
kill -9 5268 하면된다.
nohup으로 실행되고 있지 않으면 아래와 같다.
'DATABASE' 카테고리의 다른 글
Pg Admin에서 가상서버 postgres db 접속 테스트 (0) | 2021.08.31 |
---|---|
POSTGRES LOG FILE 생성하는 방법(linux) (0) | 2021.08.25 |
[DB Migration] WINDOW MSSQL Migration (0) | 2019.10.28 |
[DB Migration] Window Mariadb(mysql) Migration (0) | 2019.10.17 |
oracle primary key, foreign key (0) | 2019.04.15 |
댓글