Mysql
 sql >> база данни >  >> RDS >> Mysql

Използвайте mysqldump за архивиране на MySQL или MariaDB

MySQL и MariaDB включват помощната програма mysqldump за опростяване на процеса за създаване на резервно копие на база данни или система от бази данни. Използване на mysqldump създава логическо архивиране . Можете да използвате този инструмент само ако процесът на вашата база данни е достъпен и работи.

Ако вашата база данни не е достъпна по някаква причина, можете вместо това да създадетефизическо архивиране , което е копие на структурата на файловата система, която съдържа вашите данни.

Инструкциите в това ръководство важат както за MySQL, така и за MariaDB. За опростяване, името MySQL ще се използва, за да се прилага и към двете.

Преди да започнете

  • Ще ви трябва работеща инсталация на MySQL или MariaDB и потребител на база данни, за да стартирате архивирането. За помощ при инсталирането вижте документацията на Linode MySQL.

  • Ще ви е необходим root достъп до системата или потребителски акаунт с sudo привилегии.

Архивиране на база данни

mysqldump общият синтаксис на командата е:

mysqldump -u [username] -p [databaseName] > [filename]-$(date +%F).sql
  • mysqldump подканва за парола, преди да започне процеса на архивиране.
  • В зависимост от размера на базата данни, завършването може да отнеме известно време.
  • Архивът на базата данни ще бъде създаден в директорията, в която се изпълнява командата.
  • -$(date +%F) добавя времева марка към името на файла.

Примерните случаи на употреба включват:

  • Създайте резервно копие на цялата система за управление на бази данни (СУБД):

      mysqldump --all-databases --single-transaction --quick --lock-tables=false > full-backup-$(date +%F).sql -u root -p
    
  • Архивирайте конкретна база данни. Заменете db1 с името на базата данни, която искате да архивирате:

      mysqldump -u username -p db1 --single-transaction --quick --lock-tables=false > db1-backup-$(date +%F).sql
    
  • Архивирайте една таблица от всяка база данни. В примера по-долу, table1 се експортира от базата данни db1 :

      mysqldump -u username -p --single-transaction --quick --lock-tables=false db1 table1 > db1-table1-$(date +%F).sql
    

Ето разбивка на mysqldump опции за команди, използвани по-горе:

  • --single-transaction :Издайте BEGIN SQL оператор, преди да изхвърлите данни от сървъра.
  • --quick :Прилагане на дъмпинг таблици ред по ред. Това осигурява допълнителна безопасност за системи с малко RAM и/или големи бази данни, където съхраняването на таблици в паметта може да стане проблематично.
  • --lock-tables=false :Не заключвайте таблици за сесията за архивиране.

Автоматизирайте архивирането с cron

Записите могат да се добавят към /etc/crontab да планирате редовно архивиране на база данни.

  1. Създайте файл, който да съхранява идентификационните данни за влизане на root потребителя на MySQL, който ще извършва архивирането. Имайте предвид, че потребителят на системата, в чиято домашна директория се съхранява този файл, може да не е свързан с потребители на MySQL.

    Файл:/ home/example_user/.mylogin.cnf
    1
    2
    3
    
    [client]
    user = root
    password = MySQL root user's password
  2. Ограничаване на разрешенията на файла с идентификационни данни:

    chmod 600 /home/example_user/.mylogin.cnf
    
  3. Създайте файла за задание на cron. По-долу е дадена примерна задача на cron за архивиране на цялата система за управление на база данни всеки ден в 1 часа сутринта:

    Файл:/ etc/cron.daily/mysqldump
    1
    
    0 1 * * * /usr/bin/mysqldump --defaults-extra-file=/home/example_user/.my.cnf -u root --single-transaction --quick --lock-tables=false --all-databases > full-backup-$(date +\%F).sql

    За повече информация относно cron вижте страниците на ръководството на thecron(8) иcron(5).

Възстановяване на резервно копие

Общият синтаксис на командата за възстановяване е:

mysql -u [username] -p [databaseName] < [filename].sql
  • Възстановете цял архив на СУБД. Ще бъдете подканени за паролата на root потребителя на MySQL:
    Това ще презапише всички текущи данни в системата на базата данни MySQL

      mysql -u root -p < full-backup.sql
    
  • Възстановете единично дъмп на базата данни. Вече трябва да съществува празна или стара дестинационна база данни, за да се импортират данните, и потребителят на MySQL, който изпълнявате командата, трябва да има достъп за запис до тази база данни:

      mysql -u [username] -p db1 < db1-backup.sql
    
  • За да възстановите една таблица, трябва да имате готова дестинационна база данни, за да получите данните:

      mysql -u dbadmin -p db1 < db1-table1.sql
    

Повече информация

Може да пожелаете да се консултирате със следните ресурси за допълнителна информация по тази тема. Въпреки че те са предоставени с надеждата, че ще бъдат полезни, моля, имайте предвид, че не можем да гарантираме за точността или навременността на външно хостваните материали.

  • Страница Методи за архивиране на MySQL база данни
  • mysqldump – програма за архивиране на база данни, справочно ръководство за MySQL

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разлика между ключ, първичен ключ, уникален ключ и индекс в MySQL

  2. JSON_OBJECT() – Създайте JSON обект от списък с двойки ключ/стойност в MySQL

  3. Има ли начин да стартирате MySQL в паметта за тестови случаи на JUnit?

  4. MySQL команди:Cheat Sheet на общите MySQL заявки

  5. Как да записвам и извличам изображение на моя сървър в java webapp