Windows 7 작업 일정/mysqldump

Windows 7 작업 일정/mysqldump

데이터베이스 덤프를 생성하고 파일 이름의 일부로 현재 날짜가 포함된 파일에 저장하기 위해 배치 파일을 만들었습니다. 배치 파일은 훌륭하게 작동하며 모든 데이터가 올바르게 저장됩니다.

이제 매주 이 작업을 수행하도록 예약된 작업을 설정하려고 시도했지만 문제에 봉착했습니다. 작업이 실행되지만 생성된 파일은 마치 원격 데이터베이스에서 데이터를 가져오지 않은 것처럼 비어 있습니다. 꽤 모호하다는 건 알지만, 이유/해결책을 어디에서 찾기 시작할지 아무도 알 수 없나요?

** 편집하다 **

그렇군요. 더 많은 진전이 있었습니다. 경로 문제인 것 같습니다. 배치 파일에 일시 중지를 설정하고 작업 스케줄러를 실행하면 'mysqldump는 인식되는 프로그램이 아닙니다'라는 메시지가 나타납니다. 그러나 내 사용자 계정에서 명령줄을 실행하면 정상적으로 작동합니다. 확인을 위해 테스트했던 것과 동일한 사용자 계정에서 실행되도록 설정했습니다.

** 편집 2 **

나는 일종의 해결책을 찾았습니다. mysqldump 애플리케이션을 절대 경로로 참조해야 했습니다. 그러나 명령줄에서 직접 실행할 때는 경로에서 mysqldump를 찾을 수 있지만 작업 스케줄러를 통해 자동화할 때는 찾을 수 없는 이유를 여전히 이해할 수 없습니다.

답변1

어쩌면 네트워크를 사용할 수 없었을까요? 5/10분마다 실행되도록 예약하고 명령/변수가 올바르게 작동하는지 확인할 수 있습니다. 한 번에 하나의 명령만 실행하는 것이 아니라 전체적으로 실행할 때 스크립트가 올바르게 실행되는지 확인합니까?


편집 2에서 : mysqldump가 환경 변수에없는 것 같습니다 PATH. 추가하고 다시 시도해 보세요.

답변2

상세 모드에서 mysqldump(예약된 작업에서)를 실행해 보셨나요? (--말 수가 많은)

또한 작업이 어떤 사용자로 실행되고 있는지 살펴보고 해당 사용자에게 mysqldump를 실행하고 대상 디렉터리에 파일을 생성할 수 있는 권한이 있는지 확인하세요.

답변3

  1. 절대 경로를 제공하면 문제가 해결된 경우 빈 파일을 생성할 수 없습니다. 대신 Windows 스케줄러 로그로 생성된 파일에는 작업 성공이 표시되지 않습니다.

  2. 경로 변수가 mysqldump.exe에 대한 경로 정보를 보유하는 경우 스크립트가 명령줄에서 작동할 수 있습니다. 명령줄에 "path" 명령을 입력하여 확인하세요.

  3. 참고로 여기에는 제가 mysql 백업에 사용한 샘플 배치 파일이 있습니다.

@에코 꺼짐
SET DB_USER_ID=[ID]  
SET DB_USER_PASS=[비밀번호]
SET DATABASE=[데이터베이스 이름]
SET EXP_PATH=[백업 경로]
SET EXP_TMP_PATH=[임시 경로]
SET FILE_NAME=[백업 파일 이름]
For /f "tokens=1-3 delims=- " %%a in ('date /t') do (오늘 설정=%%a-%%b-%%c)

델 /S /Q %EXP_PATH%
MD %EXP_PATH%
MD %EXP_TMP_PATH%

C:\Bitnami\redmine-2.5.2-0\mysql\bin\mysqldump.exe -u%DB_USER_ID% -p%DB_USER_PASS% %DATABASE% > %EXP_TMP_PATH%\%FILE_NAME%_%today%.sql
%EXP_TMP_PATH%\%FILE_NAME%_%today%.sql %EXP_PATH%\%FILE_NAME%_%today%.sql 이동

관련 정보