|
Программирование >> Программный интерфейс приложений
вые появившийся в версии MySQL 3.23 формат хранения MylSAM решает эту проблему, поскольку является независимым от архитектуры компьютера. Соответственно, скопированные файлы можно легко переносить на другой компьютер с любой архитектурой в одном из двух случаев; на втором компьютере также запущена СУБД MySQL версии 3.23 и более поздней либо файлы таблиц представлены в формате MylSAM, а не ISAM. Независимо от выбранного метода резервирования существуют определенные принципы, которым необходимо следовать для достижения эффективных результатов. Регулярно выполняйте резервирование. На этапе планирования разработайте расписание и четко его придерживайтесь. Обязательно активизируйте регистрацию обновлений (как это сделать, рассказывается в разделе Ведение файлов журналов , выше в этой главе). Журналы обновлений помогут восстановить базу данных после сбоя, вернее, после восстановления заархивированных файлов вернуть ее в состояние, в котором база данных находилась непосредственно перед сбоем. Для этого необходимо заново внести все изменения, сделанные с момента последнего резервирования, просто запустив запросы журнала обновлений. Согласно терминологии резервирования, заархивированные файлы баз данных представляют полный архив, а журналы обновлений - дополнительный. Используйте постоянную и легко понятную схему присвоения имен файлам архива. Имена типа backupl, backup2 и т.д. не несут никакой смысловой нагрузки. И когда приходит время восстанавливать информацию, много времени тратится на изучение их содержимого. Гораздо эффективней присваивать архивным файлам имена баз данных и дат резервирования. Например; % mysqldump samp db > /usr/archives/mysql/samp db.1999-10-02 % mysqldunp menagerie > /usr/archives/mysql/menagerie.1999-10-02 Иногда сразу после создания файлы архивов лучше сжать, ведь они занимают много места. Время от времени рекомендуется также удалять ненужные файлы архивов, так же как и файлы журналов, чтобы не заполнять жесткий диск ненужной информацией. Более детально эта процедура рассматривается в разделе Ведение файлов журналов , ранее в этой главе. Описанные в ней способы можно применять и к файлам архивов. Резервируйте впоследствии архивные файлы MySQL с помощью средств резервирования файловой системы. В случае фатального сбоя операционной системы потерянным может оказаться не только каталог данных, но и вся остальная информация, находящаяся на жестком диске. Поэтому для большей надежности необходимо резервировать также файлы архивов и журналов обновлений. Размещайте файлы архивов на отдельном диске. Это снизит вероятность переполнения этими файлами диска, содержащего каталог данных. Описанные выще методы резервирования баз данных оказываются эффективными и для копирования этих баз на другой сервер. Наиболее часто база данных переносится на другой сервер, работающий на отдельном компьютере, однако можно перенести ее в отдельный каталог для другого сервера, работающего на этом же локальном компьютере. Необходимость в этом может возникнуть после выхода новой версии MySQL, когда администратор захочет протестировать ее работу перед полным переходом, либо при установке нового более производительного компьютера, на который со временем планируется перенести все базы данных. Резервирование и копирование баз данных с помощью программы mysqldmnp При резервировании базы данных с помощью программы mysqldump создается файл, который состоит из создающих таблицы операторов CREATE TABLE И операторов INSERT С данными строк таблиц. Другими словами, в процессе работы программа mysqldump создает набор операторов, которые впоследствии можно отправить серверу mysql для воссоздания базы данных. Для резервирования целой базы данных в одном текстовом файле достаточно запустить следующую команду: % mysqldump samp db > /usr/archives/niYsql/samp db. 1999-10-02 В результате ее выполнения будет создан файл, начинающийся следующим образом: # MySQL dump 6.0 # # Host: localhost Database: samp db #---------------------------------------------------- # Server version 3.23.2-alpha-log # # Table structure for table absence # CREATE TABLE absence( student id int(lO) unsigned DEFAULT 0 NOT NULL, date date DEFAULT 0000-00-00 NOT NULL, PRIMARY KEY (student id,date) ) ; # # Dumping data for table absence # INSERT INTO absence VALUES (3, 1999-09-03) ; INSERT INTO absence VALUES {5,1999-09-03); INSERT INTO absence VALUES {10,1999-09-06); Остальная часть файла также состоит из операторов create table и insert. Чтобы сразу после создания сжать файл архива, необходимо ввести вместо представленной выше следующую команду % mysqldump samp db gzip > /usr/archives/mysql/samp db.1999-10-02.gz Результатом резервирования большой базы данных станет создание большого файла архива, с которым трудно работать. В таком случае можно зарезервировать отдельные таблицы, указав их имена после имени базы данных в строке команды mysqldump. Это приведет к созданию меньших, а следовательно, и более удобных для обработки файлов. Резервирование отдельных таблиц базы данных sampdb можно выполнить с помощью следующих команд: % mysqldvmp samp db student score event absence > gradebook.sql % mysqldvmp samp db member president > hist-league.sql Если создаваемые файлы архивов планируется использовать для периодического обновления содержимого другой базы данных, можно добавить в командную строку mysqldump опцию --add-drop-table. В этом случае в файл архива будут заноситься операторы drop table if exists. При загрузке файла архива с этими операторами в другой базе данных сообщения о существовании таблиц появляться не будут. Администраторы, управляющие двумя серверами, могут использовать этот способ для периодической зафузки данных из баз данных одного сервера в базы другого. Для переноса содержимого базы данньг) на другой сервер вовсе необязательно создавать файлы архива. Достаточно убедиться в существовании этой базы данных на другом компьютере, а затем создать канал (pipe), чтобы mysql смог напрямую считывать вывод команды mysqldump. Так, например, копирование базы данных с компьютера pit-viper.snake.net на boa. snake. net легко выполняется с помошью следующих команд: % mysqladmin -h boa.snake.net create samp db % mysqldiuap samp db j mysql -h boa. snake .net samp db Чтобы впоследствии обновить информацию базы данных на компьютере boa.snake.net, запустите только вторую команду, добавив опцию --add-drop-table во избежание ошибок записи в уже существующие таблицы: % mysqlduji?} -add-drop-table samp db mysql -h boa.snake.net samp db В строке команды mysqladmin можно использовать и другие полезные опции. Комбинация опций --flush-logs и --lock-tables полезна для контроля состояния базы данных. Первая опция закрывает и повторно открывает файлы журналов обновлений, а вторая -
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |