Как автоматически создать резервную копию базы данных MySQL и Web-сервера в хранилище FTP

Восстановление базы данных в LinuxRestore your database on Linux

Чтобы восстановить резервную копию базы данных, можно воспользоваться командой Transact-SQL (TQL) RESTORE DATABASE.To restore the database backup, you can use the RESTORE DATABASE Transact-SQL (TQL) command.

Примечание

В приведенных ниже инструкциях используется программа sqlcmd.The following steps use the sqlcmd tool. Если вы еще не установили средства SQL Server, см. статью Установка программ командной строки SQL Server в Linux.If you haven’t install SQL Server Tools, see Install SQL Server command-line tools on Linux.

  1. В том же окне терминала запустите sqlcmd.In the same terminal, launch sqlcmd. В приведенном ниже пользователь SA подключается к локальному экземпляру SQL Server.The following example connects to the local SQL Server instance with the SA user. Введите пароль, когда появится запрос, или укажите пароль с помощью параметра -P.Enter the password when prompted, or specify the password by adding the -P parameter.

  2. В строке введите приведенную ниже команду RESTORE DATABASE, нажимая клавишу ВВОД после каждой строки (многострочную команду нельзя скопировать и вставить за один раз).At the prompt, enter the following RESTORE DATABASE command, pressing ENTER after each line (you cannot copy and paste the entire multi-line command at once). Замените все вхождения на имя вашей базы данных.Replace all occurrences of with the name of your database.

    Должно появиться сообщение об успешном восстановлении базы данных.You should get a message the database is successfully restored.

    Команда может вернуть ошибку, как в следующем примере: may return an error like the following example:

    Это значит, что база данных содержит дополнительные файлы.In this case, the database contains secondary files. Если эти файлы не указаны в предложении команды , процедура восстановления попытается создать их по тому же пути, что и на исходном сервере.If these files are not specified in the clause of , the restore procedure will try to create them in the same path as the original server.

    Вы можете вывести список всех файлов, содержащихся в резервной копии:You can list all files included in the backup:

    Вы должны получить список, аналогичный следующему (приводятся только два первых столбца):You should get a list like the one below (listing only the two first columns):

    Этот список можно использовать для создания предложений для дополнительных файлов.You can use this list to create clauses for the additional files. В этом примере команда имеет следующий вид:In this example, the is:

  3. Проверьте восстановление, получив список всех баз данных на сервере.Verify the restoration by listing all of the databases on the server. Восстановленная база данных должна быть указана в списке.The restored database should be listed.

  4. Выполните другие запросы к перенесенной базе данных.Run other queries on your migrated database. Приведенная ниже команда переключает контекст на базу данных YourDB и выбирает строки из одной из ее таблиц.The following command switches context to the YourDB database and selects rows from one of its tables.

  5. Когда вы завершите работу с sqlcmd, введите .When you are done using sqlcmd, type .

  6. Когда вы завершите работу в удаленном сеансе ssh, введите еще раз.When you are done working in the remote ssh session, type again.

ПараметрыOptions

Параметры диалогового окна зависят от выбранного места назначения: диск или магнитная лента.The options of this dialog box depend on whether you are selecting a destination on disk or on tape.

Место назначения на дискеDestination on diskДля указания места назначения резервной копии выберите один из следующих параметров.To specify a backup destination, choose one of the following options.

Имя файлаFile name Выберите этот параметр и введите в текстовое поле локальный или удаленный файл как место расположения резервной копии.Choose this option to enter a local or remote file as the backup destination in the text box to:Для указания локального файла нажмите кнопку «Обзор» справа от текстового поля и укажите файл на фиксированных дисках компьютера, на котором находится сервер, или введите полный путь и имя файла. Например, .Specify a local file, click the browse button to the right of the text box and navigate to a file on the fixed drives of the computer running the server, or enter the full path and file name directly; for example, .Укажите удаленный файл в качестве места расположения резервной копии. Для этого введите полное имя файла в формате UNC.Specify a remote file as your backup destination, enter its fully qualified universal naming convention (UNC) name. Дополнительные сведения см. в разделе Устройства резервного копирования (SQL Server).For more information, see Backup Devices (SQL Server).** Важная информация. ** В случае резервного копирования данных по сети могут произойти сетевые ошибки. Поэтому по его завершении рекомендуется сделать проверку.** Important ** Backing up data over a network can be subject to network errors; therefore, we recommend that you verify the backup operation after it finishes. Дополнительные сведения см. в разделе RESTORE VERIFYONLY (Transact-SQL).For more information, see RESTORE VERIFYONLY (Transact-SQL).
устройство резервного копирования;Backup device Выберите этот параметр для выбора логического устройства резервного копирования.Choose this option to select a logical backup device.Примечание. Дополнительные сведения о создании дискового устройства резервного копирования см. в разделе Определение логического устройства резервного копирования для дискового файла (SQL Server).Note: For information about how to create a disk backup device, see Define a Logical Backup Device for a Disk File (SQL Server).

Место назначения на лентеDestination on tapeВ качестве места расположения резервной копии выберите ленточный накопитель, физически подключенный к компьютеру, на котором находится сервер (экземпляр компонента Компонент Database EngineDatabase Engine).Specify a backup destination on a tape drive physically connected to the computer running the server (that is, the instance of the Компонент Database EngineDatabase Engine). Выберите один из следующих параметров.Choose one of the following options.

Ленточный накопительTape drive Выберите этот параметр, чтобы в качестве места расположения резервной копии выбрать накопитель на магнитной ленте из списка ленточных накопителей, физически подключенных к компьютеру, на котором находится экземпляр сервера.Choose this option to select a tape drive as the backup destination from the list of tape drives that are physically connected to the computer that is running the server instance.Примечание. Устройства резервного копирования на магнитных лентах на удаленных компьютерах нельзя указывать в качестве места назначения резервной копии.Note: Tape backup devices on remote computers are not valid backup destinations.
устройство резервного копирования;Backup device Выберите этот параметр для выбора существующего логического устройства резервного копирования.Choose this option to select an existing logical backup device. Эти логические устройства соответствуют ленточным накопителям, физически подключенным к компьютеру, на котором находится экземпляр сервера.These logical backup devices correspond to tape drives that are physically connected to the computer that is running the server instance.Примечание. Дополнительные сведения о создании ленточного устройства резервного копирования см. в разделе Определение логического устройства резервного копирования для ленточного накопителя (SQL Server).Note: For information about how to create a tape backup device, see Define a Logical Backup Device for a Tape Drive (SQL Server).

Репликация или создание зеркала из бэкапа MySQL

Репликация и зеркалирование из бэкапа базы данных MySQL – это автоматизированые операции по созданию и использованию копий данных MySQL на нескольких серверах одновременно. Такие задачи часто приходится решать при создании информационных кластеров и распределённых БД.

Репликация – это создание несколько синхронизированных копий БД на разных серверах — основном (master) и подчинённых (slave), с целью распараллеливания доступа к информации, повышения производительности и надёжности всей системы.

Репликация напоминает создание кластеров MySQL; если один из узлов останавливает работу, это не отражается на надёжности всей системы.

Зеркалирование баз данных MySQL — процесс, который может рассматриваться в общем случае как форма репликации одного основного узла на другой (master-master replication).

Технологии бэкапа MySQL

Существуют два основных способа бэкапа базы данных MySQL:

  • Холодный бэкап MySQL выполняется при остановленном сервере с прекращением всех транзакций и сохранением данных на рабочий носитель базы перед бэкапом MySQL. Этот способ имеет недостатки, в частности, относится длительное время простоя сервера.
  • Горячий бэкап MySQL не требует остановки и последующего перезапуска сервера MySQL. Это позволяет сократить простои и повысить комфортность работы.

Handy Backup по умолчанию использует технологию горячего бэкапа для баз MySQL, которая отличается высокой скоростью работы и позволяет создавать копии отдельных таблиц, пространств и целых баз данных MySQL.

Использование среды SQL Server Management StudioUsing SQL Server Management Studio

Назначение срока хранения резервной копииTo set the expiration date on a backup

  1. После подключения к соответствующему экземпляру MicrosoftMicrosoft Компонент SQL Server Database EngineSQL Server Database Engine в обозревателе объектов разверните дерево сервера, щелкнув его имя.After connecting to the appropriate instance of the MicrosoftMicrosoft Компонент SQL Server Database EngineSQL Server Database Engine, in Object Explorer, click the server name to expand the server tree.

  2. Раскройте узел Базы данныхи в зависимости от типа восстанавливаемой базы данных выберите пользовательскую базу данных или раскройте узел Системные базы данных и выберите системную базу данных.Expand Databases, and, depending on the database, either select a user database or expand System Databases and select a system database.

  3. Щелкните правой кнопкой мыши базу данных, выберите пункт Задачи, а затем команду Создать резервную копию.Right-click the database, point to Tasks, and then click Back Up. Откроется диалоговое окно Резервное копирование базы данных .The Back Up Database dialog box appears.

  4. На странице Общие в поле Срок действия резервного набора данных истекаетукажите дату истечения срока, чтобы определить, когда резервный набор данных можно будет перезаписать другой резервной копией:On the General page, for Backup set will expire, specify an expiration date to indicate when the backup set can be overwritten by another backup:

    • Чтобы задать срок действия резервного набора данных, выберите пункт После (параметр по умолчанию) и введите срок действия набора в днях с момента его создания.To have the backup set expire after a specific number of days, click After (the default option), and enter the number of days after set creation that the set will expire. Это значение может быть задано в диапазоне от 0 до 99 999 дней. Значение 0 означает, что срок действия резервного набора данных не ограничен.This value can be from 0 to 99999 days; a value of 0 days means that the backup set will never expire.

      Значение по умолчанию задается в параметре Срок хранения носителей резервных копий по умолчанию (дней) диалогового окна Свойства сервера (страницаПараметры базы данных ).The default value is set in the Default backup media retention (in days) option of the Server Properties dialog box (Database Settings page). Чтобы получить доступ к этому параметру, щелкните правой кнопкой мыши имя сервера в обозревателе объектов и выберите пункт «Свойства», а затем выберите страницу Настройки базы данных .To access this, right-click the server name in Object Explorer and select properties; then select the Database Settings page.

    • Чтобы указать дату истечения срока действия резервного набора данных, выберите пункт Наи введите дату истечения срока действия резервного набора данных.To have the backup set expire on a specific date, click On, and enter the date on which the set will expire.

Перед началомBefore You Begin

ОграниченияLimitations and Restrictions

  • Мастер копирования баз данных недоступен в выпуске Express.The Copy Database Wizard is not available in the Express edition.

  • Мастер копирования базы данных нельзя использовать для перемещения или копирования следующих типов баз данных.The Copy Database Wizard cannot be used to copy or move the following databases.

    • Системные базы данныхSystem databases

    • Базы данных, отмеченные для репликации.Databases marked for replication.

    • Базы данных в следующих состояниях: недоступные, в процессе загрузки, в режиме вне сети, в процессе восстановления, подозрительные или в аварийном режиме.Databases marked Inaccessible, Loading, Offline, Recovering, Suspect, or in Emergency Mode.

  • После обновления базы данных возврат к предыдущей версии невозможен.After a database has been upgraded, it cannot be downgraded to a previous version.

  • Если выбран параметр Переместить , после перемещения базы данных мастер автоматически удаляет базу данных-источник.If you select the Move option, the wizard deletes the source database automatically after moving the database. При выборе параметра Копирование мастер копирования базы данных не выполняет удаление базы данных-источника.The Copy Database Wizard does not delete a source database if you select the Copy option.

  • При использовании метода управляющих объектов SQL ServerSQL Server для перемещения полнотекстового каталога после перемещения необходимо заново заполнить индекс.If you use the SQL ServerSQL Server Management Object method to move the full-text catalog, you must repopulate the index after the move.

  • Метод отсоединения и присоединения отсоединяет базу данных, перемещает или копирует ее файлы (MDF, NDF и LDF) и подсоединяет базу данных в новом расположении.The detach-and-attach method detaches the database, moves or copies the database .mdf, .ndf, .ldf files and reattaches the database in the new location. При использовании этого метода во избежание потери или рассогласования данных к копируемой или перемещаемой базе данных нельзя присоединять активные сеансы.For the detach-and-attach method, to avoid data loss or inconsistency, active sessions cannot be attached to the database being moved or copied. При наличии каких-либо активных сеансов мастер копирования баз данных не выполняет операцию перемещения или копирования.If any active sessions exist, the Copy Database Wizard does not execute the move or copy operation. Если используется метод управляющих объектов SQL ServerSQL Server , активные сеансы допустимы, так как база данных не переводится в режим «вне сети».For the SQL ServerSQL Server Management Object method, active sessions are allowed because the database is never taken offline.

Предварительные требованияPrerequisites

На сервере назначения должен быть запущен агент SQL Server.Ensure that SQL Server Agent is started on the destination server.

РекомендацииRecommendations

  • Для обеспечения оптимальной производительности обновленной базы данных выполните процедуру sp_updatestats (обновление статистики) для обновленной базы данных.To ensure optimal performance of an upgraded database, run sp_updatestats (update statistics) against the upgraded database.

  • При копировании базы данных на другой экземпляр сервера, чтобы обеспечить однородность среды, возможно, на другом экземпляре сервера придется повторно создать некоторые (или даже все) метаданные базы данных: имена входа, задания и т. д.When you copy a database to another server instance, to provide a consistent experience to users and applications, you might have to re-create some or all of the metadata for the database, such as logins and jobs, on the other server instance. Дополнительные сведения см. в статье Управление метаданными при обеспечении доступности базы данных на другом экземпляре сервера (SQL Server).For more information, see Manage Metadata When Making a Database Available on Another Server Instance (SQL Server).

PermissionsPermissions

Вы должны быть членом предопределенной роли сервера sysadmin как на исходном, так и на целевом сервере.You must be a member of the sysadmin fixed server role on both the source and destination servers.

Ограничения восстановления системных баз данныхLimitations on Restoring System Databases

Системные базы данных могут быть восстановлены только из резервных копий, созданных той версией SQL ServerSQL Server , которая запущена на данном экземпляре сервера.System databases can be restored only from backups that are created on the version of SQL ServerSQL Server that the server instance is currently running. Например, чтобы восстановить системную базу данных на экземпляре сервера, работающего под SQL Server 2012 (11.x)SQL Server 2012 (11.x) с пакетом обновления 1 (SP1), необходимо использовать резервную копию базы данных, созданную после обновления экземпляра сервера до SQL Server 2012 (11.x)SQL Server 2012 (11.x) с пакетом обновления 1 (SP1).For example, to restore a system database on a server instance that is running on SQL Server 2012 (11.x)SQL Server 2012 (11.x) SP1, you must use a database backup that was created after the server instance was upgraded to SQL Server 2012 (11.x)SQL Server 2012 (11.x) SP1.

Для восстановления любой базы данных должен быть запущен экземпляр SQL ServerSQL Server .To restore any database, the instance of SQL ServerSQL Server must be running. Для запуска экземпляра SQL ServerSQL Server необходимо, чтобы база данных master была доступна и хотя бы частично пригодна к использованию.Startup of an instance of SQL ServerSQL Server requires that the master database is accessible and at least partly usable. Если база данных master непригодна к использованию, ее можно вернуть в нормальное состояние следующими способами.If master becomes unusable, you can return the database to a usable state in either of the following ways:

Восстановить базу данных master на основе актуальной резервной копии.Restore master from a current database backup.
Если экземпляр сервера удалось запустить, базу данных master можно восстановить из полной резервной копии.If you can start the server instance, you should be able to restore master from a full database backup.

Перестроить базу данных master с нуля.Rebuild master completely.
Если серьезное повреждение базы данных master не позволяет запустить экземпляр SQL ServerSQL Server, базу данных masterнужно перестроить.If severe damage to master prevents you from starting SQL ServerSQL Server, you must rebuild master. Дополнительные сведения см

в разделе Перестроение системных баз данных.For more information, see Rebuild System Databases.

Важно!
При перестроении базы данных master все системные базы данных также перестраиваются.Rebuilding master rebuilds all of the system databases.

В некоторых случаях для проблем, связанных с восстановлением табличного шаблона базы данных модели, может потребоваться перестроение системных баз данных или замена MDF- и LDF-файлов базы данных модели.Under some circumstances, problems recovering the model database may require rebuilding the system databases or replacing the mdf and ldf files for the model database. Дополнительные сведения см

в разделе Перестроение системных баз данных.For more information, see Rebuild System Databases.

Диалоговое окно «Создание соединения»New Connection Dialog Box

Имя соединенияConnection nameВведите имя нового соединения.Enter a name for the new connection.

Выберите или введите имя сервераSelect or enter a server nameВыберите сервер для подключения при выполнении этой задачи.Select a server to connect to when performing this task.

ОбновитьRefreshОбновите список доступных серверов.Refresh the list of available servers.

Введите данные для входа на серверEnter information to log on to the serverУкажите способ проверки подлинности на сервере.Specify how to authenticate against the server.

Использовать встроенную безопасность WindowsUse Windows integrated securityПодключиться к экземпляру компонента SQL ServerSQL Server Компонент Database EngineDatabase Engine c проверкой подлинности Windows.Connect to an instance of the SQL ServerSQL Server Компонент Database EngineDatabase Engine with Windows Authentication.

Использовать указанные имя пользователя и парольUse a specific user name and passwordПодключиться к экземпляру компонента SQL ServerSQL Server Компонент Database EngineDatabase Engine с использованием проверки подлинности SQL ServerSQL Server.Connect to an instance of the SQL ServerSQL Server Компонент Database EngineDatabase Engine using SQL ServerSQL Server Authentication. Этот параметр недоступен.This option is not available.

User nameUser nameУкажите имя входа, используемое при проверке подлинности SQL ServerSQL Server .Provide a SQL ServerSQL Server login to use when authenticating. Этот параметр недоступен.This option is not available.

ПарольPasswordУкажите используемый при проверке подлинности пароль.Provide a password to use when authenticating. Этот параметр недоступен.This option is not available.

Сохранение и извлечение файлов из базы данных

Последнее обновление: 31.10.2015

Сохранение в базу данных файлов

Рассмотрим, как мы можем сохранять файлы, в частности, файлы изображений в базу данных. Для этого добавим в базу данных новую таблицу
Images с четырьмя столбцами: Id (первичный ключ и идентификатор, имеет тип int), FileName (будет хранить имя файла и имеет тип nvarchar), Title (будет хранить заголовок
файла и также имеет тип nvarchar) и ImageData (будет содержать бинарные данные файла и имеет тип varbimary(MAX)).

Определим код, в котором будут загружаться данные в таблицу:

private static void SaveFileToDatabase()
{
    string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=usersdb;Integrated Security=True";
	using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
        SqlCommand command = new SqlCommand();
        command.Connection = connection;
        command.CommandText = @"INSERT INTO Images VALUES (@FileName, @Title, @ImageData)";
        command.Parameters.Add("@FileName", SqlDbType.NVarChar, 50);
        command.Parameters.Add("@Title", SqlDbType.NVarChar, 50);
        command.Parameters.Add("@ImageData", SqlDbType.Image, 1000000);

		// путь к файлу для загрузки
        string filename = @"C:\Users\Eugene\Pictures\cats.jpg";
		// заголовок файла
        string title = "Коты";
		// получаем короткое имя файла для сохранения в бд
        string shortFileName = filename.Substring(filename.LastIndexOf('\\')+1); // cats.jpg
		// массив для хранения бинарных данных файла
        byte[] imageData;
        using (System.IO.FileStream fs = new System.IO.FileStream(filename, FileMode.Open))
        {
            imageData = new byte;
            fs.Read(imageData, 0, imageData.Length);
        }
		// передаем данные в команду через параметры
        command.Parameters.Value = shortFileName;
        command.Parameters.Value = title;
        command.Parameters.Value = imageData;

        command.ExecuteNonQuery();
    }
}

После выполнения этой программы в базе данных появится соответствующая запись:

Извлечение файлов из базы данных

В прошлой теме мы рассмотрели, как добавить файл в базу данных. Теперь произведем обратную операцию — получим файл из БД. Вначале определим класс файла,
который упростит работу с данными:

public class Image
{
    public Image(int id, string filename, string title, byte[] data)
    {
        Id = id;
        FileName = filename;
        Title = title;
        Data = data;
    }
    public int Id { get; private set; }
    public string FileName { get; private set; }
    public string Title { get; private set; }
    public byte[] Data { get; private set; }
}

Затем в коде программы определим следующий метод:

private static void ReadFileFromDatabase()
{
    string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=usersdb;Integrated Security=True";
	List images = new List();
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
        string sql = "SELECT * FROM Images";
        SqlCommand command = new SqlCommand(sql, connection);
        SqlDataReader reader = command.ExecuteReader();

        while(reader.Read())
        {
            int id = reader.GetInt32(0);
            string filename = reader.GetString(1);
            string title = reader.GetString(2);
            byte[] data = (byte[])reader.GetValue(3);
            
			Image image = new Image(id, filename, title, data);
            images.Add(image);
        }
    }
	// сохраним первый файл из списка
    if(images.Count>0)
    {
        using (System.IO.FileStream fs = new System.IO.FileStream(images.FileName, FileMode.OpenOrCreate))
        {
            fs.Write(images.Data, 0, images.Data.Length);
            Console.WriteLine("Изображение '{0}' сохранено", images.Title);
        }
    }
}

В этом методе с помощью SqlDataReader мы получаем значения из БД и по ним создаем объект Image, который потом добавляется в список.
И в конце смотрим, если в списке есть элементы, то берем первый элемент и сохраняем его на локальный компьютер. И после сохранения
в папке нашей программы появится загруженный из базы данных файл.

НазадВперед

Ссылка на основную публикацию