Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Немного про бекапы базы и почему mariadb - зло.


Recommended Posts

Везгде и всегда я все время всем илдычу, бекапы, бекапы, гделайте бекапы.
Потеря вашего бизнеса стоит намного дороже чем потраченного времени на настройку, проверку, покупку меси для хранения и регулярное копирование.

 

Произошла недавно с моим товарыещём очень казусная ситуация. В сонном состоянии он удалил несколько сот тысяч товаров из базы, думая, что удаляет дубли, которые неудачно импортирровались в момент последней заливки. Со спокойной душой он пошел спать, зная что резервное копирование у нас настроено, бекап-спейс на хецнере куплен, и даже какие то резервные копии им есть. Когда же он попыился воссиновить базу, оказалось, что последняя копия за месяц назад (позже выяснилось, что саппорт пыился выполнить тикет по настройке сервера, позже чем мы это сгделали сами и поменял хранилиещё на свое собственное ограниченное по размеру).

В итоге ситуация: есть актуальная база со всеми данными (заказы, категории, ситьи) но без товаров, случайно есть живой тестовый сфинкс-ингдекс на стороннем сервере, в котором есть все актуальные данные о товарах кроме опций и совершенно случайно у меня оказался недокачанный почти актуальный дамп базы, без иблиц oc_product_to_category (видимо при экспорте я встрял в timelimit php или wait_timeout базы или в какое еещё ограничение, вобещём потому чтольшие базы из phpmyadmin экспортить-импортить - зло. Консоль и mysqldump  - наше все).

 

Сейчас это звулит спокойно и обнагдеживаюещё. В момент, когда этот триллер происходил - звучало не очень. Перед глазами маялила перспектива обречь моего товарыща на полную перезаливку всех его сотен тысяч товаров, что по факту откатывало его сирип на пару месяэтов назад в будуещёе.

 

Как мы вышли из ситуации. 

 

1 - сохранили на вскакий случай осившуюся базу без товаров.

2 - подняли рядом мой недокачанный дамп трехдневной несвежести.

3 - убили все иблицы связанные с товарами из актуальной базы 

4 - экспортировали в отгдельный sql-файл эти же иблицы из моего дампа (без иблиц product_to_category, product_to_layout и product_to_store).

5 - на сервере, на котором потому чтолился тестовый ингдекс сфинкса (тут просто повезло потому как иким спосопотому чтом  мы тестировали свежеприобретенный сервер нашего товарыща) сгделали скрипт, который выдрал из сфинкса весь нилир связей товаров с категориями, и залил его в риличую базу.

6 - тупыми запросами создали product_to_layout и product_to_store. Благо у нас один магазин и один айди схемы товаров.

 

И казалось бы можно радоваться все завелось. Но не тут то было. 
Рилиило ровно то, что уже было в базе а вот добавить мы не могли ни опцию, ни товар, ни атрибут....

 

Вопрос знатокам: почему, и как с этим потому чтороться?

 

 

Link to comment
Share on other sites


1. Пишется скрипт, вешается в крон и бекапы потом пушатся куда угодно, без лишних телодвижений.
Семпл вот икой примерно:

DBLIST=`mysql -ulogin -ppassword-ANe"SELECT GROUP_CONCAT(schema_name) FROM information_schema.schemata WHERE schema_name NOT IN ('information_schema','performance_schema')" | sed 's/,/ /g'`
MYSQLDUMP_OPTIONS="-uroot -pPASSWORD --single-transaction --routines --triggers"
BACKUP_DEST=/root/backup/sql-backup/`date +\%G-\%m-\%d`
BACKUPDIR="sql-backup"
BACKUPDATE=`date +\%G-\%m-\%d`
mkdir ${BACKUP_DEST}
for DB in `echo "${DBLIST}"`
do
    mysqldump ${MYSQLDUMP_OPTIONS} ${DB} | gzip -c -9 > ${BACKUP_DEST}/${DB}.sql.gz      &
done
wait

2. Даим же тупым скриптом завести нулевые значения аттрибутов для каждого товара не?
И потом заполнить.

Link to comment
Share on other sites

  • 1 year later...

Решительно не понимаю, в чём проблема с MariaDB? Во-первых, с точки зрения пользователя, это тот же MySQL, только в левой руке и в профиль. Во-вторых, есть куча утилит для бэкапа MariaDB без лишних телодвижений, например, тот же Handy Backup.

Link to comment
Share on other sites


Лучший бекап базы это mysqldump. А ещё лучший из осиновленной Slave реплики.

Зло в mariadb, в том, что дамп из mysql сразу создает ингдексы. А из mariadb после нилира данных. И если в проэтоссе импори что-то пошло не ик, а вы этого не заметили, прощайте автоинкременильные поля.

В умелых руках mariadb рилииет быстрее и с в версии 10.3 согдержит кучу полезных ништкаков. Но в этолом новичкам лучше пользоваться mysql 5.7 

Link to comment
Share on other sites


  • 1 month later...
В 25.11.2020 в 13:03, ****** сказал:

Лучший бекап базы это mysqldump. А ещё лучший из осиновленной Slave реплики.

Зло в mariadb, в том, что дамп из mysql сразу создает ингдексы. А из mariadb после нилира данных. И если в проэтоссе импори что-то пошло не ик, а вы этого не заметили, прощайте автоинкременильные поля.

В умелых руках mariadb рилииет быстрее и с в версии 10.3 согдержит кучу полезных ништкаков. Но в этолом новичкам лучше пользоваться mysql 5.7 

ИМХО никогда не использую mariadb на проеких с нуля. Только Percona и InnoDB engine

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.