Mysql-репликация / облако синхронизации и удаленный сервер (локальный сервер) [дубликат]

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

10
задан Andrei 10 August 2015 в 17:55
поделиться

6 ответов

Вы можете настроить MariaDB в облачном сервере и иметь серверы LONDON и DUBLIN в качестве мастеров. Репликация нескольких мастеров доступна в MariaDB. Я предполагаю, что у мастеров разные имена баз данных.

https://mariadb.com/kb/en/mariadb/multi-source-replication/

2
ответ дан DBHash.com 18 August 2018 в 10:09
поделиться

Вы можете определить таблицы 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;
2
ответ дан eggyal 18 August 2018 в 10:09
поделиться
  • 1
    должен ли он иметь префикс в определениях таблиц? раздражает. – zinking 20 August 2015 в 08:28
  • 2
    @zinking: Это имеет значение, когда ваш код приложения может просто использовать VIEW? – eggyal 20 August 2015 в 11:08
  • 3
    похоже, что у вас должен быть 2 немного отличающихся сценария создания таблиц. – zinking 21 August 2015 в 01:36

У вас есть два веб-сервиса для каждой базы данных. Веб-службы запрашивают соответствующие базы данных на периодическом интервале и вставляют данные в облачную базу данных.

2
ответ дан MACMAN 18 August 2018 в 10:09
поделиться
  • 1
    Решение на заказ всегда работает. Тем не менее, он думал, что может быть самозанятое решение. – Andrei 20 August 2015 в 09:47

План A: Galera cluster (как показано в MariaDB), который включает в себя 3 сервера.

План B: «Репликация нескольких источников», в которой ваши два физических сервера - это Masters, а облачный сервер - подчиненный , Опять же, требуется MariaDB. (См. Ответ DBHash.)

5
ответ дан Rick James 18 August 2018 в 10:09
поделиться

Вы можете настроить репликацию, установив облачный сервер / базу данных как Master и базы данных в других местах в качестве подчиненного, поэтому любые данные, добавленные в Master, будут реплицированы в подчиненный.

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

В качестве альтернативы вы можете использовать SQLyog где вы можете подключиться к вашему серверу MySQL / MariaDB (или любым вилкам MySQL) и синхронизировать данные между облачной базой данных и базой данных в других местах. Это позволяет настроить синхронизацию сразу или позже. Если сервер размещен удаленно, было бы лучше подключиться через SSH, используя проверку подлинности на основе ключей для большей безопасности.

0
ответ дан xachela 18 August 2018 в 10:09
поделиться

Presto также полезен здесь.

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

записывать запросы на объединить результат из обеих баз данных. что-то вроде:

select * from dublin.A
union all
select * from london.A

Некоторые случайные ссылки на этом

2
ответ дан zinking 18 August 2018 в 10:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: