Monday, November 18, 2013

Backup DB from Exadata to ZFS Backup Appliance

If you think about RMAN performance and your hardware is of high level or
if you will backup database from Exadata to the ZFS Storage Appliance 
                                  then look here :

  • For backup to backupset and restore from backupset:
    • _backup_disk_bufcnt=64
    • _backup_disk_bufsz=4194304
  • For image copy backup and restore:
    • _backup_file_bufcnt=64
    • _backup_file_bufsz=4194304

And references:

Configuring Oracle RMAN and the Oracle Database Instance: http://docs.oracle.com/cd/E28223_01/html/E27586/configappl.html  

MOS Note:  1072545.1: RMAN Performance Tuning Using Buffer Memory Parameters. 

And the nice presentation how to marriage the ZFSSA and Exadata: http://www.dbaexpert.com/DOUG%20Exadata%20with%20ZFS%20Storage%20Appliance.pdf  

Wednesday, November 6, 2013

Oracle vs Hana


 Посетив на днях семинар по HANA, хочу поделиться своими выводами.

Сила ХАНЫ заключается в следующих вещах:
- хранение таблиц в формате столбцевой компрессии (коэффициент сжатия SAP считает около 6)
- хранение данных в оперативной памяти (предполагается, что в сочетании со сжатием все данные должны поместиться в оперативную память. Пропорция для расчета: 64Г оперативной памяти на каждые 300Г исходных пользовательских данных. при чтении одной строки из таблицы вся таблица/партиция читается в оперативную память)
- кроме того, SAP внедрили в ХАНУ обычный row-store движок (надо полагать, это кусочек от ранее купленного Sybase), который позволяет работать с таблицами в обычном строчном row-формате. Этот формат хранения предназначается для OLTP-приложений.

В результате, получилась забавная гибридная СУБД, способная работать как с DWH-приложениями так и OLTP. Справедливости ради надо сказать, что все современные OLTP-движки – DB2, MSSQL, Sybase, Postgress – значительно уступают OLTP-движку от Оракла, т.е. для тяжелого OLTP они просто не подходят по причине роста блокировок.


Поэтому Оракл немедленно взялся за Database-In-Memory Option, которая по сути есть НСС не привязанное к системе хранения, иными словами, Оракл повторно, с 5-летним опозданием, анонсирует свою НСС-опцию:




Oracle Database In-Memory leverages a new in-memory column store format

Oracle Database In-Memory option accelerates the performance of analytic queries by storing data in a highly optimized columnar in-memory format.

A unique "dual-format" approach ensures outstanding performance and complete data consistency for all workloads.

Oracle Database In-Memory automatically maintains data in both the existing Oracle row format for OLTP operations, and a new purely in-memory column format optimized for analytical processing. Both formats are simultaneously active and transactionally consistent.



Для тех кто не в курсе: Оракл имеет HCC с 2008 года, когда вышла первая Экзадата. Но Оракл разрешил HCC только для своих собственных систем хранения: Exadata Storage Cell, Pillar Axiom, ZFS Storage Appliance. Вот если бы Оракл изначально объявил этот функционал своей опцией, доступной на всех платформах, то мы бы сейчас видели бурный всплеск продаж СУБД.

Столбцевое хранение данных на сегодняшний тень также реализовано в MS SQL, IBM DB2 & Netezza. Таким образом, можно сделать вывод, что современные СУБД все больше становятся гибридными, т.е.  способными хранить/обрабатывать оба типа данных.

Thursday, October 24, 2013

CELL-04532: Error encountered while creating cell disk on LUN

During the initial Exadata configuration at the step of creating cell disks we obtained the message "CELL-04532: Error encountered while creating cell disk on LUN":

INFO: Running /usr/local/bin/dcli -g /opt/oracle.SupportTools/onecommand/cell_group -l root "cellcli -e create celldisk all " to disks...
ERROR: Ran /usr/local/bin/dcli -g /opt/oracle.SupportTools/onecommand/cell_group -l root "cellcli -e create celldisk all " and it 1 instead of 0 and output is
 

...
ed02celadm01: CellDisk FD_00_ed02celadm01 successfully created
ed02celadm01: CellDisk FD_01_ed02celadm01 successfully created
ed02celadm01: CellDisk FD_02_ed02celadm01 successfully created
ed02celadm01: CellDisk FD_03_ed02celadm01 successfully created
ed02celadm01: CellDisk FD_04_ed02celadm01 successfully created
ed02celadm01: CellDisk FD_05_ed02celadm01 successfully created
ed02celadm01: CellDisk FD_06_ed02celadm01 successfully created
ed02celadm01: CellDisk FD_07_ed02celadm01 successfully created
ed02celadm01: CellDisk FD_08_ed02celadm01 successfully created
ed02celadm01: CellDisk FD_09_ed02celadm01 successfully created
ed02celadm01: CellDisk FD_10_ed02celadm01 successfully created
ed02celadm01: CellDisk FD_11_ed02celadm01 successfully created
ed02celadm01: CellDisk FD_12_ed02celadm01 successfully created
ed02celadm01: CellDisk FD_13_ed02celadm01 successfully created
ed02celadm01:
ed02celadm01: CELL-04532: Error encountered while creating cell disk on LUN: 1_1 4_0 .


As you can see above there were created only 14 flash disks, not 16.
And disks 1_1 and 4_0 weren't created.

We connected to the storage cell and said list lun detail

CellCLI> list lun detail

         name:                   1_0
         cellDisk:               FD_00_ed02celadm01
         deviceName:             /dev/sdv
         diskType:               FlashDisk
         id:                     1_0
         isSystemLun:            FALSE
         lunAutoCreate:          FALSE
         lunSize:                93.13225793838501G
         physicalDrives:         FLASH_1_0
         status:                 normal

         name:                   1_1
         cellDisk:
         deviceName:             /dev/sdw
         diskType:               FlashDisk
         id:                     1_1
         isSystemLun:            FALSE
         lunAutoCreate:          FALSE
         lunSize:                93.13225793838501G
         physicalDrives:         FLASH_1_1
         status:                 normal


As you can see - the LUN 1_1 has status "normal".
4_0 has the normal status too :).
And all good disks have the normal status too.


Then we run the disk reading:

[root@ed02celadm01 ~]# hdparm -tT /dev/sdv

/dev/sdv:
 Timing cached reads:   25848 MB in  2.00 seconds = 12951.07 MB/sec
 Timing buffered disk reads:  630 MB in  3.01 seconds = 209.62 MB/sec
 

[root@ed02celadm01 ~]# hdparm -tT /dev/sdw
/dev/sdw:
 Timing cached reads:   26328 MB in  2.00 seconds = 13192.06 MB/sec
 Timing buffered disk reads:  632 MB in  3.01 seconds = 210.04 MB/sec



As you can see, the bad and good disks are well both.

The "cellcli> CALIBRATE FORCE" showed the no errors too ...


Then we decided to create cell disks manually:

CellCLI> create celldisk FD_14_ed02celadm01 lun=1_1

CELL-04527: Cannot complete the creation of cell disk FD_14_ed02celadm01. Received error: CELL-04521: The LUN 1_1 has a valid celldisk (which is not imported).
Cell disks are not created: FD_14_ed02celadm01

CellCLI> create celldisk FD_14_ed02celadm01 lun=4_0

CELL-04527: Cannot complete the creation of cell disk FD_14_ed02celadm01. Received error: CELL-04521: The LUN 4_0 has a valid celldisk (which is not imported).
Cell disks are not created: FD_14_ed02celadm01


The solution is to run dd on the storage cell and wipe disk header:


dd if=/dev/zero of=/dev/sdw bs=1M count=20


Saturday, September 28, 2013

Largest Exadata OLTP Environment

http://www.oracle.com/technetwork/database/availability/11256-exadata-oltp-paypal-1864630.pdf


–  500+ database instances
–  OLTP databases commonly 10-130 TB
–  5,000-14,000 concurrent processes
–  80,000 executions/second, 10GB Redo/Minute

Friday, September 20, 2013

Command: ChgPassWordString grid welcome1 produced null output


Making new installation of 1/2 Exadata i've got a message:

[root@dm01dbadm01 linux]# ./install.sh -cf ./WorkDir/MegaYEKTTest.xml -s 3

20 Sep 13 14:19:45 [INFO ] Executing Create Users
20 Sep 13 14:19:45 [INFO ] Creating users...
20 Sep 13 14:19:45 [INFO ] Creating users in cluster cluster-clu1 ................................
20 Sep 13 14:20:23 [INFO ] Following errors were found while checking command output:
20 Sep 13 14:20:23 [INFO ] ERROR:
20 Sep 13 14:20:23 [INFO ] Command: ChgPassWordString grid welcome1 produced null output but executed successfully on dm01dbadm03
20 Sep 13 14:20:23 [INFO ] zipping log and WorkDir directories . . 
20 Sep 13 14:20:23 [INFO ] Please send /opt/oracle.SupportTools/linux/WorkDir/Diag-130920_142023.zip to Oracle if you require assistance...
20 Sep 13 14:20:23 [INFO ] OcmdException from node dm01dbadm01.mega.com return code = 2 output string: Error running command ChgPassWordString grid welcome1 on node dm01dbadm03
20 Sep 13 14:20:23 [INFO ] OcmdException from node dm01dbadm01.mega.com return code = 2 output string: Error running Create Users error message Error running
oracle.onecommand.deploy.users.DeployUserUtils method createAllUsers






I logined to node 3 and 4 and tried to change password manually, and confirmed the error:

[root@dm01dbadm04 ~]# passwd
Changing password for user root.
... some silent seconds and .
passwd: Authentication token manipulation error

But in node 1 and node 2 passwd worked well.

I did
# strace passwd
and noticed all files passwd is open
open("/etc/pam.d/system-auth", O_READONLY) =...
They are
/etc/passwd, /etc/shadow, /etc/pam.d/passwd, /etc/pam.d/system-auth, /etc/pam.d/other

 Then I compared  these files at good and bad nodes.
Actually the difference was in some commented lines in /etc/pam.d/system-auth in bad node.  

 SOLUTION


I copied files from good node to bad nodes:
/etc/passwd, /etc/shadow, /etc/pam.d/passwd, /etc/pam.d/system-auth, /etc/pam.d/other


And the problem was gone :) !

Thursday, August 15, 2013

12c on Exadata



Стали известны некоторые подробности того, как будет работать 12с на Экзадате, вот несколько Экзадата-специфических особенностей.
Главное направление развития - улучшение OLTP на Экзадате.
Как пишет Оракл: Database 12.1 enhancements for Exadata are focused on OLTP and Consolidation

- Hardware оптимизировано под OLTP Messaging
            СУБД сможет напрямую работать с Infiniband (Database calls InfiniBand hardware directly)

- Smart Scan сможет работать с типом данных LOB
            – Smart Scan offload for small CLOBs (< 4KB)
            – Like expressions, e.g. like(html, ‘Exadata’)
            – Pattern Matching, e.g. regexp_like()
            – Smart Scan works for compressed and encrypted CLOBs

- HCC now has row level locking for better OLTP
Блокировки на уровне строк позволяют совместить плюсы OLTP-производительности и HCC-компрессии (ранее при DML блокировался целый HCC compression unit).

- HCC будет работать с типами данных Spatial и Oracle Text
            – One Oil & Gas company saw over 40X compression for a spatial table
            – Enabled by Direct Load support for tables with Domain and Functional Indexes

- OLTP Compression станет возможной для таблиц с 254 и более столбцами

- Network Resource Manager
            OLTP-задачи чувствительны к сетевым задержкам и загрузке сети.
            Это особенно заметно в консолидированных средах.
            Поэтому в 12с на Экзадате будет работать NRM, который позволит задать приоритеты на пользование сетью.
            Ряд настроек будут встроены в Экзадату изначально, например, запись в редо лог файлы имеет наивысший приоритет (чтобы гарантировать высокую скорость транзакций)
            Бэкапы будут иметь более низкий приоритет изначально.

- IORM сможет задавать приоритеты для PDB  (БД, работающих в контейнере)
  Приоритет можно задать для JOB, для SQL, для USER, для SERVICE и т.д.

- ASM rebalance offloaded to Exadata
            Серверы хранения будут обмениваться данными напрямую, не загружая операциями IO серверы БД

Проект по созданию тестового комплекса в банке ВТБ24



http://corp.cnews.ru/news/line/index.shtml?2013/08/14/539163 

"тестовый комплекс предназначен для предварительной отработки всех изменений, которые будут вноситься в ключевые действующие информационные системы и аппаратную часть ИТ-инфраструктуры банка"


"Первоначально решение предполагает наличие семи тестовых контуров. Каждый контур соответствует существующей продуктивной инфраструктуре и содержит тестовые среды нескольких десятков ключевых информационных систем банка, а при необходимости в контур можно подключать дополнительные системы. В настоящий момент в среднем на каждый контур приходится от 6 до 30 тестовых сред."


Комментируем: Современные банки (как и многие другие организации) все больше становятся ИТ-компаниями, т.е. выполняют большие объемы ИТ-работ, вместо того, чтобы заниматься своим прямым бизнесом. Разработали концепцию, схемы, регламенты:



"Одной из ключевых задач проекта стала подготовка концепции тестовой инфраструктуры, после чего были разработаны схемы организации тестовых сред и принципы работы тестовых контуров, бизнес-процессы, регламенты организации тестирования. Затем был спроектирован и развёрнут программно-аппаратный комплекс, соответствующий задачам проведения комплексного функционального тестирования требуемого качества и объема.

Современная ИТ-инфраструктура страдает большим разнообразием - слишком большое количество комбинаций железа и  и ПО: - разные аппаратные платформы - x86-64, Power, Itanuum,
- разные версии ОС на них
- разные версии прошивок и драйверов
- разные варианты конфигурации


В этих условиях для выявление причины проблем и ее устранения заказчику придется пообщаться с большим количеством вендоров, каждый из кооторых быстро заявит, что проблема на стороне другого вендора, а в его софте все хорошо.
Т.е. проблема совместной работы софта разных производителей и возникающие в связи с этим проблемы - это проблема заказчика.

В этом плане использование Экзадаты имеет определенные преимущества за счет того, что количество вариантов минимально и Оракл принимает на себя ответственность за совместную работу СУБД+Линукса+Драйверов+железа.

Monday, August 12, 2013

12c - first tests

We have the Exalytic machine and created 3 DBs in it: one -11.2.0.3 and two 12.1.0.1 - one in container (CDB) and one non-CDB.
We put all datafiles from all DBs on the same file system.
We aligned all parameter for all DBs - sga_max_size, pga_aggregate_target, processes, redo log file sizes ... and so on.
Codepage was CL8MSWIN1251 in all 3 DBs.
Forcelogging and other v$database params were aligned.

Then we run some tests.

The test for PL/SQL:



SET TIMING ON;    
             
declare a number := 0;               
begin   for i in 1 .. 1e9           
   loop a := a + 1; end loop;                   
end;                           
/
                  
declare a number := 0;    
begin   for i in 1 .. 1e9
   loop a := a + 1/3; end loop;        
end;                
/                   
 

The test for SQL:
- created one table and measured population time (INSERT) and SELECT time with select:



create table test tablespace users as
select ...
from dual connect by rownum <= 2e6;




set timing on
select count(*),sum(client_id)/1e7,sum(length(NAME))/1e7,sum(account)/1e7, min(birthday) from test; -- this run was rejected
select count(*),sum(client_id)/1e7,sum(length(NAME))/1e7,sum(account)/1e7, min(birthday) from test;
select count(*),sum(client_id)/1e7,sum(length(NAME))/1e7,sum(account)/1e7, min(birthday) from test;
select count(*),sum(client_id)/1e7,sum(length(NAME))/1e7,sum(account)/1e7, min(birthday) from test;




Then we updated a number of rows manually and deleted some rows manually and wrote down our results.


The results are:

- PL/SQL +1 run 53-55 sec in 11.2 and 43-44 in 12c.
- PL/SQL +1/3 rim 150-155 sec in 11.2 and 

- SQL 11.2 SELECT time is 1.34-1.38 sec, 12c is 0.56-0.58 sec.
- Update,Delete is 3,32 in 11.2 and 4,08 in 12c.

So, we clearly see the about 15-20% improvement in PL/SQL and about 2 times faster the SELECT and about 30% faster DML.

The DBMS_RANDOM become 3 times slower.
But we hope, it become more random.

Any comments ?

Does DEALLOCATE UNUSED or SHRINK SPACE will free space occupied by LOB segment?

Lets check how it works. My env is DB 19.20@Linux-x64 1) I created the table with 4 LOB columns of 4 different LOB types: BASICFILE BLOB, BA...