NodeJS에서 매일 밤 MongoDB를 백업하는 방법
일상 데이터를 백업하는 작업을 오후 11시 59분에 예약하는 방법과 명령줄에서 백업 데이터를 복원하는 방법을 설명하겠습니다.
MongoDB가 이미 설치되어 있는 경우 데이터베이스에서 로컬 파일 시스템으로 데이터를 내보낼 수 있는 mongodump라는 유틸리티를 사용할 수 있습니다.
mongodump --db=yourDatabaseName --archive=pathToStoreBackup/ --gzip
--db
데이터베이스 이름에 대한 인수--archive
출력 경로에 대한 인수--gzip
인수는 출력 파일을 gzip으로 압축합니다.Note: for more options like --username, --password, --host and --port please visit https://docs.mongodb.com/manual/tutorial/backup-and-restore-tools/
이제 이 명령을 실행하는 코드를 작성해야 합니다.
spawn = require('child_process').spawn
let backupProcess = spawn('mongodump', [
'--db=restaurantDB',
'--archive=.',
'--gzip'
]);
backupProcess.on('exit', (code, signal) => {
if(code)
console.log('Backup process exited with code ', code);
else if (signal)
console.error('Backup process was killed with singal ', signal);
else
console.log('Successfully backedup the database')
});
이제 이 일일 작업에
node-cron
패키지를 설치해야 합니다.npm install node-cron --save
이제 매일 오후 11시 59분에 작업을 실행하기 위한 코드를 작성해야 합니다.
const cron = require('node-cron')
let task = cron.schedule('59 23 * * *', () => {
cosnole.log('One minute before midnight!');
});
Note: if the argument "59 23 * * *" is not clear please visit https://www.npmjs.com/package/node-cron for more details
이제 두 조각을 합쳐야 합니다.
const cron = require('node-cron'), spawn = require('child_process').spawn;
let dbBackupTask = cron.schedule('59 23 * * *', () => {
let backupProcess = spawn('mongodump', [
'--db=restaurantDB',
'--archive=./db/backup/',
'--gzip'
]);
backupProcess.on('exit', (code, signal) => {
if(code)
console.log('Backup process exited with code ', code);
else if (signal)
console.error('Backup process was killed with singal ', signal);
else
console.log('Successfully backedup the database')
});
});
이제 백업 데이터를 복원하려는 경우이 명령을 실행하십시오.
mongorestore --gzip --archive=backupLockation/
결론
도움이 되셨기를 바랍니다! 질문이나 제안 사항이 있으면 댓글 섹션에 메시지를 남겨주세요
Reference
이 문제에 관하여(NodeJS에서 매일 밤 MongoDB를 백업하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/yasseryka/how-to-backup-mongodb-every-night-in-nodejs-257o텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)