Сервер ORACLE (техническая презентация) Марк Ривкин Российское представительство
3338-mar_ser_tech1.ppt
- Количество слайдов: 63
Сервер ORACLE (техническая презентация) Марк Ривкин Российское представительство Oracle
Программа Cервер Oracle Архитектура сервера Oracle Распределенные БД и репликация Networking и защита данных VLDB, DataWarehouse High Availability Универсальная СУБД Internet/Intranet
Oracle Universal Server Объектно-Реляционная Эволюция Реляционная СУБД (OLTP + DSS) Универсальная БД (текст, видео, аудио, гео, изображения, временные ряды, документы, Web cтраницы, файлы ….) Объектно-реляционная СУБД Интернет платформа 9i – OLAP (многомерная) и DataMining Платформа для e-business Oracle Universal Server
Oracle - > 50 % рынка СУБД Высокая надежность Поддержка 24х-часовой работы Большое число пользователей (от 1000-ч до 10000-ч ) VLDB 512 pb Высокая производительность Надежная система защиты Тиражирование данных Различные архитектуры Клиент/сервер, NCA, терминалы
Сетевые протоколы TCP/IP LU6.2 SPX/IPX OSI DECnet Другие Независимость от платформ Оконные менеджеры MS Windows X Motif Macintosh Character Mode Block Mode Другие Оборудование Compaq Sun HP IBM Mac Другие NCR Pyramid Sequent Sun Intel Операционные системы OS/390 TRU64 Solaris AIX HP Unix NT Linux Другие
Независимость от архитектуры Один Процессор Симметричная многопроцес-сорная архи-тектура (SMP) Слабо сцепленные процессоры (кластер) Массивно параллельный компьютер (MPP) Можно использовать любые вычислительные архитектуры.
Соглашения по стандартам Комитеты ANSI X3H2 X3H2.1 RDA SQL Access Group OMG Стандарты баз данных FIPS 127-2 ANSI X3-135.1992 Стандарты защиты данных Текущее состояние: NCSC TDI C2, B1 ITSEC F-C2/E3, F-B1/E3 Сетевые стандарты OSI DNSIX (MaxSix) Межоперабельность IDAPI, ODBC TSIG X/Open DCE DDE
Старые приложения Шлюзы Шлюзы по данным (Informix, Sybase, MS SQL Server,Ingress, ......) Процедурные шлюзы Клиент Oracle Сервер Oracle Шлюзы по данным Процедур- ные шлюзы APPC DB2 SQL/ DS Нетабличные данные SQL/ 400 DRDA RDB
Архитектура сервера Oracle
Пользовательский процесс Серверный процесс PGA База данных и instance Экземпляр SGA Разделяемый пул DBWR LGWR База данных
SGA и процессы SVRMGR> CONNECT / AS SYSDBA SVRMGR> STARTUP PFILE=/DISK1/initU15.ora initU15.ora Экземпляр SGA Разделяемый пул Библиотечный кеш Журнальный буфер PMON DBWR SMON LGWR CKPT ARCH Кеш буферов БД Кеш словря данных
Журналирование и Rollback DB Block Buffers Log Buffer System Global Area Rollback Redo Redo Log Files Журналы используются только для восстановления БД (redo) Rollback отделены от Log Транзакции могут использовать > 1 журнала Rollback хранятся в Rollback Segments Rollback Segments используются для Undo (отката) и Multi-Version Read Consistency DB Log Log User
Логическая Физическая База данных Табличное пространство Файл данных Блок ОС Блок Oracle Сегмент Экстент Структура базы данных
Объекты и понятия БД Таблицы (partitions) Индексы Индексные таблицы View Sequence Программные единицы (proc, func, pack) Триггеры Ограничения Синонимы Кластер Database link Rollback сегменты Временные сегменты Сегменты LOB Вложенные таблицы Массивы Пользовательские типы данных Материализованные view Иерархии Dimension Пользователи Привилегии Роли
Типы данных Oracle CHAR(N), NCHAR(N) VARCHAR2(N), NVARCHAR2(N) NUMBER(P,S) DATE RAW(N) BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Тип данных Встроенный Пользовательский Скалярный Ссылки Коллекция
Массивы и Встроенные таблицы Массивы Массивы с переменной длиной: VARRAY Обеспечивают упорядоченные 1-to-many отношения Набор скалярных величин или ADT Доступны через PL/SQL Встроенные таблицы (Nested Tables) Обеспечивают неупорядоченные 1-to-many отношения Набор скалярных величин или ADT Доступ через SQL DML
Типы данных для хранения больших объектов LONG, LONG RAW Один столбец в таблице До 2 гигабайтов SELECT возвращает данные Внутреннее хранение данных Нет поддержки объектов Последовательный доступ LOB Несколько столбцов в таблице До 4 гигабайтов SELECT возвращает указатель Внутреннее или внешнее хранение данных Поддержка объектных типов Произвольный доступ
Garbage In Garbage Out Ограничения целостности Декларативный синтаксис Ссылочная целостность Каскадное удаление Enable/Disable Exception Reporting
Программируемость Database Triggers Определенные точки срабатывания Enable/Disable Create or Replace Множество триггеров одного типа Доступ к “:old” & “:new” значениям Хранятся в откомпилированном виде Before Statement Before Row After Row After Statement Implicit Operations
Новые типы событий Trigger Новые триггеры STARTUP SHUTDOWN SERVERERROR LOGON LOGOFF CREATE ALTER DROP Новый уровень триггеров База данных Схема CREATE TRIGGER register_open ON DATABASE STARTUP BEGIN … dbms_aq.enqueue(...); … END;
Программируемость Ship Check Status Cancel Хранимые процедуры Пакеты Функции Полномасштабный язык Return Cursor Exception Handlers SQL3 Syntax Persistent Variables Overloading Encapsulation Dependency Tracking Wrappers Server Side File I/O Application Partitioning
Java VM Почему Java в БД ? Производительность, масштабиру-емость, переносимость, управля-емость, безопасность The Oracle Java VM Масштабируемость: 50 - 150K байт/ сессия vs 3-6M на JDK Быстрее: скомпилированный код выполняется в 40 раз быстрее, чем интерпретируемый код Интегрирован с SQL, PL/SQL Стандартизация 100% Java, JDK 2, standard API Servlet 2.2, JSP 1.1, EJB 1.1, JNDI Shared memory RDBMS libraries Class Loader Native Compiler JDK libraries, APIs Oracle9i Oracle9i : интегрированная виртуальная Java машина
23 Enterprise Java Engine Поддержка различных сервисов Java JNDI, JTA, Java 2 Security, SSL, JMS, RMI/IIOP, Persistence Оптимизация производительности времени выполнения Bytecode Accelerator (компиляция) Web контейнеры Servlet 2.2, Java Server Pages 1.1 Масштабируемый EJB 1.1 контейнер (Entity EJB, XML descriptors) JDBC 2.0 драйверы
Indexing h(n) = [n /C] mod B Standard B-Tree Hash Cluster 101101 Bit Mapped 011011 101100 110001 111101 001011 B-Tree Cluster B-Tree индексы можно строить Online & in Parallel Hashing позволяет доступ к строке по хэш алгоритму Многотабличный кластер позволяет заранее соединить данные Bit Map индехы хороши для запросов к колонкам с низкой кардинальностью Индексы можно перестроить на базе существующих
Индексы Индексные таблицы Пользовательские индексы (R*Tree) Перестройка индекса на лету Индекс от функции
Масштабируемость Масштабируемые серверы Запросы не блокируют друг друга Блокировка на уровне записи при обновлении Масштабируемая архитектура и производительность Минимизированный ввод/вывод
Concurrency & Consistency Rollback Segment Multi-version Read Consistency Non-Blocking Reads Row Level блокировки без эскалации Не надо жертвовать многопольз работой ради consistency Блокировки - это атрибут данных, а не ресурсов
Неблокирующее консистентное чтение “Писатели” не блокируют “читателей” “Читатели” не блокируют “писателей” Запросы всегда дают согласованный результат Начало чтения Кто-то другой изменяет 2 записи Чтение через “снимок” Продолжение чтения
System Global Area SQL SQL Optimization Shared SQL Cost Based Optimizer Optimizer с гистограммами SQL User Profiles Shared Pool Buffer Cache SQL Ограничение ресурсов (profiles)
Parallel Query Coordinator C P U C P U C P U C P U C P U C P U SQL SQL Scan Scan Scan Sort Sort Sort Inter-Operator параллелизм (Сортировка сканируемых строк) Intra-Operator параллелизм (распараллеливание сканирования) Динамический Partitioning (Параллелизм не зависит от размещения данных) Распараллеливание пользовательских функций (PL/SQL in parallel) Optimizer Hints (Администратор имеет контроль) Read Consistency (Обеспечивает согласованный результат) Parallel-Aware Query Optimizer Степень параллелизма меняется для задач/пользоват./времени
Rules Based Publish/Subscribe Messaging и Advanced Queuing Опубликовать сообщение Publisher Подписчики Подписка Подписаться Очередь Выбрать Shipping Content-based публикация и подписка Подписчики регистрируют свой интерес к сообщениям очереди Машина правил определяет соответствующих подписчиков Машина правил Manufact. Invoicing
Распределенные БД и Репликация
Почему нужны распределенные БД? Данные естественно распределены DB Объемы Доступ к старым системам Владение данными DB DB DB DB DB DB DB DB Vs. DB HQ Региональные отделы Новая система Существую- щая система Существую- щая система HR Opera- tions Finance
Распределенная БД Schema Object Database Scott.Emp@NY Emp Прозрачность размещения Распределенные транзакции Наименование, Networking, Кодирование Репликация Protected by 2PC Primary Site - Symmetric
Почему нужна репликация? Warehouse Публикация Производительность Динамич передача владения Доступность Local Remote Консолидация/распределение Сбой Продажа Отгрузка Тех поддержка
Репликация Синхронная Ассинхронная • Обновление в реальном времени • Обновления на базе Two-Phase Commit • Нет конфликтов • Не проходит при сбое связи • Обновления сохраняются, а затем выполняются • Возможны конфликты • Не зависит от наличия связи Store & Forward 2PC
Replica Master Replica Replica Репликация Каждая ночь в 3:00 Каждые 30 сек По тре-бованию
Репликация (Декларативный синтаксис) SQL> Create Snapshot Dept10 refresh fast start with sysdate next sysdate + 1/24 as select * from Employees@Server_A where deptno = 10; SQL> Create Snapshot Log on Employees 00AB.01.01, NULL, I Мастер таблица Копия (Snapshot)
Разрешение конфликтов Product Qty. Product Qty. New York San Francisco -30 -50 -50 -30 Последний по времени Максимум Первый по времени Перекрыть Приоритет группы Отказаться Приоритет сайта Среднее Минимум Суммировать
Динамическая передача прав (без конфликтов) Sales Shipping Support C1 C2 C3 Owner C1 C2 C3 Owner C1 C2 C3 Owner Заказ продуктов Отгрузка продуктов Тех поддержка N-WAY N-WAY
Networking и защита данных
Подробнее о безопасности эти 13 слайдов вместо следующих 3 слайдов
Уровни защиты информации согласно “Оранжевой книге” D: Минимальная защита C1: Разграничение доступа C2: Контролируемый доступ B1: Защита с помощью меток секретности B2: Структурированная защита B2: Домены секретности A1: Контролируемая разработка
Проблемы защиты информации в сети Перехват паролей Перехват данных Модификация данных PWD
Функциональность и механизмы Identification & Authentication Access Control Audit & Accountability Network Encryption Администрирование системы Аспекты защиты БД Server Enterprise Network Host-based System
Идентификация пользователей Варианты идентификации пользователей в Oracle: Oracle passwords Биометрические устройства и ключи Единый пароль в централизованной системе Единый пароль в распределенной системе
Дискретизация доступа: Системные привилегии Около 80 различных привилегий Предоставлять только необходимые привилегии Разделять обязанности CREATE SESSION DROP USER CREATE TABLE FORCE TRANSACTION AUDIT ANY INSERT ANY TABLE CREATE ANY SNAPSHOT SELECT ANY TABLE DROP CLUSTER CREATE VIEW
Дискретизация доступа: привилегии на доступ к объектам GRANT select ON emp TO Scott Scott select
Дискретизация доступа к объектам Необходимые транзакции инкапсулируются в хранимые процедуры, функции и пакеты Not Necessary Clerk Execute Privilege Insert Privilege Insert Privilege EMP Table
Дискретизация доступа - Roles Обеспечивает эффективное управление Облегчает администрирование Обеспечивает разделение функций Позволяет связать доступ к данным с приложениями Privileges Users Roles Create Session Clerks Manager Select Update Insert Delete Select Update Personnel Clerk Personnel Manager
Oracle Enterprise User Management Solution Set Oracle Wallet Manager Oracle Certificate Authority Oracle Secure Directory Oracle Enterprise Security Manager LDAP v3 integration into Oracle8i Supports authentication and authorization of global users server-to-server mutual authentication via privileged database links Oracle Secure Directory Oracle Certificate Authority Oracle Wallet Manager
Аудит системы Поддерживается ответственным администратором... Гибкость и дискретность аудита Аудит пользователей, операций, обращений к объектам, привилегий ... Более 200 событий, подлежащих аудиту Эффективная реализация в Oracle Server реализована на уровне ядра системы Анализ с помощью стандартного SQL
Шифрование данных средствами Oracle Шифрование обеспечивает Конфиденциальность всех данных в сети Целостность данных Ключи генерируются автоматически для каждой сессии NETWORK
Протоколы шифрования Confidentiality Algorithms DES and DES40 Fortezza (in 1996) Integrity Algorithms seed= ABCD Secure Automatic Key Management using Diffie-Hellman seed= 5678 Key Generator Key Generator Fortezza SHA (in 1996) Выбор алгоритма при выполнении соединения
SQL*Net SPX/IPX TCP/IP LU6.2 NetBIOS Global Name Server Определение повисших связей Альтернативный Routings Графический инструмент (Network Manager) Open API Single Logon Протоколы OSI DECnet
Oracle и Net : больше многоуровневых клиентов Концентратор представляет нескольких клиентов как одно соединение Разделяемые соединения Сервер-Сервер Масштабируемый, безопасный доступ к распределенным данным Клиенты Концентратор (Connection Managers pooling) Мультеплексирование Мультиплексирование соединений Connected Users Concurrent Users Application Scalability Database Scalability
Сопровождение паролей
Секретность Роль Роль Привилегии DES40 DES56 RSA SSL Пользователи Шифрование Идентификация через OS & DB Гранулированный доступ Сертификат C2 Advanced Security Select Execute Insert Update Create Роль Роль
Advance Security Option Полное кодирование потока DES 40 и 56, RSA, SSL MD5 контрольное суммирование Biometric Support Интеграция с Kerberos for Single Signon Интеграция с SmartCard Technology Sesame, DCE, Token-Based, Entrust/PKI Единый вход, Enterprise User l~aj987&^(*y02(&=94?7N9%7yq}3 Scott/tiger Jones 54000 Smith 4900 Without ASO With ASO
Fine-grained Access Control Упрощает реализацию row-level безопасности Безопасность ассоциируется с таблицей или представлением Доступ не может быть передан другому Проще чем представления Ограничивает возвращаемые данные добавлением слова WHERE Приложение может использовать переменную сессии Cust_id, например SELECT * FROM ORDERS; SELECT * FROM ORDERS where cust_id = 123 Orders Table Обычный SQL Security Policy добавляет критерий WHERE
Resource Management Plans Приоритеты для пользователей Группы потребителей пользователь может быть членом нескольких групп только одна группа активна во время сеанса группа по умолчанию назначается пользователю при соединении с БД Методы выделения ресурсов: % использования CPU ограничение степени параллелизма Планы можно менять не останавливая Oracle NIGHT_PLAN WEEKDAY_PLAN
62 Автоматическое тонкое управление ресурсами Контроль максималь- ного числа активных сеансов Оценка времени выполнения запроса Квота на Undo pool для consumer groups. Автоматическое переключение сеансов между consumer group Web based Order Entry Shipping Billing OLTP updates и длинные запросы: Высокий приоритет OLTP updates и короткие запросы: Средний приоритет Ночные изменеия и запросы: Высокий приоритет только ночью
63 Security Мощная 3x уровневая безопасность (Application role, через iAS, легковесные сессии от iAS) Зашита для hosting (для компаний контекст и пуллинг) Public Key Infrastructure (PKI) (PKCS#12, SSL hardware ускорение) Улучшенное управление пользователями и policy (GUI) Кодирование данных (JCA/JCE) и Label security