Я столкнулся с проблемой для задачи, которую я должен сделать на работе. У меня есть база данных MySQL, в которой хранится информация о нескольких клиентах моей компании, и мне нужно создать процедуру резервного копирования/восстановления для резервного копирования и восстановления такой информации для любого отдельного клиента. Чтобы уточнить, если мой клиент A теряет свои данные, я должен иметь возможность восстановить такие данные, будучи уверенным, что я не изменяю данные клиента B, C, ... Я не администратор БД, поэтому я не знаю, могу ли я сделать это с помощью стандартных инструментов mysql (таких как mysqldump) или любых других инструментов резервного копирования (таких как Percona Xtrabackup).
Для резервного копирования мои исследования (и моя интуиция) привели меня к этому возможному решению:
- создайте оператор вставки восстановления, используя синтаксис вставки-выбора (http://dev.mysql.com/doc/refman/5.1/en/insert-select.html);
- сохраните эти вставки в файл sql либо в правильном порядке, либо разрешив этому сценарию временно отключить проверки внешнего ключа для соответствия ограничениям внешних ключей;
- конечно, я делаю это для всех своих клиентов ежедневно, используя файл для каждого клиента (и дня).
Затем, в случае, если мне нужно восстановить данные для конкретного клиента:
- удаляю все его оставшиеся данные;
- Я восстанавливаю правильные данные, используя его файл sql, который я создал во время резервного копирования.
Таким образом, я считаю, что могу восстановить правильные данные клиента А, не касаясь данных клиента Б. Будет ли мое решение в конечном итоге работать? Есть ли лучший способ добиться того же результата? Или вам нужна дополнительная информация о моей проблеме?
Пожалуйста, простите меня, если этот вопрос неправильно сформулирован, но я здесь новичок, и это мой первый вопрос, поэтому я могу быть неточным... в любом случае спасибо за помощь.
Примечание: мы также создадим резервную копию всей базы данных с помощью mysqldump.