2017-01-23 3 views
1

У меня есть доступ к базе данных mysql, но я могу только читать ее. Мне нужна копия одной из таблиц в локальной базе данных, и мне нужно ее обновлять каждые 2 часа. Каков наилучший/наиболее эффективный способ периодического копирования/обновления таблицы?Периодически обновляемая таблица обновлений

Должен ли я сделать простой скрипт php, который извлекает и обновляет данные (мое приложение находится в php)? Разве нет лучшего способа?

+0

Вы можете использовать стандартную репликацию MySQL, если бит-журнал включен, и вы можете установить гранты для репликации. Или вы можете использовать percona tool pt-table-sync. этот инструмент может напрямую синхронизировать ваши таблицы или базу данных, см. https://www.percona.com/doc/percona-toolkit/2.1/pt-table-sync.html –

ответ

1

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

Если вы не готовы платить высокую сумму за такие системы, как percona или TIBCO.
PHP или другой язык сценариев будет отличным решением, в сочетании с хронами или запланированными заданиями на окнах ...

Поскольку вы упомянули PHP я бы рекомендовал в поисках готовых скриптов, как этот: https://github.com/mrjgreen/db-sync

Скачайте скрипт, распакуйте на вашем сервере, и создать скрипт, который будет выглядеть следующим образом:

дб синхронизация [опция] [-] < источник> < цель> < стола>

Например:

#!/bin/bash 
db-sync --user root --password mypass 127.0.0.1 111.222.3.44 web.customers 

имя его sync.sh

И добавить кронтаб запись для запуска каждого 2hrs, как вы просили:

0 */2 * * * /home/username/sync.sh 

Просто замените/home/username с дорогой к вашему sync.sh

Смежные вопросы