Вчера писах за изявлението на Лари Елисън. Днес вече имаме и видео, от сайта на Sun.
Enjoy 🙂
Вчера писах за изявлението на Лари Елисън. Днес вече имаме и видео, от сайта на Sun.
Enjoy 🙂
Тази нощ (българско време) Лари Елисън показа на света новата Exadata 2 и новата Database Machine.
Oracle Unveils Exadata Version 2: The First Database Machine for OLTP
Видео може да видите тук (скриха го, гадовете). Един готин факт е, че освен Oracle и SUN, единствената друга фирма, за която споменава, е MTel. Е, обърка името, но се поправи. (всъщност споменава и за IBM, Терадата и Нетеза, но само за да се хвали колко по-добре са Oracle от тях).
От пръв поглед се вижда ясно разликата с предишната – докато преди всичкия хардуер беше от HP (хайде, infiniband switch-овете бяха Voltaire), сега всичкият хардуер е на Sun. И понеже аз познавам доста слабо техните продукти, всичкият хардуер ми се вижда още по-„cutting edge“: 600 GB SAS Disks at 6 Gigabits/second, DDR3 memory, 40 Gigabits/second InfiniBand… За това с огромно съжаление ще преименувам името на презентацията си за есенната конференция на БГПО от „Living on the edge: Exadata adventures“ на простото „Exadata adventures“.
Ето и първите ми мисли след като изгледах видеото:
– излизането на HP от веселбата, за сметка на Sun, може да доведе до проблеми за българските потребители. Не знам кой представлява и сервизира Sun в България, но едва ли има капацитета на HP. Това нещо по договор трябва да се сервизира с 6 часа call-to-repair! HP Support, поне за хардуерни проблеми, е железен в БГ.
– ама хардуера на Sun наистина кърти мивки! Не само с тези FlashFire контролери (които сами по себе си носят доста benefit). Самия storage cell си е хем базиран на low-class сървър, хем пълен с хипер-производителни компоненти.
– честно казано, приказките за „First Database Machine for OLTP“ ми звучат маркетингово. И „старата“ ексадата е супер за OLTP (като хардуер). Има други проблемчета, които са малка спънка за масовото пускане на Exadata в OLTP среда (за някои от тях ще спомена в Трявна). В общи линии, зависи от средата.
– не стана ясно каква ОС се търкаля на cell-овете и на db nodes: Linux или Solaris. Ако са успели да подкарат техния си OFED на Solaris, ще е голяма далавера. Но подозирам, че още търкалят OEL, може би Exadata 3 ще е на Solaris.
– Основният проблем за масовото навлизане на Exadata 1 е това, че работи с Oracle 11.1.0.7, а все още голяма част от света е на Oracle 10.2 или 9.2 (има и на 8 и 7). Същото е и с Exadata 2 – тя работи с 11.2. Който ще е масов след 2 години, минимум.
– Адски съм любопитен как управляват „интелигентния“ FlashFire кеш. Exadata1 (почти) не използва паметта на cell-овете за кеширане. Ако новата версия на CellOS може да кешира в паметта, може и ние потребителите на „старата“ Exadata да се облажим
За сега – толкова. Ще видим отзвука по света. Stay tuned 🙂
P.S. Намерих и видеото
Кабинетът „Борисов“ ще предприеме всички мерки взетите неправомерно гори от бившия премиер Симеон Сакскобургготски да бъдат върнати на държавата. Това увери министър-председателят Бойко Борисов по време на парламентарния контрол. (@дир)
Дълго време бях недоволен за многото имоти, които получи царя по време на мандата на НДСВ. И все се надявах да стане нещо, да си ги върне държавата. Но, като си помисля… а защо?
Има ли в горите на Симеон масова сеч? Има ли в неговите земи лифтове и влекове? Раздава ли той земите си на разни ламтящи за бърза печалба безумци? Не съм чул такова нещо.
Аз съм реалист. Да, искам горите да се запазят, да си останат гори. Но това, че са държавни, по никакъв начин не го гарантира. Както видяхме вече толкова много пъти. Държавата отдавна е хипер-компрометирана като собственик (включително и като собственик на земи и гори). Вече не съм толкова убеден, че искам държавата да си върне горите.
Бесен съм
Когато от фирма „Студенофикация София“ казаха, че ще ме оставят без топла вода за 3 седмици, ми стана крайно неприятно. Дългият топъл душ всяка сутрин е едно от малките удоволствия, на които държа. Дори съм готов да си съкратя с половин час сладките сънища, за да се кисна под душа. А сега – нъц. Имам едно бойлерче, за в краен случай, и то спасява положението. Ама то е твърде малко. И как да си сложи човек голям и/или мощен бойлер, като има договор за топла вода? Може ли услуга с голям обществено значение да спре за 3 седмици, за 90 000 човека? Какъв е тоя downtime, каква е тая работа… Ама к’во да ги правя, приемам, че се налага.
Като затвориха половината „Александър Малинов“ и станаха брутални задръствания, неприятното чувство се засили. И то не заради затварянето, а защото видях (както и други нещастни младост-ски души), че тия мърди бачкат от 9 до 6, като са впрегнали е работа един раздрънкан кран Ифа и едно багерче. Някак несъразмерно ми се вижда предвид болката на 90 000 души, които ги чакат да се намотат. Но когато отпушиха булеварда по разписание (обещаха в сряда и го отвориха в сряда), пак преглътнах – поне ще се точни.
Представете си сега с каква надежда и нетърпение чаках заветният празник 9 септември! Не защото тогава сме изгонили фашистите и е дошла „народната власт“ – този празник е много спорен. Чаках с нетърпение тази дата, защото по план тогава трябваше да имам топла вода.
Да, ама не.
“Топлофикация София“ ЕАД съобщава, че поради влошените метеорологични условия през последните няколко дни се наложи да бъдат предприети допълнителни мерки за безопасност на труда при изпълнението на строително – монтажните работи на нашите обекти. По тази причина ще бъде удължен с един ден срокът за възстановяване на топлоподаването в следните квартали:
* В ж.к. „Младост” 4, в района между ул. „Д-р Атанас Москов”, ул. ”406”, ул.”Александър Паскалев” и Околовръстен път подаването на топла вода ще бъде възстановено след 23.00 часа на 11 септември 2009г
Гадове! Подиграха се с цялото ми търпение! Подиграха се с десетки хиляди хора, които още 4 дни не могат да се изкъпят като хората! Капна малко дъжд и ИФА-та се задави ли? Или всичките 7-8 работници, които се почесваха около тръбите, изведнъж настинаха? Пълно безхаберие – к’во ги б̀оли тях, че аз нямам топла вода?
Като си помисля, че ги защитавах…
Вече втори мандат нашият червен президент показва естествен усет към популизма. Няма го от сцената по няколко седмици, после се появява някъде само за да покаже „съпричастност“ или да изцепи евтини, но популярни приказки за вдигането на пенсиите или състоянието на икономиката. На мен, лично, не ми е ясно до колко има някаква реална власт и влияние зад сцената, но понякога се дразня на открито хипер-популярните му ходове. Особено в годината около президентските избори – тогава критикуваше и чужди, и свои, само и само да се хареса на целокупния български народ.
Сега, обаче, си намери майстора. Защото срещу неговите приказки-които-се-харесват-на-народа застава Бойко, с още по-голям талант за действия-които-се-харесват-на-народа. А и в приказките не му отстъпва по точки, макар да има много по-нешлифован (но по-народен) подход. Този титаничен сблъсък за любовта на народа беше неизбежен. Но като гледам, още от сега си личи кой ще излезе победител. .
Президента до сега поддържаше образ на мъдър и вещ политик, някак бащински настроен и загрижен за народа. Това, което липса в образа му, е близостта с хората – той е някак си над хората. Образ на приятел, но от едно по-висше общество. Човек, който трябва на първо място да уважаваш, да му вярваш и да си благодарен, че те подкрепя. Човек, който си живее в плата и си върши неговите си, висши дела, които не са за всеки.
Срещу тази визия сега излиза Бате Бойко – новият любимец на народа, много по-близък. „Наш човек“, работач, готин и безкрайно разбираем. Може би малко недодялан, не толкова изпечен в политиката, не толкова добър стратег, но също толкова последователен в своето преследване на „популярни“ приказки – но и действия. Абсолютно различен типаж, който, обаче, се бори за същото – любовта на народа.
Искрата припламна покрай трагедията в Охрид, когато президента, изплашен че остава в сянката на премиера, реши да цъфне лично там за да хвърли няколко народно-приятни думи, да покаже бащинска загриженост и т.н. Обаче нещата се объркаха, не му достигна време и Първанов изтърва юздите. Не знам дали заради него се е забавил самолета, прибиращ оцелелите. Склонен съм да вярвам, че е така, но не безрезервно. Обаче Борисов веднага го бодна с това обвинение – леко, фино, без да вдига дандания. Някак между другото, между многото неща, които успя да свърши във връзка с трагедията.
Явно това е била капката, преляла президентското търпение. Вероятно отдавна има чувството, че губи първенството в борбата за „масовата“ обич. За това той тръгна в атака. Обаче – греда, не уцели момента: оказа се точно в деня на траур. Това показва изнервеност. При това атаката беше насочена към енергийната политика в контекста на отношенията с Русия – тема, по която ГЕРБ обработва обществото месеци наред. Първанов обвини Борисов по един детински начин, че бил неподготвен за разговора с Путин, че не знае какво прави. Дори подхвърли обвинения за корупция в правителството.
Ако аз измислях зашита срещу тези думи, вероятно щях да лансирам една от следните идеи:
– Прието е опозицията да не закача правителството първите 100 дни. А и президента няма право да е опозиция – той е длъжен да бъде надпартиен
– Действията на Първанов може би са предизвикани от някое набиване на канчето от страна на Путин/Русия след разговорите в Полша
Но бате Бойко подходи много по-премерено и елегантно: той изкара думите на Седефчов като проява на завист. И за да подсили ужилването, прояви „разбиране“ към горкия объркан президент. Красота. И на мен ми се получава така, в по-успешните ми дни. Чак и аз почвам да се кефя на ББ.
Тази сутрин, в сутрешния блок на бТВ началника на на кабинета на президента задълба още по-зле. Говори някак неподготвено и плоско, твърде явно опитваше да извърти нещата в полза на бащицата на народа – обичният и загрижен образ на президента. С това, лично за мен, загуби много по-вече, от колкото мислеше да спечели.
С нетърпение очаквам продължението през следващите дни и месеци. Сеира ще е голям. А всъщност не е ли точно сеир това, което обича народа?
Излезе официално версия 10 на най-добрият браузър на света. Още по-бърз и още по-готин. Смук!
* * *
А междувременно с интерес човъркам бета версиите на най-добрия инструмент за разработка на pl/sql код и работа с Oracle БД – PL/SQL Developer 8.0. Също толкова бърз и готин, с доста полезни нещица.
ctss е нов полезен инструмент, част от клъстерния стек на Oracle от версия 11.2. Той се грижи да няма голяма разлика между часовниците на всички нодове в един клъстер.
Какъв е проблема с часовниците?
За да работи правилно един клъстер, особено в active-avtive режим, между всички нодове постоянно прескачат съобщения „Жив ли си?“ – „Жив съм“. Така при отпадането на един нод, другите знаят, че трябва да поемат неговата работа. Ако някой нод не отговори достатъчно бързо на запитването „Жив ли си?“, другите го обявяват за мъртъв, поемат неговата работа, и за да не стане беля, го изритват от клъстера (за по-сигурно). Процеса на изритване се нарича node eviction и вече съм споменавал за него. Самото изритване на практика представлява възможно най-бърз и брутален рестарт на „губещия“, при който на windows се вижда един приятно син екран. Между другото, до сега се разчиташе на някакво съдействие от изритания нод, за да подейства изритването, но в 11.2 има опит да се използва management процесора, ако има такъв и ако отговаря на стандарта IPMI версия 1.5.
Както и да е. Понякога с тези въпроси кой е жив възниква проблем. Представете си следната ситуация:
1. Даден нод изпраща запитване до някой друг „жив ли си“.
2. 4 милисекунди след това ntpd на същия нод се събужда и сверява часовника, който е изостанал с 2 минути.
3. Още 2 милисекунди по-късно нашият нод решава, че другият не му отговаря вече над 2 минути и го изритва.
Естествено, това е прекалено опростено. Всъщност ntpd се опитва да не прескача по много време (само по 128 ms), но въпреки това понякога го прави. Практиката показва, че такива неща се случват.
Има и други проблеми със стандартните методи за синхронизация на времето. Примерно, когато се опитваме да видим защо дадена заявка е бавна и преглеждаме wait events, може (в случай като горния) да видим, че прочитането на един единствен блок от диска е отнело 2 минути вместо десетина милисекунди. Или обратно – може да излезе отрицателно време. Всичко това се дължи на „подскачането“ на часовника при сверяване.
Oracle Cluster Time Synchronization Service Daemon (octssd)
За това в 11.2 Oracle въвеждат нов процес в clusterware стека, който да отговаря специално за сверяването на часовника. За сега този демон първо се оглежда дали има работещ ntpd. Ако има, влиза в т.нар. observer mode, за да не развали хубавата конфигурация, която е направил системния администратор. (Всъщност имам подозрение, че се опитва да си хортува с ntpd – да му набута опция -x – но това не е описано в документацията).
Ако няма работещ ntpd, octssd влиза в active mode и започва да сверява часовниците на всички нодове. Според документацията, ги сверява спрямо часовника на един „референтен“ нод. На база на някои съобщения в логовете аз мисля, че използва статистически методи: изчислява „средното“ време между всичките и сверява всички часовници с него. От където и да взема времето, сверяването се прави плавно, със забавяне или забързване на часовника на съответния нод, за да се намалят до минимум гореописаните проблеми.
Къде е мотиката?
Проблема е, че ако има твърде голяма разлика между часовниците на нодовете, ctss отказва да се стартира (аналогично би постъпил и ntpd) и в резултат целият clusterware не тръгва. Това в общи линии е добре – това е индикация за реален проблем – но може да бъде доста стряскащо за някой, който не знае за тази особеност. Още повече, че има някои леко объркващи съобщения в alert log-а на клъстеруеъра. За това човек трябва да гледа не само последния ред, а и малко преди него:
[root@ghost ghost]# date
Mon Sep 7 11:06:24 EEST 2009
[root@ghost ghost]# date -s "7 SEP 2008 11:06:40"
Sun Sep 7 11:06:40 EEST 2008
[root@ghost ghost]# /ora_crs/grid/bin/crsctl start crs
CRS-4123: Oracle High Availability Services has been started.
[root@ghost ghost]# tail alertghost.log
2008-09-07 11:07:52.872
[crsd(21173)]CRS-1013:The OCR location in an ASM disk group is inaccessible. Details in /ora_crs/grid/log/ghost/crsd/crsd.log.
2008-09-07 11:07:53.813
[ohasd(20591)]CRS-2765:Resource 'ora.crsd' has failed on server 'ghost'.
2008-09-07 11:07:54.893
[crsd(21187)]CRS-1013:The OCR location in an ASM disk group is inaccessible. Details in /ora_crs/grid/log/ghost/crsd/crsd.log.
2008-09-07 11:07:55.838
[ohasd(20591)]CRS-2765:Resource 'ora.crsd' has failed on server 'ghost'.
2008-09-07 11:07:55.838
[ohasd(20591)]CRS-2771:Maximum restart attempts reached for resource 'ora.crsd'; will not restart.
[root@ghost ghost]# /ora_crs/grid/bin/crsctl check crs
CRS-4638: Oracle High Availability Services is online
CRS-4535: Cannot communicate with Cluster Ready Services
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
[root@ghost ghost]# /ora_crs/grid/bin/crs_stat -t
CRS-0184: Cannot communicate with the CRS daemon.
Тук съобщението „The OCR location in an ASM disk group is inaccessible“ е малко стряскащо и много подвеждащо. От файла /ora_crs/grid/log/ghost/crsd/crsd.log също изскачат стряскащи и подвеждащи съобщения:
2008-09-07 11:07:54.891: [ OCRASM][3670413808]proprasmo: Error in open/create file in dg [DATA01]
[ OCRASM][3670413808]SLOS : SLOS: cat=7, opn=kgfoAl06, dep=15077, loc=kgfokge
ORA-15077: could not locate ASM instance serving a required diskgroup
2008-09-07 11:07:54.893: [ OCRASM][3670413808]proprasmo: kgfoCheckMount returned [7]
2008-09-07 11:07:54.893: [ OCRASM][3670413808]proprasmo: The ASM instance is down
2008-09-07 11:07:54.893: [ OCRRAW][3670413808]proprioo: Failed to open [+DATA01]. Returned proprasmo() with [26]. Marking location as UNAVAILABLE.
2008-09-07 11:07:54.893: [ OCRRAW][3670413808]proprioo: No OCR/OLR devices are usable
2008-09-07 11:07:54.893: [ OCRASM][3670413808]proprasmcl: asmhandle is NULL
2008-09-07 11:07:54.893: [ OCRRAW][3670413808]proprinit: Could not open raw device
2008-09-07 11:07:54.893: [ OCRASM][3670413808]proprasmcl: asmhandle is NULL
2008-09-07 11:07:54.893: [ OCRAPI][3670413808]a_init:16!: Backend init unsuccessful : [26]
2008-09-07 11:07:54.894: [ CRSOCR][3670413808] OCR context init failure. Error: PROC-26: Error while accessing the physical storage ASM error [SLOS: cat=7, opn=kgfoAl06, dep=15077, loc=kgfokge
ORA-15077: could not locate ASM instance serving a required diskgroup
] [7]
2008-09-07 11:07:54.894: [ CRSD][3670413808][PANIC] CRSD exiting: Could not init OCR, code: 26
2008-09-07 11:07:54.894: [ CRSD][3670413808] Done.
Нищо му няма на OCR файла, нито има проблем с пътя до него. Проблема е, че върнах часовника с една година назад и ctss отказва да отлепи . Това си го пише в /ora_crs/grid/log/ghost/ctssd/octssd.log:
2008-09-07 11:07:34.674: [ clsdmt][1160481088]Creating PID [21073] file for home /ora_crs/grid host ghost bin ctss to /ora_crs/grid/ctss/init/
2008-09-07 11:07:34.674: [ clsdmt][1160481088]Writing PID [21073] to the file [/ora_crs/grid/ctss/init/ghost.pid]
2008-09-07 11:07:34.674: [ CTSS][1149991232]ctsselect_mmg8: Host [spectre] Node num [1] is the master
2008-09-07 11:07:34.675: [ CTSS][1149991232]ctsselect_sm2: Node [1] is the CTSS master
2008-09-07 11:07:34.675: [ CTSS][1149991232]ctssslave_meh1: Master private node name [spectre]
2008-09-07 11:07:34.675: [ CTSS][1149991232]ctssslave_msh: Connect String is (ADDRESS=(PROTOCOL=tcp)(HOST=spectre)(PORT=16569))
2008-09-07 11:07:34.676: [ CTSS][1149991232]ctssslave_msh: Forming connection with CTSS master node [1]
2008-09-07 11:07:34.677: [ CTSS][1149991232]ctssslave_msh: Successfully connected to master [1]
2008-09-07 11:07:34.677: [ CTSS][1149991232]ctssslave_swm: The magnitude [31536002073184 usec] of the offset [-31536002073184 usec] is larger than [86400000000 usec] sec which is the CTSS limit.
2008-09-07 11:07:34.677: [ CTSS][1149991232]ctsselect_mmg9_3: Failed in clsctsselect_select_mode [12]: Time offset is too much to be corrected
2008-09-07 11:07:35.610: [ CTSS][1160481088]ctss_checkcb: clsdm requested check alive. Returns [40000050]
2008-09-07 11:07:35.610: [ CTSS][3009136672]ctss_init: Spawn completed. Waiting for threads to join
2008-09-07 11:07:35.610: [ CTSS][1149991232]ctsselect_mmg: CTSS daemon exiting [12].
2008-09-07 11:07:35.611: [ CTSS][1149991232]CTSS daemon aborting
Пише го и в alert log-а на клъстера, но е няколко десетки реда преди края на файла:
2008-09-07 11:07:22.547
[ctssd(21042)]CRS-2401:The Cluster Time Synchronization Service started on host ghost.
2008-09-07 11:07:34.675
[ctssd(21073)]CRS-2407:The new Cluster Time Synchronization Service reference node is host spectre.
2008-09-07 11:07:34.677
[ctssd(21073)]CRS-2404:The Cluster Time Synchronization Service detects that the local time is significantly different from the mean cluster time. Details in /ora_crs/grid/log/ghost/ctssd/octssd.log.
Оправията, естествено, е да се свери долу-горе времето, за да може ctss да запали.
[root@ghost ghost]# date -s "7 SEP 2009 11:26:40"
Mon Sep 7 11:26:40 EEST 2009
[root@ghost ghost]# /ora_crs/grid/bin/crsctl stop crs
CRS-2796: The command may not proceed when Cluster Ready Services is not running
CRS-4687: Shutdown command has completed with error(s).
CRS-4000: Command Stop failed, or completed with errors.
[root@ghost ghost]# /ora_crs/grid/bin/crsctl stop crs -f
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'ghost'
. . .
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'ghost' has completed
CRS-4133: Oracle High Availability Services has been stopped.
[root@ghost ghost]# /ora_crs/grid/bin/crsctl start crs
CRS-4123: Oracle High Availability Services has been started.
[root@ghost ghost]# tail -n 10 alertghost.log
2009-09-07 11:29:48.718
[ctssd(25311)]CRS-2408:The clock on host ghost has been updated by the Cluster Time Synchronization Service to be synchronous with the mean cluster time.
2009-09-07 11:29:49.653
[ctssd(25311)]CRS-2401:The Cluster Time Synchronization Service started on host ghost.
[client(25508)]CRS-10001:ACFS-9327: Verifying ADVM/ACFS devices.
[client(25527)]CRS-10001:ACFS-9322: done.
2009-09-07 11:30:00.087
[crsd(25726)]CRS-1012:The OCR service started on node ghost.
2009-09-07 11:30:01.503
[crsd(25726)]CRS-1201:CRSD started on node ghost.
Къде е по-дебелата мотика?
Същият този проблем възниква със страшна сила по време на инсталацията на Grid infrastructure. В самият край на инсталацията, при стартирането на root.sh на последния нод, octssd гръмва и прекратява изпълнението на скрипта. В резултат работата остава недовършена – най-малкото, което забелязах е, че на този нод не му се случва VIP. Което е особено тъжно предвид факта, че в 11.2 няма vipca и VIP се прави ръчно, чрез srvctl.
Така че преди инсталация (или ъпгрейд) гледайте часовниците на всичките нодове да са горе-долу в синхрон. Надявам се, че от следващата версия тази проверка ще се прави и от самия инсталатор.
В събота се случи нещо много тъжно. 15 невинни българи загинаха по нелеп начин в охридското езеро. Мир на душите им.
В неделя пловдивският митрополит, „дядо“ Николай, вместо да изпълни една от основните функции на църквата – да успокои опечалените близки на загиналите – загатна, че това е божие наказание за концерта на Мадона. Концерта, срещу който същият този Николай възропта.
Висшият клир на българската православна църква отдавна е твърде далеч от своите миряни. Не мога да кажа дали е близо до бога, но всичките техни ежби и ламтене за имоти ме карат да мисля, че за тях църквата е просто начин да живеят в охолство. Пълно е със самозабравили се и самодоволни старци, чиято единствена реална връзка с бога е това, че главите им по цял ден витаят в облаците. Витаят в облаците и не виждат какво става на земята. Ето от къде се пръкна този Николай, тази еманация на всичко псевдо-духовно и не-смирено, който не се опита да даде мир на душите на загиналите, не се опита да успокои близките, а каза „Не, това е божие наказание“. Това е наказание от неговият не-всеупрощаващ и не-милостив бог. „Аз ви предупредих, ама не ме слушате!“
А всъщност колко ли от хората, пострадали или оцелели от трагедията, са били на този небогоугоден концерт? Замислили се изобщо Николай какво се опитва да насади сред черната отрова на това нещастие? Дали пък някой от тези хора не е бил набожен човек, редовно посещавал църквата? Дали дядо Николай, този борец за пречистване на душата на българите, се е допитал до свещениците в Антон за техните енориаши?
Това е поредната неадекватна постъпка на нашата „църква“. Не че няма добри и отдадени на бога духовници, но са по-скоро изключение, колкото по-нагоре в йерархията погледнеш. И това не е от ден или два, няма и да мине за ден или два. Държавата ни може и да се оправи, ама църквата… дай боже. България и българите имат нужда от нашата православна църква. Църква, която да напътства. Да дава надежда, да бъде опора в тежките дни.
Но тази църква я няма.
Една от малките, но удобни благинки в 11.1 (release one!) е новият синтаксис на ALTER SYSTEM KILL SESSION. Освен стандартните SID и SERIAL, вече има трети, опционален параметър, в който може да се зададе instance id. Това позволява да се прекъсват сесии на „друг“ instance.
Според документацията нещата стоят така:
KILL SESSION Clause
The KILL SESSION clause lets you mark a session as terminated, roll back ongoing transactions, release all session locks, and partially recover session resources. To use this clause, your instance must have the database open. Your session and the session to be terminated must be on the same instance unless you specify integer3.You must identify the session with the following values from the V$SESSION view:
– For integer1, specify the value of the SID column.
– For integer2, specify the value of the SERIAL# column.
– For the optional integer3, specify the ID of the instance where the target session to be killed exists. You can find the instance ID by querying the GV$ tables.
Тук, обаче, не е цялата истина. Ето какво се случва ако следваш документацията:
SQL> select instance_number from v$instance;
INSTANCE_NUMBER
---------------
1
SQL> select inst_id, sid, serial#
2 from gv$session
3 where username = 'YAVOR'
4 and program not like '%PZ99%';
INST_ID SID SERIAL#
---------- ---------- ----------
1 12 29935
1 587 2564
1 1153 6987
1 1715 1807
2 583 494
SQL> alter system kill session '583, 494, 2';
alter system kill session '583, 494, 2'
ORA-00026: missing or invalid session ID
Изречението „You can find the instance ID by querying the GV$ tables“ не носи много полезна информация. Тук някой може да си помисли, че описанието на грешка ORA-00026 в същата тази документация ще е полезно. Ето колко е полезно:
ORA-00026: missing or invalid session ID
Cause: Missing or invalid session ID string for ALTER SYSTEM KILL SESSION.
Action: Retry with a valid session ID.
Човек веднага се сеща какъв е проблема, нали 🙂
Чак ме е яд как не ми блесна веднага: следвайки синтаксиса от първите два параметъра (SID и Serial#), съвсем логично е, че третият параметър се задава с @ (кльомба/маймунка). Няма нужда това да се пише в документацията – то е толкова естествено…
SQL> alter system kill session '583,494,@2';
alter system kill session '583,494,@2'
ORA-00031: session marked for kill
SQL> select inst_id, sid, serial#
2 from gv$session
3 where username = 'YAVOR'
4 and program not like '%PZ99%';
INST_ID SID SERIAL#
---------- ---------- ----------
1 12 29935
1 587 2564
1 1153 6987
1 1715 1807
P.S.: И в 11.2 е така
OCR and Voting disk on ASM
Voting disk-а и Oracle Cluster Registry мгат да се съхраняват на ASM. Това прилича малко на кокошката и яйцето. За целта ASM вече не е част от DB home, а е част от CRS home (наричан вече Grid Infrastructure). С други думи, вече и без клъстерна файлова система няма нужда да цепим малки логически partitions само за OCR и Voting disk. И като сата дума за клъстерни файлови системи…
ASM Cluster File System (ACFS)
Вече ASM има функционалност на Volume manager (то и преди го имаше, но вече малко повече) и на клъстерна файлова система. С други думи ASM придобива функционалността от OCFS, но много с по-голям размах (има дори snapshots). Предстои да уточним до колко ще е успешно.
SCAN адрес
Достъпа до всички нодове в един клъстер вече може да става само през един IP адрес или име. Този адрес е адрес на клъстера, а не на някой нод. В един клъстер може да има един или много SCAN адреси и броят им зависи от нуждите, натоварването или настроението на администраторите, но не и от броя на нодовете. Според мен за голяма част от случаите един scan адрес ще е абсолютно достатъчен и това е голямо улеснение.
Edition-based Redefinition
Невероятна функция, която беше заложена още в 11.1, но не беше пусната. С две думи, възможно е обектите да имат различни версии, които се превключват (примерно при upgrade). Това е голямо улеснение. Предстои да се изглади и като функционалност. Между другото, преди 7 месеца излезе едно много интересно предположение, че някой ден това може да се използва за zero downtime upgrade/patching на самия data dictionary
Flashback Data Archive Support for DDLs
Преди няколко месеца писах за ограниченията, които правят Flashback Data Archive трудно използваем. Вече голяма част от проблемите са отменени: възможни са:
– Add, Drop, Rename, Modify Column
– Drop, Truncate Partition
– Rename, Truncate Table
– Add, Drop, Rename, Modify Constraint
Остава да разрешат и Add partition и вече ще може да се използва съвсем безгрижно
По-интелигентен installer
Ако нещо не се хареса на инсталера, и то може да се оправи с няколко команди (примерно някой параметър на kernel), инсталера генерира скрипт за оправията и предлага на потребителя да го стартира. Освен това инсталера на Grid infrastructure е напълно способен сам да си setup-не SSH conectivity – нещо, което ми тежеше много в старите версии
Deinstall
В ORACLE_HOME/deinstall/ се намира един ужасно полезен скрипт, който прави пълна деинсталация на дадения home. Ужасно полезен, особено за деинсталация на Grid infrastructure.
И още благи неща, които ми харесват:
– ASM configuration assistant (ASMCA) – доста полезен инструмент
– нови екстри в ocrconfig
– Automatic Block Repair при standby database
– IGNORE_ROW_ON_DUPKEY_INDEX Hint for INSERT Statement (нож с две остриета, но все пак е полезно)
– нови и много полезни агрегативни функции: LISTAGG, NTH_VALUE
– Cluster Time Service – синхронизира времето между нодовете в клъстера. Много добра идея. Все пак има и малък кусур: много внимавайте преди инсталация на клъстер времето да е долу-горе синхронизирано, иначе боли
– Columnar Compression – чудеса могат да се направят с новите възможности за компресия (полезни предимно в DWH бази)
– Data Pump Legacy Mode – малко помощ за тези, свикнали със старите imp/exp
– Segment Creation On-Demand – представете си една инсталация на тлъсто приложение с 10000 таблици, които в началото са празни (а някой си остават така завинаги). Всички тези празни таблици и техните индекси вече няма да заемат грам място. Много благо
– Zero-Size Unusable Indexes and Index Partitions – кофти е когато един индекс стане Unusable – но поне вече няма да заема място
Ох, има още много, но всичко по реда си 🙂