Управление данными
Часть 8.
Дополнительные аспекты работы
с базами данных
(©) Владислав Лавров, vlavrov.com
2
Возможные причины потери базы данных
• сбой в электропитании или работе оборудования;
• ошибка в функционировании системного программного обеспечения;
• ошибка в прикладном программном обеспечении;
• человеческий фактор.
Вопросы для администратора базы данных
1. Какое резервное копирование существует в SQL Server?
2. Когда осуществлять резервное копирование?
3. Как часто необходимо выполнять резервное копирование?
4. Что следует копировать?
5. Куда следует копировать?
6. Каков алгоритм восстановления данных?
7. Как осуществлять резервное копирование?
8. Как осуществлять восстановление данных?
8.1. Резервное копирование
(©) Владислав Лавров, vlavrov.com
3
1. Полное резервное копирование базы данных
(database backup).
2. Дифференциальное резервное копирование
(differential database backup).
3. Резервное копирование файлов и групп файлов
(file and filegroup backup).
4. Резервное копирование журнала транзакций
(transaction log backup).
Типы резервного копирования в MS SQL Server
(©) Владислав Лавров, vlavrov.com
4
Раз в неделю - полное резервное копирование
Раз в день – дифференциальное резервное копирование
Каждые 2-3 часа - резервное копирование журнала транзакций
Примерный график резервного копирования
Внимание !
Резервное копирование базы данных следует осуществлять на
сервере в часы, свободные от работы пользователей
(©) Владислав Лавров, vlavrov.com
5
Резервирование системных баз данных
Системная база данных Master
Содержит информацию о пользовательских БД, yчетных записях,
настройках SQL Server и др.
Это одна из самых главных системных баз данных.
Для нее возможно только полное резервное копирование.
(©) Владислав Лавров, vlavrov.com
6
Резервирование системных баз данных
Системная база данных MSDB
Содержит информацию, используемую службой SQLServerAgent
(операторы, оповещения, задания).
Для этой базы данных возможно как полное резервное копирование,
так и дифференциальное резервное копирование.
Создание резервных копий этой базы данных пригодится, если вы
собираетесь автоматизировать процесс администрирования SQL
Sever.
(©) Владислав Лавров, vlavrov.com
7
Резервирование системных баз данных
База данных MODEL
Содержит шаблоны пользовательских баз данных.
Если администратор не создает своих шаблонов, то и резервное
копирование этой базы данных делать необязательно.
(©) Владислав Лавров, vlavrov.com
8
Резервирование системных баз данных
База данных TEMPDB
Предназначена для хранения временных объектов.
Поскольку эта база данных воссоздается при каждом запуске SQL
Server, делать ее резервную копию не имеет смысла.
(©) Владислав Лавров, vlavrov.com
9
8.2. Межоперабильность (интероперабельность) СУБД
Межоперабильность
открытость системы, которая позволяет встраивать СУБД
как отдельный компонент в сложную разнородную, распределенную
среду.
Межоперабильность достигается использованием интерфейсов,
отвечающих международным стандартам.
(©) Владислав Лавров, vlavrov.com
10
Свойства интерфейсов СУБД
1. СУБД должна располагать средствами создания
приложений, которые способны оперировать базами
данных в другом формате, отличном от формата
данной СУБД;
2. Возможность предоставления данных приложений,
созданных средствами разработки других фирм.
(©) Владислав Лавров, vlavrov.com
11
Интерфейс ODBC (Open Database Connectivity)
Разработан фирмой Microsoft как открытый интерфейс доступа к
базам данных. Он предоставляет унифицированные средства
взаимодействия прикладной программы, называемой клиентом (или
приложением-клиентом), с сервером - базой данных.
Для взаимодействия с базой данных приложение-клиент вызывает
функции интерфейса ODBC, которые реализованы в специальных
модулях, называемых ODBC-драйверами. Как правило, ODBC-
драйверы - это DLL-библиотеки, при этом одна DLL-библиотека может
поддерживать несколько ODBC-драйверов.
При установке на компьютер любого SQL-сервера автоматически
выполняется регистрация в реестре Windows и соответствующего
ODBC-драйвера.
(©) Владислав Лавров, vlavrov.com
12
Архитектура ODBC
Приложение - клиент
Менеджер драйверов
. . .
Источник
данных
ODBC-драйвер
Источник
данных
ODBC-драйвер
ODBC API
ODBC API
Источник
данных
ODBC-драйвер
(©) Владислав Лавров, vlavrov.com
13
Взаимодействие элементов ODBC
БД
Informix
БД
SQL Base
БД
настольной
СУБД
ODBC-
драйвер
Oracle
ПриложениеПриложение
Менеджер
драйверов
ODBC-
драйвер
SQL Base
ODBC-
драйвер
Informix
ODBC-
драйвер
FoxPro
Client Net
Informix
Client Net
SQL Base
Client Net
Oracle
БД
Oracle
Client Net
Informix
Client Net
SQL Base
Client Net
Oracle
(©) Владислав Лавров, vlavrov.com
14
Создание источника данных DSN (Data Source Name)
1. Программно с помощью функции ODBC API.
2. Интерактивно с использованием утилиты ODBC
(в зависимости от версии Windows, расположенную на панели управления
или администрирования).
(©) Владислав Лавров, vlavrov.com
15
Типы источников данных DSN
1. Системный DSN
данный профиль не ассоциируется с профилем отдельного компьютера.
Другими словами, после настройки данного источника к нему смогут
обращаться все программы и службы, установленные на этом
компьютере.
2. Файловый DSN
содержит информацию о драйвере и размещении базы данных, причем
эти данные записываются в текстовом виде в INI-файл. Данный
источник не предписывается к конкретному компьютеру, что позволяет
его использовать на сетевых устройствах.
3. Пользовательский DSN
наиболее часто применяемый источник, информация о котором
хранится в реестре Windows. В системе Windows NT/2000/XP каждый
пользовательский DSN ассоциируется с конкретным пользовательским
профилем и не доступен вне его.
(©) Владислав Лавров, vlavrov.com
16
8.3. Репликация баз данных
Репликация (тиражирование)
это асинхронный перенос изменений объектов исходной БД в базы
данных, которые принадлежат различным узлам распределенной
системы.
Особенность
перемещение информации протекает в реальном времени.
Функции тиражирования выполняет специальный
сервер тиражирования БД (сервер репликации, репликатор).
Этот модуль может быть встроен в СУБД или выполнен как
самостоятельный процесс, инициируемый и выполняемый как
отдельная задача.
Свойство тиражирования
детали процесса тиражирования данных полностью скрыты от
прикладной программы.
(©) Владислав Лавров, vlavrov.com
17
Достоинства технологии тиражирования
1. Не требуется синхронная фиксация изменений в системе.
На практике существует множество задач, когда не требуется
синхронное обновление данных, а достаточно периодическое их обновление.
2. Можно накапливать изменения в данных в виде транзакций в одном узле сети
и периодически копировать (реплицировать) их в другие узлы.
3. Данные можно расположить там, где они обрабатываются
(повышается скорость доступа к данным).
4. Передаче подлежат только операции, изменяющие данные,
вследствие чего существенного сокращается сетевой трафик.
5. Со стороны исходной БД для принимающей БД репликатор выступает как процесс,
инициированный одним пользователем (снижается нагрузка на сервер).
6. Никакой продолжительный сбой связи не нарушает передачу изменений,
т.к. тиражирование предполагает буферизацию потока транзакций и после
восстановления связи передача возобновится с той функции,
на которой она была прервана.
(©) Владислав Лавров, vlavrov.com
18
Схема репликации данных
1. Проектируется правило репликации;
2. Проводится конфигурирование системы реплицирования.
База
данных
Сервер БД
Репликатор
Менеджер
журнала
транзакций
ПриложениеПриложение
1
2
3
База
данных
Сервер БД
Репликатор
Менеджер
журнала
транзакций
ПриложениеПриложение
8
4 5
7
9
1011
Узел первичных данныхУзел вторичных данных
6
(©) Владислав Лавров, vlavrov.com
19
Участники процесса репликации в MS SQL Server
1. Издатель (Publisher)
– сервер SQL, предоставляющий свои данные для копирования на другие
серверы.
Издатель публикует свои данные, разрешая подписчикам их копировать.
Рассылаемые таким образом данные имеют всегда одного издателя,
который, в свою очередь, может быть подписчиком для другого издателя.
2. Подписчик (Subscriber)
– сервер, копирующий данные, предоставляемые издателем. Подписчик
может выступать в роли издателя для других подписчиков.
3. Дистрибьютор (Distributor)
– сервер, выступающий в роли посредника между издателем и
подписчиками.
Дистрибьютор копирует себе публикации, подготовленные издателем, и
тиражирует их, разгружая тем самым издателя. Дистрибьютор может
находиться на том же сервере, что и издатель (чаще всего так и бывает), на
сервере одного из подписчиков или каком-то еще сервере.
(©) Владислав Лавров, vlavrov.com
20
Объекты репликации
• Статья (Article) – таблица или ее часть,
выбранная для копирования.
Отбор части таблицы может быть как
вертикальным (часть столбцов), так и
горизонтальным (часть строк, отбираемых
согласно установленного критерия).
• Публикация (Publication) – набор статей,
копируемых с сервера издателя как одно
целое.
(©) Владислав Лавров, vlavrov.com
21
Настройка участников репликации в MS SQL Server
Издатель
(Publisher)
Подписчик
(Subscriber)
(©) Владислав Лавров, vlavrov.com
22
Модели репликации в MS SQL Server
1. Репликация моментальных (или мгновенных)
снимков (snapshot replication)
2. Репликация транзакций (transaction replication)
3. Репликация сведением (merge replication)
(©) Владислав Лавров, vlavrov.com

Управление данными (дополнительно)

  • 1.
    Управление данными Часть 8. Дополнительныеаспекты работы с базами данных (©) Владислав Лавров, vlavrov.com
  • 2.
    2 Возможные причины потерибазы данных • сбой в электропитании или работе оборудования; • ошибка в функционировании системного программного обеспечения; • ошибка в прикладном программном обеспечении; • человеческий фактор. Вопросы для администратора базы данных 1. Какое резервное копирование существует в SQL Server? 2. Когда осуществлять резервное копирование? 3. Как часто необходимо выполнять резервное копирование? 4. Что следует копировать? 5. Куда следует копировать? 6. Каков алгоритм восстановления данных? 7. Как осуществлять резервное копирование? 8. Как осуществлять восстановление данных? 8.1. Резервное копирование (©) Владислав Лавров, vlavrov.com
  • 3.
    3 1. Полное резервноекопирование базы данных (database backup). 2. Дифференциальное резервное копирование (differential database backup). 3. Резервное копирование файлов и групп файлов (file and filegroup backup). 4. Резервное копирование журнала транзакций (transaction log backup). Типы резервного копирования в MS SQL Server (©) Владислав Лавров, vlavrov.com
  • 4.
    4 Раз в неделю- полное резервное копирование Раз в день – дифференциальное резервное копирование Каждые 2-3 часа - резервное копирование журнала транзакций Примерный график резервного копирования Внимание ! Резервное копирование базы данных следует осуществлять на сервере в часы, свободные от работы пользователей (©) Владислав Лавров, vlavrov.com
  • 5.
    5 Резервирование системных базданных Системная база данных Master Содержит информацию о пользовательских БД, yчетных записях, настройках SQL Server и др. Это одна из самых главных системных баз данных. Для нее возможно только полное резервное копирование. (©) Владислав Лавров, vlavrov.com
  • 6.
    6 Резервирование системных базданных Системная база данных MSDB Содержит информацию, используемую службой SQLServerAgent (операторы, оповещения, задания). Для этой базы данных возможно как полное резервное копирование, так и дифференциальное резервное копирование. Создание резервных копий этой базы данных пригодится, если вы собираетесь автоматизировать процесс администрирования SQL Sever. (©) Владислав Лавров, vlavrov.com
  • 7.
    7 Резервирование системных базданных База данных MODEL Содержит шаблоны пользовательских баз данных. Если администратор не создает своих шаблонов, то и резервное копирование этой базы данных делать необязательно. (©) Владислав Лавров, vlavrov.com
  • 8.
    8 Резервирование системных базданных База данных TEMPDB Предназначена для хранения временных объектов. Поскольку эта база данных воссоздается при каждом запуске SQL Server, делать ее резервную копию не имеет смысла. (©) Владислав Лавров, vlavrov.com
  • 9.
    9 8.2. Межоперабильность (интероперабельность)СУБД Межоперабильность открытость системы, которая позволяет встраивать СУБД как отдельный компонент в сложную разнородную, распределенную среду. Межоперабильность достигается использованием интерфейсов, отвечающих международным стандартам. (©) Владислав Лавров, vlavrov.com
  • 10.
    10 Свойства интерфейсов СУБД 1.СУБД должна располагать средствами создания приложений, которые способны оперировать базами данных в другом формате, отличном от формата данной СУБД; 2. Возможность предоставления данных приложений, созданных средствами разработки других фирм. (©) Владислав Лавров, vlavrov.com
  • 11.
    11 Интерфейс ODBC (OpenDatabase Connectivity) Разработан фирмой Microsoft как открытый интерфейс доступа к базам данных. Он предоставляет унифицированные средства взаимодействия прикладной программы, называемой клиентом (или приложением-клиентом), с сервером - базой данных. Для взаимодействия с базой данных приложение-клиент вызывает функции интерфейса ODBC, которые реализованы в специальных модулях, называемых ODBC-драйверами. Как правило, ODBC- драйверы - это DLL-библиотеки, при этом одна DLL-библиотека может поддерживать несколько ODBC-драйверов. При установке на компьютер любого SQL-сервера автоматически выполняется регистрация в реестре Windows и соответствующего ODBC-драйвера. (©) Владислав Лавров, vlavrov.com
  • 12.
    12 Архитектура ODBC Приложение -клиент Менеджер драйверов . . . Источник данных ODBC-драйвер Источник данных ODBC-драйвер ODBC API ODBC API Источник данных ODBC-драйвер (©) Владислав Лавров, vlavrov.com
  • 13.
    13 Взаимодействие элементов ODBC БД Informix БД SQLBase БД настольной СУБД ODBC- драйвер Oracle ПриложениеПриложение Менеджер драйверов ODBC- драйвер SQL Base ODBC- драйвер Informix ODBC- драйвер FoxPro Client Net Informix Client Net SQL Base Client Net Oracle БД Oracle Client Net Informix Client Net SQL Base Client Net Oracle (©) Владислав Лавров, vlavrov.com
  • 14.
    14 Создание источника данныхDSN (Data Source Name) 1. Программно с помощью функции ODBC API. 2. Интерактивно с использованием утилиты ODBC (в зависимости от версии Windows, расположенную на панели управления или администрирования). (©) Владислав Лавров, vlavrov.com
  • 15.
    15 Типы источников данныхDSN 1. Системный DSN данный профиль не ассоциируется с профилем отдельного компьютера. Другими словами, после настройки данного источника к нему смогут обращаться все программы и службы, установленные на этом компьютере. 2. Файловый DSN содержит информацию о драйвере и размещении базы данных, причем эти данные записываются в текстовом виде в INI-файл. Данный источник не предписывается к конкретному компьютеру, что позволяет его использовать на сетевых устройствах. 3. Пользовательский DSN наиболее часто применяемый источник, информация о котором хранится в реестре Windows. В системе Windows NT/2000/XP каждый пользовательский DSN ассоциируется с конкретным пользовательским профилем и не доступен вне его. (©) Владислав Лавров, vlavrov.com
  • 16.
    16 8.3. Репликация базданных Репликация (тиражирование) это асинхронный перенос изменений объектов исходной БД в базы данных, которые принадлежат различным узлам распределенной системы. Особенность перемещение информации протекает в реальном времени. Функции тиражирования выполняет специальный сервер тиражирования БД (сервер репликации, репликатор). Этот модуль может быть встроен в СУБД или выполнен как самостоятельный процесс, инициируемый и выполняемый как отдельная задача. Свойство тиражирования детали процесса тиражирования данных полностью скрыты от прикладной программы. (©) Владислав Лавров, vlavrov.com
  • 17.
    17 Достоинства технологии тиражирования 1.Не требуется синхронная фиксация изменений в системе. На практике существует множество задач, когда не требуется синхронное обновление данных, а достаточно периодическое их обновление. 2. Можно накапливать изменения в данных в виде транзакций в одном узле сети и периодически копировать (реплицировать) их в другие узлы. 3. Данные можно расположить там, где они обрабатываются (повышается скорость доступа к данным). 4. Передаче подлежат только операции, изменяющие данные, вследствие чего существенного сокращается сетевой трафик. 5. Со стороны исходной БД для принимающей БД репликатор выступает как процесс, инициированный одним пользователем (снижается нагрузка на сервер). 6. Никакой продолжительный сбой связи не нарушает передачу изменений, т.к. тиражирование предполагает буферизацию потока транзакций и после восстановления связи передача возобновится с той функции, на которой она была прервана. (©) Владислав Лавров, vlavrov.com
  • 18.
    18 Схема репликации данных 1.Проектируется правило репликации; 2. Проводится конфигурирование системы реплицирования. База данных Сервер БД Репликатор Менеджер журнала транзакций ПриложениеПриложение 1 2 3 База данных Сервер БД Репликатор Менеджер журнала транзакций ПриложениеПриложение 8 4 5 7 9 1011 Узел первичных данныхУзел вторичных данных 6 (©) Владислав Лавров, vlavrov.com
  • 19.
    19 Участники процесса репликациив MS SQL Server 1. Издатель (Publisher) – сервер SQL, предоставляющий свои данные для копирования на другие серверы. Издатель публикует свои данные, разрешая подписчикам их копировать. Рассылаемые таким образом данные имеют всегда одного издателя, который, в свою очередь, может быть подписчиком для другого издателя. 2. Подписчик (Subscriber) – сервер, копирующий данные, предоставляемые издателем. Подписчик может выступать в роли издателя для других подписчиков. 3. Дистрибьютор (Distributor) – сервер, выступающий в роли посредника между издателем и подписчиками. Дистрибьютор копирует себе публикации, подготовленные издателем, и тиражирует их, разгружая тем самым издателя. Дистрибьютор может находиться на том же сервере, что и издатель (чаще всего так и бывает), на сервере одного из подписчиков или каком-то еще сервере. (©) Владислав Лавров, vlavrov.com
  • 20.
    20 Объекты репликации • Статья(Article) – таблица или ее часть, выбранная для копирования. Отбор части таблицы может быть как вертикальным (часть столбцов), так и горизонтальным (часть строк, отбираемых согласно установленного критерия). • Публикация (Publication) – набор статей, копируемых с сервера издателя как одно целое. (©) Владислав Лавров, vlavrov.com
  • 21.
    21 Настройка участников репликациив MS SQL Server Издатель (Publisher) Подписчик (Subscriber) (©) Владислав Лавров, vlavrov.com
  • 22.
    22 Модели репликации вMS SQL Server 1. Репликация моментальных (или мгновенных) снимков (snapshot replication) 2. Репликация транзакций (transaction replication) 3. Репликация сведением (merge replication) (©) Владислав Лавров, vlavrov.com