<?xml version="1.0" encoding="utf-8" ?>

<?xml-stylesheet type="text/xsl" href="/templates/2k11/rss.xsl" media="screen" ?>
<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    
    <title>ITBlog - Datenbanken</title>
    <link>http://itblog.eckenfels.net/</link>
    <description>...ich werde diplomatisch sein, das ist meine Spezialität</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 2.6.1 - http://www.s9y.org/</generator>
    <pubDate>Tue, 14 Mar 2017 16:35:43 GMT</pubDate>

    <image>
    <url>http://itblog.eckenfels.net/templates/2k11/img/s9y_banner_small.png</url>
    <title>RSS: ITBlog - Datenbanken - ...ich werde diplomatisch sein, das ist meine Spezialität</title>
    <link>http://itblog.eckenfels.net/</link>
    <width>100</width>
    <height>21</height>
</image>

<item>
    <title>Converting IMAGE to VARBINARY(max) on SQL Server</title>
    <link>http://itblog.eckenfels.net/index.php?/archives/515-Converting-IMAGE-to-VARBINARYmax-on-SQL-Server.html</link>
            <category>Datenbanken</category>
    
    <comments>http://itblog.eckenfels.net/index.php?/archives/515-Converting-IMAGE-to-VARBINARYmax-on-SQL-Server.html#comments</comments>
    <wfw:comment>http://itblog.eckenfels.net/wfwcomment.php?cid=515</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://itblog.eckenfels.net/rss.php?version=2.0&amp;type=comments&amp;cid=515</wfw:commentRss>
    

    <author>nospam@example.com (Bernd Eckenfels)</author>
    <content:encoded>
    &lt;p&gt;With &lt;em&gt;Microsoft SQL Server 2005&lt;/em&gt; the &lt;tt&gt;IMAGE&lt;/tt&gt; and &lt;tt&gt;(N)TEXT&lt;/tt&gt; large data types have been deprecated in favor of &lt;tt&gt;VARBINARY(MAX)&lt;/tt&gt; and &lt;tt&gt;(N)VARCHAR(max)&lt;/tt&gt;. We have some older database schema at customers who still use the &lt;tt&gt;IMAGE&lt;/tt&gt; type so I am preparing a note to guide the migration.&lt;/p&gt;

&lt;p&gt;There is an easy &lt;tt&gt;ALTER TABLE&lt;/tt&gt; command to convert the existing tables, however it is not clear what the impact of this conversion is. So I took a deeper look. I noticed that converting a &lt;tt&gt;VARBINARY(max)&lt;/tt&gt; back to &lt;tt&gt;IMAGE&lt;/tt&gt; caused a lot of I/O and log usage. The other way around this seems to not happen and I can not repeat the problem.&lt;/p&gt;

&lt;p&gt;Nevertheless I tried a few scenarios with type and parameter conversion. With &lt;tt&gt;IMAGE&lt;/tt&gt; the default is to not inline data and it is configured with the &#039;&lt;tt&gt;text in row&lt;/tt&gt;&#039; table option which allows to define a limit of data which is inlined.&lt;/p&gt;

&lt;p&gt;The following statement creates 4 tables with different settings for images, two heap tables and two clustered:&lt;/p&gt;

&lt;pre&gt;DROP TABLE tableHeapWithImageDefault;
DROP TABLE tableHeapWithImageInline;
DROP TABLE tableClusteredWithImageDefault;
DROP TABLE tableClusteredWithImageInline;

CREATE TABLE tableHeapWithImageDefault (cID INT identity(1,1) PRIMARY KEY NOT NULL, cImage IMAGE);
CREATE TABLE tableClusteredWithImageDefault (cID INT identity(1,1) PRIMARY KEY CLUSTERED NOT NULL, cImage IMAGE);

CREATE TABLE tableHeapWithImageInline (cID INT identity(1,1) PRIMARY KEY NOT NULL, cImage IMAGE);
EXEC sp_tableoption &#039;tableHeapWithImageInline&#039;, &#039;text in row&#039;, &#039;ON&#039;;

CREATE TABLE tableClusteredWithImageInline (cID INT identity(1,1) PRIMARY KEY CLUSTERED NOT NULL, cImage IMAGE);
EXEC sp_tableoption &#039;tableClusteredWithImageInline&#039;, &#039;text in row&#039;, &#039;ON&#039;;&lt;/pre&gt;

&lt;p&gt;If I query the details I see the following:&lt;/p&gt;

&lt;pre&gt;select name, type_desc, lob_data_space_id, text_in_row_limit, large_value_types_out_of_row from sys.tables where name like &#039;table%&#039;

name                             type_desc     text_in_row_limit large_value_types_out_of_row
tableClusteredWithImageDefault   USER_TABLE    0                 0
tableClusteredWithImageInline    USER_TABLE    256               0
tableHeapWithImageDefault        USER_TABLE    0                 0
tableHeapWithImageInline         USER_TABLE    256               0&lt;/pre&gt;

&lt;p&gt;The &lt;tt&gt;large_value_type_out_of_row&lt;/tt&gt; cannot be modified as long as the table does not contain a new large type.&lt;/p&gt;

&lt;p&gt;So lets fill the tables with smaller and larger values (total blob size of (36000+180)*50000=1.6GB) for the &lt;tt&gt;cImage&lt;/tt&gt; column and see what space usage the allocation units have:&lt;/p&gt;

&lt;pre&gt;while @x &lt; 10 BEGIN
  set @x = @x + 1
  select @x
  BEGIN TRANSACTION
  declare @i int = 0;
  while @i &lt; 5000 BEGIN
    INSERT INTO tableHeapWithImageDefault(cImage) VALUES(replicate(cast(newID() as VARCHAR(max)),5)) -- 180
    INSERT INTO tableHeapWithImageDefault(cImage) VALUES(replicate(cast(newID() as VARCHAR(max)),1000)) -- 36000
    INSERT INTO tableHeapWithImageInline(cImage) VALUES(replicate(cast(newID() as VARCHAR(max)),5))
    INSERT INTO tableHeapWithImageInline(cImage) VALUES(replicate(cast(newID() as VARCHAR(max)),1000))
    INSERT INTO tableClusteredWithImageDefault(cImage) VALUES(replicate(cast(newID() as VARCHAR(max)),5)) -- 180
    INSERT INTO tableClusteredWithImageDefault(cImage) VALUES(replicate(cast(newID() as VARCHAR(max)),1000)) -- 36000
    INSERT INTO tableClusteredWithImageInline(cImage) VALUES(replicate(cast(newID() as VARCHAR(max)),5))
    INSERT INTO tableClusteredWithImageInline(cImage) VALUES(replicate(cast(newID() as VARCHAR(max)),1000))
    SET @i = @i + 1
  END
  COMMIT TRANSACTION
END&lt;/pre&gt;

&lt;p&gt;The following query looks at the &lt;a href=&quot;https://msdn.microsoft.com/en-us/library/ms189792.aspx&quot;&gt;three possible types of allocation units&lt;/a&gt; (especially &lt;tt&gt;IN_ROW_DATA&lt;/tt&gt; for data stored in the table and &lt;tt&gt;LOB_DATA&lt;/tt&gt; for large external data. The third type, &lt;tt&gt;ROW_OVERFLOW_DATA&lt;/tt&gt;, is not used in this example):&lt;/p&gt;

&lt;pre&gt;select o.name AS tablename, au.type_desc, CEILING(au.used_pages * 8 /1024.0) as usedMB,
       au.data_pages, au.used_pages, au.total_pages, p.partition_number, p.rows,
       au.used_pages * 8 * 1024 / p.rows as [bytes/row]
FROM sys.allocation_units AS au
  JOIN sys.partitions AS p ON au.container_id = p.hobt_id
  JOIN sys.objects AS o ON p.object_id = o.object_id
WHERE o.name like &#039;table%&#039;;&lt;/pre&gt;

&lt;p&gt;The result shows as expected where the data is stored (keep in mind the average length for the rows includes long and short rows).&lt;/p&gt; 

&lt;pre&gt;tablename                       type_desc       usedMB    data_pages  used_pages   total_pages  rows  bytes/row
tableHeapWithImageDefault       IN_ROW_DATA          5    582         586          587          100000       48
tableHeapWithImageDefault       LOB_DATA          1778    0           227574       227611       100000    18642
tableHeapWithImageInline        IN_ROW_DATA         16    1961        1971         1971         100000      161
tableHeapWithImageInline        LOB_DATA          1758    0           225003       225035       100000    18432
tableClusteredWithImageDefault  IN_ROW_DATA          5    582         586          587          100000       48
tableClusteredWithImageDefault  LOB_DATA          1778    0           227574       227611       100000    18642
tableClusteredWithImageInline   IN_ROW_DATA         16    1961        1971         1971         100000      161
tableClusteredWithImageInline   LOB_DATA          1758    0           225003       225043       100000    18432&lt;/pre&gt;

&lt;p&gt;So now we can also record the data pages used for the allocation units so we can verify after conversion that the data has actually not been touched (&lt;a href=&quot;http://rusanu.com/2011/08/05/online-index-operations-for-indexes-containing-lob-columns/&quot;&gt;idea&lt;/a&gt;):&lt;/p&gt;

&lt;pre&gt;select o.name, au.allocation_unit_id, au.type_desc, au.total_pages, au.first_iam_page, au.first_page, au.root_page
from sys.system_internals_allocation_units au
  JOIN sys.system_internals_partitions AS p ON au.container_id = p.partition_id
  JOIN sys.objects AS o ON p.object_id = o.object_id
WHERE o.name like &#039;table%&#039;;&lt;/pre&gt;

&lt;p&gt;With the following result:&lt;/p&gt;

&lt;pre&gt;name                           allocation_unit_id type_desc    total   first_iam_page first_page     root_page
tableHeapWithImageDefault      72057594197966848  IN_ROW_DATA  587     0x3DB302000100 0x3CB302000100 0x748707000100
tableHeapWithImageDefault      72057594198032384  LOB_DATA     227611  0x3BB302000100 0x38B302000100 0x38B302000100
tableHeapWithImageInline       72057594198097920  IN_ROW_DATA  1971    0xB91507000100 0x2E8B06000100 0x3FDA00000100
tableHeapWithImageInline       72057594198163456  LOB_DATA     225035  0x478707000100 0x418707000100 0x418707000100
tableClusteredWithImageDefault 72057594198228992  IN_ROW_DATA  587     0x4F8707000100 0x4E8707000100 0x768707000100
tableClusteredWithImageDefault 72057594198294528  LOB_DATA     227611  0x4D8707000100 0x4C8707000100 0x4C8707000100
tableClusteredWithImageInline  72057594198360064  IN_ROW_DATA  1971    0x558707000100 0x548707000100 0x4FDA00000100
tableClusteredWithImageInline  72057594198425600  LOB_DATA     225043  0x578707000100 0x568707000100 0x568707000100&lt;/pre&gt;

&lt;p&gt;So and now finally we can alter the columns:&lt;/p&gt;

&lt;pre&gt;SET STATISTICS TIME ON
ALTER TABLE tableHeapWithImageDefault ALTER COLUMN cImage VARBINARY(MAX);
ALTER TABLE tableHeapWithImageInline ALTER COLUMN cImage VARBINARY(MAX);
ALTER TABLE tableClusteredWithImageDefault ALTER COLUMN cImage VARBINARY(MAX);
ALTER TABLE tableClusteredWithImageInline ALTER COLUMN cImage VARBINARY(MAX);
SET STATISTICS TIME OFF&lt;/pre&gt;

&lt;p&gt;And this returns in elapsed time = 0ms with the following new data layout. What is visible at first is that it has generated empty &lt;tt&gt;ROW_OVERFLOW_DATA&lt;/tt&gt; allocation units for all rows (this might indicate that the conversion could differ if the rows are (nearly) full, which is not the case for our narrow tables in the experiment).&lt;/p&gt;

&lt;pre&gt;name                           allocation_unit_id type_desc          total first_iam_page first_page     root_page
tableHeapWithImageDefault      72057594197966848  IN_ROW_DATA          587 0x3DB302000100 0x3CB302000100 0x748707000100
tableHeapWithImageDefault      72057594198032384  LOB_DATA          227611 0x3BB302000100 0x38B302000100 0x38B302000100
tableHeapWithImageDefault      72057594198491136  ROW_OVERFLOW_DATA      0 0x000000000000 0x000000000000 0x000000000000
tableHeapWithImageInline       72057594198097920  IN_ROW_DATA         1971 0xB91507000100 0x2E8B06000100 0x3FDA00000100
tableHeapWithImageInline       72057594198163456  LOB_DATA          225035 0x478707000100 0x418707000100 0x418707000100
tableHeapWithImageInline       72057594198556672  ROW_OVERFLOW_DATA      0 0x000000000000 0x000000000000 0x000000000000
tableClusteredWithImageDefault 72057594198228992  IN_ROW_DATA          587 0x4F8707000100 0x4E8707000100 0x768707000100
tableClusteredWithImageDefault 72057594198294528  LOB_DATA          227611 0x4D8707000100 0x4C8707000100 0x4C8707000100
tableClusteredWithImageDefault 72057594198622208  ROW_OVERFLOW_DATA      0 0x000000000000 0x000000000000 0x000000000000
tableClusteredWithImageInline  72057594198360064  IN_ROW_DATA         1971 0x558707000100 0x548707000100 0x4FDA00000100
tableClusteredWithImageInline  72057594198425600  LOB_DATA          225043 0x578707000100 0x568707000100 0x568707000100
tableClusteredWithImageInline  72057594198687744  ROW_OVERFLOW_DATA     0  0x000000000000 0x000000000000 0x000000000000&lt;/pre&gt;

&lt;p&gt;And on the second glance we notice that neither the AU unit ID nor the page addresses has changed for any of the &lt;tt&gt;IN_ROW_DATA&lt;/tt&gt; or &lt;tt&gt;LOB_DATA&lt;/tt&gt;. So this means the change from &lt;tt&gt;IMAGE&lt;/tt&gt; to &lt;tt&gt;VARBINARY(max)&lt;/tt&gt; is low impact for the tested cases.&lt;/p&gt;

&lt;p&gt;When turning on the &lt;tt&gt;out_of_row&lt;/tt&gt; setting for the &lt;tt&gt;table(Heap/Clustered)WithDefault&lt;/tt&gt; tables (which had no inline data before) the situation does not change. The elapsed time = 0ms and the result is unchanged:&lt;/p&gt;

&lt;pre&gt;SET STATISTICS TIME ON
exec sp_tableoption &#039;tableHeapWithImageDefault&#039;, &#039;large value types out of row&#039;, &#039;1&#039;;
exec sp_tableoption &#039;tableClusteredWithImageDefault&#039;, &#039;large value types out of row&#039;, &#039;1&#039;;
SET STATISTICS TIME OFF&lt;/pre&gt;

&lt;p&gt;Results in this (removed overflows):&lt;/p&gt;

&lt;pre&gt;name                           allocation_unit_id type_desc   total_pages first_iam_page first_page     root_page
tableHeapWithImageDefault      72057594197966848  IN_ROW_DATA 587         0x3DB302000100 0x3CB302000100 0x748707000100
tableHeapWithImageDefault      72057594198032384  LOB_DATA    227611      0x3BB302000100 0x38B302000100 0x38B302000100
tableClusteredWithImageDefault 72057594198228992  IN_ROW_DATA 587         0x4F8707000100 0x4E8707000100 0x768707000100
tableClusteredWithImageDefault 72057594198294528  LOB_DATA    227611      0x4D8707000100 0x4C8707000100 0x4C8707000100&lt;/pre&gt;

&lt;p&gt;Running the same option (elasped 15ms) change on the previously inlined-enabled tables:&lt;/p&gt;

&lt;pre&gt;SET STATISTICS TIME ON
exec sp_tableoption &#039;tableClusteredWithImageInline&#039;, &#039;large value types out of row&#039;, &#039;1&#039;;
exec sp_tableoption &#039;tableHeapWithImageInline&#039;, &#039;large value types out of row&#039;, &#039;1&#039;;
SET STATISTICS TIME OFF&lt;/pre&gt;

&lt;p&gt;With the unchanged pages:&lt;/p&gt;

&lt;pre&gt;
name                          allocation_unit_id type_desc   total_pages first_iam_page first_page     root_page
tableHeapWithImageInline      72057594198097920  IN_ROW_DATA 1971        0xB91507000100 0x2E8B06000100 0x3FDA00000100
tableHeapWithImageInline      72057594198163456  LOB_DATA    225035      0x478707000100 0x418707000100 0x418707000100
tableClusteredWithImageInline 72057594198360064  IN_ROW_DATA 1971        0x558707000100 0x548707000100 0x4FDA00000100
tableClusteredWithImageInline 72057594198425600  LOB_DATA    225043      0x578707000100 0x568707000100 0x568707000100&lt;/pre&gt;

&lt;p&gt;So even that change has no impact. According to MSDN the reason for this is that the LOBs are only changed when updated. So this is also quite safe.&lt;/p&gt;

&lt;p&gt;The same should be true for the other way around, however I have seen cases, where it took much longer with lots of logfile usage. Maybe you have an idea how I can recreate this scenario?&lt;/p&gt; 
    </content:encoded>

    <pubDate>Sun, 12 Mar 2017 17:46:45 +0100</pubDate>
    <guid isPermaLink="false">http://itblog.eckenfels.net/index.php?/archives/515-guid.html</guid>
    
</item>
<item>
    <title>Search Meetup Karlsruhe</title>
    <link>http://itblog.eckenfels.net/index.php?/archives/502-Search-Meetup-Karlsruhe.html</link>
            <category>Datenbanken</category>
            <category>Enterprise IT</category>
            <category>Karlsruhe</category>
            <category>Technik</category>
    
    <comments>http://itblog.eckenfels.net/index.php?/archives/502-Search-Meetup-Karlsruhe.html#comments</comments>
    <wfw:comment>http://itblog.eckenfels.net/wfwcomment.php?cid=502</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://itblog.eckenfels.net/rss.php?version=2.0&amp;type=comments&amp;cid=502</wfw:commentRss>
    

    <author>nospam@example.com (Bernd Eckenfels)</author>
    <content:encoded>
    &lt;p&gt;&lt;!-- s9ymdb:163 --&gt;&lt;img width=&quot;147&quot; height=&quot;74&quot; alt=&quot;Search User Group KA Logo&quot; src=&quot;http://itblog.eckenfels.net/uploads/search.serendipityThumb.jpg&quot; class=&quot;serendipity_image_left&quot; /&gt;Letzte Woche fand das erste Meetup der neuen Search Meetup Gruppe in der IHK statt. Die Auftaktveranstaltung war gesponsort* von Exensio. Florian und Tobias die Organisatoren konnten einige Search-Begeisterte aus dem Raum Karlsruhe zusammenbekommen um die zukünftigen Themen des Meetups zu besprechen. Tobias ielt den ersten &lt;a href=&quot;http://blog.exensio.de/2014/03/1-search-meetup-in-karlsruhe.html&quot;&gt;Kurzvortrag&lt;/a&gt; (den ich leider verpasst hatte). Anschliessend gab es noch angeregte Diskussionen um &lt;a href=&quot;http://www.meetup.com/Search-Meetup-Karlsruhe/messages/boards/thread/42253362/&quot;&gt;zukünftige Themen&lt;/a&gt;. Solange aus den unterschiedlichsten Unternehmen die rund um Karlsruhe Such Technologien (wie Lucene, Elastic Search oder Solr) einsetze Vortragsangebote kommen, sollten auch künftige Meetups spannend werden.&lt;/p&gt; 
&lt;p&gt;Twitter: &lt;a href=&quot;https://twitter.com/KASearch&quot;&gt;@SearchKA&lt;/a&gt;&lt;br /&gt;Meetup Gruppe: &lt;a href=&quot;http://www.meetup.com/Search-Meetup-Karlsruhe/&quot;&gt;Search Meetup Karlsruhe&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font size=&quot;1&quot;&gt;&amp;#160;* Es scheint garnicht zu einfach sein in der Technologie Region Karlsruhe kostenfrei Räumlichkeiten für UserGroups zu erhalten. Hier sollten sich die diversen Marketing-Arme der Stadt und &amp;quot;High Tech Industrie&amp;quot; mal was überlegen.&lt;/font&gt;&lt;br /&gt;&lt;/p&gt; 
    </content:encoded>

    <pubDate>Sun, 02 Mar 2014 16:07:20 +0100</pubDate>
    <guid isPermaLink="false">http://itblog.eckenfels.net/index.php?/archives/502-guid.html</guid>
    
</item>
<item>
    <title>Oracle Container Datenbank</title>
    <link>http://itblog.eckenfels.net/index.php?/archives/501-Oracle-Container-Datenbank.html</link>
            <category>Datenbanken</category>
    
    <comments>http://itblog.eckenfels.net/index.php?/archives/501-Oracle-Container-Datenbank.html#comments</comments>
    <wfw:comment>http://itblog.eckenfels.net/wfwcomment.php?cid=501</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://itblog.eckenfels.net/rss.php?version=2.0&amp;type=comments&amp;cid=501</wfw:commentRss>
    

    <author>nospam@example.com (Bernd Eckenfels)</author>
    <content:encoded>
    &lt;p&gt;Seit einiger Zeit gibt es eine Neuauflage des SQL Datenbankklassikers von Oracle. Unter der Bezeichnung Oracle 12c (C wie Cloud) und der internen Versionsnummer 12.1 stehen einige &lt;a href=&quot;http://docs.oracle.com/cd/E16655_01/server.121/e17906/chapter1.htm&quot; title=&quot;docs.oracle.com&quot;&gt;neue Funktionen&lt;/a&gt; bereit.&lt;/p&gt;
&lt;h2&gt;&lt;font size=&quot;2&quot;&gt;Multitenant&amp;#160;&lt;/font&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;Architectur (CDB)&amp;#160;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;Mit der 12c Release hat Oracle eine neue Multitenant Architektur eingeführt, die es erlaubt eigenständig verwaltbare Datenbanken in einer gemeinsamen Datenbankinstanz zu betreiben. Damit verbunden sind einige neue Features wie der Transport der gesamten Datenbank (nicht nur einzelner Tablespaces) von einer Instanz in eine andere. Es erlaubt ebenfalls das bereitstellen von Clones der Datenbank für Entwicklung und QA. Das Hauptargument ist jedoch die Selbstverwaltung durch beschränken der Sichtbarkeit der Datenbankobjekte auf den jeweiligen Untermieter - alles was man für die Konsolidierung von Datenbanken so braucht.&lt;/p&gt; 
&lt;p&gt;Damit zieht Oracle mit dem Microsoft SQL Server gleich, bei dem Datenbanken ja schon länger eigenständige Objekte (mit eigenen Usern) waren. Allerdings wirkt es wie gewohnt bei Oracle etwas aufgesetzter. So gibt es die normalen Systemuser die in allen PDB gelten (z.B. DBSNMP) aber für weitere User empfiehlt Oracle eine Namenskonvention &amp;quot;C##USERNAME&amp;quot; für gemeinsam benutzte (Common) User.&lt;/p&gt; 
&lt;p&gt;Meiner Erfahrung nach heißt es Vorsicht beim Umstieg auf 12c (wenn die CDB aktiviert ist). Die neue Multitenant Architektur ist zwar praktisch, DBA sind es aber nicht gewöhnt. So ist es z.B. wichtig vorhandene User+Rollen Definitionsscripte entweder im richtigen Container aufzurufen. Entweder man benutzt einen Common DB User und ändert den Session Context:&lt;/p&gt; 
&lt;pre&gt;ALTER SESSION SET CONTAINER = &#039;PDBTEST&#039;;&amp;#160;&lt;/pre&gt; 
&lt;p&gt;Dann muss man sich aber auch regelmäßig vergewissern, welches die gerade aktive PDB ist:&lt;/p&gt; 
&lt;pre&gt;SELECT SYS_CONTEXT(&#039;USERENV&#039;, &#039;CON_NAME&#039;) FROM DUAL;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;&lt;/span&gt;&lt;/pre&gt; 
&lt;p&gt;Oder man legt entsprechende Administrationuser in jeder PDB separat an. Dazu muss man dann auch einen TNS Connect String verwenden der auf einen Datenbank Service verweist, welcher der jeweiligen PDB zugeordnet ist. Wenn eine neue PDB angelegt wurde, wird auch ein neuer Service mit PDB Name + DB_Domain registriert:&lt;/p&gt;
&lt;pre&gt;&amp;gt; SELECT NAME,PDB,CON_ID from GV$SERVICES;
&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;NAME &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; PDB &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;  CON_ID
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;---------------------- -------------------------- ----------
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;pdbtest.eckenfels.net &amp;#160; PDBTEST &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 4
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;pdborcl.eckenfels.net &amp;#160; PDBORCL &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 3
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;orcl.eckenfels.net &amp;#160; &amp;#160;  CDB$ROOT &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;1
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;SYS$BACKGROUND &amp;#160; &amp;#160; &amp;#160; &amp;#160;  CDB$ROOT &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;1
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;SYS$USERS &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; CDB$ROOT &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;1&amp;#160;&lt;/span&gt;&lt;span style=&quot;font-family: verdana, arial, geneva, helvetica, sans-serif; font-size: 9.5pt;&quot;&gt;&amp;#160;&lt;/span&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;Die Arbeit mit CDBs macht Oracle nicht gerade einfach. Wenn man eine neue Container Datenbank mit dem Datebank Konfigurationsassistent (oder CREATE Statement) anlegt, so wird diese Datenbank bei einem Instanzstart nicht automatisch geöffnet. Man muss sich also mit einem Systemtrigger behelfen. Das hätte man wirklich komfortabler lösen können (und wenn Oracle in einer nächsten Version eine Lösung dafür anbietet wird man sich mit den Triggern wieder beschäftigen müssen).&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;Das ist übrigens ein sehr ärgerliches Problem, der Oracle SQL Developer gibt zwar in der Console eine entsprechende Fehlermeldung aus:&lt;/span&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;&amp;gt; ALTER SESSION SET container = PDBORCL;
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;session SET geändert.
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;&amp;gt; CREATE ROLE &quot;NORMAL_USER&quot;;
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;Fehler beim Start in Zeile 1 in Befehl:
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;CREATE ROLE &quot;NORMAL_USER&quot;
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;Fehler bei Befehlszeile:1 Spalte:1
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;Fehlerbericht:
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;SQL-Fehler: ORA-01109: Datenbank nicht geöffnet
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;01109. 00000 - &amp;#160;&quot;database not open&quot;
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;*Cause: &amp;#160; &amp;#160;A command was attempted that requires the database to be open.
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;*Action: &amp;#160; Open the database and try the command again
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;&amp;gt; ALTER PLUGGABLE DATABASE PDBORCL OPEN READ WRITE;
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;pluggable DATABASE geändert.
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;&amp;gt; CREATE ROLE &quot;NORMAL_USER&quot;;
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;role &quot;NORMAL_USER&quot; erstellt.&lt;/span&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;Wenn man das ganze allerdings im SQL Developer macht, so wird die Meldung durch ein Fehler Pop-Up mit unverständlicher Fehlermeldung verdeckt:&lt;/span&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;Bei der Ausführung des angeforderten Vorgangs ist ein Fehler aufgetreten:
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;ORA-06550: Zeile 3, Spalte 35:
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;PLS-00201: Bezeichner &#039;DBMS_SQL.OPEN_CURSOR&#039; muss deklariert werden
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;ORA-06550: Zeile 3, Spalte 19:
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;PL/SQL: Item ignored
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;ORA-06550: Zeile 13, Spalte 26:
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;PLS-00320: Die Typ-Deklaration dieses Ausdruckes ist unvollständig oder fehlerhaft
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;ORA-06550: Zeile 13, Spalte 9:
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;PL/SQL: Statement ignored
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;ORA-06550: Zeile 16, Spalte 17:
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;PLS-00201: Bezeichner &#039;DBMS_SQL.LAST_ERROR_POSITION&#039; muss deklariert werden
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;ORA-06550: Zeile 16, Spalte 5:
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;PL/SQL: Statement ignored
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;ORA-06550: Zeile 18, Spalte 34:
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;PLS-00320: Die Typ-Deklaration dieses Ausdruckes ist unvollständig oder fehlerhaft
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;ORA-06550: Zeile 18, Spalte 11:
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;PL/SQL: Statement ignored
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;06550. 00000 - &amp;#160;&quot;line %s, column %s:\n%s&quot;
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;*Cause: &amp;#160; &amp;#160;Usually a PL/SQL compilation error.
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;*Action:
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt;&quot;&gt;Herstellercode 6550&lt;/span&gt;&lt;/pre&gt; 
&lt;p&gt;Eine gute Zusammenfassung aller CDB spezifischen Punkte findet sich im &lt;em&gt;Oracle Database Administrator&#039;s Guide&lt;/em&gt; im Kapitel &lt;a href=&quot;http://docs.oracle.com/cd/E16655_01/server.121/e17636/cdb_admin.htm&quot; title=&quot;docs.oracla.com&quot;&gt;40 Administering a CDB with SQL*Plus&lt;/a&gt;.&amp;#160;&lt;/p&gt;
&lt;h2&gt;Enterprise Manager Database Express&lt;/h2&gt; 
&lt;p&gt;Eine neue Funktion ist das &lt;em&gt;Enterprise Manager Database Express&lt;/em&gt; Modul. Statt einen abgespeckten Enterprise Manager (Database Control) mit eigenem Prozess und Ablaufumgebung zu installieren kann man das in der Datenbank eingebaute Express Modul verwenden. Dieses basiert auf der AppEx Infrastruktur. Das als Performance Hub getaufte Dashboard profitiert dann auch mit den Offline abspeicherbaren HTML Reports. Ansonsten ist die Funktionalität allerdings sehr eingeschränkt. Es gibt z.B. keine DDL Funktionen zum Anlegen oder verwalten von Tabellen.&lt;/p&gt; 
&lt;p&gt;EM DB Express unterstützt die Verwendung von Plugable Databases dahingehend, dass man für jeden Tenant ein eigener http oder https Listener (Port) anlegen kann. Wenn man sich dann nicht im Root Container anmeldet, so sieht man dann erst die jeweils in der PDB angelegten User (Und leider nur dann).&lt;/p&gt;
&lt;pre&gt;&lt;span style=&quot;color: rgb(31, 73, 125); font-size: 9.5pt;&quot;&gt;&amp;gt; select dbms_xdb_config.gethttpsport from dual;
&lt;/span&gt;&lt;span style=&quot;color: rgb(31, 73, 125); font-size: 9.5pt;&quot;&gt;GETHTTPSPORT
&lt;/span&gt;&lt;span style=&quot;color: rgb(31, 73, 125); font-size: 9.5pt;&quot;&gt;------------
&lt;/span&gt;&lt;span style=&quot;color: rgb(31, 73, 125); font-size: 9.5pt;&quot;&gt;5500
&lt;/span&gt;&lt;span style=&quot;color: rgb(31, 73, 125); font-size: 9.5pt;&quot;&gt;&amp;gt; alter session set container = PDBTEST;
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt; color: rgb(31, 73, 125);&quot;&gt;&amp;gt; select dbms_xdb_config.gethttpsport from dual;
&lt;/span&gt;&lt;span style=&quot;color: rgb(31, 73, 125); font-size: 9.5pt;&quot;&gt;GETHTTPSPORT
&lt;/span&gt;&lt;span style=&quot;color: rgb(31, 73, 125); font-size: 9.5pt;&quot;&gt;------------
&lt;/span&gt;&lt;span style=&quot;color: rgb(31, 73, 125); font-size: 9.5pt;&quot;&gt;&amp;gt; exec DBMS_XDB_CONFIG.SETHTTPSPORT(5502);
&lt;/span&gt;&lt;span style=&quot;color: rgb(31, 73, 125); font-size: 9.5pt;&quot;&gt;&amp;gt; select dbms_xdb_config.gethttpsport from dual;
&lt;/span&gt;&lt;span style=&quot;color: rgb(31, 73, 125); font-size: 9.5pt;&quot;&gt;GETHTTPSPORT
&lt;/span&gt;&lt;span style=&quot;color: rgb(31, 73, 125); font-size: 9.5pt;&quot;&gt;------------
&lt;/span&gt;&lt;span style=&quot;font-size: 9.5pt; color: rgb(31, 73, 125);&quot;&gt;5502&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Wenn man sich mit einer PDB verbunden hat (in meinem Beispiel https://server:5502/em/) so wird in der Titelzeile des EM Express links oben nicht nur die SID, sondern auch den Namen der PDB angezeigt. Ebenso enthält die Userliste nicht mehr (nur) die Gemeinsamen User:&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;!-- s9ymdb:162 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;1023&quot; height=&quot;366&quot; src=&quot;http://itblog.eckenfels.net/uploads/screenshot-ora-emex.jpg&quot; /&gt; &lt;/p&gt; 
&lt;p&gt; &lt;/p&gt; 
    </content:encoded>

    <pubDate>Sun, 26 Jan 2014 19:47:16 +0100</pubDate>
    <guid isPermaLink="false">http://itblog.eckenfels.net/index.php?/archives/501-guid.html</guid>
    
</item>
<item>
    <title>Oracle JDBC Ping Database</title>
    <link>http://itblog.eckenfels.net/index.php?/archives/491-Oracle-JDBC-Ping-Database.html</link>
            <category>Datenbanken</category>
            <category>Java Programming</category>
    
    <comments>http://itblog.eckenfels.net/index.php?/archives/491-Oracle-JDBC-Ping-Database.html#comments</comments>
    <wfw:comment>http://itblog.eckenfels.net/wfwcomment.php?cid=491</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://itblog.eckenfels.net/rss.php?version=2.0&amp;type=comments&amp;cid=491</wfw:commentRss>
    

    <author>nospam@example.com (Bernd Eckenfels)</author>
    <content:encoded>
    Oracle hat im &lt;a href=&quot;http://docs.oracle.com/cd/E11882_01/java.112/e16548/toc.htm&quot; title=&quot;Oracle Database JDBC Developer&#039;s Guide&quot;&gt;JDBC Treiber&lt;/a&gt; (und dem eigenen &lt;a href=&quot;http://docs.oracle.com/cd/E11882_01/java.112/e12265/toc.htm&quot; title=&quot;Oracle Universal Connection Pool for JDBC Developer&#039;s Guide&quot;&gt;Connection Pool&lt;/a&gt;) jede Menge Funktionen eingebaut, die über das Verhalten von JDBC hinausgehen. Oftmals wird dies mit Performance-Vorteilen begründet. 

Man sollte diese Feature (nicht nur aus Kompatibilitätsgründen) nicht ungeprüft übernehmen, zum Beispiel hat JBoss AS einen &lt;a href=&quot;http://docs.jboss.org/ironjacamar/userguide/1.1/en-US/html/ex_datasources.html#ex_datasources_oracle_xa&quot; title=&quot;JBoss IronJacamar Oracle Datasource sample&quot;&gt;OracleValidConnectionChecker&lt;/a&gt;, der mittels Relfection die Oracle Spezialfunktion &lt;code&gt;&lt;a href=&quot;http://docs.oracle.com/cd/E18283_01/appdev.112/e13995/oracle/jdbc/OracleConnection.html#pingDatabase__&quot; title=&quot;Oracle JDBC JavaDoc&quot;&gt;pingDatabase()&lt;/a&gt;&lt;/code&gt; verwendet. Alternativ gibt es eine generische Implementierung, die einfach ein Statement absetzt.

Die Prüfung ob eine DB connection noch funktioniert (entweder regelmässig im Hintergrund oder bei jedem ausleihen aus dem Pool) ist recht wichtig für einen stabilen Systembetrieb - aber auch sehr Performancerelevant. Mit pingDatabase würde man so vorgehen:

&lt;textarea name=&quot;code&quot; class=&quot;java&quot;&gt;if (connection instanceof OracleConnection)
{
    OracleConnection oraCon = (OracleConnection)connection;
    if (oraCon.pingDatabase() != OracleConnection.DATABASE_OK)
        throw new SQLException(&quot;The physical connection is broken.&quot;);
}&lt;/textarea&gt;
Wenn man aber die Implementierung analysiert, so stellt man schnell fest, dass die aktuelle Version des Treibers hier nicht sonderlich effizient implementiert ist. Es wird das SQL Statement &lt;code&gt;&quot;SELECT &#039;X&#039; FROM DUAL&quot;&lt;/code&gt; abgesetzt. (Immerhin wird dazu vorher der Rückgabetyp deklariert: &lt;code&gt;((OracleStatement)stmt).defineColumnType (1, Types.CHAR, 1);&lt;/code&gt;)

Es wird &lt;b&gt;kein prepared statement&lt;/b&gt; eingesetzt, dass heisst der Datenbank Server muss bei jedem Aufruf das Statement mühsam parsen. Wenn ein Timeout angegeben wurde, so &lt;b&gt;startet der JDBC Treiber bei jedem Ping einen neuen Thread&lt;/b&gt;. Auf die timeout Funktion sollte also auf jeden Fall verzichtet werden (Oracle hat diese Variante auch deprecated). 
    </content:encoded>

    <pubDate>Fri, 31 Aug 2012 02:41:39 +0200</pubDate>
    <guid isPermaLink="false">http://itblog.eckenfels.net/index.php?/archives/491-guid.html</guid>
    
</item>
<item>
    <title>Oracle OTN Downloads auf HP/UX Server</title>
    <link>http://itblog.eckenfels.net/index.php?/archives/463-Oracle-OTN-Downloads-auf-HPUX-Server.html</link>
            <category>Datenbanken</category>
    
    <comments>http://itblog.eckenfels.net/index.php?/archives/463-Oracle-OTN-Downloads-auf-HPUX-Server.html#comments</comments>
    <wfw:comment>http://itblog.eckenfels.net/wfwcomment.php?cid=463</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://itblog.eckenfels.net/rss.php?version=2.0&amp;type=comments&amp;cid=463</wfw:commentRss>
    

    <author>nospam@example.com (Bernd Eckenfels)</author>
    <content:encoded>
    Leider macht es Oracle recht schwer die Archive für den Datenbank Install aus dem &lt;a href=&quot;http://otn.oracle.com/&quot;&gt;Oracle Technology Network&lt;/a&gt; ohne (grafischen) Web Browser herunterzuladen: Man muss angemeldet sein und den Lizenzbedingungen zustimmen. Dabei wird nicht nur JavaScript eingesetzt sondern auch ein Session Cookie verwendet. Das macht die Verwendung von &lt;i&gt;wget&lt;/i&gt; - auch wenn man die download URL kennt - leider nicht möglich. Neben dem Herunterladen auf ein internes System mit grafischem Browser ist es stattdessen möglich entweder auf dem Zielserver einen Command-Line Browser zu verwenden der auch Cookies (und SSL) unterstützt oder eben &lt;i&gt;wget&lt;/i&gt; auf dem Zielserver und vorher die Cookies mittels Command Line browser ermitteln.

Aktuell teste ich Software auf den HP/UX Servern im HP Partnerprogramm &lt;a href=&quot;https://pvp.usa.hp.com/&quot;&gt;PVP&lt;/a&gt;. Diese Server sind recht minimalistisch ausgestattet. Um dort einen SSL fähigen Command-Line Browser zu erhalten benutze ich das &lt;i&gt;Links&lt;/i&gt; Paket. Es benötigt &lt;i&gt;Perl&lt;/i&gt; und &lt;i&gt;OpenSSL&lt;/i&gt; als Abhängigkeiten und wird im Software Depot des &lt;a href=&quot;http://hpux.connect.org.uk/hppd/&quot;&gt;HP Porting Centers&lt;/a&gt; angeboten (Dort gibt es zwar auch ein &lt;i&gt;Lynx&lt;/i&gt; Paket mit weniger Dependencies, das ist allerdings ohne SSL Unterstützung). Einfacherweise installiert man sich zuerst den &lt;i&gt;depothelper&lt;/i&gt; vom Porting Center. Dieser übernimmt den restlichen Download, das Auspacken und Installieren des Paketes und aller Abhängigkeiten:

&lt;blockquote&gt;# uname -a
HP-UX server B.11.31 U ia64 3663751510 unlimited-user license
# cd /var/tmp
# ftp hpux.connect.org.uk
User: ftp
Pass: root@
ftp&gt; cd /hpux/Sysadmin/depothelper-2.00/
ftp&gt; get depothelper-2.00-ia64-11.31.depot.gz
ftp&gt; quit
# /usr/contrib/bin/gunzip depothelper-2.00-ia64-11.31.depot.gz
the next command requires an absolute path
# swinstall -s /var/tmp/depothelper-2.00-ia64-11.31.depot depothelper 
now you can use depothelper to install a package with dependencies
# /usr/local/bin/depothelper links
================================================
Package-version      Comment              Download        Install
================================================
ia64-11.31           Package list         OK              OK
db-5.0.26            Dependency (01/07)   OK              OK (+ deleted depot)
expat-2.0.1          Dependency (02/07)   OK              OK (+ deleted depot)
gdbm-1.8.3           Dependency (03/07)   OK              OK (+ deleted depot)
gettext-0.18         Dependency (04/07)   OK              OK (+ deleted depot)
libiconv-1.13.1      Dependency (05/07)   OK              OK (+ deleted depot)
openssl-1.0.0a       Dependency (06/07)   OK              OK (+ deleted depot)
perl-5.10.1          Dependency (07/07)   OK              OK (+ deleted depot)
links-1.00pre23      Requested            OK              OK (+ deleted depot)
================================================&lt;/blockquote&gt;

Wenn auf dem Server kein &lt;i&gt;Links&lt;/i&gt; (mit &lt;i&gt;Perl&lt;/i&gt; installiert werden soll, so gibt es auch Tipps wie man den Login auf OTN mit einem &lt;i&gt;Lynx&lt;/i&gt; Browser auf einem Testsystem absolvieren kann und die dabei erhaltenen gültigen Cookies per File dann an &lt;i&gt;wget&lt;/i&gt; auf dem Zielserver weiterreichen kann. Dies ist &lt;a href=&quot;http://www.pythian.com/library/papers_and_books/downloading_from_otn_directly_to_your_database_server/&quot;&gt;hier&lt;/a&gt; näher beschrieben. 
    </content:encoded>

    <pubDate>Fri, 16 Jul 2010 17:12:00 +0200</pubDate>
    <guid isPermaLink="false">http://itblog.eckenfels.net/index.php?/archives/463-guid.html</guid>
    
</item>
<item>
    <title>Oracle mit der Nase installieren</title>
    <link>http://itblog.eckenfels.net/index.php?/archives/420-Oracle-mit-der-Nase-installieren.html</link>
            <category>Datenbanken</category>
            <category>ROTFLBTC</category>
    
    <comments>http://itblog.eckenfels.net/index.php?/archives/420-Oracle-mit-der-Nase-installieren.html#comments</comments>
    <wfw:comment>http://itblog.eckenfels.net/wfwcomment.php?cid=420</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://itblog.eckenfels.net/rss.php?version=2.0&amp;type=comments&amp;cid=420</wfw:commentRss>
    

    <author>nospam@example.com (Bernd Eckenfels)</author>
    <content:encoded>
    Der Oracle University Newsletter zum Ende des Jahres hat mich zum Schmunzeln gebracht, deswegen will ich Ihnen dieses YouTube Video (&lt;a href=&quot;http://blogs.zdnet.com/Howlett/?p=274&quot;&gt;gefunden auf Irregular Enterprise Blog auf ZDNet&lt;/a&gt;) nicht vorenthalten.

&lt;object width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/CHzV4LZnvHc&amp;hl=de&amp;fs=1&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/CHzV4LZnvHc&amp;hl=de&amp;fs=1&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/embed&gt;&lt;/object&gt;


 
    </content:encoded>

    <pubDate>Mon, 22 Dec 2008 14:55:43 +0100</pubDate>
    <guid isPermaLink="false">http://itblog.eckenfels.net/index.php?/archives/420-guid.html</guid>
    
</item>
<item>
    <title>Oracle@EC2</title>
    <link>http://itblog.eckenfels.net/index.php?/archives/380-OracleEC2.html</link>
            <category>Cloud</category>
            <category>Datenbanken</category>
            <category>Infrastruktur</category>
            <category>Vernetzung</category>
    
    <comments>http://itblog.eckenfels.net/index.php?/archives/380-OracleEC2.html#comments</comments>
    <wfw:comment>http://itblog.eckenfels.net/wfwcomment.php?cid=380</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://itblog.eckenfels.net/rss.php?version=2.0&amp;type=comments&amp;cid=380</wfw:commentRss>
    

    <author>nospam@example.com (Bernd Eckenfels)</author>
    <content:encoded>
    Oracle und Amazon arbeiten zusammen um Oracle Anwendungen im Amazon Grid anzubieten. Es gibt jetzt einige Images die von Oracle kostenlos bereitgestellt werden. Oracle erlaubt sogar den Betrieb von Produktiven lizenzierten Anwendungen im EC2 Grid. Die Konfiguration  ist sogar für offiziellen Support zertifiziert.

Besonders interessant sind aber auch die Möglichkeiten die vorinstallierten Anwendungen wie Application Express oder Enterprise Manager Grid einfach mal ausprobieren zu können.

&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://aws.amazon.com/solutions/featured-partners/oracle/&quot;&gt;Amazon/Oracle Partner News&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href=&quot;http://www.oracle.com/technology/tech/cloud/index.html&quot;&gt;Oracle Cloud Computing Center&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

 
    </content:encoded>

    <pubDate>Thu, 25 Sep 2008 04:17:58 +0200</pubDate>
    <guid isPermaLink="false">http://itblog.eckenfels.net/index.php?/archives/380-guid.html</guid>
    
</item>
<item>
    <title>SQL Developer Reports: Segment Size</title>
    <link>http://itblog.eckenfels.net/index.php?/archives/336-SQL-Developer-Reports-Segment-Size.html</link>
            <category>Datenbanken</category>
            <category>SW Entwicklung</category>
    
    <comments>http://itblog.eckenfels.net/index.php?/archives/336-SQL-Developer-Reports-Segment-Size.html#comments</comments>
    <wfw:comment>http://itblog.eckenfels.net/wfwcomment.php?cid=336</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://itblog.eckenfels.net/rss.php?version=2.0&amp;type=comments&amp;cid=336</wfw:commentRss>
    

    <author>nospam@example.com (Bernd Eckenfels)</author>
    <content:encoded>
    Ein nettes Feature beim &lt;a href=&quot;http://www.oracle.com/technology/products/database/sql_developer/index.html&quot;&gt;Oracle SQL Developer&lt;/a&gt; ist die Möglichkeit einfachere oder komplexere SQL Statements als Reports zu hinterlegen und dann laufen zu lassen. Visualisierung in Form von Tabellen oder Grafiken mit inbegriffen.

&lt;div class=&quot;serendipity_imageComment_right&quot; style=&quot;width: 110px&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;a class=&#039;serendipity_image_link&#039; href=&#039;http://itblog.eckenfels.net/uploads/sqldev.jpg&#039;&gt;&lt;!-- s9ymdb:140 --&gt;&lt;img width=&quot;110&quot; height=&quot;83&quot;  src=&quot;http://itblog.eckenfels.net/uploads/sqldev.serendipityThumb.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Report: Usage Segment Size&lt;/div&gt;&lt;/div&gt;In lockerer Folge möchte ich einige der Reports vorstellen die ich so einsetze. Heute der &quot;Segment Size&quot; Report, der eine Liste aller Segmente (eines Owners) erstellen kann, und diese nach Platzbedarf sortiert. Dabei werden für die Typen TABLE, INDEX und LOB* Details ausgegeben (also insbesondere zu welcher Tabelle das LOB oder Index Segment gehört, und welche Spalten es abdeckt).

Beim Start des Reports kann man den Owner (Schema User) angeben, für den man sich interessiert. Es wird hier ein substring vergleich verwendet, also bei der Eingabe von SYS (wie im Screenshot) werden die Ausgaben gruppiert nach mehreren Ownern gemacht.

Hier als Beispiel, der Index der im SYS Schema den meisten Raum belegt hat den Segment Namen &quot;I_WRI$_OPTSTAT_H_OBJ#_ICOL#_ST&quot; und er ist auf der Tabelle &quot;WRI$_OPTSTAT_HISTGRM_HISTORY&quot; im Tablespace SYSAUX angelegt. Der Index hat 3 Spalten, im Report wird nur die erste und letzte ausgegeben: &quot;3: INTCOL#,SYS_NC00013$&quot;. Dies ist eine Einschränkung, weil es keine portable String Aggregationsfunktion gibt. Eventuell will sich jemand die Mühe machen dies auf mehr Spalten auszubauen?

Die Größenangabe des Segments (in Extends und Megabytes) basiert auf den Spalten bytes und extends aus dem DBA_SEGMENTS view. Entspricht also dem Platzverbrauch aber nicht dem Füllstand. Ausgelassen werden Recylce Objekte.

Der Report sollte mit allen Oracle Database Versionen lauffähig sein, das Export File ist im SQL Developer 1.5 Format. &lt;a href=&quot;http://itblog.eckenfels.net/uploads/eckes-sqldeveloper.xml&quot; title=&quot;eckes-sqldeveloper.xml&quot;&gt;eckes-sqldeveloper.xml&lt;/a&gt;



 
    </content:encoded>

    <pubDate>Sat, 10 May 2008 21:20:17 +0200</pubDate>
    <guid isPermaLink="false">http://itblog.eckenfels.net/index.php?/archives/336-guid.html</guid>
    
</item>
<item>
    <title>Wie erwachsen ist ZFS schon?</title>
    <link>http://itblog.eckenfels.net/index.php?/archives/288-Wie-erwachsen-ist-ZFS-schon.html</link>
            <category>Datenbanken</category>
            <category>Infrastruktur</category>
    
    <comments>http://itblog.eckenfels.net/index.php?/archives/288-Wie-erwachsen-ist-ZFS-schon.html#comments</comments>
    <wfw:comment>http://itblog.eckenfels.net/wfwcomment.php?cid=288</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://itblog.eckenfels.net/rss.php?version=2.0&amp;type=comments&amp;cid=288</wfw:commentRss>
    

    <author>nospam@example.com (Bernd Eckenfels)</author>
    <content:encoded>
    Selten liest man über &lt;a href=&quot;http://www.sun.com/software/solaris/ds/zfs.jsp&quot;&gt;ZFS&lt;/a&gt; wirklich negatives. Das neue Filesystem von Solaris ist noch recht Jung, aber abgesehen von Tuning Problemen bei Datenbankservern waren mir noch keine echten Probleme bekannt. &lt;a href=&quot;http://prefetch.net/blog/index.php/2007/11/28/is-zfs-ready-for-primetime/&quot;&gt;Bisher&lt;/a&gt;.

Dafür wundert mich ein wenig, dass nach der &lt;a href=&quot;http://blogs.sun.com/realneel/entry/zfs_and_databases&quot;&gt;Schwemme&lt;/a&gt; an &lt;a href=&quot;http://blogs.sun.com/roch/entry/zfs_and_oltp&quot;&gt;Tuningtips&lt;/a&gt; 2006 bisher nicht wirklich neue (und vor allem offizielle) Oracle/ZFS Info zu bekommen sind. Oder? 
    </content:encoded>

    <pubDate>Thu, 29 Nov 2007 23:53:10 +0100</pubDate>
    <guid isPermaLink="false">http://itblog.eckenfels.net/index.php?/archives/288-guid.html</guid>
    
</item>
<item>
    <title>Es menschelt bei Panta Rhei (SOA vs. SQL)</title>
    <link>http://itblog.eckenfels.net/index.php?/archives/276-Es-menschelt-bei-Panta-Rhei-SOA-vs.-SQL.html</link>
            <category>Blogging</category>
            <category>Datenbanken</category>
            <category>Infrastruktur</category>
            <category>Marketing</category>
            <category>SOA</category>
    
    <comments>http://itblog.eckenfels.net/index.php?/archives/276-Es-menschelt-bei-Panta-Rhei-SOA-vs.-SQL.html#comments</comments>
    <wfw:comment>http://itblog.eckenfels.net/wfwcomment.php?cid=276</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://itblog.eckenfels.net/rss.php?version=2.0&amp;type=comments&amp;cid=276</wfw:commentRss>
    

    <author>nospam@example.com (Bernd Eckenfels)</author>
    <content:encoded>
    Drüben im &lt;a href=&quot;http://itblog.eckenfels.net/archives/266-Virtuelle-Blog-Realitaet.html&quot;&gt;virtuellen Blog&lt;/a&gt; des fiktiven EDV Leiters Frank Bremer menschelt es. Intrigen und Aus-dem-Bauch Entscheidungen bestimmen den Alltag (das ist allzu realistisch .). &lt;a href=&quot;http://quovadis-bremer.de/wp/2007/09/11/wenn-finanzer-zeitung-lesen/&quot;&gt;Gerade&lt;/a&gt; ging es in einem Artikel darum, den CFO von seiner Anti-SOA Meinung (die er durch einen polarisierenden Artikel gefasst hat) durch den Google Zeitgeist abzubringen: wie groß ist der SOA Hype?

Dieser Blog Post hat mich motiviert selbst einmal einige Zeitgeist Trends gegenüberzustellen. Und bin dabei auf ein sehr interessantes (unerwartetes) Ergebnis gestoßen:

&lt;a href=&quot;http://www.google.com/trends?q=soa%2C+sql&amp;amp;ctab=0&amp;amp;hl=en&amp;amp;geo=all&amp;amp;date=all&amp;amp;sort=0&quot;&gt;&lt;img src=&quot;http://itblog.eckenfels.net/uploads/trend-soa-sql.jpg&quot; border=&quot;0&quot; alt=&quot;SOA vs. SQL at Google Trends&quot; /&gt;&lt;/a&gt;

Danach gibt es um Größenordnungen mehr Anfragen zum Thema SQL als zum Thema SOA, dafür berichtet die Schreibende Zunft deutlich stärker über den Hype.

Es ist wohl unstrittig, dass SQL (Netzwerk) Datenbanken zu einem Paradigmenwechsel in der IT geführt haben. Und der Fieberkurve nach zu urteilen auch sehr nachhaltig. Das muß an dem hohen integrativen Potential von offenen Datenschnittstellen liegen. Nicht umsonst nennt man SOA das SQL des neuen Jahrhunderts. Mal sehen ob das EA Modell dem auch gerecht werden kann.

Aber gut, im Vergleich zu anderen Schlagwörtern ist SOA schon Alltag*:

&lt;a href=&quot;http://www.google.com/trends?q=soa%2C+corba&amp;amp;ctab=0&amp;amp;hl=en&amp;amp;geo=all&amp;amp;date=all&amp;amp;sort=0&quot;&gt;&lt;img src=&quot;http://itblog.eckenfels.net/uploads/trend-soa-corba.jpg&quot; border=&quot;0&quot; alt=&quot;SOA vs. Corba at Google Trends&quot; /&gt;&lt;/a&gt;

* Ich fühle mich Unwohl dem Google Zeitgeist zu viel Bedeutung zuzumessen, aber wenn das Herr Müller Dreist überzeugt, sollte es auch meine Leser täuschen können :) 
    </content:encoded>

    <pubDate>Tue, 11 Sep 2007 23:13:28 +0200</pubDate>
    <guid isPermaLink="false">http://itblog.eckenfels.net/index.php?/archives/276-guid.html</guid>
    
</item>
<item>
    <title>Chaos...</title>
    <link>http://itblog.eckenfels.net/index.php?/archives/145-Chaos....html</link>
            <category>Blogging</category>
            <category>Datenbanken</category>
    
    <comments>http://itblog.eckenfels.net/index.php?/archives/145-Chaos....html#comments</comments>
    <wfw:comment>http://itblog.eckenfels.net/wfwcomment.php?cid=145</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://itblog.eckenfels.net/rss.php?version=2.0&amp;type=comments&amp;cid=145</wfw:commentRss>
    

    <author>nospam@example.com (Bernd Eckenfels)</author>
    <content:encoded>
    &lt;a href=&quot;http://itblog.eckenfels.net/uploads/Chaos.jpg&quot;&gt;&lt;img width=&#039;96&#039; height=&#039;110&#039; style=&quot;float: left; border: 0px; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://itblog.eckenfels.net/uploads/Chaos.serendipityThumb.jpg&quot; alt=&quot;Isolation: Chaos&quot; /&gt;&lt;/a&gt; Am Wochenende waren meine Frau und ich im Kino, und konnten uns schön die Vorstellung von Chaos (verursacht durch Dark Phoenix) in den Köpfen eines CGI Gestalters ansehen. Und dann stolpere ich am Abend doch glatt schon  &lt;a href=&quot;http://itblog.eckenfels.net/archives/143-Microsoft-SQL-Server-Nostalgie.html&quot;&gt;wieder&lt;/a&gt; im &lt;a href=&quot;http://sqlservercode.blogspot.com/2006/05/chaos-isolation-level-in-sql-server.html&quot;&gt;SQLCode&lt;/a&gt; Blog über ein halbwegs On-Topic Bild zum Thema Chaos (und Microsoft SQL Server).
 
    </content:encoded>

    <pubDate>Tue, 30 May 2006 00:04:00 +0200</pubDate>
    <guid isPermaLink="false">http://itblog.eckenfels.net/index.php?/archives/145-guid.html</guid>
    
</item>
<item>
    <title>Microsoft SQL Server: Nostalgie</title>
    <link>http://itblog.eckenfels.net/index.php?/archives/143-Microsoft-SQL-Server-Nostalgie.html</link>
            <category>Datenbanken</category>
    
    <comments>http://itblog.eckenfels.net/index.php?/archives/143-Microsoft-SQL-Server-Nostalgie.html#comments</comments>
    <wfw:comment>http://itblog.eckenfels.net/wfwcomment.php?cid=143</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://itblog.eckenfels.net/rss.php?version=2.0&amp;type=comments&amp;cid=143</wfw:commentRss>
    

    <author>nospam@example.com (Bernd Eckenfels)</author>
    <content:encoded>
    &lt;div class=&quot;serendipity_imageComment_left&quot; style=&quot;width: 110px&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;a href=&#039;http://blogs.msdn.com/photos/euanga/images/597641/640x480.aspx&#039;&gt;&lt;img width=&#039;110&#039; height=&#039;83&#039;  src=&quot;http://itblog.eckenfels.net/uploads/dbase.serendipityThumb.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;SQL Server 1.0 for OS/2&lt;/div&gt;&lt;/div&gt;Bei Euan Garden (MS SQL Server Team) gibt es einen Rückblick auf die MS SQL Server &lt;a href=&quot;http://blogs.msdn.com/euanga/archive/2006/01/19/514479.aspx&quot;&gt;Entwicklungsgeschichte&lt;/a&gt;, mit &lt;a href=&quot;http://blogs.msdn.com/euanga/archive/2006/05/23/597677.aspx&quot;&gt;Fotos&lt;/a&gt; der Verpackungen.

Hier ist gut nachzulesen wie Microsoft und Sybase zusammen die dBase Quellen Client/Server fähig gemacht haben. MS zuerst auf OS/2!

 
    </content:encoded>

    <pubDate>Wed, 24 May 2006 23:04:06 +0200</pubDate>
    <guid isPermaLink="false">http://itblog.eckenfels.net/index.php?/archives/143-guid.html</guid>
    
</item>
<item>
    <title>Oracle SQL Developer</title>
    <link>http://itblog.eckenfels.net/index.php?/archives/140-Oracle-SQL-Developer.html</link>
            <category>Datenbanken</category>
            <category>SW Entwicklung</category>
    
    <comments>http://itblog.eckenfels.net/index.php?/archives/140-Oracle-SQL-Developer.html#comments</comments>
    <wfw:comment>http://itblog.eckenfels.net/wfwcomment.php?cid=140</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://itblog.eckenfels.net/rss.php?version=2.0&amp;type=comments&amp;cid=140</wfw:commentRss>
    

    <author>nospam@example.com (Bernd Eckenfels)</author>
    <content:encoded>
    In der Software Entwicklung von DB verbundenen Systemen hat man immer die Notwendigkeit auch manuell mit der Datenbank Verbindung aufzubauen, SQL Statements abzusetzen oder auch mal in den DB Objekten zu browsen. Oftmals kommen hier Tools zum Einsatz. Im Oracle Umfeld dürfte &lt;a href=&quot;http://www.toadsoft.com/&quot;&gt;TOAD&lt;/a&gt; hier am bekanntesten sein.
&lt;div class=&quot;serendipity_imageComment_right&quot; style=&quot;width: 110px&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;a href=&#039;http://itblog.eckenfels.net/uploads/jdev.gif&#039;&gt;&lt;img width=&#039;110&#039; height=&#039;77&#039;  src=&quot;http://itblog.eckenfels.net/uploads/jdev.serendipityThumb.gif&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Oracle SQL Developer&lt;/div&gt;&lt;/div&gt;
Integrierte Entwicklungsumgebungen wie &lt;a href=&quot;http://www.eclipse.org&quot;&gt;Eclipse&lt;/a&gt; oder Oracle &lt;a href=&quot;http://www.oracle.com/technology/products/jdev/index.html&quot;&gt;JDeveloper&lt;/a&gt; haben eigene Funktionen für den Zugriff auf Datenbanken. Diese sind aber nicht immer sehr effizient und komplett zu nutzen.

Oracle hat den &lt;a href=&quot;http://www.oracle.com/technology/products/database/sql_developer/index.html&quot;&gt;SQL Developer&lt;/a&gt; veröffentlicht. Es ist eine Entwicklungsumgebung reduziert auf die Manipulation von SQL insbesondere auch PL/SQL Statements und Packages. Ein Teil der SQL Developer Funktionen wurden auch in den Oracle JDeveloper übernommen.
 &lt;a class=&quot;block_level&quot; href=&quot;http://itblog.eckenfels.net/index.php?/archives/140-Oracle-SQL-Developer.html#extended&quot;&gt;Continue reading &quot;Oracle SQL Developer&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sat, 06 May 2006 02:24:49 +0200</pubDate>
    <guid isPermaLink="false">http://itblog.eckenfels.net/index.php?/archives/140-guid.html</guid>
    
</item>
<item>
    <title>When I am sixty-four</title>
    <link>http://itblog.eckenfels.net/index.php?/archives/139-When-I-am-sixty-four.html</link>
            <category>Datenbanken</category>
            <category>Infrastruktur</category>
            <category>SW Entwicklung</category>
    
    <comments>http://itblog.eckenfels.net/index.php?/archives/139-When-I-am-sixty-four.html#comments</comments>
    <wfw:comment>http://itblog.eckenfels.net/wfwcomment.php?cid=139</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://itblog.eckenfels.net/rss.php?version=2.0&amp;type=comments&amp;cid=139</wfw:commentRss>
    

    <author>nospam@example.com (Bernd Eckenfels)</author>
    <content:encoded>
    Die Beatles Zeile war auch der Titel einer &lt;a href=&quot;https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/3583&quot;&gt;Blog-Post&lt;/a&gt; im SAP Developer Network. 

Deswegen möchte ich hier auch noch mal berichten, dass so langsam der 64-bit Durchbruch stattfindet. 32-bit Kernel für AIX auf Power oder Solaris auf Sparc sind schon lange ein Seltenheit, jetzt ziehen auch Anwendungen und weitere Betriebsysteme nach:
&lt;ul&gt;&lt;li&gt; SAP liefert ab 2007 nur noch 64-bit Server (&lt;a href=&quot;https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/3583&quot;&gt;SDN Blog&lt;/a&gt;)&lt;/li&gt;&lt;li&gt; Microsoft Server Anwendungen gehen in Richtung x64 (&lt;a href=&quot;http://www.directionsonmicrosoft.com/sample/DOMIS/update/2006/01jan/0106spg6.htm&quot;&gt;directionsonmicrosoft.com&lt;/a&gt;) und &lt;a href=&quot;http://www.64advantage.com/&quot;&gt;64Advantage.com&lt;/a&gt;&lt;/li&gt;&lt;li&gt; Selbst Itanium ist im Aufwind (&lt;a href=&quot;https://www.itaniumsolutionsalliance.org/home&quot;&gt;itaniumsolutionsalliance.org&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;
Durch den starken Support der Platform Hersteller und interpretierten code (.NET, Java oder ABAP) ist der 64-bit Übergang einfacher und schmerzloser als erwartet. Aktuell allerdings bedeutet es für Administratoren und Entwickler aber zusätzlichen Support und Test Aufwand.

Wie sieht denn die Zukunft bei Oracle aus? Mit 10.2 gibt es jedenfalls keine 32-bit Versionen des Datenbank Servers für die POWER oder UltraSPARC Architektur. Inwzischen ist auch die Solaris x64 Lücke geschlossen: seit dem 23. März sind die AMD64 Binaries in 64-bit Breite erhältlich. Somit bleibt nur Windows und Linux auf x86 - was für eine Neuinstallation ohnehin keinen Sinn mehr macht. 
    </content:encoded>

    <pubDate>Thu, 04 May 2006 02:19:36 +0200</pubDate>
    <guid isPermaLink="false">http://itblog.eckenfels.net/index.php?/archives/139-guid.html</guid>
    
</item>
<item>
    <title>OCFS2 certified for Oracle 10g RAC</title>
    <link>http://itblog.eckenfels.net/index.php?/archives/136-OCFS2-certified-for-Oracle-10g-RAC.html</link>
            <category>Datenbanken</category>
            <category>Hardware</category>
            <category>Infrastruktur</category>
    
    <comments>http://itblog.eckenfels.net/index.php?/archives/136-OCFS2-certified-for-Oracle-10g-RAC.html#comments</comments>
    <wfw:comment>http://itblog.eckenfels.net/wfwcomment.php?cid=136</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://itblog.eckenfels.net/rss.php?version=2.0&amp;type=comments&amp;cid=136</wfw:commentRss>
    

    <author>nospam@example.com (Bernd Eckenfels)</author>
    <content:encoded>
    Gerade kommt über die &lt;a href=&quot;http://oss.oracle.com/projects/ocfs2/&quot;&gt;OCFS2&lt;/a&gt; User Mailingliste die Ankündigung herein, dass OCFS2 1.2.1 released wurde, und im Zusammenspiel mit RHEL4 auf x86 Linux von Oracle Database 10gR2 für den Produktiveinsatz freigegeben wurde.

Gerade in letzter Zeit häuften sich Probleme mit instabilen Treibern (SAN, Firewire, iSCSI), so dass es ziemlich klar ist, dass es sehr leichtsinnig wäre ein OCFS2 Cluster zu betreiben ohne sich strikt an zertifizierte Kernels (und Hardware) zu halten.

In vielen Fehlersituationen schaltet OCFS2 Knoten ab um den Konflikt zu lösen (z.B. wenn die Netzwerkverbindung abbricht, oder kein konstanter Kontakt mit den Platten vorhanden ist). Dieses Fencing (abtrennen vom Zugriff auf das Shared Storage durch Shutdown) macht das Debuggen nicht einfacher. Es empfiehlt sich also bei sporadischem Shutdown eine Netconsole zu betreiben, um Post-Mortem die Diagnose-Meldungen der Kernel Module zu erhalten.

&lt;b&gt;Update&lt;/b&gt;: Interessanterweise ist in den Oracle Blogs nichts zu dem Thema zu finden: &lt;a href=&quot;http://blogs.oracle.com/otn/search/?q=ocfs2&amp;amp;searchThisSiteOnly=true&quot;&gt;Search: ocfs2&lt;/a&gt;, auch die Blogsphere ist sehr verhalten: &lt;a href=&quot;http://technorati.com/search/ocfs2&quot;&gt;Technorati: ocfs2&lt;/a&gt; 
    </content:encoded>

    <pubDate>Tue, 25 Apr 2006 04:04:01 +0200</pubDate>
    <guid isPermaLink="false">http://itblog.eckenfels.net/index.php?/archives/136-guid.html</guid>
    
</item>

</channel>
</rss>
