Перенос в Другое место MySQL
От: vvv848165@ya.ru  
Дата: 09.09.20 14:16
Оценка:
можно ли настроить MySQL 8.0+, чтобы некоторые базы (выборочно) хранились в другом месте (не на с диске)?
Re: Перенос в Другое место MySQL
От: Pavel Dvorkin Россия  
Дата: 09.09.20 14:31
Оценка: 2 (1)
Здравствуйте, vvv848165@ya.ru, Вы писали:

VYR>можно ли настроить MySQL 8.0+, чтобы некоторые базы (выборочно) хранились в другом месте (не на с диске)?



SELECT @@datadir;

даст расположение каталога с БД

Каждый подкаталог там — отдельная БД.

Можно попробовать вот что. Перенести каталог некоторой БД физически в другое место, а на его прежнем месте создать junction point или symbolic link с тем же именем на новое расположение.

Получится ли — не знаю.

P.S. Попробовал. Вроде работает, БД вижу, новую таблицу в ней смог создать
With best regards
Pavel Dvorkin
Отредактировано 09.09.2020 14:38 Pavel Dvorkin . Предыдущая версия .
Re[2]: Перенос в Другое место MySQL
От: vvv848165@ya.ru  
Дата: 10.09.20 06:51
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Каждый подкаталог там — отдельная БД.


вот тока в той папке тока часть данных от этой БД ...
если скопировать тока одну папку без файлов в корневеке — то во становить обратно не получится...
Re[3]: Перенос в Другое место MySQL
От: Pavel Dvorkin Россия  
Дата: 10.09.20 12:14
Оценка: 1 (1)
Здравствуйте, vvv848165@ya.ru, Вы писали:

VYR>вот тока в той папке тока часть данных от этой БД ...

VYR>если скопировать тока одну папку без файлов в корневеке — то во становить обратно не получится...

Хм, возможно, что в 8.x иначе. У меня 5.x

А что за файлы в корне ?
With best regards
Pavel Dvorkin
Re[4]: Перенос в Другое место MySQL
От: vvv848165@ya.ru  
Дата: 10.09.20 13:06
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>А что за файлы в корне ?

#innodb_temp\
backupmoes\
molnia\
mysql\
performance_schema\
sakila\
sys\
world\
ib_buffer_pool
ib_logfile0
ib_logfile1
ibdata1
ibtmp1
undo_001
undo_002
VVVA-106-bin.000001
VVVA-106-bin.000002
VVVA-106-bin.000003
VVVA-106-bin.000004
VVVA-106-bin.000005
VVVA-106-bin.000006
VVVA-106-bin.000007
VVVA-106-bin.000008
VVVA-106-bin.000009
VVVA-106-bin.000010
VVVA-106-bin.000011
auto.cnf
VVVA-106.err
mysql.ibd
VVVA-106-bin.index
VVVA-106-slow.log
ca.pem
ca-key.pem
client-cert.pem
client-key.pem
private_key.pem
public_key.pem
server-cert.pem
server-key.pem
VVVa-106.pid

прям ворох...
Re[5]: Перенос в Другое место MySQL
От: Pavel Dvorkin Россия  
Дата: 10.09.20 16:36
Оценка:
Здравствуйте, vvv848165@ya.ru, Вы писали:

PD>>А что за файлы в корне ?


Понятно.

Но вообще-то примонтированная как symlink папка рассматривается как просто папка в этом каталоге. Сервер обращается к ней, а NTFS переадресует вызов к файлам , физически находящимся в другом месте. Все это прозрачно для ПО сервера, если только он специально не борется с этим.
Что же касается файлов в корне, то они там на месте и остаются.

Поэтому мне не вполне понятно, в чем проблема. Если сделать как я сказал — удается работать или нет ? Если потом удалить симлинк и перенести папку на ее родное место — что происходит ?

P.S. Кроме симлинков, есть еще и хардлинки, но на них ограничение — только на том же томе. Грубо говоря, сделать хардлинк — это просто сделать, чтобы файл или каталог был в двух разных каталогах. Тут уж точно не должно быть проблем, но решение ли это для тебя — не знаю.
With best regards
Pavel Dvorkin
Отредактировано 10.09.2020 16:40 Pavel Dvorkin . Предыдущая версия .
Re[6]: Перенос в Другое место MySQL
От: vvv848165@ya.ru  
Дата: 11.09.20 05:36
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Поэтому мне не вполне понятно, в чем проблема. Если сделать как я сказал — удается работать или нет ? Если потом удалить симлинк и перенести папку на ее родное место — что происходит ?


удаётся. но нельзя перенести это в другую MySQL (там не вся информация ...) да и вобще структура вроде сохраняется в отдельной папке (не той которая совпадает с именем бд)...
Re[7]: Перенос в Другое место MySQL
От: Pavel Dvorkin Россия  
Дата: 11.09.20 05:44
Оценка:
Здравствуйте, vvv848165@ya.ru, Вы писали:

VYR>удаётся. но нельзя перенести это в другую MySQL (там не вся информация ...)


Это, скорее всего, да. Раньше было можно, но в MySQL 8 они там что-то поменяли ИМХО.
With best regards
Pavel Dvorkin
Re: Перенос в Другое место MySQL
От: VikDD  
Дата: 14.09.20 13:19
Оценка: 2 (1)
Можно, для начала файл в таблицу лучше врубить, конечно.

Потом, если БД уже есть, сделать дамп старой.
Посмотреть путь, где хранятся БД

  datadir
mysql> show variables like 'datadir';
+---------------+-----------------+
| Variable_name | Value           |
+---------------+-----------------+
| datadir       | /var/lib/mysql/ |
+---------------+-----------------+


Считаем, что БД там лежат



Дальше:
1. Создать новую БД
2. стопнуть сервер
3. подменить /var/lib/mysql/databasename на симлинк на то место, где должно лежать
4. скопировать в то место содержимое "старого" каталога
5.1 (опционально) заполнить данными из дампа (см начало поста)
5.2 (другой вариант), запустить OPTIMIZE TABLE
С уважением, VikDD
Re[2]: Перенос в Другое место MySQL
От: vvv848165@ya.ru  
Дата: 15.09.20 06:25
Оценка:
как-то все методы — это танцы с бубном (и не совсем документированные).
на рабочем сервере наверное так не стоит делать (вдруг что-то пойдёт не так).
Re[3]: Перенос в Другое место MySQL
От: VikDD  
Дата: 15.09.20 07:36
Оценка:
Здравствуйте, vvv848165@ya.ru, Вы писали:

VYR>на рабочем сервере наверное так не стоит делать (вдруг что-то пойдёт не так).


Что касается надёжности — то это точно не тот вариант, т.к. её проще сделать через репликацию, конечно.

Но с точки зрения "расширить место" как раз именно так и сделано. Даже больше скажу, некоторые БД вообще по nfs подрублены и физически лежат на другом сервере.
От этого проблем не испытываем, проблемы есть в мускуле, точнее, в том, что СУБД не умеет работать на нескольких серверах и все эти "танцы с бубуном" только ради "большего места", а процы и ОЗУ всё равно на одном сервере используется и производительность страдает.

Я просто не знаю какая проблема решается у вас в проекте, но если надо именно быстродействие, то следующий шаг — это переписывание логики бека, что бы он читал с одного места ( слейвов ), а писал в другое ( мастер ), при соотношении чтение/запись даже 10/1 это можно делать спокойно.
С уважением, VikDD
Re[4]: Перенос в Другое место MySQL
От: vvv848165@ya.ru  
Дата: 15.09.20 09:16
Оценка:
Здравствуйте, VikDD, Вы писали:

VDD>Я просто не знаю какая проблема решается у вас в проекте


былоб хорошо BackUP выборочный делать из MySQL в MySQL.
если на разных серверах — то всё хорошо (даже лучше не надо)
Но вот BackUP с одним сервером (чтобы BackUP просто был на другом винте) — проблема.

(поясню — формат БД не нормализован и со своими особенностями — чтобы сделать эффективный (менее ресурсоёмкий) BackUP лучше сделать специальные запросы в рабочей и BackUP базе чтоб не копировать лишнее)
Re[5]: Перенос в Другое место MySQL
От: VikDD  
Дата: 15.09.20 13:54
Оценка:
Здравствуйте, vvv848165@ya.ru, Вы писали:

VYR>былоб хорошо BackUP выборочный делать из MySQL в MySQL.


Из БД в БД в рамках одной СУБД?

Может, есть смысл поднять 2 мускуля на разных дисках и настроить репликацию?

Как "лайт версия" (для БД до пары-тройки Гб) вариант mysqldump + zip по крону раз в сутки.
С уважением, VikDD
Re[6]: Перенос в Другое место MySQL
От: vvv848165@ya.ru  
Дата: 15.09.20 14:14
Оценка:
Здравствуйте, VikDD, Вы писали:

VDD>Из БД в БД в рамках одной СУБД?

для разных серверов одним запросом ничего не сделаешь... (одна субд но на разных серверах)

VDD>Может, есть смысл поднять 2 мускуля на разных дисках и настроить репликацию?

да как так можно установить на 1 PC 2 MySql (вроде не возможно — тока в VM ware наверное, но он так работать не будет)

VDD>Как "лайт версия" (для БД до пары-тройки Гб) вариант mysqldump + zip по крону раз в сутки.

чтото я вобще не понял...
а что у MySQL есть ограничения по размеру?
Re[7]: Перенос в Другое место MySQL
От: VikDD  
Дата: 15.09.20 14:34
Оценка:
Здравствуйте, vvv848165@ya.ru, Вы писали:

VYR>для разных серверов одним запросом ничего не сделаешь... (одна субд но на разных серверах)

Да, так нельзя

VYR>да как так можно установить на 1 PC 2 MySql (вроде не возможно — тока в VM ware наверное, но он так работать не будет)

можно

VYR>а что у MySQL есть ограничения по размеру?

На время создания дампа БД лучше лочить, если просто mysqldump запустить, то он лочит таблицы по очереди, но это чревато проблемами с FK
Чем больше БД — тем дольше идёт дамп... до 2-3 Гб это время "допустимо", а потом "очень долго" становится.
С уважением, VikDD
Отредактировано 15.09.2020 14:37 VikDD . Предыдущая версия .
Re[8]: Перенос в Другое место MySQL
От: vvv848165@ya.ru  
Дата: 16.09.20 05:51
Оценка:
Здравствуйте, VikDD, Вы писали:

VYR>>да как так можно установить на 1 PC 2 MySql (вроде не возможно — тока в VM ware наверное, но он так работать не будет)

VDD>можно
https://mybiblioteka.su/tom2/8-28328.html
офигеть даже под Win похожее возможно... (даже не представлял что похожее возможно)
панацея!!!
а в документации MySQL по поводу изменения INI файла и запуска 2 экземпляра что-нибудь написано?
Re[9]: Перенос в Другое место MySQL
От: VikDD  
Дата: 16.09.20 07:39
Оценка:
Здравствуйте, vvv848165@ya.ru, Вы писали:

VYR>а в документации MySQL по поводу изменения INI файла и запуска 2 экземпляра что-нибудь написано?


Там описано, что можно его (путь файла) передавать, как минимум. Т.е. с каким именно ini-файлом работать конкретному процессу СУБД. Не думаю что Win тут чем-то от Linux будет отличаться.
В конечном счёте — mysql — это такой же процесс сервис/демон, который не лучше остальных в системе и который можно запустить столько раз, сколько админу будет нужно.

https://dev.mysql.com/doc/refman/8.0/en/multiple-unix-servers.html

https://dev.mysql.com/doc/mysql-router/8.0/en/mysql-router-configuration-file-locations.html

https://dev.mysql.com/doc/refman/5.7/en/option-files.html
С уважением, VikDD
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.