<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Content on Content Management &#187; Database</title>
	<atom:link href="http://contentoncontentmanagement.com/category/database/feed/" rel="self" type="application/rss+xml" />
	<link>http://contentoncontentmanagement.com</link>
	<description></description>
	<lastBuildDate>Tue, 16 Mar 2010 04:45:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<atom:link rel="next" href="http://contentoncontentmanagement.com/category/database/feed/?page=2" />

		<item>
		<title>Cloudy days for UCM?</title>
		<link>http://contentoncontentmanagement.com/2010/03/cloudy-days-for-ucm/</link>
		<comments>http://contentoncontentmanagement.com/2010/03/cloudy-days-for-ucm/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 04:45:45 +0000</pubDate>
		<dc:creator>David Roe</dc:creator>
				<category><![CDATA[Amazon]]></category>
		<category><![CDATA[Content Management]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[cloud]]></category>

		<guid isPermaLink="false">http://contentoncontentmanagement.com/?p=245</guid>
		<description><![CDATA[I heard a great idea at work a few weeks ago from my boss and it&#8217;s been on my TODO list for some time to try out.  The idea was to run UCM on an Amazon EC2 instance.  For those &#8230; <a href="http://contentoncontentmanagement.com/2010/03/cloudy-days-for-ucm/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I heard a great idea at work a few weeks ago from my boss and it&#8217;s been on my TODO list for some time to try out.  The idea was to run UCM on an Amazon EC2 instance.  For those unfamiliar, EC2(also known as the Elastic Compute Cloud) allows users to run a virtualized instance of a wide variety of operation systems on Amazon&#8217;s cloud(also known as their enormous pile of servers scattered across the planet).  Seeing as EC2 essentially starts up and lets you run a virtual machine, I theorized that this little test wouldn&#8217;t be too tough.  A good experiment to get us back to blogging.  After all it&#8217;s just a couple of installs right?</p>
<h2>Fedora the Explorer</h2>
<p>When you start out creating a new blank instance, Amazon provides several templates to start with.  As you can see from the list though they all appear to be either Fedora or Windows(towards the bottom).<a href="http://contentoncontentmanagement.com/wp-content/uploads/2010/02/Screen-shot-2010-02-28-at-10.46.21-PM.png"><img class="alignleft size-medium wp-image-247" title="Screen shot of the basic instance setup" src="http://contentoncontentmanagement.com/wp-content/uploads/2010/02/Screen-shot-2010-02-28-at-10.46.21-PM-300x189.png" alt="Screen shot of the basic instance setup" width="300" height="189" /></a> I&#8217;m not sure of your experiences, but as far as the elements of a UCM instance(Web server, UCM and the database) go, the database can be the trickiest of all of them.  And also for me to consider this a complete install, I really wanted to have Oracle Text Search running, which requires an 11G database.</p>
<p>I am pretty sure that a Windows VM would have worked for all of this, but it&#8217;s more expensive per hour and if I&#8217;m honest it felt a bit like cope out since it&#8217;s so much easier to work with.  I really wanted this to all run on a Linux box, so rather than take the easy road I decided to give the Fedora install a shot.</p>
<p>Unfortunately Amazon Fedora template my not have been the best choice to begin with.  I&#8217;m sure I would have gotten it at some point, but the workarounds combined with the oddities of Amazon&#8217;s template kept sending me down some rabbit holes.  It was a lovely Sunday afternoon, surely there&#8217;s a better Linux instance for this little proof of concept than Fedora?</p>
<h2>So I cheated</h2>
<p>It turns out that besides Windows or even Fedora, there is a much, much better option.  And after an hour or so of dealing with my Fedora issues I decided to use a very clever tool to research the best way to do this install.<a href="http://contentoncontentmanagement.com/wp-content/uploads/2010/02/Screen-shot-2010-02-28-at-11.12.34-PM.png"><img class="size-medium wp-image-249 alignright" title="Google" src="http://contentoncontentmanagement.com/wp-content/uploads/2010/02/Screen-shot-2010-02-28-at-11.12.34-PM-300x123.png" alt="Google" width="240" height="98" /></a></p>
<p>Oracle, as I soon discovered, is already way ahead of me in setting up their database in the cloud.  There&#8217;s a <a href="http://www.oracle.com/technology/tech/cloud/index.html">whole bunch of documents </a>about the subject, a <a href="http://www.oracle.com/technology/tech/cloud/faq.html">FAQ page</a>, <a href="http://wiki.oracle.com/page/Oracle+Cloud+Computing">a wiki</a> and most importantly several machine images anyone with an EC2 account can use.</p>
<p>You&#8217;ll find the Oracle images on the community tab when you create a new instance in the AWS console.  There are a bunch, but if you search for Oracle, you&#8217;ll find what you&#8217;re looking for.</p>
<p><a href="http://contentoncontentmanagement.com/wp-content/uploads/2010/03/Screen-shot-2010-03-02-at-11.12.50-PM.png"><img class="aligncenter size-full wp-image-270" title="Oracle images" src="http://contentoncontentmanagement.com/wp-content/uploads/2010/03/Screen-shot-2010-03-02-at-11.12.50-PM.png" alt="Oracle images" width="821" height="412" /></a></p>
<p>When you SSH in for the first time, a script runs that will takes you through the DB setup and configuration.  The script seemed a bit light, so I think the VM might really be just intended for demo purposes.  Anyone familiar with the near innumerable number of options in a DB install will find this a bit light.  For folks like myself though who&#8217;d rather get on with other things than ASM backup configurations&#8230;it&#8217;s just about perfect.</p>
<h2>How much does a Gazillion processor licenses for Oracle cost?</h2>
<p>For a very long time Oracle didn&#8217;t really allow customers to licence by virtual procssor.  Organizations who planned on running on virtual machines had to purchase a license for every processor on the host system(the exception being IBM PowerVM as you can isolate processors to an lpar).  That policy, at least towards some vendors like <a href="http://www.oracle.com/corporate/pricing/cloud-licensing.pdf">Amazon has changed</a></p>
<blockquote><p>For the purposes of licensing Oracle programs in the Cloud environment, customers are required to count each virtual core as equivalent to a physical core. This policy applies to all programs available on a processor metric.</p></blockquote>
<p>When I saw that right off the first thing I thought when I started down the road of running UCM on an Amazon VM was &#8220;Great! pay for one processor license and then run it on the cloud across thousands of servers.  Silly Oracle how could they not have seen that huge loop hole&#8221;.  Yeah&#8230;not so much.</p>
<p>The thing is that Amazon commoditizes it&#8217;s processor power into things called compute units.  Virtual processors are then made up of these compute units.</p>
<blockquote><p>One EC2 Compute Unit provides the equivalent CPU capacity of a 1.0-1.2 GHz 2007 Opteron or 2007 Xeon processor</p></blockquote>
<p>So even though you&#8217;re running on the cloud, you&#8217;re supososably isolated off to your own little share of the processing power.  Besides IO, what&#8217;s really the advantage then?  If the processors or the same(or worse really) than anything you&#8217;d bring on house, why bother?  Well all is not lost..there definitly are still some serious advantages from a licensing perspective</p>
<ol>
<li>According to the Oracle doc a virtual core is equivalent to a physical core.  Though my little sample VM had only one virtual core with one compute unit, there are a number of hosting packages where virtual cores house as much as 3.25 compute units.</li>
<li>Have you tried to purchase a server with one processor lately?  They just aren&#8217;t available, even the single processor servers have 2-4 cores.  With Amazon you could run a cluster of four one processor servers and get exactly what you want.</li>
<li>UCM is notoriously light and efficient; even more so now that verity is out of it.  Over and over again it&#8217;s continually made me look like a genius during load tests on hardware I wouldn&#8217;t run this blog on.  I think one of my next posts will be on where I think the real UCM sizing should be.  I just don&#8217;t see it needing a ton of processor power.  IO perhaps, which you should have a lot of, but not processor.</li>
</ol>
<p>In addition to all of that, there should be a huge savings for you from the hosting perspective.  Frankly if you&#8217;re budgeting for UCM implementation and planning to run it on Amazon, hosting is effectively free.  To run the current instance I have out there right now, it will cost me $227.50 per year.  For the most expensive instance possible (64bit, 32gb of ram, 13 virtual cores), it would cost $6370 annually.  Bandwidth is even more comically cheap: $.15 per GB for the first 10 Terrabytes, after that it drops to $.11 per GB for the next 40 and so on.</p>
<h2>Well can we see it?</h2>
<p>I&#8217;m going to leave my virtual machine up for a bit.  If you email me I&#8217;ll give you the link to take a look&#8230;I&#8217;m not sure if it still counts as a developer license if I post the URL publicly.</p>
<p>So far there&#8217;s no content other than Site Studio; I think I&#8217;m going to set up a quick site and run some tests for that follow up post on scaling.  Check back and I&#8217;ll share the results.</p>
]]></content:encoded>
			<wfw:commentRss>http://contentoncontentmanagement.com/2010/03/cloudy-days-for-ucm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle 11g Secure File Features with Oracle UCM</title>
		<link>http://contentoncontentmanagement.com/2008/04/oracle-11g-secure-file-features-with-oracle-ucm/</link>
		<comments>http://contentoncontentmanagement.com/2008/04/oracle-11g-secure-file-features-with-oracle-ucm/#comments</comments>
		<pubDate>Wed, 23 Apr 2008 03:36:55 +0000</pubDate>
		<dc:creator>David Roe</dc:creator>
				<category><![CDATA[Content Management]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Secure File]]></category>

		<guid isPermaLink="false">http://ContentOnContentManagement.com/?p=79</guid>
		<description><![CDATA[Last week I and several others talked about Oracle&#8217;s announcement of their new product Universal Online Archive.  While UOA should be a pretty cool application, many of the features mentioned are actually available now in the 11g database and can easily be leveraged &#8230; <a href="http://contentoncontentmanagement.com/2008/04/oracle-11g-secure-file-features-with-oracle-ucm/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Last week <a href="http://contentoncontentmanagement.com/2008/04/14/new-addition-to-oracle-ecm-stack/">I and several others</a> talked about Oracle&#8217;s announcement of their new product Universal Online Archive.  While UOA should be a pretty cool application, many of the features mentioned are actually available now in the 11g database and can easily be leveraged by Oracle UCM.</p>
<h3>So what are these features?</h3>
<p>Oracle 11g has a <a href="http://www.oracle.com/technology/pub/articles/oracle-database-11g-top-features/index.html">ton of new features</a>, but the ones most interesting from a content repository standpoint are the new BLOB storage capabilities called SecureFiles.  What they allow you to do is create a BLOB field in a table, but instead of just saving the file in the database table, you can now:</p>
<ul>
<li>Compress it</li>
<li>Encrypt it</li>
<li>Deduplicate it (ok that doesn&#8217;t make sense..but we&#8217;ll cover it soon)</li>
</ul>
<p>Those are some pretty cool features, ones which are great from a just a database perspective, but become very pretty handy if you&#8217;re talking about a content repository.  The fact that UCM has traditionally stored it&#8217;s content on the filesystem has always been a selling point for me; small databases, better performance, what would I gain by storing my content in a database?  <a href="http://bexhuff.com/2008/04/oracle-universal-online-archive-the-killer-app-for-oracle-secure-files">Bex Huff I think actually answers this best</a>:</p>
<blockquote><p><span>For the longest time, the folks at Stellent balked at using the database for file storage. Using the filesystem made much more sense because of performance reasons, which made up for the additional complexity of the architecture. However, if the user has 11g, there really is no better option than storing content items in the database.</span></p></blockquote>
<p>There it is&#8230;No better option than storing content in the database?  We have to give that a go.</p>
<h3>Giving it a go</h3>
<p>There are a couple prerequisites required before we can store UCM content in it&#8217;s database:</p>
<ul>
<li>Minimum UCM version is 10gr3</li>
<li>UCM must be running on a 11g database</li>
<li>A JDBC Filestore provider must be configured in UCM, here&#8217;s a link to the installation <a href="http://download-east.oracle.com/docs/cd/E10316_01/cs/cs_doc_10/documentation/admin/admin_FS_provider_10en.pdf">PDF</a></li>
</ul>
<p><strong>Step 1 &#8211; Verify if Secure File Support</strong></p>
<p>The 11g database enabled SecureFile support by default, but if you want to make sure it&#8217;s working you can run the following commands as SYSDBA:</p>
<p><code>SQL&gt;show parameter COMPATIBLE;<br />
NAME                                 TYPE        VALUE<br />
------------------------------------ ----------- -------------<br />
compatible                           string      11.1.0.0.0<br />
</code></p>
<p>The database must have a version setting higher than 11.0.0.0.0</p>
<p><code> SQL&gt; show parameter db_securefile<br />
NAME                                 TYPE        VALUE<br />
------------------------------------ ----------- --------------<br />
db_securefile                        string      PERMITTED<br />
</code></p>
<p>There are a couple different values that will work for db_securefile, PERMITTED is the default, ALWAYS or FORCE should work as well.  If you need to change this value, run:<br />
<code><br />
ALTER SYSTEM SET db_securefile = 'PERMITTED';</code></p>
<p><strong>Step 2 &#8211; Drop and Recreate the BFILEDATA Column</strong></p>
<p>The FILESTORAGE table created by the file store provider is configured for BASICFILE support, which unfortunately will not allow us to take advantage of any of the new BLOB features.  Also unfortunate is that it appears the only way to enable SecureFiles is to drop and recreate the BLOB column.  </p>
<p>Since I&#8217;m just using my local laptop, this isn&#8217;t really a big deal for me as my table is empty.  Where I am going with this is that in these next few steps you could loose data if you&#8217;ve already stored it in the FILESTORAGE table&#8230;so be careful.  Take a back up and if you&#8217;re using JDBC storage move you data somewhere else first.</p>
<p>As the UCM user drop the existing BFILEDATA BLOB column:</p>
<p><code>alter table FILESTORAGE drop column BFILEDATA;</code></p>
<p>Now add the column back only this time using the SECUREFILE Store As identifier:</p>
<p><code>alter table FILESTORAGE<br />
add ("BFILEDATA" BLOB)<br />
LOB ("BFILEDATA") STORE AS SECUREFILE filestorageblob(<br />
TABLESPACE "UCM_SYSTEM" ENABLE STORAGE IN ROW CHUNK 8192<br />
STORAGE(INITIAL 1048576 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645<br />
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT));<br />
</code></p>
<p>So what we&#8217;ve done is removed the old BLOB field(which was originally configured as a BASICFILE and replaced it with a BLOB configured for SecureFile support.  Even though that&#8217;s set, we still aren&#8217;t taking advantage of new features.  That will require a couple modifications to the column.</p>
<h3>Compression</h3>
<p>SecureFile compression comes in a couple different flavors; None, Medium or High which correspond to the level of compression applied to the field.  SecureFile compression is completely separate from any table or index compression in place already, so if you compress the BLOB it&#8217;s just the BLOB nothing else.  You&#8217;ll want to think about performance some when setting compression, as there should be an increase in latency and also CPU utilization when enabled.</p>
<p>Compression can be added with any of the following:</p>
<p><code> alter table FILESTORAGE<br />
modify LOB("BFILEDATA") (<br />
COMPRESS HIGH<br />
);</code></p>
<p><code>alter table FILESTORAGE<br />
modify LOB("BFILEDATA") (<br />
COMPRESS MEDIUM<br />
);</code></p>
<p>Or removed with this one</p>
<p><code>alter table FILESTORAGE<br />
modify LOB("BFILEDATA") (<br />
NOCOMPRESS<br />
);</code></p>
<p><strong>Encryption</strong></p>
<p>SecureFile encryption adds an additional layer of security to your database by encrypting your BLOB files while they reside in the Oracle data file.  The encryption is designed to prevent unauthorized access to the BLOB in case someone gets their paws on your data files.  I have to admit that this one seems like a little bit overkill considering that like compression, encryption will cause a cpu and latency hit.  I guess I just don&#8217;t think that many data files are getting hacked, but I could be wrong.</p>
<p>Enabling encryption requires adding a new folder named wallet to the database&#8217;s admin folder.</p>
<p><code> /oracle/product/database/admin/wallet<br />
</code></p>
<p>Then log in to the database as sysdba and run:</p>
<p><code> ALTER SYSTEM SET WALLET OPEN IDENTIFIED BY "[your password here]";<br />
</code></p>
<p>Reconnect back with your UCM account and update the BLOB:</p>
<p>Add encryption<br />
<code><br />
ALTER TABLE FILESTORAGE<br />
MODIFY LOB("BFILEDATA")<br />
(ENCRYPT USING 'AES256');<br />
</code><br />
Remove it<br />
<code><br />
ALTER TABLE FILESTORAGE<br />
MODIFY LOB("BFILEDATA")<br />
(DECRYPT);<br />
</code></p>
<h3>Deduplication</h3>
<p>Deduplication may be the most clever feature included in SecureFiles.  Each file checked in to a BLOB field is compared against the others, if the new file is a duplicate, only a pointer to the original is stored.  Of course you as the user never knows the difference.  Query either row and the file is returned.</p>
<p>The thing that is really cool about deduplication from a UCM perspective is that very often UCM actually stores duplicate files.  In addition to user&#8217;s checking in the same file twice, quite a few file formats are simply copied over to the web layout folder.  If you&#8217;re running both your vault and weblayout from the JDBC Filestore provider, even if the file type is configured to be copied out to the weblayout it will only be stored once in the database.</p>
<p>Adding the deduplication is pretty easy:</p>
<p>Enable deduplication<br />
<code><br />
ALTER TABLE FILESTORAGE<br />
MODIFY LOB("BFILEDATA") (<br />
  DEDUPLICATE<br />
);<br />
</code></p>
<p>Disable it</p>
<p><code> ALTER TABLE FILESTORAGE<br />
MODIFY LOB("BFILEDATA") (<br />
  KEEP_DUPLICATES<br />
);</code></p>
<p><strong>That&#8217;s it</strong></p>
<p>As you can see there are quite a few options when it comes to configuring SecureFiles in general, but the integration with UCM is actually pretty simple.  I ran through a couple test check ins while writing this post(some of the items being images that went though the refinery) all of which went though smoothly, though a little slower than a standard filesystem check in.  I plan on leaving my local server with this configuration for some time, so we&#8217;ll see how it goes. </p>
<h3>References</h3>
<p><a href="http://www.liberidu.com/blog/?p=264">www.liberidu.com</a></p>
<p><a href="http://www.oracle-base.com/articles/11g/SecureFiles_11gR1.php">www.oracle-base.com</a></p>
<p><a href="http://www.derkeiler.com/Mailing-Lists/securityfocus/bugtraq/2006-01/msg00309.html">www.derkeiler.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://contentoncontentmanagement.com/2008/04/oracle-11g-secure-file-features-with-oracle-ucm/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.489 seconds -->
