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/

결론



도움이 되셨기를 바랍니다! 질문이나 제안 사항이 있으면 댓글 섹션에 메시지를 남겨주세요

좋은 웹페이지 즐겨찾기