You can find an overview of the feature in the Oracle Database Administrator's Guide. Basically, if you have flash devices attached to your server, you can use this flash memory to increase the size of the buffer cache. So instead of aging blocks out of the buffer cache and having to go back to reading them from disk, they move to the much, much faster flash storage as a secondary fast buffer cache (for reads, not writes).
Some scenarios where this is very useful : you have huge tables and huge amounts of data, a very, very large database with tons of query activity (let's say many TB) and your server is limited to a relatively small amount of main RAM - (let's say 128 or 256G). In this case, if you were to purchase and add a flash storage device of 256G or 512G (example), you can attach this device to the database with the Database Smart Flash Cache feature and increase the buffercache of your database from like 100G or 200G to 300-700G on that same server. In a good number of cases this will give you a significant performance improvement without having to purchase a new server that handles more memory or purchase flash storage that can handle your many TB of storage to live in flash instead of rotational storage.
It is also incredibly easy to configure.
-1 install Oracle Linux (I installed Oracle Linux 6 with UEK3)
-2 install Oracle Database 12c (this would also work with 11g - I installed 22.214.171.124.0 EE)
-3 add a flash device to your system (for the example I just added a 1GB device showing up as /dev/sdb)
-4 attach the storage to the database in sqlplus
$ ls /dev/sdb /dev/sdb $ sqlplus '/ as sysdba' SQL*Plus: Release 126.96.36.199.0 Production on Tue Feb 24 05:46:08 2015 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 188.8.131.52.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options SQL> alter system set db_flash_cache_file='/dev/sdb' scope=spfile; System altered. SQL> alter system set db_flash_cache_size=1G scope=spfile; System altered. SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup ORACLE instance started. Total System Global Area 4932501504 bytes Fixed Size 2934456 bytes Variable Size 1023412552 bytes Database Buffers 3892314112 bytes Redo Buffers 13840384 bytes Database mounted. Database opened. SQL> show parameters flash NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_flash_cache_file string /dev/sdb db_flash_cache_size big integer 1G db_flashback_retention_target integer 1440 SQL> select * from v$flashfilestat; FLASHFILE# ---------- NAME -------------------------------------------------------------------------------- BYTES ENABLED SINGLEBLKRDS SINGLEBLKRDTIM_MICRO CON_ID ---------- ---------- ------------ -------------------- ---------- 1 /dev/sdb 1073741824 1 0 0 0
You can get more information on configuration and guidelines/tuning here. If you want selective control of which tables can use or will use the Database Smart Flash Cache, you can use the ALTER TABLE command. See here. Specifically the STORAGE clause. By default, the tables are aged out into the flash cache but if you don't want certain tables to be cached you can use the NONE option.
alter table foo storage (flash_cache none);This feature can really make a big difference in a number of database environments and I highly recommend taking a look at how Oracle Linux and Oracle Database 12c can help you enhance your setup. It's included with the database running on Oracle Linux.
Here is a link to a white paper that gives a bit of a performance overview.
There are 2 ways to use the Ksplice service :
The RPM is updated whenever a new ksplice patch becomes available. So you always have 1 RPM installed for a given kernel, and this RPM gets updated. This was standard yum / rpm commands can be used to update your server(s) with ksplice patches as well and everything is nicely integrated.
The standard model is that an uptrack-upgrade command will apply all updates to current/latest on your server. This is of course the preferred way of applying security fixes on your running system, it's best to be on the latest version. However, in some cases, customers want more fine-grained control than latest.
We just did an update of the ksplice offline tools to add support for updating to a specific "kernel version". This way, if you are on kernel version x, you would like to go to kernel version y (effective patches/security fixes) but latest is kernel version z, you can tell uptrack-upgrade to go to kernel version y. Let me give a quick and simple example below. I hope this is a useful addition to the tools.
happy holidays and happy ksplicing!
To install the tools, make sure that your server(s) has access to the ol6_x86_64_ksplice channel (if it's OL6) :
$ yum install uptrack-offline
Now, in my example, I have Oracle Linux 6 installed with the following version of UEK3 :
$ uname -r 3.8.13-44.1.1.el6uek.x86_64
Let's check if updates are available :
$ yum search uptrack-updates-3.8.13-44.1.1 Loaded plugins: rhnplugin, security This system is receiving updates from ULN. =========== N/S Matched: uptrack-updates-3.8.13-44.1.1.el6uek.x86_64 =========== uptrack-updates-3.8.13-44.1.1.el6uek.x86_64.noarch : Rebootless updates for the ...: Ksplice Uptrack rebootless kernel update service
As I mentioned earlier, for each kernel there's a corresponding ksplice update RPM. Just install that. In this case, I run 3.8.13-44.1.1.
$ yum install uptrack-updates-3.8.13-44.1.1.el6uek.x86_64.noarch Loaded plugins: rhnplugin, security This system is receiving updates from ULN. Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package uptrack-updates-3.8.13-44.1.1.el6uek.x86_64.noarch 0:20141216-0 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: uptrack-updates-3.8.13-44.1.1.el6uek.x86_64 noarch 20141216-0 ol6_x86_64_ksplice 39 M Transaction Summary ================================================================================ Install 1 Package(s) Total download size: 39 M Installed size: 40 M Is this ok [y/N]: y Downloading Packages: uptrack-updates-3.8.13-44.1.1.el6uek.x86_64-20141216-0.n | 39 MB 00:29 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : uptrack-updates-3.8.13-44.1.1.el6uek.x86_64-20141216-0.noa 1/1 The following steps will be taken: Install [b9hqohyk] CVE-2014-5077: Remote denial-of-service in SCTP on simultaneous connections. ... ... Installing [vtujkei9] CVE-2014-6410: Denial of service in UDF filesystem parsing. Your kernel is fully up to date. Effective kernel version is 3.8.13-55.1.1.el6uek Verifying : uptrack-updates-3.8.13-44.1.1.el6uek.x86_64-20141216-0.noa 1/1 Installed: uptrack-updates-3.8.13-44.1.1.el6uek.x86_64.noarch 0:20141216-0 Complete!
There have been a ton of updates released since 44.1.1, and the above update gets me to effectively running 3.8.13-55.1.1. Of course, without a reboot.
$ uptrack-uname -r 3.8.13-55.1.1.el6uek.x86_64
Now we get to the new feature. There's a new option in uptrack-upgrade that lists all effective kernel versions from the installed kernel to the latest based on the ksplice rpm installed.
$ uptrack-upgrade --list-effective Available effective kernel versions: 3.8.13-44.1.1.el6uek.x86_64/#2 SMP Wed Sep 10 06:10:25 PDT 2014 3.8.13-44.1.3.el6uek.x86_64/#2 SMP Wed Oct 15 19:53:10 PDT 2014 3.8.13-44.1.4.el6uek.x86_64/#2 SMP Wed Oct 29 23:58:06 PDT 2014 3.8.13-44.1.5.el6uek.x86_64/#2 SMP Wed Nov 12 14:23:31 PST 2014 3.8.13-55.el6uek.x86_64/#2 SMP Mon Dec 1 11:32:40 PST 2014 3.8.13-55.1.1.el6uek.x86_64/#2 SMP Thu Dec 11 00:20:49 PST 2014
So as an example, let's say I want to update from 44.1.1 to 44.1.5 instead of to 55.1.1 (for whatever reason I might have). All I have to do, is run uptrack-upgrade to go to that effective kernel version.
Let's start with removing the installed updates and go back from 55.1.1 to 44.1.1 and then upgrade again to 44.1.5 :
$ uptrack-remove --all ... $ uptrack-upgrade --effective="3.8.13-44.1.5.el6uek.x86_64/#2 SMP Wed Nov 12 14:23:31 PST 2014" ... ... Effective kernel version is 3.8.13-44.1.5.el6uek
And that's it.
For more detail you can go to SAP Note 2052912.
The Virtual Compute Appliance is a great, cost effective, easy to deploy converged infrastructure solution. Installations can be done by the customer, it takes just a few hours to bring up and start using a VCA system and deploy applications. The entire setup is pre-wired, pre-installed, pre-configured, using our best practices. All the software and hardware components in VCA are standard off the shelf, proven, products. Oracle Linux for the management node OS, Oracle VM for the compute nodes. Any application or product certified with Oracle VM will work without change or without the need for re-certification inside a VCA environment.
It is very exciting to have the SAP certification for VCA published.