
Добавить пользователя с максимальными правами
x
6
1
use admin
2
db.createUser(
3
{ user: "username",
4
pwd: "password",
5
6
roles:[{role: "root" , db:"admin"}]})
Обновить пользователя, например роль
xxxxxxxxxx
1
8
1
db.updateUser( "username",
2
{
3
4
roles : [
5
{ role : "read", db : "database" }
6
]
7
}
8
)
Часто используемые комманды
xxxxxxxxxx
1
3
1
rs.printSecondaryReplicationInfo() #показать статус репликации
2
show users # посмотреть всех пользователей, запускается на мастер ноде
3
db.changeUserPassword("accountUser", "SOh3TbYhx8ypJPxmt1oOfL") #смена пароля
Подключения к базе без сортировки
xxxxxxxxxx
1
1
1
db.currentOp(true).inprog.forEach(function(d){if (d.client)printjson(d.client)})
Подключения к базе с сортировкой по IP
xxxxxxxxxx
1
1
1
db.currentOp(true).inprog.reduce((accumulator, connection) => { ipaddress = connection.client ? connection.client.split(":")[0] : "unknown"; accumulator[ipaddress] = (accumulator[ipaddress] || 0) + 1; accumulator["TOTAL_CONNECTION_COUNT"]++; return accumulator; }, { TOTAL_CONNECTION_COUNT: 0 })
Backup/Restore и архив
Backup RepliceSet в secondary ноды в архив с Oplog с записью лога
Shell
xxxxxxxxxx
1
1
1
mongodump --uri="mongodb://username:password@host1:27017,host2:27017,host3:27017/?replicaSet=rs_name&readPreference=secondary" --oplog --archive="file_patch" 1> log patch 2>&1
Восстановление из архива определенной базы
xxxxxxxxxx
1
1
1
mongorestore --username username mongodb://host_target:27017 --archive="archive_patch" --nsInclude="Database.*"
Профилирование
xxxxxxxxxx
1
2
1
db.getProfilingStatus(); # посмотреть настройки профилирования
2
db.setProfilingLevel(0, 2500) # изменить настройки на более 2500 мс
Ротирование лога
xxxxxxxxxx
1
1
1
db.adminCommand( { logRotate : 1 } ) # пересоздает файл журнала
Безопасная остановка сервера
xxxxxxxxxx
1
1
1
db.shutdownServer()
Побита база, служба останавливается и падает. Добавьте значение в свойства службы, чтобы она не падала по timeout, есть вероятно, что через несколько часов база восстановится
Shell
xxxxxxxxxx
1
1
1
TimeoutSec=0
"priority" на выборах
xxxxxxxxxx
1
3
1
cfg = rs.conf() # смотрим текущие значения
2
cfg.members[0].priority = 2 # повышаем приоритет ноды 0
3
rs.reconfig(cfg) # применяем изменения
Посмотреть текущие подключения
xxxxxxxxxx
1
1
1
db.currentOp(true).inprog.reduce((accumulator, connection) => { ipaddress = connection.client ? connection.client.split(":")[0] : "unknown"; accumulator[ipaddress] = (accumulator[ipaddress] || 0) + 1; accumulator["TOTAL_CONNECTION_COUNT"]++; return accumulator; }, { TOTAL_CONNECTION_COUNT: 0 })
Удалить все документы
xxxxxxxxxx
1
4
1
use sample_mflix
2
db.humans_bureau_creditreports.deleteMany({})
3
4
https://www.mongodb.com/docs/mongodb-shell/crud/delete/