Page 2 of 3

Re: Slave -> Master ?

Posted: Sat Sep 14, 2024 7:05 am
by Axcel
Всё делаю по инструкции, но получаю слейв с темплейтами мастера и ошибки mysql в админке.
Вопрос что не так?

Как делал:

master_db - база мастера.
slave_db - слейва.

1 и 4:
скрипт баш

Code: Select all

#!/bin/bash

DB_USER="user_1"
DB_PASS="MyPassword"
DB_NAME="master_db"

# Get all tables starting with 'rot_' from the master_db
tables=$(mysql -u$DB_USER -p$DB_PASS -N -e "SELECT table_name FROM information_schema.tables WHERE table_schema='$DB_NAME' AND table_name LIKE 'rot_%';")

# Dump each table into a file and load it into slave_db
for table in $tables
do
  echo "Dumping $table from $DB_NAME..."
  mysqldump -u$DB_USER -p$DB_PASS $DB_NAME $table > $table.sql
  echo "Loading $table into slave_db..."
  mysql -u$DB_USER -p$DB_PASS slave_db < $table.sql
  echo "$table successfully transferred to slave_db."
done
2
номер слейва 15, он единственный у мастера.

3
отсоединяем слейв.

5
DROP TABLE rot_gallery_stats1;

6
RENAME TABLE rot_gallery_stats15 TO rot_gallery_stats1;

7
В админке слейва удаляю "слейв".

Re: Slave -> Master ?

Posted: Mon Sep 16, 2024 7:02 am
by admin
Да, сорри, я криво написал, темпелйты мастера скопированы получились

Упростил инструкцию

- Делаем дамп базы мастера
- Смотрим в rot_linked_db номер слейва, который мы отсоединяем (Х)
- Отсоединяем нужный слейв от мастера
- Заливаем в базу бывшего слева (дамп) из пункта 1, но только таблицы rot_gallery_info, rot_gallery_statsX, rot_gallery_dataX
- rot_gallery_statsХ переименовываем в rot_gallery_stats1, rot_gallery_dataX - в rot_gallery_data1

те надо копировать только таблицу с данными галеры с мастера

Re: Slave -> Master ?

Posted: Wed Sep 18, 2024 12:01 pm
by Axcel
Не работает.
По пунктам:
Вы писали:
1 - Делаем дамп базы мастера
2 - Смотрим в rot_linked_db номер слейва, который мы отсоединяем (Х)
3 - Отсоединяем нужный слейв от мастера
4 - Заливаем в базу бывшего слева (дамп) из пункта 1, но только таблицы rot_gallery_info, rot_gallery_statsX, rot_gallery_dataX
5 - rot_gallery_statsХ переименовываем в rot_gallery_stats1, rot_gallery_dataX - в rot_gallery_data1

1 и 4
mysqldump -uUser_1 -pPassword1 master_db rot_gallery_info rot_gallery_stats15 rot_gallery_data15 > dump_master_db.sql
2
номер слейва 15.
3
отсоединяем.
4
mysql -uUser_1 -pPassword1
use slave_db;
source dump_master_db.sql;
5
Пытаюсь переименовать rot_gallery_stats15 в rot_gallery_stats1 и получаю сообщение, что rot_gallery_stats1 уже существует.
Удаляю таблицы:
DROP TABLE rot_gallery_stats1;
DROP TABLE rot_gallery_data1;
Переименовываю:
RENAME TABLE rot_gallery_stats15 TO rot_gallery_stats1;
RENAME TABLE rot_gallery_data15 TO rot_gallery_data1;

В итоге в админке бывшего слейва сообщение "Looks like this site is supposed to be slave".
База пустая.

Re: Slave -> Master ?

Posted: Wed Sep 18, 2024 1:23 pm
by admin
тут фраза урезана как я вижу

на момент залития дамп в бывший слейв он точно не показывал что он все еще слейв?

Re: Slave -> Master ?

Posted: Wed Sep 18, 2024 2:32 pm
by Axcel
он показывал ошибку "Looks like this site is supposed to be slave" ещё до "залития" дампа. и после тоже.

Re: Slave -> Master ?

Posted: Wed Sep 18, 2024 4:07 pm
by admin
тогда не знаю
скидывайте где что показывает и какой дамп грузить, я проверю

Re: Slave -> Master ?

Posted: Mon Sep 23, 2024 9:50 am
by Axcel
Отправил в ПМ.

Re: Slave -> Master ?

Posted: Tue Sep 24, 2024 5:10 am
by admin
Понял, я не подумал что есть куча вариантов когда у слейва нет своих десков или нет отдельной стат и тп
Это конечно добавляет кучу вариантов что копировать ..

Протестировал другой вариант (теоретически более универсальный )

1. на слейве у вас только стат и темплейты, сохраняем с него таблицы rot_pages (темплейты) + rot_settings и cj_settings
если в сетингах нет особо отличий от мастера то можно вообще просто в админке сохранить только темпелйты

2. заливаем на слейв - базу мастера, на начинает выглядеть как мастер

3. заливаем сохраненные темпелйты из п1

4. Идем в rotation - settings - master\slave и копируем стат Copy stats between sites с нужного слейва на main (мастер)

5. там же удаляем инфу оп слейвам что б не занимала место

Re: Slave -> Master ?

Posted: Tue Oct 22, 2024 9:33 am
by Axcel
Извините, был перерыв, перезжал с сервера на сервер.
Но проблема осталась.
Не все данные получилось перенести.
Данные фтп пустые. Тумбы на экране не отображаются. Категории остались от мастера, т.е. описания, переменные слейва не появились.
Вернул. Разделение опять не удалось.

Как делал в деталях:
1
на слейве у вас только стат и темплейты, сохраняем с него таблицы rot_pages (темплейты) + rot_settings и cj_settings
mysqldump -uUser_1 -pPassword1 slave_db rot_pages rot_settings settings > dump_slave_db.sql
Премечание: таблицы cj_settings не существует, заменил - settings.
1.1
дамп базы мастера:
mysqldump -uUser_1 -pPassword1 master_db > dump_master_db.sql

2
-uUser_1 -pPassword1
use slave_db;
source dump_master_db.sql;

3
source dump_slave_db.sql;

4
Иду в rotation - settings - master\slave.
Копировать нечего, т.к. на слейве всё ещё отображается, что он подключен к мастеру.
Отключаю.
И только после копирую статистику из "слейва" в "мастер".
Отключаю слейв.

Re: Slave -> Master ?

Posted: Wed Oct 23, 2024 12:11 pm
by admin
Да, к сожалению с кучей опций не получится без монструозного комбайна опций

предлагаю просто сделать экспорт категорий в текстовом виде и импорт на новом сайте, 20 секунд дел и ясно как работает без опций которые могут меняться для каждого сайта

подходит этот вариант?