30

Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,

  • Upload
    others

  • View
    29

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,
Page 2: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,

Денисенко Александр Денисенко Александр технический директоркомпании ООО «РДТЕХ»компании ООО «РДТЕХ»

OCM 10g, RAC & Tuning Expert, Exadata CIS, …

http://odenysenko.wordpress.com

Эффективное использование ресурсов.Эффективное использование ресурсов.Компрессия в СУБД Oracle:

от 7-ки до Exadataот 7-ки до Exadata

Page 3: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,

Экономия vs Эффективное использование ?Эффективное использование ?

Экономим, в момент покупки – связано с финансами.Экономим, в момент покупки – связано с финансами.

Экономим, то что уже есть => уменьшениеиспользования дорогого ресурсаиспользования дорогого ресурса

Эффективность(использования) – учитываемпоказатели экономии ресурса, производительности,показатели экономии ресурса, производительности,расхода электроэнергии, трудозатраты(на обслуживаниеи т.д.), материальные затраты, и т.д.

ЭКОНОМИЧНО м.б. НЕ ЭФФЕКТИВНО!

ЭФФЕКТИВНО м.б. НЕ ЭКОНОМИЧНО!ЭФФЕКТИВНО м.б. НЕ ЭКОНОМИЧНО!

Ищем БАЛАНС!

Page 4: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,

Ресурсы “USE or LOSE”(ИСПОЛЬЗУЙ или ПОТЕРЯЙ)(ИСПОЛЬЗУЙ или ПОТЕРЯЙ)

Disk Subsystem IO/s & BandwidthDisk Subsystem IO/s & Bandwidth

CPU CyclesCPU Cycles

Network IO/s & Bandwidth

Time

……

Мы не можем сделать запас данных ресурсов,

чтобы использовать их когда потребуется!

Page 5: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,

Область охвата презентациипоговорим о:поговорим о:

Механизмах компрессии, встроенных в СУБД

Oracle, утилиты СУБД OracleOracle, утилиты СУБД Oracle

ЛицензированииЛицензировании

Новостях с OOW2011

Безопасности использования (рекомендации)

Page 6: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,

Область охвата презентации(2)не будем говорить о:не будем говорить о:

HARDWARE (Tapes, …)

Apache, OAS, Web Cache, WebLogicApache, OAS, Web Cache, WebLogic

ZFS(почти не будем)ZFS(почти не будем)

MySQLMySQL

Beehive

Page 7: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,

Компрессия(Wikipedia.org)(Wikipedia.org)

� “КОМПРЕССИЯ в компьютерных науках и теорииинформации – это процесс КОДИРОВАНИЯ информации,используя меньшее количество битов, чемиспользуя меньшее количество битов, чемиспользовалось бы для представления оригинальнойинформации”

� Эффективнее используем одни ресурсы за счетповышенного использования другихповышенного использования других

� «Без потери данных» vs «С потерей данных»

самый эффективный - /dev/null ;-)самый эффективный - /dev/null ;-)

Page 8: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,

Компрессия. Преимущества:Компрессия. Преимущества:

� меньшее потребление ДОРОГИХ РЕСУРСОВ, таких как дисковое пространство,операции дискового и сетевого ввода-вывода

� виртуально большая пропускная способность к системе хранения – больше данных� виртуально большая пропускная способность к системе хранения – больше данныхотправляется/получается в единицу времени (с учетом компрессии)

� виртуально больший BUFFER CACHE – храним больше данных

� требуется меньшая пропускная способность сети, например для передачи REDO на� требуется меньшая пропускная способность сети, например для передачи REDO наStandby – экономим на каналах связи, быстрее GAP Resolution

� требуется меньше места для резервных копий

� данные могут быть дольше в режиме ONLINE (ILM)� данные могут быть дольше в режиме ONLINE (ILM)

� может быть указана как на уровне табличного пространства, всей таблицы/индекса,так и индивидуальной секции, т.е. можем хранить исторические данные сжатыми, аактивные данные не сжатымиактивные данные не сжатыми

� запросы(ограниченные по вводу-выводу) будут (могут?) выполняться быстрее

Page 9: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,

Компрессия. Недостатки:Компрессия. Недостатки:

� требуется больше CPU, как при загрузке данных, так ипри доступе к нимпри доступе к ним

� требуется ручное вмешательство (например -� требуется ручное вмешательство (например -дополнительные сортировки для улучшения показателей

сжатия при отправке данных в архив)

� требуется дополнительное лицензирование(EE, ACO)

� BUGs(!)� BUGs(!)

Page 10: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,

Далее говорим про компрессию:Далее говорим про компрессию:

ARCHIVELOG (undocumented)

SQL*Net

индексов и секций

таблиц и секций, материализованных представлений

LOBs/SecureFilesLOBs/SecureFiles

Hybrid Columnar Compression(не только Exadata!)

Compression AdvisorCompression Advisor

RMAN

Exp & DataPump + External TablesExp & DataPump + External Tables

DataGuard

Page 11: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,

ARCHIVELOG (undocumented!)(http://el-caro.blogspot.com/2006/11/archivelog-compression.html)(http://el-caro.blogspot.com/2006/11/archivelog-compression.html)

«доступно» c 10.1

ALTER DATABASE ARCHIVELOG COMPRESS ENABLE;ALTER DATABASE ARCHIVELOG COMPRESS ENABLE;

V$ARCHIVED_LOG.COMPRESSED VARCHAR2(3) Reserved forinternal useinternal use

“Archive Logging is only partially implemented in 10, and wasn't expecteduntil 11 or even 12. Although he specializes in ORA-00600 errors, he hadto go back to source to see what the 1880 parameter meant.”to go back to source to see what the 1880 parameter meant.”

НЕ используем до официального анонса! Чревато различныминегативными проявлениями, например ORA-00600 [1880], а так женегативными проявлениями, например ORA-00600 [1880], а так женевозможностью восстановить БД, используя сжатые журналы!

Page 12: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,

SQL*Net Compression(http://jonathanlewis.wordpress.com/2010/05/07/sqlnet-compression/)(http://jonathanlewis.wordpress.com/2010/05/07/sqlnet-compression/)

работает еще с 7-киработает еще с 7-ки

всегда включено/не управляется

нет официальной информации от Oracle о такомфункционале ☺

фактически DEDUPLICATIONфактически DEDUPLICATION

коэффициент зависит от повторяющихся данных –реально достижимый 3-7 раз!коэффициент зависит от повторяющихся данных –реально достижимый 3-7 раз!

использовался в Turkcell для оптимизации процессамиграции на Exadata (DB links)использовался в Turkcell для оптимизации процессамиграции на Exadata (DB links)

Page 13: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,

Компрессия индексов/секцийКомпрессия индексов/секций

Доступно с 8i - не требует ACOДоступно с 8i - не требует ACO

компрессия путем удаления дубликатов в листьевых блоках

подходят неуникальные или составные индексы

типичные коэффициенты 2-5 раз

на индексе и секциях может отличаться, но на индексе обязательнодолжна быть включена, если используется на уровне секций – иначеORA-28659ORA-28659

B-Tree индексы и IOT, не работает с BITMAP-индексами

ALTER INDEX SHRINKALTER INDEX SHRINK

Exadata Storage Indexes

Page 14: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,

Компрессия таблиц/секций/MVIEWBulk/DIRECT_LOAD/BASICBulk/DIRECT_LOAD/BASIC

с 9.2 в ЕЕ:с 9.2 в ЕЕ:

только операции DIRECT (CTAS, InsAP, Parallel, Direct Path SQL*Loader)

не более 255 столбцовне более 255 столбцов

сжимается каждый блок по отдельности, а не вся таблица

алгоритм ресурсоемкий при упаковке и легкий при распаковкеалгоритм ресурсоемкий при упаковке и легкий при распаковке

больший размер блока и сортировка улучшают показатели сжатия (+возможно и фактор кластеризации)

может быть встроена в процедуру «отправки данных в архив»

нельзя добавлять/удалять столбцы (можно пометить UNUSED)

типичные показатели сжатия = 3-5 раз

Page 15: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,

Компрессия таблиц/секций/MVIEWOLTPOLTP

с 11.1 в ЕЕ+ACO

для всех типов операций (COMPRESS FOR ALL OPERATIONS)

с 11.2 в ЕЕ+ACO - COMPRESS OLTP

разрешается DROP COLUMNразрешается DROP COLUMN

коэффициент сжатие меньше чем при BASIC

значительно менее ресурсоемкая чем BASIC

на таблице/mview и секции могут быть разные алгоритмына таблице/mview и секции могут быть разные алгоритмы

Page 16: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,

Компрессия таблиц/секций/MVIEWOLTP(2)OLTP(2)

Page 17: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,

Компрессия таблиц/секций/MVIEWHybrid Columnar CompressionHybrid Columnar Compression

доступна в Exadata (изначально была доступна в бета релизе 11.2 ЕЕ)

только для DIRECT-операций, не DIRECT используют OLTP

• Parallel DML, CTAS, INSERT /*+ APPEND */, Direct Path SQL*LDR• Parallel DML, CTAS, INSERT /*+ APPEND */, Direct Path SQL*LDR

данные представлены в другом формате(постолбцово) и сжимаются в моментзагрузки

обновляемые строки автоматически мигрируют в блок, использующий OLTPобновляемые строки автоматически мигрируют в блок, использующий OLTP

выполняется на уровне Compression Unit (обычно 32К=4блока * 8К)

стендбай должен поддерживать HCC, либо после открытия нужно будет выполнитьстендбай должен поддерживать HCC, либо после открытия нужно будет выполнитьALTER TABLE MOVE NOCOMPRESS | COMPRESS FOR OLTP, чтобы пользователисмогли получить доступ к данным, иначе будут получать ошибку

ограничение в 255 столбцов не действует!

типичное сжатие в 10-15 раз!

в Exadata обработка при SmartScan выполняется на уровень Storage Cell

Page 18: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,

Compression AdvisorCompression Advisor

� для 9.2-11.1(DBMS_COMP_ADVISOR) доступен с OTN по ссылке:� для 9.2-11.1(DBMS_COMP_ADVISOR) доступен с OTN по ссылке:

• http://www.oracle.com/technology/products/database/compression/compression-advisor.html

• для 9.2-10.2 доступно только DIRECT_LOAD

• для 11.1 так же доступна опция OLTP

� с 11.2.0.1 поставляется стандартно (для Linux x86 требуется патч:8896202)как пакет DBMS_COMPRESSION:как пакет DBMS_COMPRESSION:

• позволяет оценить уровень компрессии при использовании HCC (COMP_FOR_QUERY_HIGH, COMP_FOR_QUERY_LOW, COMP_FOR_ARCHIVE_HIGH, COMP_FOR_ARCHIVE_LOW )

� Enterprise Manager Compression Advisor:

• оценивает OLTP компрессию для таблиц => выдает рекомендации где она будетоптимальнаоптимальна

• в процессе работы генерирует REDO поскольку создает промежуточные таблицы

• для отключения нужно отключить Automatic Segment Advisor!

Page 19: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,

Compression Advisor (2)(один сегмент – несколько типов компрессий)(один сегмент – несколько типов компрессий)

SELECT CASE DBMS_COMPRESSION. GET_COMPRESSION_TYPE('VD', 'TEST_COMPRESS', ROWID)SELECT CASE DBMS_COMPRESSION. GET_COMPRESSION_TYPE('VD', 'TEST_COMPRESS', ROWID)

WHEN 1 THEN '1 - No Compresson‘ WHEN 2 THEN '2 – BASIC+OLTP‘ WHEN 4 THEN '4 - Query High‘

WHEN 8 THEN '3 - Query Low‘ WHEN 16 THEN '6 - Archive High‘ WHEN 3 2 THEN '5 - Archive Low'

END "Compression Type",

count( distinct DBMS_ROWID. ROWID_BLOCK_NUMBER(ROWID, 'SMALLFILE')) blockscount( distinct DBMS_ROWID. ROWID_BLOCK_NUMBER(ROWID, 'SMALLFILE')) blocks

FROM vd.test_compress

GROUP BY DBMS_COMPRESSION.GET_COMPRESSION_TYPE ('VD', 'TEST_COMPRESS', ROWID)

ORDER BY 1;

Compression Type BLOCKS

----------------- ----------

1 - No Compresson 26531 - No Compresson 2653

2 – BASIC+OLTP 700

3 - Query Low 232

4 - Query High 35

5 - Archive Low 355 - Archive Low 35

6 - Archive High 21

http://www.dba.ru/2011/03/different-types-of-oracle-database.html

Page 20: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,

LOBs/SecureFilesLOBs/SecureFiles

для LOB только пакет UTL_COMPRESS

SecureFiles доступны с 11.1, как MEDIUM (+ 3-5% CPU) - требует EE + ACOSecureFiles доступны с 11.1, как MEDIUM (+ 3-5% CPU) - требует EE + ACO

DEDUPLICATION (SecureHASH) => храним один объект и ссылки на него

Компрессия на уровне кусочка(chunk), а не на уровне всего SecureFile =>Компрессия на уровне кусочка(chunk), а не на уровне всего SecureFile =>положительно сказывается на операциях случайного чтения/записи

с 11.2 так же доступны уровни:

LOW – уровень 80% от MEDIUM, при 3х меньше CPU

HIGH – максимальный уровень, при максимуме нагрузки на CPU

LOB(image) STORE AS SECUREFILE (TABLESPACE lobtbs DEDUPLICATELOB(image) STORE AS SECUREFILE (TABLESPACE lobtbs DEDUPLICATECOMPRESS HIGH);

Page 21: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,

RMANRMAN

компрессия неразмеченных блоков;

компрессия неиспользованных блоков – с 10.2.0.2 в ЕЕкомпрессия неиспользованных блоков – с 10.2.0.2 в ЕЕ

BINARY - AS COMPRESSED BACKUPSET…

доступно с 10.2 как BASIC(BZIP2) – не требует ACO, но оченьресурсоемкий алгоритм, как при сжатии, так и при распаковке=> FILESPERSET 1=> FILESPERSET 1

c 11.1 алгоритм ZLIB – требует ACO – не такой ресурсоемкий

c 11.2 CONFIGURE COMPRESSION ALGORITHM 'HIGH';--"MEDIUM" | "LOW "; -- дополнительно к “BASIC "

Page 22: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,

Exp & DataPumpExp & DataPump

exp:exp:

compress=y ;)

использование PIPEs на платформах Unix/Linuxиспользование PIPEs на платформах Unix/Linux

11.1: expdp COMPRESSION=METADATA_ONLY

11.2: expdp COMPRESSION=DATA_ONLY | ALL –EE+ACO:

не требуется распаковка при использовании – выполняетсяавтоматически;

типичный коэффициент 3-5 раз

Page 23: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,

Внешние ТаблицыВнешние Таблицы

ORACLE_DATAPUMP(ACO):ORACLE_DATAPUMP(ACO):

в момент создания указываем:

ACCESS PARAMETERS (COMPRESSION ENABLED)

затем используем как обычную внешнюю таблицузатем используем как обычную внешнюю таблицу

ORACLE_LOADER:ORACLE_LOADER:

используем параметр PREPROCESSOR:

PREPROCESSOR bin_dir: 'gzip.exe' OPTIONS '-dc'

Page 24: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,

DataGuard

до 11.1 пользовались внешней компрессией: на уровнедо 11.1 пользовались внешней компрессией: на уровнесетевого оборудования либо SSH-туннелем

с 11.1 доступно в составе ACOс 11.1 доступно в составе ACO

использовалось только для GAP Resolution (+ скрытый параметрдля ASYNC: _REDO_TRANSPORT_COMPRESS_ALL=TRUE)для ASYNC: _REDO_TRANSPORT_COMPRESS_ALL=TRUE)

с 11.2 полная поддержка ASYNC|SYNC и всех режимовзащиты, а не только GAP Resolutionзащиты, а не только GAP Resolution

типичный коэффициент 35-80%

LOG_ARCHIVE_DEST_3='SERVICE=remoteCOMPRESSION=ENABLE|DISABLE"

Page 25: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,

Безопасность использованияРекомендацииРекомендации

BUGs (десятки!), в том числе /dev/null (!)BUGs (десятки!), в том числе /dev/null (!)

не рекомендую использовать в том релизе, вне рекомендую использовать в том релизе, в

котором функционал появился впервые

смотрим Known Issues для своего релиза (MOS)

большинство критичных проблем решено в

11.2.0.2 => не ждем их проявления!

привлечение консалтинга

Page 26: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,

Новости с OOW2011Новости с OOW2011

Hybrid Columnar Compression будет доступенHybrid Columnar Compression будет доступенне только в Exadata, но и в редакции ЕЕ,работающей с системами хранения данныхработающей с системами хранения данныхкомпании Oracle:

начиная с 11.2.0.3(но требуется дополнительный патч)начиная с 11.2.0.3(но требуется дополнительный патч)

Oracle’s Sun ZFS Storage Appliances

Pillar Axiom Storage Systems

Компрессия будет выполняться на стороне СУБДКомпрессия будет выполняться на стороне СУБД

Page 27: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,
Page 28: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,
Page 29: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,

Контактная информацияКонтактная информация

Денисенко Александр

технический директортехнический директор

компании ООО «РДТЕХ»

odenysenko@rdtex . com. uaodenysenko@rdtex . com. ua

Тел.: +380(67)470-21-02Тел.: +380(67)470-21-02

www. rdtex . com. uawww. rdtex . com. ua

http://odenysenko.wordpress.com

Page 30: Compression in Oracle Database · Денисенко Александр технический директор компании ООО «РДТЕХ» OCM 10g, RAC & Tuning Expert,