Системы высокой доступности на базе СУБД Oracle

advertisement
®
Системы высокой доступности на
базе СУБД Oracle (Oracle9i)
Грищенко Сергей
Российское представительство Oracle
Oracle : высокая доступность
Три характеристики высокодоступного решения


Надежность
Способность к восстановлению
–

быстрое восстановление
без участия человека
Работоспособность
–
способность предоставлять
сервисы при выполнении
операций сопровождения
Oracle9i - Высокая доступность
Незапланированный
сбой
Плановые
операции
Системный
сбой
Real Application Clusters
Fast Restart
Потери данных
и катастрофы
Recovery Manager
Data Guard
Человеческий
фактор
Flashback Query
Log Miner, Data Guard
Сопровождение
системы
Dynamic Reconfiguration
Data Guard, RAC
Сопровождение
БД
Online Redefinition
Partitioning, Parallel SQL
Oracle : высокая доступность

Защита от краха систем и системных сбоев

Защита от человеческих ошибок и катастроф

Обеспечение высокой доступности при
операциях по сопровождению СУБД
Oracle : высокая доступность

Защита от краха систем и системных сбоев
–
–
–
–
–
–
–
Standart Fault Recovery
Fast-start Checkpointing
Fast-start parallel rollback
Cold Failover
Warm Failover Real Application Cluster
Hot Failover
Маскировка сбоев Transparent Application
Failover
Принципы восстановления БД
 Для восстановления после сбоя БД
должна :
 Убедиться, что все изменения,

сделанные до сбоя, сохранены
(roll forward)
 Объем работы пропорционален
скорости изменения данных и
промежутком между контрольными
точками (checkpoints)
Откатить все незавершенные транзакции
(roll back)
 Объем работы пропорционален
величине самой большой
транзакции, поэтому полное время не
может быть проконтролировано
администратором
БД до Recovery
Step 1:
Roll
Forward
Step 2:
Roll Back
Uncommitted Transaction
Committed Transaction
Recovery Time = Roll Forward + Roll Back
Обычный Checkpointing
 Процесс Recovery повторяет все изменения,
сделанные со времени последнего Checkpoint
 Обычный алгоритм периодически идентифицирует все
модифицированные блоки в буфере и пишет их на
диск
–
–
Как только все записи завершены, время checkpoint
сдвигается ко времени начала процесса записи
Должен поддерживать максимальную скорость модификации
и поэтому осуществляет иногда слишком много операций
записи в обычном случае
Oracle9i : новый стандарт восстановления
Recovery Time = Roll Forward + Roll Back

Архитектура быстрого
восстановления после сбоя:
–
–
Ограничивает время наката и делает его
предсказуемым
Полностью устраняет влияние времени
отката
Roll Back
RIP
Fast-Start Recovery Time =
+ 0
Fast-Start Checkpoints

FAST_START_IO_TARGET
Controls The Length Of Recovery
Buffer
Cache


Redo
Log
Time
Recovery Position Maintained
In The Control File By
Fast-Start Checkpoint
(determined by oldest dirty block)
Clean Buffer
Dirty Buffer
Present
ДБА может прямо контролировать
время наката, ограничивая число
блоков, которые нужно
восстанавливать в случае сбоя
Oracle автоматически управляет
интервалами между checkpoints
Самый старый
модифицированный блок
записыватся всегда первым, что
почти вдвое уменьшает время
roll forward
Основные компоненты
Высокоскоростной
Разделяемая
сервер
Высокосокростная
дисковая
связь
подсистема
Server 1
Server 2
Server 3
CPU
CPU
CPU
CPU
CPU
CPU
CPU
CPU
CPU
CPU
CPU
CPU
Server N
•••
CPU
CPU
CPU
CPU
Кластерные базы данных
 Shared Cache/Disk
–
–
–
 Shared Nothing
Oracle и IBM Mainframes
Чем больше узлов, тем
надежней
Не требует секционирования
данных
Data
A-Z
–
–
–
Data
A-E
Microsoft и IBM Unix/NT
Чем больше узлов, тем
ненадежней
Static Data Partitioning
Data
F-K
Data
L-S
Data
T-Z
Microsoft “Clustered” Database распределенная БД
CLUSTER
NETWORK
database
“partition”
database
“partition”
database
database
“partition”
database
“partition”
Масштабируемость - это возможность
добавлять данные и узлы
Распределенная БД ...
database
“partition”
 Добавить узел...
–
–
–
Выгрузить данные
Переопределить таблицы,
индексы, представления,
триггеры
Перегрузить данные
database
“partition”
database
“partition”
database
“partition”
database
“partition”
Масштабируемость - это возможность
добавлять данные и узлы
Кластерная БД ...
 Добавить узел...
Система должна обеспечивать
высокую доступность
В распределенной БД при
падении узла ...
database
“partition”
 Локальные данные этого узла
становятся недоступными
 Незавершенные транзакции
могут блокировать данные других
database
узлов (2-phase commit)
database
“partition”
“partition”
 Сложно восстанавливать
database
“partition”
database
“partition”
Система должна обеспечивать
высокую доступность
В кластерной БД при падении
узла ...
 Все данные остаются доступными
 Данные других узлов не
блокируются (незавершенные
транзакции откатываются другими
узлами)
 Восстановление автоматическое
Восстановление с Cold Failover
Heartbeat
Oracle
Instance
Oracle
Instance
Shared Disk
Separate Databases
 Рестарт Oracle на запасном узле
кластера
 Только одна система видит базу
данных в любой момент времени
 Решение обеспечивает поставщик
системы
 Время рестарта первичного узла
отделено от времени
восстановления
Восстановление с Warm Failover
 Переприсоединение на соседний узел кластера с
Oracle Parallel Server
 Все восстановление выполняется работающими
узлами
Oracle
Instance
Oracle
Instance
Oracle
Instance
OS
OS
OS
Shared Disk and
Database
Восстановление с Hot Failover
primary
Oracle
Instance
backup
Oracle
Instance
Shared Database
 Предварительное соединение с
соседним узлом кластера
 В случае сбоя используется это
соединений
 В случае сотен пользователей
это значительно экономит время
Failover - Oracle Fail Safe for MS NT
Основной
узел
Oracle RDBMS
e-mail
Oracle
e-mail
RDBMS
Oracle
Fail Safe
Oracle
Oracle
Fail Fail
Safe Safe
Fail Safe
MS Clust. Mgr.
MS Clust. Mgr.
Windows NT
Windows NT
Oracle
Резервный узел
Parallel Cache Management
Обмен блоками
3. Update Block A
DLM
Shared Memory/Global Area
shared
SQL
4. Update Block A
DLM
Shared Memory/Global Area
log
buffer
shared
SQL
log
buffer
. .. . ..
...
Ping
1. Read Block A
5.
Block A
2. Read Block A
Block A
Shared Disk Database
• По требованию
• Через диск
• Способы
избежать
– Application
Partitioning
– Tx Monitors
Cache Fusion
 Oracle9i Cache Fusion повышает производительность
и масштабируемость
–
–
Данные пересылаются напрямую через интерконнект
Уменьшается число операций Ввода/Вывода
Node A
Node B
Request
Data Transfer
Database
buffers
Database
buffers
Database
Oracle9i Real Application Cluster -Масштабируемость и Высокая доступность
Архитектура Shared Cache использует Cache Fusion
• Все узлы online
• Добавка дисков без
re-partitioning
• Failover прозрачно
для пользователей
High-speed
interconnect
• Масштабирование всех
приложений без изменений
• Простота администрирования,
поддержка всех платформ
Transparent Application Failover (TAF)
Лучший сбой - это сбой, который прошел незаметно !
 Transparent Application Failover работает на всех уровнях
–
–
–
Приложение и пользователи автоматически и прозрачно
переприсоединяются к другому узлу
Приложения и запросы не прерываются
Поддерживается контекст Login’а
Computer
A
Computer
B
При сбое узла А
пользователи
мигрируют на В
Computer
A
Computer
B
TAF Select Failover


Прерванная выборка записей продолжает выполняться
Механизм много-версионного чтения гарантирует целостность
результатов
Client
SELECT * FROM emp;
empno
7369
7499
7521
7566
7654
7698
SELECT * FROM emp;
name
Smith
Allen
Ward
Jones
Martin
Blake
Rows Partially Returned When
Failover Occurred
empno
Instance 1
Instance 2
DB
7369
7499
7521
7566
7654
7698
name
Smith
Allen
Ward
Jones
Martin
Blake
Continues Returning
Remaining Rows
Характеристики TAF

TAF защищает или
переносит:
–
–
–
Все клиентские
приложения, которые
используют Oracle Call
Client/server соединения
Interface version 8 (OCI8)
Состояние сессии
Активные курсоры (SELECT или выше, явно или нет,
statements) которые начали работают с TAF
возвращать результаты

Не переносит:
–
–
Активные транзакции
UPDATE
Переменные PL/SQLпакетов со стороны
сервера

–
SQL*Plus, ODBC,
JDBC/OCI, Oracle
precompilers
DynaСonnect - Поддержка большого
числа пользователей
Соединения
переключаются на
наименее занятый
узел
Real Application Cluster
Использование DynaConnect
CPU Load
Listener
Node
Dispatchers
Listener
CPU Load Node
Dispatchers
Client

БД при старте регестрируется со всеми listener’ми

Узел сообщает об использовании ЦПУ listener’ам

Listener выбирает наименее используемый узел
Oracle Parallel Query
Query
Server 1
Server 2
Server 3
Oracle
RDBMS
Subquery
Oracle RDBMS
Oracle RDBMS
Oracle RAC
Oracle RAC
Oracle RAC
ClusterWare
ClusterWare
ClusterWare
ClusterWare
OS
OS
OS
OS
Subquery
Server N
Subquery
•••
Application
Решения Oracle для кластеров
Масштабируемость
Oracle9i + RAC + OPQ
Oracle9i + RAC
Oracle9i
Oracle9i + Oracle Fail Safe
Доступность
Решения Oracle для кластеров
Real Application Cluster

Плюсы
–
–
–
–
–
–
–
–
Высокие доступность и
масштабируемость
Нет точек сбоя
Число клиентов, затрагиваемых
сбоем, невелико
Пользователи могут работать в
процессе восстановления
После сбоя данные находятся
в кэше работающего узла
Балансировка нагрузки
Рост масштабируемости с
числом узлов
Одинаковая реализация для
различных платформ
Hardware Failover

Плюсы
–
–
–
–
–
Высокая доступность
Простое администрирование и
управление
Недорого
Небольшая дополнительная
нагрузка на систему
Интеконнект проводит только
heartbeat
Решения Oracle для кластеров
Real Application Cluster

Минусы
–
–
–
Более сложные настройка и
администрирование
Цена
Интерконнект требует
напряженной работы DLM
Hardware Failover

Минусы
–
–
–
–
Перезагрузка кэша после
восстановления
Запасной узел может быть
недозагружен в обычном
режиме
Или перегружен после перехода
Различная реализация для
разных платформ
Oracle : высокая доступность

Защита от краха систем и системных сбоев

Защита от человеческих ошибок и катастроф

Обеспечение высокой доступности при
операциях по сопровождению СУБД
Oracle : высокая доступность

Защита от катастроф
–
–
–
Oracle Data Guard
Advanced Replication
Geo-mirroring
Oracle Data Guard
Primary
Server
Standby
Server
Log Write
Production
Database
Log
Files
Log Apply
Standby
Database
Поддержка синхронной копии базы данных
“Failover” и “Switchover”
Primary
Server
Production
Database Log Apply
Standby
Server
Log
Files
Log Write
Standby
Database
Logical Standby
Ship Log Files
Production
Database
Recover Logs
ZERO DATA LOSS
Transform
Log Files
to SQL
statements
Physical
Standby Database
Apply SQL Statements
Logical
Standby Database
Зеркалирование удаленных дисковых
подсистем
Production
System
Backup
System
Oracle
Server
Oracle
Server
 Удаленное зеркалирование
диск-в-диск управляется
системой хранения
 Используется:
–
–
–
High Speed Link
Database
Storage
Database
Mirror
Восстановление после
катастроф
Ускорения архивирования
Создание “read-only” копии
БД
 EMC Symmetrix + SRDF
(Symmetric Remote Data
Facility) + TimeFinder
сертифицированы Oracle
Advanced Replication
 Репликация - процесс копирования и поддержания синхронности
объектов БД в нескольких базах данных
Paris
San Francisco
Singapore
Сравнение решений
Репликация
Возможность
потери данных
Standby
Да, не завершенная во
Да, транзакция в
время сбоя
журнале, не переданном
транзакция
на Standby
Зеркалирование
Нет
Использование
второго сайта
Да
Read-only
Нет
Технология
восстановления
Instance Recovery+
Conflict Resolution
Клонирования БД
Синхронизация
систем хранения
Расстояние (км)
Тысячи
Тысячи
не более 100
Стоимость
Средняя
Низкая
Высокая
Oracle : высокая доступность

Защита от краха систем и системных сбоев

Защита от человеческих ошибок и катастроф

Обеспечение высокой доступности при
операциях по сопровождению СУБД
Database Resource Manager
 Ресурсы, предоставляемые пользователям,
базируются на плане, определяемом
администратором
 Позволяет выставлять приоритеты
Database
Resource Manager
OLTP
User
OLTP updates and queries:
high priority
DSS
User
DSS queries:
medium priority
Batch
Processing
Batch:
low priority
Database Resource Manager
Выделение ресурсов
Resource Plan
 Управляемые ресурсы
–
Resource
Consumer
Groups
Plan
Directives
OLTP
CPU = 60%
p a ra lle l d e g re e lim it = 0
DSS
CPU = 30%
p a ra lle l d e g re e lim it = 20
Batch
CPU = 10%
p a ra lle l d e g re e lim it = 20
–
Использование ЦПУ
МАХ степень параллелизма
 Уровень параллелизма
выбирается автоматически,
основываясь на выделенных
ресурсах и степени загрузки
системы
 Возможны разные планы для
разных дней недели или времени
суток
LogMiner™
 Файлы redo log содержат информацию
об активности над базой данных
 Oracle9i LogMiner предоставляет
стандартный интерфейс, позволяющий
анализировать содержимое этих файлов
 LogMiner можно использовать:
–
–
–
–
Отслеживать специфические
изменения, основанные на транзакциях,
пользователе, таблице, времени, etc.
Определять, как выполнить откат
Восстановление проводится
на уровне приложения, а не на уровне БД
Выполнять тюнинг
Пример LogMiner
Joe Smith поднял себе зарплату….
SQL> select sql_redo, sql_undo from v$logmnr_contents where
2 username = ‘joe smith’ and seg_name = ‘EMPLOYEE’;
SQL_REDO
SQL_UNDO
delete * from EMPLOYEE where EMPNO
= 12345 and ROWID =
‘AAABOOAABAAEPCABA’;
insert into EMPLOYEE(NAME,EMPNO,
SAL) values (‘joe smith’,
12345,500)
insert into EMPLOYEE(NAME, EMPNO,
SAL) values(‘joe
smith’,12345,2500)
delete * from EMPLOYEE where EMPNO
= 12345 and ROWID =
‘AAABOOAABAAEPCABA’;
14 rows selected
SQL> exit
Секционирование таблиц и индексов
Улучшает доступность, управляемость
Секционирование упрощает управление VLDB



Секционирование значительно повышает производительность
Разделы прозрачны для пользователей и приложений
Данные разбиваются в зависимости от приложения
ORDER table
Диапазон
значений
Q1
Q2
01-JAN
to
31-MAR
01-APR
to
30-JUN
Q3
01-JUL
to
30-SEP
Q4
01-OCT
to
31-DEC
Секционирование таблиц и индексов
Секционирование по hash-значению


Вставляет записи в раздел, основываясь на
вычисляемом значении
Отлично для равномерного распределения данных и
параллельного DML
ORDER table
Данные разделяются
используя
hash-алгоритм
Секционирование таблиц и индексов
Сложное секционирование

Лучшее из обоих видов секционирования
–
Параллельный доступ
–
Управляемость и доступность
ORDER table
Вначале по ключу,
потом по
hash-значанию
Q1
Q2
Q3
Q4
List Partitioning
Пример преимущества - скользящее окно : данные
разбиваются согласно бизнес-требованиям
Запросы online
Europe Americas Asia
Region Region Region
1200 GMT
Сопровождение
Секционирование индексов
Global NonPartitioned Index
Global Partitioned Index
 Индекс GLOBAL указывает на
запись в любой секции
–
–
–
Table
Table
Table
Table
Partition
Partition Partition
Partition
 LOCAL - секционирован как и
таблица
–
–
Local Partitioned Index
Prefixed or Not
Индекс может быть секционирован
или нет
Поддержка секций влияет на весь
индекс
Лучший подход для OLTP
–
–
Ключ разбиения может отличаться
от ключа для таблицы
Ключ разбиения можно
поддерживать отдельно
Оптимально для DSS
Оптимально для OPS
Параллельное выполнение запросов
select sum(revenue), store
from line_items
where profit (price,units) > 0.2
group by store
order by store cost
user-defined
function
query servers
SQL
data
Coordinator
ship SQL
functions,
assemble
results
sort A-K
scan
sort L-S
scan
sort T-Z
scan
sorting &
grouping
sort by store,
sum revenues
scanning
scan line_items,
executing “profit”
function in parallel
dynamic data
distribution
Параллельные INSERT, UPDATE и DELETE
Полное использование параллельности аппаратуры
Query--Index--Load
Insert--Update--Delete
C C C
P P P
U U U
C C C C C
P P P P P
U U U U U
 С ростом БД, выполнение операций
должно быть паралельным для
получения желаемого времени отклика
 Операции с хранилищем данных,
выполнеемые параллельно, значительно
повышают производительность при
глобальных
изменениях
–
–
–
Глобальный UPDATE
Глобальный DELETE
Глобальный INSERT
Реорганизация структур данных «на лету»
Структуры данных можно изменять «на лету»
при одновременных операциях пользователей
Операция не требует блокировок
Изменения и запросы
Изменения и запросы
Фиксация
xxx
xxx
xxx
xxx
xxx
xxx
xxx
xxx
xx
xx
xx
xx
xx
xx
xx
xx
xxxxxx
xxxxxx
xxxxxx
xxxxxx
xxxxxx
xxxxxx
xxxxxx
xxxxxx
Перенос таблицы
завершен
Перенос таблицы
xxx
xxx
xxx
xxx
xxx
xxx
xxx
xxx
xx
xx
xx
xx
xx
xx
xx
xx
xxxxxx
xxxxxx
xxxxxx
xxxxxx
xxxxxx
xxxxxx
xxxxxx
xxxxxx
Восстановление данных
Запрос на
определенный момент
времени (flashback)
Запросить состояние
данных на любое
выбранное время в
прошлом
Любой SQL запрос
допустим
Oracle Enterprise Manager
Направляемая, экспертная
диагностика и настройка
Разрешение проблем
Web интерфейс
HTML отчеты
Документация
для задач
Oracle9i - Высокая доступность
Как нас найти...
• Телефон в Москве 258-41-80
• www.oracle.com/ru
Download