2015-08-07 7 views
2

У меня есть подчиненный mysql, который я пытаюсь реплицировать мастер-экземпляр mysql.MySQL: Как долго сохраняются binlogs?

Я перенес данные за неделю или около того из экземпляра мастера производства. В то время я вызывал SHOW MASTER STATUS на хозяина и получил имя и позицию бинлога. Теперь, когда я бегу SHOW MASTER STATUS я получаю:

mysql> SHOW MASTER STATUS; 
+----------------------------+----------+--------------+------------------+-------------------+ 
| File      | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | 
+----------------------------+----------+--------------+------------------+-------------------+ 
| mysql-bin-changelog.039446 |  120 |    |     |     | 
+----------------------------+----------+--------------+------------------+-------------------+ 
1 row in set (0.05 sec) 

Это Двоичный не то же самое, что один был там неделю назад.

Могу ли я больше не запускать репликацию b/c binlog, который я пытаюсь настроить, повернут? Есть ли переменная, которую я могу проверить, чтобы увидеть, как долго я «имею», прежде чем я больше не смогу начать репликацию?

Edit:

делать также еще некоторое чтение через MySQL документы, и я обнаружил, что команда должна перечислить все бинарные журналы:

mysql> SHOW BINARY LOGS; 
+----------------------------+-----------+ 
| Log_name     | File_size | 
+----------------------------+-----------+ 
| mysql-bin-changelog.039456 |  479 | 
| mysql-bin-changelog.039457 |  120 | 
+----------------------------+-----------+ 
2 rows in set (0.07 sec) 

Снова двоичный журнал, который я записал на прошлой неделе нет в списке есть поэтому мой вопрос все еще остается ...

Edit 2:

Это AWS RDS конкретное, но я обнаружил, хранимую процедуру, которая перечисляет rentention часов:

mysql> call mysql.rds_show_configuration; 
+------------------------+-------+------------------------------------------------------------------------------------------------------+ 
| name     | value | description                       | 
+------------------------+-------+------------------------------------------------------------------------------------------------------+ 
| binlog retention hours | NULL | binlog retention hours specifies the duration in hours before binary logs are automatically deleted. | 
+------------------------+-------+------------------------------------------------------------------------------------------------------+ 
1 row in set (0.06 sec) 

Query OK, 0 rows affected (0.06 sec) 

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

Edit 3:

Найдено here :

Размер файла журнала

для MySQL медленный запрос журнала, журнал ошибок, а общий файл журнала размеров ограничены не более чем на 2% от выделенного прод ge для экземпляр DB. Для поддержания этого порога журналы автоматически поворачиваются каждый час, и файлы журналов старше 24 часов удаляются. Если суммарный размер файла журнала превышает пороговое значение после удаления старых файлов журнала , то самые большие файлы журналов удаляются до тех пор, пока размер файла журнала не превысит пороговое значение.

+1

Могу ли я предложить вам ответить на этот вопрос на http://dba.stackexchange.com/? Переполнение стека - это вопросы программирования. –

ответ

4

Для АМСА RDS конкретных примеров можно найти длины хранения бинарных журналов, используя следующую хранимую процедуру:

mysql> call mysql.rds_show_configuration; 
+------------------------+-------+------------------------------------------------------------------------------------------------------+ 
| name     | value | description                       | 
+------------------------+-------+------------------------------------------------------------------------------------------------------+ 
| binlog retention hours | NULL | binlog retention hours specifies the duration in hours before binary logs are automatically deleted. | 
+------------------------+-------+------------------------------------------------------------------------------------------------------+ 
1 row in set (0.06 sec) 

Query OK, 0 rows affected (0.06 sec) 

Как я пытаюсь перенести наш текущий экземпляр MySQL RDS на Amazon Aurora Я должен первым перенести базу данных и затем начать репликацию для любых обновлений, которые произошли во время перехода.Поскольку миграция занимает более 24 часов, мне нужно установить более продолжительный, чем окна по умолчанию 24, представленных Amazon, который, по-видимому, я могу сделать со следующим stored procedure:

Amazon RDS обычно удаляет бинарный журнал как можно скорее, но двоичный журнал должен быть доступен в экземпляре для доступа к mysqlbinlog. Чтобы указать количество часов для RDS для сохранения двоичных журналов , используйте хранимую процедуру mysql.rds_set_configuration и укажите период с достаточным временем для загрузки журналов. После того, как вы установили период хранения, отслеживайте использование хранилища для экземпляра БД до , убедитесь, что сохраненные двоичные журналы не занимают слишком много места.

Этого пример устанавливает срок хранения 1 сутки:

call mysql.rds_set_configuration('binlog retention hours', 24); 

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