Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен
Шрифт:
Интервал:
Закладка:
docker exec -it AutoLot mkdir var/opt/mssql/backup
Структура пути должна соответствовать ОС контейнера (в данном случае Ubuntu), даже если хост-машина функционирует под управлением Windows. Затем скопируйте резервную копию с применением показанной ниже команды (укажите для местоположения файла AutoLotDocker.bak относительный или абсолютный путь на вашей локальной машине):
[Windows]
docker cp .AutoLotDocker.bak AutoLot:var/opt/mssql/backup
[Non-Windows]
docker cp ./AutoLotDocker.bak AutoLot:var/opt/mssql/backup
Обратите внимание, что исходная структура каталогов соответствует хост-машине (в этом примере Windows), тогда как цель выглядит как имя контейнера и затем путь к каталогу (в формате целевой ОС).
Восстановление базы данных с помощью SSMS
Чтобы восстановить базу данных с применением SSMS, щелкните правой кнопкой мыши на узле Databases (Базы данных) в проводнике объектов и выберите в контекстном меню пункт Restore Database (Восстановить базу данных). Укажите вариант Device (Устройство) и щелкните на символе троеточия. Откроется диалоговое окно Select Backup Device (Выбор устройства с резервной копией).
Восстановление базы данных в экземпляр SQL Server (Docker)
Оставив в раскрывающемся списке Backup media type (Тип носителя резервной копии) выбранным вариант File (Файл), щелкните на кнопке Add (Добавить), перейдите к файлу AutoLotDocker.bak в контейнере и щелкните на кнопке ОК. Возвратившись в главное диалоговое окно восстановления, щелкните на кнопке ОК (рис. 21.6).
Восстановление базы данных в экземпляр SQL Server (Windows)
Оставив в раскрывающемся списке Backup media type выбранным вариант File, щелкните на кнопке Add, перейдите к файлу AutoLotWindows.bak и щелкните на кнопке ОК. Возвратившись в главное диалоговое окно восстановления, щелкните на кнопке ОК (рис. 21.7).
Восстановление базы данных с помощью Azure Data Studio
Чтобы восстановить базу данных с использованием Azure Data Studio, выберите в области Tasks (Задачи) вариант Restore (Восстановить). Укажите в раскрывающемся списке Restore from (Восстановить из) вариант Backup file (Файл резервной копии) и затем выберите только что скопированный файл. Целевая база данных и связанные поля заполнятся автоматически, как показано на рис. 21.8.
На заметку! Процесс восстановления версии Windows резервной копии посредством Azure Data Studio аналогичен. Понадобится просто скорректировать имя файла и пути.
Создание базы данных AutoLot
Весь этот раздел посвящен созданию базы данных AutoLot с применением Azure Data Studio. Если вы используете SSMS, то можете выполнить описанные здесь шаги, применяя либо приведенные SQL-сценарии, либо инструменты с графическим пользовательским интерфейсом. Если вы восстановили резервную копию, тогда переходите сразу в раздел "Модель фабрики поставщиков данных ADO.NET".
На заметку! Все файлы сценариев находятся в подпапке по имени Scripts внутри папки Chapter_21 хранилища GitHub для данной книги.
Создание базы данных
Для создания базы данных AutoLot подключитесь к своему серверу баз данных с использованием Azure Data Studio. Откройте окно нового запроса, выбрав пункт меню File►New Query (Файл►Новый запрос) или нажав комбинацию <Ctrl+N>, и введите следующие команды SQL:
USE [master]
GO
/****** Object: Database [AutoLot50] Script Date: 12/20/2020 01:48:05 ******/
CREATE DATABASE [AutoLot]
GO
ALTER DATABASE [AutoLot50] SET RECOVERY SIMPLE
GO
Кроме изменения режима восстановления на простой команда создает базу данных AutoLot с применением стандарных параметров SQL Server. Щелкните на кнопке Run (Выполнить) или нажмите <F5>, чтобы создать базу данных.
Создание таблиц
База данных AutoLot содержит пять таблиц: Inventory, Makes, Customers, Orders и CreditRisks.
Создание таблицы Inventory
После создания базы данных можно приступать к созданию таблиц. Первой таблицей будет Inventory. Откройте окно нового запроса и введите приведенные ниже команды SQL:
USE [AutoLot]
GO
CREATE TABLE [dbo].[Inventory](
[Id] [int] IDENTITY(1,1) NOT NULL,
[MakeId] [int] NOT NULL,
[Color] [nvarchar](50) NOT NULL,
[PetName] [nvarchar](50) NOT NULL,
[TimeStamp] [timestamp] NULL,
CONSTRAINT [PK_Inventory] PRIMARY KEY CLUSTERED
(
[Id] ASC
) ON [PRIMARY]
) ON [PRIMARY]
GO
Щелкните на кнопке Run (или нажмите <F5>), чтобы создать таблицу Inventory.
Создание таблицы Makes
Таблица Inventory хранит внешний ключ в (пока еще не созданной) таблице Makes. Создайте новый запрос и введите следующие команды SQL для создания таблицы Makes:
USE [AutoLot]
GO
CREATE TABLE [dbo].[Makes](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) NOT NULL,
[TimeStamp] [timestamp] NULL,
CONSTRAINT [PK_Makes] PRIMARY KEY CLUSTERED
(
[Id] ASC
) ON [PRIMARY]
) ON [PRIMARY]
GO
Щелкните на кнопке Run (или нажмите <F5>), чтобы создать таблицу Makes.
Создание таблицы Customers
Таблица Customers будет хранить список покупателей. Создайте новый запрос и введите представленные далее команды SQL:
USE [AutoLot]
GO
CREATE TABLE [dbo].[Customers](
[Id] [int] IDENTITY(1,1) NOT NULL,
[FirstName] [nvarchar](50) NOT NULL,
[LastName] [nvarchar](50) NOT NULL,
[TimeStamp] [timestamp] NULL,
CONSTRAINT [PK_Customers] PRIMARY KEY CLUSTERED
(
[Id] ASC
) ON [PRIMARY]
) ON [PRIMARY]
GO
Щелкните на кнопке Run (или нажмите <F5>), чтобы создать таблицу Customers.
Создание таблицы Orders
Создаваемая следующей таблица Orders будет использоваться для представления автомобилей, заказанных покупателями. Создайте новый запрос, введите показанные ниже команды SQL и щелкните на кнопке Run (или нажмите <F5>):
USE [AutoLot]
GO
CREATE TABLE [dbo].[Orders](
[Id] [int] IDENTITY(1,1) NOT NULL,
[CustomerId] [int] NOT NULL,
[CarId] [int] NOT NULL,
[TimeStamp] [timestamp] NULL,
CONSTRAINT [PK_Orders] PRIMARY KEY CLUSTERED
(
[Id]