Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Бэкап в csv и рестор / 25 сообщений из 26, страница 1 из 2
23.09.2014, 10:10:04
    #38754266
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бэкап в csv и рестор
Добрый день
Такой вопрос - кто-нибудь пользуется бэкапом и рестором с использованием csv (-tab)?
Почему обратил на него внимание - при ресторе через csv восстановление проходит быстрее чем из обычного скрипта.
Трудности с рестором из csv: нужно указывать каждую таблицу в скрипте отдельно, перед заливкой из csv необходимо создать базу,отключить в ней триггеры.
...
Рейтинг: 0 / 0
23.09.2014, 10:43:33
    #38754317
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бэкап в csv и рестор
Я использовал csv довольно долго для передачи данных в базу сайта, грузил mysqlimport-ом.
Действительно, это быстрейший из известных мне способов загрузить данные в MySQL (не считая копирования файлов с данными, но там свои проблемы).

Вы можете делать комбинированный бэкап/рестор:
1) Скрипт создания таблиц (внешние ключи выключить на время создания)
2) Загрузить все данные
3) Скрипт досоздания объектов в БД (триггеры, вторичные индексы, процедуры и т.п.)
Собственно, общий скрипт полного восстановления тоже можно создавать на этапе бэкапа.
...
Рейтинг: 0 / 0
23.09.2014, 10:49:18
    #38754324
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бэкап в csv и рестор
miksoftСобственно, общий скрипт полного восстановления тоже можно создавать на этапе бэкапа.
Каким образом,если не секрет?
...
Рейтинг: 0 / 0
23.09.2014, 10:54:12
    #38754332
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бэкап в csv и рестор
GallemarmiksoftСобственно, общий скрипт полного восстановления тоже можно создавать на этапе бэкапа.
Каким образом,если не секрет?Тупо писать в текстовый файл нужные строки с командами, а потом объявить этот файл скриптом.
Готового инструмента для этого я не знаю, если вопрос был об этом.
Но не вижу большой проблемы написать за пару-тройку дней самому.
...
Рейтинг: 0 / 0
23.09.2014, 10:57:28
    #38754337
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бэкап в csv и рестор
miksoft, понятно,я в принципе такое и задумывал. Думал есть готовый скрипт bat или ps.
...
Рейтинг: 0 / 0
10.10.2014, 11:31:15
    #38772855
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бэкап в csv и рестор
а с такой проблемой не приходилось сталкиваться: http://www.sql.ru/forum/1117296/ne-srabatyvaet-otkluchenie-vneshnih-kluchey ?
...
Рейтинг: 0 / 0
10.10.2014, 11:55:38
    #38772912
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бэкап в csv и рестор
Скрипт создания БД можно сделать бэкапом БД без данных.
Данные сохранять через SELECT .. INTO OUTFILE, и соответственно восстанавливать через LOAD DATA INFILE. Только при этом нужно соблюдать порядок заполнения таблиц, чтобы не попасть на ограничения FK.
...
Рейтинг: 0 / 0
10.10.2014, 12:01:54
    #38772941
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бэкап в csv и рестор
Akina,я планирую делать выгрузку через mysqldump -v ukm_server --tab=d:\CVS\ - данных, потом делать выгрузку только метаданных без триггеров, при восстановлении сначала создавать базу без триггеров,отключать проверку на FK и заливать данные, потом создавать триггеры в БД. Пока не проверял на рабочей БД.
...
Рейтинг: 0 / 0
10.10.2014, 12:03:56
    #38772946
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бэкап в csv и рестор
Скрипт создания БД - это обычный текстовый файл. Его несложно разделить на два скрипта - в одном создавать структуру, в другом - индексы/ключи/процедуры/функции/триггеры. Первый выполнять до заливки данных, второй после.
...
Рейтинг: 0 / 0
15.10.2014, 07:15:44
    #38776833
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бэкап в csv и рестор
Akina,а как ускорить заливку данных?
1. при создании БД не создавать индексы и создавать их после заливки или по времени будет одинаково?
2. заливаю данные скриптом :

mysqlimport -uУсер -pПароль База d:\CVS\trm_out_receipt_invoice.txt
mysqlimport -uУсер -pПароль База d:\CVS\trm_out_receipt_item.txt
mysqlimport -uУсер -pПароль База d:\CVS\trm_out_receipt_item_addition.txt
mysqlimport -uУсер -pПароль База d:\CVS\trm_out_receipt_item_aoo.txt

если изменю на :

mysqlimport -uУсер -pПароль База d:\CVS\trm_out_receipt_invoice.txt d:\CVS\trm_out_receipt_item.txt d:\CVS\trm_out_receipt_item_addition.txt d:\CVS\trm_out_receipt_item_aoo.txt

будет ли быстрее, т.к. не будет постоянных коннектов?
3. Убрать проверку FK на время заливки?
...
Рейтинг: 0 / 0
15.10.2014, 10:01:27
    #38776938
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бэкап в csv и рестор
1) Индексирование после вставки гарантированно быстрее индексирования во время вставки. Исключения крайне редки и экзотичны.

3) Отсутствие индексов по факту отключает контроль FK - нечего контролировать.

2) Самым быстрым способом загрузки данных вроде бы считается LOAD DATA INFILE... но если хочется использовать утилиты командной строки, используйте.
...
Рейтинг: 0 / 0
15.10.2014, 10:10:05
    #38776944
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бэкап в csv и рестор
Akina,спасибо. Утилиты cmd использую для автоматизации,нужно залить базу из 100 таблиц общим объемом 120 Гб и делать это каждый день :)
...
Рейтинг: 0 / 0
15.10.2014, 10:20:54
    #38776962
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бэкап в csv и рестор
Gallemar, для ускорения желательно источник и приёмник даныых разнести на разные физические носители
...
Рейтинг: 0 / 0
15.10.2014, 13:13:26
    #38777247
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бэкап в csv и рестор
GallemarУтилиты cmd использую для автоматизации,нужно залить базу из 100 таблиц общим объемом 120 Гб и делать это каждый день :)Ну так и используй команду запуска на исполнение SQL-скрипта, а в нём выполняй всё необходимое. Нафига тебе лишний слой в этом пироге?
...
Рейтинг: 0 / 0
16.10.2014, 04:25:32
    #38778099
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бэкап в csv и рестор
Akina,вот и думаю как это лучше сделать. Пока это так выглядит в батнике:

Код: plaintext
1.
2.
3.
4.
5.
6.
mysql.exe --user=Усер --password=Пароль  < d:\Files\meta_without_trigger.sql
mysqlimport -uУсер  -pПароль ukmserver d:\CVS\auth_bpc_journal.txt
mysqlimport -uУсер  -pПароль ukmserver d:\CVS\auth_gpb_journal.txt
.......
тут ещё 100 таких строк импорта
.......
mysql.exe --user=Усер --password=Пароль  < d:\Files\create_triggers.sql

Объединить создание БД и создание в ней триггеров - легко,а вот с импортом сложнее. Хотя LOAD DATA INFILE наверно решит эту проблему.
...
Рейтинг: 0 / 0
16.10.2014, 06:30:31
    #38778113
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бэкап в csv и рестор
хм, теперь такой вопрос поднялся - как то можно вытянуть DDL всех FK,PK, index, AI? Ни команд,ни утилит для этого не нашел. Без них - делают,а вот создать скрипт с одними ключам чтобы потом накатить - нельзя. Руками не проблема делать,но их много, и подразумевается,что база часто обновляется,а я её разработчиком не являюсь.
...
Рейтинг: 0 / 0
16.10.2014, 11:05:40
    #38778300
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бэкап в csv и рестор
Gallemarmysqlimport -uУсер -pПароль ukmserver d:\CVS\auth_bpc_journal.txt
mysqlimport -uУсер -pПароль ukmserver d:\CVS\auth_gpb_journal.txt
.......
тут ещё 100 таких строк импорта

При переносе этого барахла в SQL-скрипт несложно создать хранимку, в которой всё это выполняется в компактном итеративном цикле.
...
Рейтинг: 0 / 0
16.10.2014, 11:08:47
    #38778304
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бэкап в csv и рестор
Gallemar как то можно вытянуть DDL всех FK,PK, index, AI?Запрашивать INFORMATION_SCHEMA и парсить ответ.
...
Рейтинг: 0 / 0
20.10.2014, 05:22:42
    #38781376
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бэкап в csv и рестор
Возник вот такой вопрос - переписал скрипты,теперь заливка идет так:

Код: plaintext
1.
2.
USE `ukmserver`;
load data infile 'auth_bpc_journal.txt' into table auth_bpc_journal;
load data infile 'auth_gpb_journal.txt' into table auth_gpb_journal;

Всё хорошо,только для того,чтобы файл txt был видел MySQL, мне надо его класть с папку БД. Путь упорно не хочет использовать и выдает ошибку, как нибудь это можно разрулить?
...
Рейтинг: 0 / 0
20.10.2014, 09:44:37
    #38781458
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бэкап в csv и рестор
GallemarПуть упорно не хочет использовать и выдает ошибку, как нибудь это можно разрулить?Да запросто. Всего-то делов - почитать документацию... например, не забыть модификатор LOCAL... да и права надо проверить - имеет ли их учётка, под которой стартует процесс сервера, в каталоге с файлами...
...
Рейтинг: 0 / 0
20.10.2014, 10:02:53
    #38781483
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бэкап в csv и рестор
Gallemarвыдает ошибкусекретную, конечно?
...
Рейтинг: 0 / 0
20.10.2014, 15:36:35
    #38781965
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бэкап в csv и рестор
miksoft, сам код:
Код: plaintext
load data infile 'c:\_temp\table_1.txt' into table table_1; 
ошибка ERROR 29 (HY000): File 'c:\_temp able_1.txt' not found (Errcode: 22)

p.s. файл точно есть по такому пути
...
Рейтинг: 0 / 0
20.10.2014, 15:39:18
    #38781971
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бэкап в csv и рестор
Gallemar,

А что, имя файла в тексте ошибки ни на какие мысли не наводит?
String Literals
...
Рейтинг: 0 / 0
20.10.2014, 19:26:30
    #38782211
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бэкап в csv и рестор
miksoft,хм,код должен выглядеть так:
load data infile 'c:"\_"temp\table_1.txt' into table table_1; ?
...
Рейтинг: 0 / 0
20.10.2014, 19:33:17
    #38782214
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Бэкап в csv и рестор
Gallemar, читать внимательно со слов "Within a string, certain sequences have special meaning"
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Бэкап в csv и рестор / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]