@shiftcode/backup-mongodb
v1.0.6
Published
## Implementação
Downloads
14
Readme
mongodb backup
Implementação
const backup = require('lib');
backup({
mongo: {
connectionString: 'mongodb://localhost:27017/dbname',
dest: '/home/bitnami/dump',
},
aws: {
accessKeyId: 'xxxxxxx',
secretAccessKey: 'xxxxxxx',
region: 'xxxxxxx',
bucket: 'xxxxxxx',
},
cron: { //se nao passar esse argumento, vai executar somente uma vez.
cronTime: '00 0 0 1 * *', // todo dia 1 de cada mes
timeZone: 'America/Sao_Paulo',
}
})
Preparando base de produção e homologação
Pra usar no EC2, é preciso criar o usuário na base admin também, com essa role (que deve ser criada tb):
1. Criar regra no db admin
(ao logar no mongo vc já está no admin por padrão):
use admin
db.createRole({
role: 'lockUnlock',
roles: [],
privileges: [
{
resource: {
cluster: true
},
actions: [
'fsync',
'unlock'
]
}
]
});
2. Criar usuário app na base admin com a regra lockUnlock
- Substitua xxx pelo nome da base alvo do backup;
- Se você estiver executando o backup em mais de uma base, adicione mais 3 regras (xxx) para a 2ª base incluindo as regras especificas para ela também.
db.createUser({
user: "app",
pwd: "entr3m0ng0",
roles: [
{
"role" : "userAdmin",
"db" : "xxx"
},
{
"role" : "dbAdmin",
"db" : "xxx"
},
{
"role" : "readWrite",
"db" : "xxx"
},
{
"role" : "lockUnlock",
"db" : "admin"
}
]
});
3. Caso o usuário app já exista no db admin, associe as regras faltantes a ele:
- Novamente, substitua o xxx com o nome da base desejada.
db.grantRolesToUser(
"app",
[
{
"role" : "userAdmin",
"db" : "xxx"
},
{
"role" : "dbAdmin",
"db" : "xxx"
},
{
"role" : "readWrite",
"db" : "xxx"
},
{
"role" : "lockUnlock",
"db" : "admin"
}
]
)