Структура бази даних Oracle
Структура екземпляра Oracle Спільний пул Java-пул SGA Streams pool Керування буфером бази даних Великий пул Повторити буфер журналу F O L Y A M A T O K Системний монітор SMON Check point CKPT Process Monitor PMON Database Writer DBW0 Log Writer LGWR Archiver ARC0
Процес сервера керування пам'яттю Oracle 1 Процес сервера PGA 2 Процес PGA Фоновий процес PGA SGA Спільний пул Пули потоків Великий пул Java Пул Буфер баз даних Керування буфером журналу
Структура пам'яті Oracle для екземпляра Oracle складається з наступних частин: Системна глобальна область (SGA): усі серверні процеси та фонові процеси спільно використовують її. Глобальна область програми (PGA): Кожен серверний процес і фоновий процес також мають власну область пам'яті (PGA) ). SGAa може також містити дані та контрольну інформацію для екземпляра. SGA складається з такої структури даних: 1. Кеш буфера бази даних: область буфера зчитуваних блоків даних 2. Повторити буфер журналу: область буфера журналу повторень, необхідна для відновлення, звідки журнал записується до файлів журналу переробки, що зберігаються на диску 3. Спільний пул: загальний буфер 4. Великий пул: буфер для дуже великих потреб вводу/виводу 5. Пул Java: буфер для коду Java Java Virtual Machine (JVM) 6. Пул потоків: буферна зона для потоків Oracle
SGA є динамічним, що означає, що розмір буферів можна змінювати, якщо це необхідно, не зупиняючи екземпляр. Глобальна зона програми (PGA) зарезервована для серверних процесів. Розмір і вміст PGA залежить від того, чи екземпляр налаштовано в режимі спільного сервера. PGA зазвичай складається з наступного: Приватна область SQL: містить структури пам'яті, дані та інформацію про призначення часу виконання. Кожен сеанс, який видає оператор SQL, виділяє власний простір SQL. Пам'ять сеансу: область, необхідна для зберігання інформації та змінних, що належать до робочого сеансу.
Процеси Oracle Серверні процеси Серверні процеси Серверні процеси Серверні процеси Серверні процеси Обробна система Глобальна область SGA System Monitor SMON Process Monitor PMON Database Writer DBW0 Check Point CKPT Log Writer LGWR Archiver ARC0 Фонові процеси
Коли програма або пристрій Oracle (наприклад, Enterprise Manager) запускається, сервер azoracle запускає серверний процес, що дозволяє програмі виконувати інструкції. Після запуску екземпляра Oracle також запускає фонові процеси, які взаємодіють між собою та з операційною системою. Фонові процеси управляють пам'яттю, буферами, виконують операції запису та читання на диску та виконують технічне обслуговування. Найважливішими фоновими процесами є: Системний монітор (SMON): Виконує відновлення після запуску катастрофи Монітор процесу (PMON): Якщо користувальницький процес перерваний, він виконує необхідне очищення та обслуговування Записник бази даних (DBWn): Записує з буфера даних на диск, у файл, модифіковані блоки Checkpoint (CKPT): запускає процеси DBWn для контрольних точок та оновлює всі файли даних та файли керування в базі даних Записник журналів (LGWR): записує записи журналу REDO на архіватор диска (ARCn): копії журналу REDO файл для резервної копії записів на вибрані диски, коли файл журналу заповнений, або запис у наступний онлайн журнал відновлення (перемикач журналу)
Файли, які не належать до бази даних Файл параметрів Файл пароля База даних База даних Архівовані файли журналів 1. Файл параметрів визначає характеристики екземпляра Oracle, такі як розмір частин пам'яті SGA. 2. Файл пароля визначає користувачів, які можуть запустити або вимкнути екземпляр Oracle. 3. Архівні файли журналу REDO - це копії файлу журналу, які можна використовувати для відновлення після відмови диска.
Процес для виконання оператора SQL Для підключення до екземпляра (Connect) вам потрібні: Процес сервера обробки користувачів Залежно від типу оператора SQL, потрібні компоненти сервера Oracle: Запити запускають процеси, необхідні для отримання бажаного Рядки Оператори модифікатора даних (DML) також ініціюють процеси реєстрації для збереження змін. Фіксація забезпечує відновлення транзакції. Не всі компоненти сервера Oracle беруть участь у виконанні оператора SQL.
Підключіться до екземпляра Сервер користувача Oracle Server Користувач Сервер Клієнт Сервер Сервер Користувач Сервер Сервер Браузер
Перш ніж користувач може надіслати оператор SQL на сервер ORACLE, він повинен спочатку підключитися до екземпляра. Коли користувач підключається до сервера Oracle, створюється процес, який називається серверним процесом. Цей процес взаємодіє з екземпляром Oracle від імені користувацького процесу, що виконується на клієнті. Процес сервера виконує оператори SQL користувача. З’єднання - це шлях зв'язку між процесом користувача та сервером Oracle.
Існує три способи підключення до сервера Oracle: 1. ЧЕРЕЗ ОПЕРАЦІЙНУ СИСТЕМУ: Користувач заходить в операційну систему, де працює екземпляр Oracle, і запускає програму, яка отримує доступ до бази даних у цій системі. Потім шлях зв'язку створюється внутрішніми комунікаційними процесами операційної системи. 2. ПІДКЛЮЧЕННЯ КЛІЄНТ-СЕРВЕР: Користувач запускає на своїй локальній машині програму, яка підключається через мережу до машини, на якій працює екземпляр Oracle. Потім мережеве програмне забезпечення здійснює зв'язок між користувачем та сервером Oracle. 3. ЧЕРЕЗ ТРИУРІВНЕ ПІДКЛЮЧЕННЯ: Машина користувача здійснює зв’язок через мережу з додатком або мережевим сервером, який також підключений через мережу до машини, на якій працює екземпляр Oracle. Наприклад, користувач використовує браузер для доступу до програми, що працює на сервері NT, яка отримує дані з бази даних Oracle, що працює у віддаленій системі UNIX.
При підключенні починається сеанс. Етап роботи починається, коли користувач перевіряється (перевіряється) і триває до виходу або аномального переривання. Користувач може відкрити кілька робочих розділів. Для цього потрібно, щоб сервер Oracle був доступним і придатним для використання. (Деякі адміністративні інструменти цього навіть не вимагають). Примітка: Якщо між користувачем та процесом сервера існує особиста відповідність, ми говоримо про спеціальне з’єднання із сервером.
Виконання запитів На відміну від інших запитів, в результаті запити можуть повертати рядок або навіть тисячі рядків. На кроці 3 виконання запиту процес сервера виконує наступне: 1. Синтаксичний аналіз: у спільному буфері SQL він перевіряє, чи включений цей оператор. Перевірка синтаксису для об’єктів, має відповідні права Блокування об’єктів під час аналізу Створює і зберігає оптимальний план виконання 2. Виконати: генерує шукані рядки 3. Витягнути: повертає рядки до процесу користувача
Спільний буфер SQL Бібліотечний кеш містить текст оператора azsql, проаналізований код та план його виконання. Словник даних містить визначення та дозволи таблиць кешеа, стовпців та інших об’єктів. Його розмір встановлюється параметром ashared_pool_sizeinitialization. Спільний пул Кеш бібліотеки Кеш словника даних SGA
Компоненти спільного пулу Під час синтаксичного аналізу серверний процес компілює оператор SQL у цій частині SGA. Він складається з двох основних компонентів: 1. Кеш бібліотеки 2. Кеш словника даних 1. Кеш бібліотеки Містить інформацію про останні оператори SQL, видані у спільній структурі пам'яті області SQL: Текст оператора SQL Текст розбору дерева: Перекладена версія оператора План виконання: Які кроки для виконання оператора Оптимізатор - це частина сервера Oracle, яка визначає оптимальний план виконання. Якщо ви повторно виконуєте оператор SQL і загальний простір SQL уже містить план виконання, вам не потрібно буде перекомпілювати оператор для процесу сервера. Це економить час і пам’ять. Якщо оператор SQL не використовується тривалий час, його буде видалено з Каси.
2. Кеш словника даних Містить останні вживані визначення словника даних. Це включає інформацію про файли баз даних, таблиці, індекси, стовпці, користувачів, дозволи та інші об’єкти. Під час синтаксичного аналізу серверний процес спочатку шукає інформацію тут, щоб вирішити імена та встановити дозволи. Якщо ви не знайдете її тут, ви ініціюєте пошук необхідної інформації з файлів даних.
Кеш буфера бази даних Зберігає останні прочитані блоки. Його розмір залежить від параметра ініціалізації DB_BLOCK_SIZE. Кількість буферів визначається DB_BLOCK_BUFFERS. Кеш-буфер бази даних Коли має виконуватися запит, серверний процес спочатку перевіряє, чи немає блоку, який він шукає, тут. Якщо ви не можете знайти його в буфері, просто прочитайте копію блоку з файлу даних. Якщо в буфері більше немає місця, прочитайте новий замість найстарішого використовуваного блоку даних.
Ексклюзивні області пам'яті: Програма глобальної області (PGA) Не використовується. Серверний процес може писати. Містить: область сортування Інформація про сеанс: дозволи, статистика Стан курсору Простір стека Серверний процес Сервер виділяє цей простір на початку процесу та звільняє його на кінець. PGA
Виконання інструкцій модифікатора даних (DML) ОНОВЛЕННЯ Співробітників процесу користувача. Серверний процес 1 4 Кеш-пам’ять бази даних SGA Файли даних Повторити буфер журналу 1 2 3 Керувальні файли Спільний пул Повторити файли журналів
Виконання інструкцій DML Виконання модифікації даних складається з двох етапів: Синтаксичний аналіз аналогічний запиту. Зараз реалізація вимагає додаткових процесів, оскільки зміна даних повинна здійснюватися надійно та відновлювано. Етап виконання DML: 1. Якщо блок даних та блок відкату відсутні в буфері, процес сервера зчитує їх із файлу даних у буфер. 2. Процес сервера розміщує замки на рядках, які ви хочете змінити. 3. Процес сервера записує зміни в журнал REDO (буфер повторного журналу), щоб дані могли бути відновлені за необхідності. 4. Процес сервера записує старе значення даних у блок відкоту. 5. Записує нові значення в блок даних.
Виконання операторів DML Серверний процес записує значення перед зображенням (UPDATE) і лише тоді змінює блок даних. Ці зміни вносяться в кеш буфера бази даних. У буфері будь-якому ненаписаному, зміненому блоку надається запис із посиланням на брудний блок, оскільки ці блоки відрізняються від відповідних блоків на диску. Видалення або вставка складається з подібних кроків. "Перед зображенням" видаляє значення стовпців видаленого рядка, а INSERT містить адресу розташування рядка. Через затримку запису на диск ці зміни можуть бути втрачені за допомогою SGA у разі катастрофи.
Розмір буфера журналу REDO A визначається параметром LOG_BUFFER. Він реєструє всі зміни, що відбуваються в екземплярі. Він завантажується у безперервному порядку. Коли вона заповнюється, вона починається спочатку. Кеш-буфер бази даних
Буфер журналу REDO Запис журналу REDO записує, який блок змінюється, місце зміни та нове значення. Запис REDO не розрізняє типи блоків, він лише розглядає, які байти змінюються в блоці. Буфер журналу REDO постійно завантажується, і записи через різні транзакції можуть перекриватися. Якщо він заповнений, він видалиться з самого початку, але лише якщо старий запис REDO вже записаний на диск.
Відкат сегмента старого значення Відкат сегмента нового значення Таблиця DML-оператор
Сегмент відкоту Перед кожною зміною процес сервера зберігає старе значення даних у сегменті відкоту. З цим: Ви можете скасувати зміни (UNDO), відкотивши транзакцію. Він забезпечує узгодженість читання, що означає, що інші транзакції не бачать ефекту виразу DML, якщо він ще не був здійснений. Ви можете відновити постійний стан бази даних після катастрофи. Сегменти відкоту, як таблиці та індекси, зберігаються у файлах даних. Блоки відкоту слід читати в кеш буфера бази даних так само, як і звичайні блоки даних, коли це потрібно. Сегмент відкоту створюється DBA. Зміни сегмента будуть записані в буфер журналу REDO.
Виконати COMMIT 1 Процес сервера екземпляра 3 4 Кеш буфера бази даних SGA Повторити буфер журналу Спільний пул LGWR Процес користувача Файли даних Керування файлами Повторити файли журналу 2 База
Швидке фіксація Сервер Oracle використовує швидке фіксацію, що гарантує можливість відновлення завершених змін у разі пошкодження екземпляра. Номер зміни системи Після завершення транзакції сервер Oracle присвоює транзакції номер системної зміни (SCN). ASCN - це як внутрішня мітка часу, монотонно зростаюча та унікальна в базі даних. SCN може бути використаний для вирішення питань синхронізації даних. SCN можна використовувати для забезпечення послідовності читання. За допомогою SCN Oracle Server може перевіряти узгодженість, не використовуючи системний час операційної системи.
Крок швидкого фіксації в процесі фіксації: Серверний процес записує запис COMMIT і номер SCN у буфер журналу REDO. Процес публікації журналу (LGWR) одночасно друкує весь вміст буфера журналу REDO, включаючи запис коміту до файлів журналу REDO. Тоді точно, що зміна не буде втрачена, навіть якщо копія пошкоджена. Користувач отримує повідомлення про те, що COMMIT виконано. Процес сервера фіксує, що транзакція успішно виконана, і звільняє блокування, видані транзакцією. Записує всі брудні буфери у файл даних. Це не залежить від процесу DBW0 і не має значення до або після COMMIT.
Швидке фіксація Переваги швидкого фіксації: послідовне записування файлу журналу відбувається швидше, ніж запис у різні блоки файлу даних. Ми записуємо лише мінімальну інформацію, необхідну для запису змін у файл журналу, тоді як якщо ми запишемо у файли даних, потрібно буде виписати цілі блоки даних. Якщо кілька транзакцій хочуть одночасно видавати COMMIT, екземпляр може виконувати всі записи журналу REDO за один запис. Якщо буфер журналу REDO не дуже заповнений, то для кожної транзакції достатньо однієї синхронізованої записи.Крім того, якщо транзакції хочуть виконуватись приблизно одночасно, в середньому достатньо менше однієї синхронізованої записи на транзакцію. Оскільки вміст буфера журналу REDO можна записати перед COMMIT, немає необхідності чекати COMMIT, якщо транзакція триває довго. Коли ви відкочуєте транзакцію, процес ведення журналу (LGWR) не запускається, тому журнал не буде записаний на диск. Сервер Oracle знищує ефект транзакцій, не завершених за допомогою COMMIT під час відновлення. Якщо після відкоту виникає помилка, але запис відкоту ще не записаний на диск, відсутність COMMIT означає, що транзакція не була завершена і була скасована.
Короткий зміст Ми познайомилися з файлами бази даних: файлами даних, файлами керування, онлайн-журналами REDO Познайомилися зі структурою пам'яті azsga: кеш-пам’ять DB, спільний пул SQL, буфер переробки журналу., LGWR, CKPT, PMON, SMON, ARC0 кроки: компіляція (синтаксичний аналіз), виконання (виконання), повернення результату (вибір)
- МИ ОБМЕЖАЄМО АТАКИ, А НЕ МОЖЛИВОСТІ - PDF Безкоштовно завантажити, Vpa втрата ваги
- Вивчення рухової діяльності у дітей з ожирінням дошкільного віку - PDF Безкоштовно завантажити
- ЗМІСТ; L Шановний Читай; чорнило, Seg; t; чорнило, Шановний TRAPPANC! PDF Завантажити безкоштовно
- 150 В; LOGATOTT RECEPT - PDF Завантажити безкоштовно
- Вибір препарату від ентеробіозу AVKF Епідеміологія Примітка МІКРОБІОЛОГІЯ - PDF Безкоштовно завантажити