Программные средства для интерфейса не предоставляют жесткие коды правильно, значит, ваши коды должны быть расширены без нарушения предыдущей функциональности ..... просто расширения, не редактирующие коды prev
Вы можете настроить MariaDB в облачном сервере и иметь серверы LONDON и DUBLIN в качестве мастеров. Репликация нескольких мастеров доступна в MariaDB. Я предполагаю, что у мастеров разные имена баз данных.
Вы можете определить таблицы FEDERATED
в вашей «облачной» базе данных: любые запросы в этих таблицах будут передаваться с «облачного» сервера на соответствующий сервер London / Dublin по клиентскому протоколу MySQL (обратите внимание, что данные , а не , скопированы на «облачный» сервер, поэтому он не предоставляет какой-либо службы резервного копирования):
CREATE SERVER london FOREIGN DATA WRAPPER mysql OPTIONS (
HOST 'london.mysql.example.com',
PORT 9306,
USER 'cloud_db_user',
PASSWORD '...',
DATABASE 'my_database'
);
CREATE SERVER dublin FOREIGN DATA WRAPPER mysql OPTIONS (
HOST 'dublin.mysql.example.com',
PORT 9306,
USER 'cloud_db_user',
PASSWORD '...',
DATABASE 'my_database'
);
CREATE TABLE london_table (
-- table definition as normal
)
ENGINE=FEDERATED
CONNECTION='london/original_table';
CREATE TABLE dublin_table (
-- table definition as normal
)
ENGINE=FEDERATED
CONNECTION='dublin/original_table';
Затем вы можете определить VIEW
, который содержит UNION
этих объединенных таблиц. К сожалению, однако, представления UNION
не вставляются и не обновляются, поэтому, если вам необходимо зафиксировать какие-либо изменения в данных, которые вы должны были бы использовать в базовой (объединенной) таблице:
CREATE VIEW combined AS
SELECT * FROM london_table
UNION ALL
SELECT * FROM dublin_table;
VIEW
?
– eggyal
20 August 2015 в 11:08
У вас есть два веб-сервиса для каждой базы данных. Веб-службы запрашивают соответствующие базы данных на периодическом интервале и вставляют данные в облачную базу данных.
План A: Galera cluster (как показано в MariaDB), который включает в себя 3 сервера.
План B: «Репликация нескольких источников», в которой ваши два физических сервера - это Masters, а облачный сервер - подчиненный , Опять же, требуется MariaDB. (См. Ответ DBHash.)
Вы можете настроить репликацию, установив облачный сервер / базу данных как Master и базы данных в других местах в качестве подчиненного, поэтому любые данные, добавленные в Master, будут реплицированы в подчиненный.
Вы также можете настроить задержку в репликации, если не хотите, чтобы данные были немедленно реплицированы в подчиненный.
В качестве альтернативы вы можете использовать SQLyog где вы можете подключиться к вашему серверу MySQL / MariaDB (или любым вилкам MySQL) и синхронизировать данные между облачной базой данных и базой данных в других местах. Это позволяет настроить синхронизацию сразу или позже. Если сервер размещен удаленно, было бы лучше подключиться через SSH, используя проверку подлинности на основе ключей для большей безопасности.
Presto также полезен здесь.
вы можете развернуть престо на облачной машине, используя соединители mysql, подключающиеся к разным геобатам, создавать разные схемы каталогов.
записывать запросы на объединить результат из обеих баз данных. что-то вроде:
select * from dublin.A
union all
select * from london.A