db.users.update( { _id: ObjectId(«54d09446afcc44142c000001″) }, { $set: { account_token: null} } );
Архив рубрики: bd
not work service mongod start
may be:
- errors in /var/log/mongodb/mongod.log
- litle free disk spase (df -h)
- after:
rm -rf /mongo-testdata/mongod.lock
[root@shilov project]# chown -R mongod.mongod /mongo-testdata
[root@shilov project]# mongod —config /etc/mongod.conf
restore record mongoid
include Mongoid::Paranoia
c = Contest.find(«541088a753bb5660ad00041e»)
claim = c.claims.where(deleted_at: { ‘$ne’ => nil }).last
claim.restore
c.claims.where(deleted_at: { ‘$ne’ => nil }).to_a
Migration
script/generate migration NAMEOFMIGRATION
export RAILS_ENV=production / set export RAILS_ENV=production
rake db:migrate
errors
tail /var/log/messages -n 1000
tail /var/log/mongodb/mongod.log -n 10000
Commands
Model.all_in | Criteria#all_in
Adds a criterion that specifies values that must all match in order to return results. The corresponding MongoDB operation is $all.
MONGOID
# Match all people with Bond and 007 as aliases.
Person.all_in(aliases: [ "Bond", "007" ])
MONGODB QUERY SELECTOR Читать далее
after mongodump
chown -R mongodb.mongodb /var/lib/mongodb
dump and restore
Проверка с другой машины есть ли доступ к серверу
mongo —host 178.62.190.77 —port 27017
или
telnet 178.62.190.74 27017
service mongodb status
ps aux | grep mong
cd /tmp
mongodump -db project_db
zip -r dump.zip dump/
scp -r root@62.76.188.182:/tmp/dump.zip ./
unzip dump.zip
mongorestore dump/
или mongod —setParameter failIndexKeyTooLong=false —config /etc/mongod.conf
http://docs.mongodb.org/manual/reference/parameters/#param.failIndexKeyTooLong
mongo
top
# /etc/init.d/mongodb status
service mongod start
users
db.createUser( { user: «user», pwd: «password», roles: [ ] } )
http://docs.mongodb.org/manual/reference/method/db.createUser/
dump and restore
Создание дампа
Разберем пример простейшее использования, задампим базу данных «database» при помощи перенаправления потока в файл «database.sql»:
mysqldump -uroot -h82.82.82.82 -p database > database.sql
где:
- -u или -–user=… - имя пользователя
- -h или —host=… - удаленный хост (для локального хоста можно опустить этот параметр)
- -p или —password - запросить пароль
- database - имя базы данных
- database.sql - файл для дампа
Для того чтобы сделать дамп несколько баз данных, необходимо использовать параметр —databases (или сокращенно -B), пример:
mysqldump -uroot -h82.82.82.82 -p -B database1 database2 database3 > databases.sql
А для того чтобы сделать дамп всех баз данных, необходимо использовать параметр —all-databases (или сокращенно -A), пример:
mysqldump -uroot -h82.82.82.82 -p -A > all-databases.sql
Развертывание дампа
Перенаправляем поток в обратную сторону и развертываем базу данных:
mysql -uroot -h82.82.82.82 -p database < database.sql
Или через mysql-console:
mysql> use database;
mysql> source database.sql
Ну, а если у нас gz-архив к примеру, то:
zcat database.sql.gz | mysql -uroot -h82.82.82.82 -p database
Делаем бекап
mysqldump -u USER -pPASSWORD DATABASE > /path/to/file/dump.sql
Создаём структуру базы без данных
mysqldump --no-data - u USER -pPASSWORD DATABASE > /path/to/file/schema.sql
Если нужно сделать дамп только одной или нескольких таблиц
mysqldump -u USER -pPASSWORD DATABASE TABLE1 TABLE2 TABLE3 > dump.sql
Создаём бекап и сразу его архивируем
mysqldump -u USER -pPASSWORD DATABASE | gzip > /path/to/outputfile.sql.gz
Создание бекапа с указанием его даты
mysqldump -u USER -pPASSWORD DATABASE | gzip > `date +dump.sql.%Y%m%d.%H%M%S.gz`
-Q оборачивает имена обратными кавычками -c делает полную вставку, включая имена колонок -e делает расширенную вставку. Итоговый файл получается меньше и делается он чуть быстрее
mysqldump -Q -c -e -u USER -pPASSWORD DATABASE > /path/to/file/dump.sql
Сделать дамп базы blog. Для каждой записи в таблицу использовать отдельный insert.
$ mysqldump blog --extended-insert=FALSE
Сделать дамп таблицы но исползовать ограничение where
$ mysqldump my_super_shop_database shop_products --where="active=1"