Введение
В этой лабораторной работе вы узнаете, как создавать резервные копии и восстанавливать базу данных SQLite. Вы научитесь экспортировать базу данных в SQL-файл с помощью команды .dump, создавать резервную копию, а затем восстанавливать базу данных из этой резервной копии. Это необходимо для защиты ваших данных.
Создание образца базы данных
На этом шаге вы создадите образец базы данных SQLite и заполните ее некоторыми данными. Это даст вам базу данных для практики резервного копирования и восстановления.
Сначала откройте оболочку SQLite (SQLite shell). Здесь вы будете взаимодействовать с базой данных.
sqlite3 mydatabase.db
Эта команда запускает оболочку SQLite и создает новый файл базы данных с именем mydatabase.db. Если файл уже существует, он откроет этот файл.
Теперь создайте таблицу с именем users со столбцами для id, name и email:
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT,
email TEXT
);
Эта SQL-команда создает таблицу с именем users. Столбец id является целым числом и первичным ключом (primary key), что означает, что он однозначно идентифицирует каждую строку в таблице. Столбцы name и email являются текстовыми полями.
Далее вставьте некоторые примеры данных в таблицу users:
INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');
INSERT INTO users (name, email) VALUES ('Bob', 'bob@example.com');
Эти команды добавляют две строки в таблицу users. Первая строка имеет имя 'Alice' и адрес электронной почты 'alice@example.com'. Вторая строка имеет имя 'Bob' и адрес электронной почты 'bob@example.com'.
Чтобы убедиться, что данные были вставлены правильно, выполните следующую команду:
SELECT * FROM users;
Вы должны увидеть вывод, подобный этому:
1|Alice|alice@example.com
2|Bob|bob@example.com
Этот вывод показывает содержимое таблицы users, подтверждая, что данные были успешно вставлены.
Экспорт базы данных в SQL-файл
На этом шаге вы экспортируете базу данных mydatabase.db в SQL-файл с именем mydatabase.sql. Этот SQL-файл будет содержать команды, необходимые для воссоздания базы данных и ее данных.
Сначала выйдите из оболочки SQLite (SQLite shell):
.exit
Эта команда закрывает соединение с базой данных и возвращает вас в терминал Linux.
Теперь используйте команду .dump для экспорта базы данных в SQL-файл:
sqlite3 mydatabase.db .dump > mydatabase.sql
Эта команда использует инструмент командной строки sqlite3 для подключения к базе данных mydatabase.db. Команда .dump указывает SQLite вывести всю базу данных в виде серии SQL-команд. Символ > перенаправляет вывод команды .dump в файл с именем mydatabase.sql.
Чтобы убедиться, что экспорт прошел успешно, вы можете просмотреть содержимое файла mydatabase.sql с помощью команды cat:
cat mydatabase.sql
Вы должны увидеть вывод, подобный этому:
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT,
email TEXT
);
INSERT INTO users VALUES(1,'Alice','alice@example.com');
INSERT INTO users VALUES(2,'Bob','bob@example.com');
COMMIT;
Этот вывод показывает SQL-команды, которые создают таблицу users и вставляют данные. Это подтверждает, что база данных была успешно экспортирована в SQL-файл.
Создание резервной копии базы данных
На этом шаге вы создадите резервную копию базы данных, используя ту же команду .dump. По сути, это тот же процесс, что и экспорт в SQL-файл, но мы сохраним резервную копию в другой файл.
sqlite3 mydatabase.db .dump > mydatabase_backup.sql
Эта команда создает резервную копию базы данных mydatabase.db и сохраняет ее в файл с именем mydatabase_backup.sql.
Чтобы убедиться, что резервная копия была создана успешно, вы можете просмотреть содержимое файла mydatabase_backup.sql с помощью команды cat:
cat mydatabase_backup.sql
Вы должны увидеть тот же вывод, что и на предыдущем шаге, подтверждая, что файл резервной копии содержит SQL-команды, необходимые для воссоздания базы данных.
Восстановление базы данных из резервной копии
На этом шаге вы восстановите базу данных из файла mydatabase_backup.sql. Это воссоздаст базу данных и ее данные из резервной копии.
Сначала давайте смоделируем сценарий, в котором исходная база данных утеряна. Удалите файл mydatabase.db:
rm mydatabase.db
Эта команда удаляет файл mydatabase.db из файловой системы.
Теперь восстановите базу данных из файла mydatabase_backup.sql:
sqlite3 mydatabase.db < mydatabase_backup.sql
Эта команда использует инструмент командной строки sqlite3 для создания нового файла базы данных с именем mydatabase.db. Символ < перенаправляет содержимое файла mydatabase_backup.sql в команду sqlite3, которая выполняет SQL-команды в файле. Это воссоздает базу данных и ее данные.
Чтобы убедиться, что восстановление прошло успешно, откройте базу данных в оболочке SQLite (SQLite shell):
sqlite3 mydatabase.db
И запросите таблицу users:
SELECT * FROM users;
Вы должны увидеть данные, которые были сохранены в резервной копии:
1|Alice|alice@example.com
2|Bob|bob@example.com
Это подтверждает, что база данных была успешно восстановлена из файла резервной копии.
Выйдите из оболочки SQLite:
.exit
Резюме
В этой лабораторной работе вы узнали, как создавать резервные копии и восстанавливать базу данных SQLite. Вы использовали команду .dump для экспорта базы данных в SQL-файл, а затем восстановили базу данных из этого файла. Эти навыки необходимы для защиты ваших данных и обеспечения возможности восстановления после потери данных.


