Разширени архиви за MySQL бази данни

Когато приключат Резервни копия на MySQL база данни, често се използва командата mysqldump няма опции. Тази команда обаче има много интересни опции, които ви позволяват да извършвате разширени архиви.

По подразбиране, Командата mysqldump генерира копие от sql структурата на всички таблици в базата данни посочено, в текстов файл sql. За да включите само една или повече таблици, въведете техните имена след името на базата данни.

От прозореца на терминала в директорията mysql:

 # Единично архивиране на таблица $ mysqldump -user = потребител --password = ключ на базата данни на таблицата> backup_sql
 # Архивиране на три таблици $ mysqldump -user = потребител --password = ключ на база данни table1 table2 table3> backup_sql
Примери за 1 или 3 таблици.

1. Изключване на някои таблици от архивиране


За да не включим определена таблица в архива, трябва да я посочим с опцията --ignore-table, чиято стойност трябва да бъде посочена

Ако например правите архивиране на база данни, наречена commerce, но не искате да бъде включена таблица, наречена sales, изпълнете следната команда:

 $ mysqldump --user = потребител -парола = парола --ignore -table = merchant.sales търговец> backup_back.sql 
С други думи, копирайте цялата търговска база данни с изключение на таблицата за продажби. Ако искаме да изключим няколко таблици, трябва да използваме следната команда:
 $ mysqldump --user = потребител --password = парола --ignore-table = commerce.sales --ignore-table = commerce.products --ignore-table = commerce. commerce цени> backup_copy.sql
(За да изключите няколко таблици, посочете техните имена с толкова опции --ignore-table)

2. Ограничаване на броя на записите във всяка таблица


По подразбиране командата mysqldump ще копира всички записи от всички таблици. Ако искате предварително да филтрирате записите, добавете опцията --where, която ви позволява да посочите условието тип WHERE, което се добавя към заявките SELECT, направени за извличане на всички записи:
 $ mysqldump --user = потребител --password = парола -where = "възраст> 18 И възраст backup_back.sql 
Ако искаме да извлечем само някои записи от базата данни, например първите 500
 $ mysqldump --user = потребителска парола = парола -къде = база данни "1 ограничение 500"> backup.sql
Те ще бъдат извлечени с ограничение от 500.

3. Копирайте само структурата на таблиците, но не и техните данни


По подразбиране, команда mysqldump изхвърля както структурата на таблиците, така и цялата им информация. Ако се интересувате само от изхвърляне на структурата на таблиците и колоните, използвайте опцията --no-data. Така че можете да създадете друга база данни точно същата, но празна:
 $ mysqldump --user = потребител --password = парола-база данни без данни> backup_sql
Обикновено, когато вмъкванията се генерират, те се групират в един израз, за ​​да се запазят редове от код, както следва:
 ВМЕСТВАНЕ В таблицата VALUES (1, 'name1'), (2, 'name2'), (3, 'name3');
Това е поведение, което може да причини грешки при по -стари системи, които не могат да обработват дълги редове. По същия начин може да срещнете проблеми с текстовия си редактор, когато се опитвате да отворите архивен файл, който съдържа тези дълги редове.

Ако сме изправени пред този случай, можем да добавим опцията --extended-insert = false за да накарате всеки INSERT да работи със свой собствен израз:

 $ mysqldump --user = потребителска парола = парола -разширено вмъкване = невярна база данни> backup_sql
Резултатът ще бъде следният:
 ВЪВЕЖДАНЕ В таблица VALUES (1, 'name1'); ВЪВЕЖДАНЕ В таблицата VALUES (2, 'name2'); ВМЕСТВАНЕ В ТАБЛИЦА на таблицата (3, 'име3'); 

Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave