Здравствуйте
Есть сервер с Oracle 11.2.0.3 Windows 2008. Импорт базы размером 87Gb идет 2,5 часа
Возникла необходимость попробовать Oracle на Linux. На этом же оборудовании установил Oracle Linux 6.7 и Oracle 11.2.0.4.7(пробовал и 11.2.0.3 результат тот же)
Импорт стал 5,5 часов
Решил проверить на одной таблице, включил трассировку
ALTER SYSTEM SET EVENTS '10046 trace name context forever, level 12';
Дамп и данный находятся на разных физических дисках.
Кэширование для дисков в Windows отключено.
filesystemio_options=setall для Oracle на Linux
Параметры импорта следующие:
USERID='/ as sysdba'
SCHEMAS=ODB
DUMPFILE=EXPDAT.DMP
INCLUDE=TABLE:"IN ('BKL_PRI')"
LOGFILE=IMPORTT1.LOG
CONTENT=DATA_ONLY
METRICS=YES
Это результат на Windows 2008
OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1505 0.06 0.09 0 857 0 0
Execute 1744 47.51 148.43 1514 42937 836373 1396
Fetch 1602 0.17 0.13 23 12042 0 5088
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4851 47.75 148.66 1537 55836 836373 6484
Misses in library cache during parse: 337
Misses in library cache during execute: 301
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
KSV master wait 1 0.25 0.25
Disk file operations I/O 11 0.02 0.04
wait for unread message on broadcast channel
11 1.01 2.19
Datapump dump file I/O 5329 0.11 9.21
direct path write 14458 0.21 85.90
db file scattered read 188 0.01 0.39
db file sequential read 35 0.00 0.02
control file sequential read 7 0.00 0.00
local write wait 4 0.01 0.06
buffer busy waits 1 0.00 0.00
enq: TX - contention 1 0.00 0.00
log file switch (private strand flush incomplete)
Это на Linux 6.7
OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 2074 0.08 0.08 0 103 0 0
Execute 5312 48.60 223.43 1740 48626 839198 1409
Fetch 12099 0.35 0.99 1246 44229 42 15501
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 19485 49.04 224.51 2986 92958 839240 16910
Misses in library cache during parse: 249
Misses in library cache during execute: 221
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
KSV master wait 1 0.04 0.04
Disk file operations I/O 11 0.01 0.01
wait for unread message on broadcast channel
16 0.99 2.19
Datapump dump file I/O 5515 0.15 6.38
direct path write 6268 0.05 76.71
reliable message 1 0.00 0.00
db file scattered read 326 0.00 0.20
db file sequential read 254 0.01 0.62
library cache: mutex X 1 0.00 0.00
control file sequential read 7 0.00 0.00
direct path read 9 0.00 0.02
buffer busy waits 1 0.00 0.00
enq: HW - contention 1 0.00 0.00
local write wait 12 0.02 0.22
enq: TQ - DDL contention 1 0.03 0.03
Время waited на Linux даже лучше, но elapsed гораздо хуже.
Во время импорта заметил что на Windows(монитор ресурсов) скорость чтения/записи примерно 38-40Мб/с, а на Linux(iostat) 20-23Мб/с.
Почему? Может есть возможность как то увеличить эту скорость?