Как установить time_zone для исходной БД в AWS DMS?

Я пытаюсь перенести базу данных MySQL в Aurora, но не могу установить часовой пояс.

Согласно документации. : «Действительные значения — это стандартные сокращения часовых поясов для операционной системы, в которой размещена исходная база данных MySQL».

Выполнение date на моем компьютере с Linux (Ubuntu) показывает: Thu Dec 7 10:27:48 AEDT 2017.

Я настроил исходную конечную точку для использования:

Дополнительные атрибуты подключения: initstmt=SET time_zone=AEDT

Что приводит к сбою моего теста соединения:

Error Details: [errType=ERROR_RESPONSE, status=1022502, errMessage=Cannot connect to ODBC provider ODBC general error., errDetails= RetCode: SQL_ERROR SqlState: HY000 NativeError: 1298 Message: [unixODBC][MySQL][ODBC 5.3(w) Driver]Unknown or incorrect time zone: 'AEDT' ODBC general error.]

Я также пробовал "Australia/Sydney" (то же значение, что и в группах параметров RDS), но получаю ту же ошибку.

Любые идеи?

Я прекрасно понимаю, что это должно быть время в формате UTC. Не мой выбор – наследие.

Обновление: кажется, что initstmt=SET time_zone="+11:00" работает, но приводит к этому проблема.


person kev    schedule 06.12.2017    source источник
comment
Не указывайте идентификатор часового пояса: initstmt=SET time_zone=AEDT   -  person bishop    schedule 07.12.2017
comment
Не имеет значения.   -  person kev    schedule 07.12.2017
comment
Используйте тире: initstmt=SET time-zone=AEDT   -  person bishop    schedule 07.12.2017
comment
Тоже не работает. Сбой при распознавании времени параметра.   -  person kev    schedule 07.12.2017
comment
Использовать смещение UTC: initstmt=SET time_zone=UTC+11   -  person bishop    schedule 07.12.2017
comment
Неизвестный или неправильный часовой пояс: «UTC+11».   -  person kev    schedule 07.12.2017
comment
В какой ОС находится исходная база данных?   -  person bishop    schedule 07.12.2017
comment
Линукс (Убунту14)   -  person kev    schedule 07.12.2017
comment
Давайте продолжим обсуждение в чате.   -  person bishop    schedule 07.12.2017


Ответы (1)


Вы хотите перенести MySQL с сервера Linux на Aurora, репликацию пользователей вместо DMS. DMS не будет поддерживать многие DDL во время загрузки данных. Поэтому создайте репликацию между MySQL и Aurora.

Мастер — ваш текущий MySQL. рабыня - Аврора.

Подготовить:

  • Оба экземпляра могут общаться друг с другом.
  • Мастер должен быть версии 5.5 или выше.
  • binlog_format в ROW на Мастере MySQL.

Создайте пользователя для репликации:

CREATE USER 'rep_user'@'%' IDENTIFIED BY 'rep_user';  
GRANT REPLICATION slave ON *.* TO 'rep_user'@'%' IDENTIFIED BY 'rep_user';  
FLUSH PRIVILEGES;  

Возьмите дамп с данными Binlog:

mysqldump -u user -p dbname --master-data=2 > backup.sql

less backup.sql это даст вам имя файла binlog и его позицию.

Восстановить резервную копию:

mysql -h auroraendpoint -u user -p dbname < backup.sql

Включить репликацию:

CALL mysql.rds_set_external_master ('Master_RDS_EndPoint', 3306,    'Replication_user_name', 'Replication_User_password', 'BinLog_FileName', BingLog_Position, 0);

Стратегическая репликация:

call mysql.rds_start_replication;

Переключение:

Во время технического обслуживания сделайте переключение и сделайте Аврору мастером.

call mysql.rds_stop_replication;  
CALL mysql.rds_reset_external_master;
person Bhuvanesh    schedule 14.12.2017