Oracle Autonomous Transaction Processing - хорошее начало
Прошел почти год с последнего Open World, где Oracle CTO и основатель Ларри Эллисон провозгласили новую, полностью автономную службу облачной базы данных. Это привлекло большое внимание, и почти все в сообществе Oracle задавались вопросом, когда услуга станет доступной. Сначала, и некоторое время назад, мы получили облако хранилищ автономных данных Oracle (ADWC), и, наконец, совсем недавно мы смогли использовать версию On-Line Transaction Processing (OLTP). Она называется базой данных автономной обработки транзакций (ATP). И мы хотим поделиться первым впечатлением и ощущениями использования этой новой услуги. Пожалуйста, имейте в виду, что все, что упоминается здесь, является точным на момент написания. Oracle Public Cloud находится в постоянном состоянии быстрых изменений и инноваций, и некоторые функции или проблемы, которые мы видим сейчас, могут исчезнуть.
Давайте начнем с нуля и попытаемся создать экземпляр ATP. Мы открыли свою панель Oracle Cloud Dashboard, нашли Autonomous Database и нажали на нее.
Мы были перенаправлены на Oracle Cloud Infrastructure (OCI), где мы смогли найти автономную обработку транзакций - Autonomous Transaction Processing.
Первый положительный момент наступил, когда мы смогли запустить страницу службы ATP из браузера Safari. Возможно вы помните, что в прошлом Safari не поддерживалась в Oracle OCI, и вам приходилось использовать Firefox или Chrome на вашем Mac для работы с OCI. Теперь все работает отлично с Safari.
Итак, мы пошли дальше и создали новый экземпляр ATP. По сравнению с другими службами баз данных, он не запрашивает слишком много деталей. Вы просто вводите имя базы данных, количество ядер процессора, размер хранилища и пароль для пользователя «ADMIN». Вы предоставляете эти значения, нажмите кнопку «Создать автономную транзакцию» и подождите, пока экземпляр будет предоставлен.
И это был уже второй раз, когда мы были приятно удивлены, когда наш экземпляр ATP был предоставлен и доступен через пять минут после нажатия кнопки. Это действительно значительный прогресс по сравнению с другими службами Oracle Cloud.
Экземпляр был готов, и я начал проверять параметры, хранилище и то, что у нас там было в целом.
Когда мы проверили параметры экземпляра и исправления, мы обнаружили, что система была исправлена до последнего патча июльского пакета. Интересно отметить, что патч был отмечен как «ADW BUNDLE PATCH». Похоже, что Oracle использовал те же пакеты для ATP и для ADW.
SQL> SELECT patch_id,version,action_time,description,bundle_series FROM dba_registry_sqlpatch; PATCH_ID VERSION ACTION_TIME DESCRIPTION BUNDLE_SERIES ---------------- -------------------- --------------------------- ---------------------------------------------------------------------------------------------------- ------------------------------ 27833146 12.2.0.1 18-04-15 22:53:33,631780000 ADW BUNDLE PATCH 180408.12.2.0.1. (27833146) 12.2.0.1.0ADW 27912909 12.2.0.1 18-05-13 09:26:55,583388000 ADW BUNDLE PATCH 180423.12.2.0.1 (27912909) 12.2.0.1.0ADW 28021834 12.2.0.1 18-05-20 06:30:40,791622000 ADW BUNDLE PATCH 180511.12.2.0.1 (28021834) 12.2.0.1.0ADW 28083996 12.2.0.1 18-06-10 13:24:07,039773000 ADW BUNDLE PATCH 180531.12.2.0.1 (28083996) 12.2.0.1.0ADW 28228725 12.2.0.1 18-07-01 16:20:00,784425000 ADW BUNDLE PATCH 180621.12.2.0.1 (28228725) 12.2.0.1.0ADW 28392695 12.2.0.1 18-07-29 09:01:06,437228000 ADW BUNDLE PATCH 12.2.0.1.0(ID:180722)
Когда мы просматривали параметры параметров, мы также отметили, что существует также обходной путь для последней проблемы с инкрементными резервными копиями в Exadata. Проблема была опубликован всего за несколько дней до этого. Это хороший признак того, что Oracle серьезно относится к безопасности и доступности на ATP.
orcl_high> SHOW parameter _disable_cell_optimized_backups NAME TYPE VALUE ------------------------------- ------- ----- _disable_cell_optimized_backups BOOLEAN TRUE orcl_high> |
Мы знаем, что ATP построен на Exadata и позволяет нам использовать индексы хранения и другие функции Exadata. Мы кратко протестировали чтение оптимизатора и флэш-кеш, и функции работали очень хорошо.
orcl_high> CREATE TABLE t1 AS SELECT * FROM (SELECT rownum t1_id, object_id p1, object_name p2, owner p3 FROM all_objects),(SELECT rownum FROM dual CONNECT BY LEVEL <=20000); TABLE T1 created. orcl_high> UPDATE t1 SET t1_id = NULL WHERE t1_id BETWEEN 500 AND 510; 220,000 ROWS updated. orcl_high> commit; Commit complete. orcl_parallel> EXEC dbms_stats.gather_table_stats('ADMIN','t1'); PL/SQL PROCEDURE successfully completed. orcl_high> SELECT TABLE_NAME, num_rows, sample_size, last_analyzed FROM user_tables WHERE TABLE_NAME LIKE '%T1%'; TABLE_NAME NUM_ROWS SAMPLE_SIZE LAST_ANA -------------------------------------------------------------------------------------------------------------------------------- ---------------- ---------------- -------- T1 366240000 366240000 18-08-29 orcl_high> SELECT COUNT(*) FROM t1 WHERE t1_id IS NULL; COUNT(*) ---------------- 220000 orcl_high> SELECT n.name,s.value FROM v$mystat s, v$statname n WHERE n.statistic#=s.statistic# AND n.name LIKE '%cell flash cache read%'; NAME VALUE ------------------------------------------------------------ ---------------- cell flash cache READ hits 17229 cell flash cache READ hits FOR controlfile reads 0 cell flash cache READ hits FOR smart IO 17159 orcl_high> SELECT n.name,s.value FROM v$mystat s, v$statname n WHERE n.statistic#=s.statistic# AND n.name LIKE '%physical%optimized%'; NAME VALUE ------------------------------------------------------------ ---------------- physical READ requests optimized 17229 physical READ total bytes optimized 17963958272 ... orcl_high> SELECT n.name,s.value FROM v$mystat s, v$statname n WHERE n.statistic#=s.statistic# AND n.name LIKE '%smart scan%'; NAME VALUE ------------------------------------------------------------ ---------------- cell physical IO interconnect bytes returned BY smart scan 18662816
И, конечно же, вы, вероятно, знакомы с панелью мониторинга и монитором SQL.
В целом, первое впечатление хорошее. Пока трудно сказать ничего о каких-либо «самозахватах» или о том, как он будет работать с реальной рабочей нагрузкой. Но вероятно это неплохой шаг вперед в службах облачной базы данных Oracle, и пока это выглядит многообещающим. Надеемся, что Oracle продолжит двигаться в этом направлении и продолжит улучшать работу облачных сервисов.