Archive

Archive for the ‘Uncategorized’ Category

Delphix: Gartner’s Cool Vendors in Storage for 2013!

April 30th, 2013

 

Delphix has been selected as one of Gartner’s Cool Vendors in Storage for 2013!

Gartner uses the Cool Vendor awards to highlight innovative and disruptive new companies that are rapidly changing how enterprises do business.

View Report

Delphix 2013 HIGHLIGHTS TO DATE

J Lewis Delphix recently engaged with Oracle guru Jonathan Lewis who spent a week putting Delphix through its paces and responding to community-driven requests / questions. A recording of the first webinar is available, informally answering the top community questions.

Watch Webinar

 

451 Research Many organizations have adopted agile development processes to accelerate their application projects. However, the database underlying these applications is often a major obstacle to success with agile development.  Register for this live webinar on May 8 to listen to the 451 Research and Delphix discuss the role of databases in agile development

.Watch Webinar

 

IBM Delphix completed a performance driven test with IBM, focusing on how to architect a high performance environment for virtual environments. The results may surprise you, as Delphix powered virtual databases performed over 500% faster in our joint tests.

Learn More

 

The number of ways Delphix customers continue to leverage Delphix is impressive. Delphix recently worked with customers who were using Delphix to dramatically reduce their load on production databases and their SAN. These discussions lead our professional services team to document Delphix’s impact on production from the data we’ve jointly collected with our customers.

Learn More

 

Delphix is now a SAP Endorsed Business Solution. Delphix’s data virtualization technologytransforms the economics of data and application management, allowing accelerated deployments of SAP® solutions with reduced total cost of ownership (TCO) and effort.

Learn More

 

 

Uncategorized

Database Virtualization: Data as a Service in Healthcare

April 24th, 2013

MH900423022The healthcare sector has a clear opportunity to modernize care delivery by adopting new data interchange standards and EHR systems. But getting there will first require upgrading aging infrastructure, managing data explosion, and ensuring compliance with new regulations. This translates to more projects and greater costs for IT resources that are already stretched thin. There is a clear need for transformative technologies that will enable healthcare IT teams to tackle the unavoidable wave of big projects faster and with greater efficiency.

Organizations like Presbyterian Healthcare Services, Health Dialog, Independence Blue Cross, European Bioformatics Institute and many others are leveraging Data Virtualization for databases to modernize care delivery and execute IT projects:

On Time: 20-50% greater project output with the same staff
On Quality: 30% fewer production errors through early detection
On Budget: 90% lower application testing costs (capex and opex)

During this webinar, you’ll learn:

  • How Data Virtualization for databases improves application project output, quality, and cost efficiency
  • How Data Virtualization for databases can impact specific projects in your organization including ICD-10 migration, healthcare exchange related projects, private cloud rollouts, data center migrations and much more
  • How Presbyterian Health uses Delphix to implement Data Virtualization for databases to drive cost and operational gains in its claims processing environment?

register

 

Uncategorized

Installing OEM for second instance

April 21st, 2013

Had a machine running the default database from the Oracle 11.2.0.3 installer. This instance was called o1123.
I then created a second database by hand (with crdb.sh for swingbench and slob tests) instead of dbca (maybe that was a mistake) and then I wanted to acccess OEM. The second instance was called SOE60G ( a 60GB swingbench dataset database)

First tried to start up dbconsole:

$ emctl start dbconsole
OC4J Configuration issue.
 /home/oracle/oracle1123/product/oc4j/j2ee/OC4J_DBConsole_perf234-target1.delphix.com_SOE60G 
not found.

OK, missing file. EM wasn’t configured for this database, make sense. Let’s configure it

$ emca -config dbcontrol db -repos create
...
SEVERE: Dbcontrol Repository already exists.  
Fix the error(s) and run EM Configuration Assistant again in standalone mode.

Looks like there is already a repository, so lets configure EM with out making the repository

# emca -config dbcontrol db
WARNING: ORA-00942: table or view does not exist
SEVERE: The existing database you have specified has Grid Control repository. 
This operation is not supported.

Hmm, what table is missing? Put db in sql trace mode to see what SQL statement ran into the 942 error

sqlplus / as sysdba
alter database set sql_trace=true
exit

rerun and grep for 942 in trace files in user_dump_dest

cd /home/oracle/oracle1123/diag/rdbms/soe60g/SOE60G/trace
grep 942 *

this show a dozen or so files.
Open each one up and searched for 942 and found two distinct SQL queries:

SELECT ATTRIBUTE,SCOPE,NUMERIC_VALUE,CHAR_VALUE,DATE_VALUE FROM SYSTEM.PRODUCT_PRIVS
WHERE (UPPER('SQL*Plus') LIKE UPPER(PRODUCT)) AND (USER LIKE USERID)

select count(*) from sysman.mgmt_versions where status > 0 and component_mode
like 'SYSAUX' and component_name in ('DB','CORE')

The first table is from not having run $ORACLE_HOME/sqlplus/admin/pupbld.sql
Second is the problem emca was running into. Let’s look at sysman’s objects and see what’s there.

sqlplus sysman/sys
select object_name from user_objects;
-> no rows returned

OK, sysman looks empty , let’s drop it and recreated it

sqlplus / as sysdba
drop user sysman cascade;
drop user MGMT_VIEW cascade;

someone’s blog had suggested dropping the following but I didn’t

# drop role MGMT_USER;
# drop public synonym MGMT_TARGET_BLACKOUTS;
# drop public synonym SETEMVIEWUSERCONTEXT;
#                                                        host      port  SID
# $ORACLE_HOME/sysman/admin/emdrep/bin/RepManager antarctic 2483 sprod -action drop
# ./emca -repos create

rerun emca

$ emca -config dbcontrol db -repos create
....
Do you wish to continue? [yes(Y)/no(N)]: y
Apr 20, 2013 7:27:51 AM oracle.sysman.emcp.EMConfig perform
INFO: This operation is being logged at 
/home/oracle/oracle1123/cfgtoollogs/emca/SOE60G/emca_2013_04_20_07_27_38.log.
Apr 20, 2013 7:27:51 AM oracle.sysman.emcp.ParamsManager checkListenerStatusForDBControl
WARNING: ORA-01031: insufficient privileges
Apr 20, 2013 7:27:51 AM oracle.sysman.emcp.EMConfig perform
SEVERE:
Database connection through listener failed. Fix the error and run EM Configuration Assistant again.
Some of the possible reasons may be:
1) Listener port 1521 provided is incorrect. Provide the correct port.
2) Listener is not up. Start the Listener.
3) Database service SOE60G is not registered with listener. Register the database service.
4) Listener is up on physical host and ORACLE_HOSTNAME environment variable is set to
 virtual host. Unset ORACLE_HOSTNAME environment variable.
5) Listener is up on virtual host. Set environment variable ORACLE_HOSTNAME=<virtual host>.
6) /etc/hosts does not have correct entry for hostname.

Notice the ORA-01031. Hmm, I can connect as sqlplus / as sysdba but connecting as sysdba through the listener requires a password file.  Let’s see if password files are set up

sqlplus / as sysdba
show parameters remote_login_passwordfile
remote_login_passwordfile            string      EXCLUSIVE

that’s set correct, but is there a password file?

cd $ORACLE_HOME/dbs
ls orapw$ORACLE_SID
ls: cannot access orapwdSOE60G: No such file or directory

not there, let’s create it

orapwd FILE=orapw$ORACLE_SID ENTRIES=30

now emca works !

Now what URL to I use to access OEM for the second database?
It’s the same URL as the first database but with different port. We can find the ports for each database in the following file

cat $ORACLE_HOME/install/portlist.ini
Enterprise Manager Console HTTP Port (o1123) = 1158
Enterprise Manager Agent Port (o1123) = 3938
Enterprise Manager Console HTTP Port (SOE60G) = 5500
Enterprise Manager Agent Port (SOE60G) = 1830

Post script

After the above steps, one of the bizarre things I ran into was being able to  access OEM database page in Chrome but nothing else. Coming into OEM, I’m first asked for a login. I login as system, I see the database home page, then if I click on the performance tab, then I get prompted for the login again. I then  login again, and I’m back at the database home page. No matter what tab I click, I end up back at the database home page after giving login credentials.
In Firefox, though once I login, I can go to any of the other tabs and it works!

 

PS when running emca above I was prompted for a number of variables.  didn’t try this, but looks like all the arguments can be given in the command line

emca -repos create -silent -ORACLE_HOSTNAME perf234-target1 -SID SOE60G 
-SERVICE_NAME SOE60G -ORACLE_HOME /home/oracle/oracle1123/product
 -SYS_PWD sys -DBSNMP_PWD sys -SYSMAN_PWD sys 
-HOST_USER oracle -HOST_USER_PWD  -PORT 1521

 Post Script II:

Never seen this one before and it was super annoying. I set up a VM in Virtual Box on my Mac with LINUX and Oracle 11.2.0.3 and OEM. On the VM I could access OEM but not from my Mac. On my Mac I kept getting

This webpage is not available

The connection to 192.168.1.138 was interrupted.
Turns out the problem was that I was using “http://” and not “https://” , rrr

references

 

Uncategorized

Data Virtualization for Databases Use Cases, part 2

April 19th, 2013


previous segment at: part 1

 

Putting Virtual Databases To Use

 

MH900423022Because the virtual database technology so drastically changes the way we think about cloning and provisioning new database environments, a myriad of use cases can also be envisioned that can take advantage of the saved storage and time. Additionally, these use cases fit perfectly into the model for accelerated development and management of a database environment.

Development Environments

This is the area where the biggest impact of data virtualization can be felt. Because the development environment is the first and most critical stage of application release, the benefits are widely felt and cascade into future stages of development.

With virtual databases, each developer on a team can have a complete read/write copy of the database from any point in time (software revision) they require. The team as a whole can also share in a single fully deployed clone of production. By allowing developers to work with the entire database on a personal and collaborative level, the development process becomes faster and more accurate. Performance issues arising from inefficient queries can be found and identified much faster and results from the database will be far more realistic.

Virtual databases can be provisioned to any point in time, making them a perfect method of source control during development and testing. Different instances can be created on the same or different machines (physical or virtual) to keep track of the various branches of development. In the event that development moves forward and requires fresh data from production, that data can be refreshed or newly provisioned in a matter of minutes without additional storage requirements.

By implementing a centralized virtualization appliance for development, every developer can have a copy of the production (or QA) database at any stage that they wish. New deployments can be created with a few mouse clicks.  Any system on the network running Linux or UNIX is a potential target – even the developer’s PC.

QA, UAT, Regression, and Bug Fix

During project development, QA can often times get pushed back or disregarded completely. This practice is dangerous, but usually a result of inadequate resources to perform proper tests. Modern development methodologies also insert new complexity into the mix. Instead of a traditional DEV/QA/PROD configuration, there are now requirements for User Acceptance Testing (UAT), regression testing, stress testing, and bug fix environments in many situations. Time resources that were already lacking become nearly impossible to manage depending on the business and development requirements.

Being able to instantly clone either production or development databases to a new QA instance with all data intact (from any point in time) changes the game entirely. One or more QA environments can be provisioned at any stage of development or after development is complete. Timing of the creation is no longer an issue since database virtualization allows multiple copies of the source database from different points in time.

More importantly, the effects of QA or stress testing no longer mean the destruction of the QA database environment. With traditional cloning, the QA process was burdensome because of the actual purpose of QA: to break it. Destructive tests can be run on a virtual database without consequence because a new one can be quickly and easily provisioned; alternatively, a new one can be pre-built just as easily.

Running QA tests in parallel will also speed up efficiency during the release cycle. In a traditional environment it is often difficult to perform multiple testing requirements at the same time; for instance, a critical bug requiring a fix could completely disrupt or reset regression test efforts. Using a virtual database allows multiple systems to be provisioned as necessary at any stage of the QA process and on demand in the event of an issue. The inclusion of a new environment does not diminish the abilities of another.

Reporting and Recent Data Retrieval

Another area that is often overlooked because of its size and complexity is reporting. Many organizations end up opting to perform reporting directly against the production database. This practice is ultimately untuned and highly dangerous to production environments.

If, however, a reporting system can be instantly built and deployed at any time, the issue becomes nonexistent. Reporting environments can be spun up at a moment’s notice, subject to any reporting tool compatible with Oracle, and then decommissioned as soon as the reports are completed. If a report was missed or further information is needed the reporting environment can be instantly spun up again, either to the same point in time as the previous virtual database or with fresh data from the source system.  It is like TiVo for databases, but with more options and more parallel capabilities.

It is almost unthinkable to imagine a reporting environment that is fully read/writeable and capable of being refreshed with current data within minutes. This type of provisioning capability makes end of month, quarter, and year financial reporting a simple task. It also allows new initiatives such as data discovery and data mining, projects that before would require massive overhauls to storage and system configurations.

There are also times that it is required to retrieve deleted or historical data from a recent period, either to satisfy a customer service request or to fix a fat finger mistake by support or development staff. Instead of using database flashback capabilities or retrieving an entire export or RMAN backup of the database then rolling forward to find the right point in time, a new clone can be instantly provisioned, queried, and decommissioned. Since the virtual database is a fully capable Oracle instance, you can even create database links back to the source to populate the missing data back. These links can also be used for comparison reporting.

Backup and Recovery

Beyond the logical recovery capabilities described in the last section where the virtual database appliance can act as a time machine for your data, physical backup capabilities are also enhanced.

The virtual database environment acts as a backup already with its initial RMAN backup and incremental change collection. The difference is that with the compression offered in ZFS or DxFS (in the case of Delphix) is that you can store 50 days of backups in the same space as a single physical backup.

Restore testing becomes incredibly simple with a database virtualization appliance as your backup and restore hub. By backing up multiple source databases into the appliance, you can manage and provision backups from any source system from any point in time to any target environment. That sort of freedom of choice and speed of operation makes for lightning fast crisis resolution. In fact, if an issue is proactively noticed it is possible to have the clone set up before the production system even fails (no matter how urgent the upcoming failure) which means it can be used for near-instant recovery with extremely minimal downtime.

The ability to restore from any point in time within the retention window of the database virtualization appliance also means you can use it to configure staggered clones for pinpointing the point in time of logical corruption issues. Alternatively, it can also be useful for provisioning an alternative to delayed DataGuard. Since the database environment can be refreshed quickly and easily, having a system that is constantly a day behind the production environment is trivial and can be done without overhead.

Patching, Performance Testing, and Forensics

Of course, these abilities make it almost irresistible to consider the forensics opportunities available when there are issues on any database environment. In a traditional deployment environment there are many times that issues have to be labeled as minor and lumped together for future analysis simply because the resources to make a clone for every small issue were not available. But if a clone of any database can be created within minutes without additional overhead the entire reason for not resolving issues is turned upside down. Server and time constraints are eliminated as a bottleneck, allowing work to take place whenever it is required.

To take forensics to the next level, imagine a situation where a production database is encountering issues shortly after the release of a new software patch (let’s call it Release 2, naturally following Release 1):

  • Create a clone of the production database as-is to instance REL2
  • Create a clone of the production database as it was prior to the release on instance REL1
  • Create a clone of the production database for testing fixes for the performance issue called REL2-FIX
  • Perform comparison tests on all three environment simultaneously to observe differences
    • Each virtual database will have its own X$, V$, and DBA_ views with individual metrics for easier comparison
    • Speed differences can be seen in realtime with parallel execution across the three instances
    • System level SQL tracing can be enabled on each system as tests are performed with no overlap in results
    • AWR snapshots can be transferred between environments for comparisons with the AWR Diff tool ($ORACLE_HOME/rdbms/admin/awrddrpt.sql)
    • Application code can be pointed to each environment in turn to allow better testing of code changes without having to roll forward and back or involve production in any way
    • Once the problem is resolved, the virtual databases can be decommissioned and recreated instantly if other problems arise.

The point in time recovery capabilities of virtual databases also make it possible to do easy before/after comparisons in performance without sacrificing the before environment to build the after. This is frequently a problem both for application level changes (queries, table changes, etc.) and for Oracle level changes.

For instance, if the production database is currently running Oracle 11.2.0.3 and a move to Oracle 11.2.0.4 is desired, it is possible to create a virtual database clone and apply the patch on the clone without any affect on the source database environment.  Since the clone operation itself only takes a few minutes, the major bottleneck in patch testing is removed. If problems are encountered on the new 11.2.0.4 virtual database then performance can be compared between it and the source, or a new virtual database from the source can be spun up and tested against. Either operation can be done immediately without increasing your storage footprint.

Conclusion

Every benefit and situation detailed here can be achieved with only a single virtualization appliance. The implications of virtual databases are far reaching yet quite honestly in their infancy. At present, this technology presents amazing new capabilities in a variety of use cases. Just as virtual machines changed the way we consider servers, virtual databases will change the way we provision and deploy database environments in nearly every situation.

Have any interesting ideas for how Database Virtualization could revolutionize your DBA or business tasks? Send us a message at kyle.hailey@delphix.com

 

Uncategorized

Data Virtualization for Databases Use Cases, part 1

April 18th, 2013

followup at: part 2

It’s time that businesses took a good, hard look at the way they manage their cloned database environments. For years the words “we need a fresh copy of production in QA” were the universal sign of a horrible day. The amount of storage, server resources, and time required for provisioning a new database environment were often times unacceptable or at the least inconvenient.

Thanks to Virtual Machines, the server resources have become far easier to provision. Within minutes a completely available virtual server could be ready to go, and often disk resources could be provisioned along with the virtual machine. But still a clone of the database has to be made. The clone operation will require a significant amount of storage for the new database, the intermediary backup taken to create the clone (in some cases), and archive logs for bringing the cloned database up to the proper point in time. But even worse, the clone will take time.

Developers, project managers, even business analysts discuss the requirements for new deployments. Meetings take place with DBA teams and other operational resources; decisions are made about how to proceed with QA and DEV resources. And no matter what brand of fancy snapshotting or cloning technology your storage solution might offer, no matter what kind of virtual machine environment you have, time has to be taken and resources expended to make the clone happen.

This situation happens often at many organizations, sometimes as much as once per week. Disk space and time are wasted, making it more difficult to resolve critical issues or bring new development to market.

 

Enter Database Virtualization

 

Database virtualization completely changes the way database clones are created and revolutionizes the way a business perceives new environment provisioning. It does this not by virtualizing servers in the way popular options like VMWare ESX and Oracle VM do, but by virtualizing the very data that you are accessing.

An Oracle environment is made up of two parts: the Instance and the Database. The instance is formed of the running processes that make up Oracle’s software stack and segments of data in RAM. The database is nothing more than files on disk. Datafiles, redo logs, and control files are just blocks of data written to disk which serve no real purpose without an Oracle instance to access them.

In a traditional environment, cloning a database requires a new Oracle instance and a complete copy of the source database. This must occur for every clone your application needs. In a typical application stack, you will have databases for production, development, and quality assurance (QA). In some environments you might add user acceptance testing (UAT), regression testing, and reporting as well. Each of these environments will need its own instance and copy of the database.

Cloning with a Virtualization Appliance

The virtualized database, on the other hand, requires only one actual copy of the source database. The copy must only be taken one time to the virtualization server via RMAN APIs:

After the database has been cloned a single time into the virtualization appliance, it will be kept up to date with either redo/archive logs or level 1 incremental backups. Redo can be pulled from the source database near real-time to keep the virtualization appliance as close as possible to the source. If a more staggered clone is required, archive logs or level 1 backups can provide incremental updates on whatever schedule you need. We will get back to the change data later.

With database virtualization, that single copy of the source database can be used to provide data for multiple cloned environments:

The disk savings in this configuration alone are tremendous because a new copy of the production database is not required for every single system you create. In the case of a 10TB database with Development, QA, and UAT clones you would save roughly 50% of the total disk space (originally 40 TB  with production 10TB + QA 10TB + Dev 10TB + UAT 10 TB down to  just 20TB with production 10TB + one clone 10TB). But beyond this, another benefit of database virtualization shrinks the requirement even more with ZFS or DxFS compression.

In the case of the 10TB database with three clones, the overall size would be somewhere around 13.3TB (production 10TB + one clone 3.3TB). Each instance you provision can attach to the compressed virtualized data via NFS and perform normal read/write operations like a full database copy without the extra overhead.

Even more impressive benefits

Screen Shot 2013-04-18 at 9.59.03 AM

While the disk savings alone are tremendous, the real benefits come in the form of time. Since the source data is already copied and all that is required is an instance to mount the virtual database files, you can create a full sized read/write clone in about 5 minutes.

Your target can be any Unix or Linux system, physical or virtual, that is linked to the virtualization appliance and has Oracle installed. With a few mouse clicks on the administration UI a clone can be completely provisioned from start to finish for near-instant access.

As noted in the previous section the virtualization appliance also takes change data in the form of redo/archive logs or level 1 backups from the production environment. Unlike a standby database where this data is consumed in order to have a single clone kept up to date, the change data in the data virtualization environment is kept for a user-specified retention period so clones can be provisioned from any point in time. Each clone can come from a different time, so you can have multiple clones of the same source database from different time windows with no additional overhead.

Lastly, there is a strong performance benefit when using a virtualization appliance thanks to shared block caching between cloned environments. This performance benefit is described in detail by a joint performance study between Delphix and IBM called A High Performance Architecture for Virtual Databases.

Continued at: Data Virtualization for Databases Use Cases, part 2

 

Uncategorized

Join Me at COLLABORATE 13

April 5th, 2013

#5 COLLABORATE 13 Banner Ad

I’ll be speaking on Mon, Wednesday and Thursday:

  • Boosting performance on reporting and development databases
    April 8, 2:30-3:30pm (Mile High Ballroom 2B)
  • Database virtualization: accelerating application development
    April 10,1:00-2:00pm (Mile High Ballroom 2B)
  • NFS tuning for Oracle
    April 11, 8:30-9:30am (Mile High Ballroom 3A)

Attend COLLABORATE online

IOUG Forum for the Best in User-Driven Oracle Education and Networking

Have you made your Oracle training plans for 2013? As an IOUG RUG leader, I’d like to extend a personal invitation to the conference that I continue to attend for truly valuable personal and professional growth- COLLABORATE 13 – IOUG Forum, April 7-11 at the Colorado Convention Center in Denver, CO.

COLLABORATE is interactive: have your most difficult questions answered by other IOUG Oracle experts who’ve been there and come out swinging.

COLLABORATE is diverse: attend education sessions across all of the tracks offered at IOUG Forum, or pick the one that fits you best! Choose from Database, Business Intelligence, Big Data, Exadata, Security and more!

COLLABORATE is personal: tap into the shared resources of hundreds of IOUG members, Oracle ACEs and more! Meet new friends and contacts throughout the week and strengthen ties with existing business partners.

COLLABORATE is an awesome big conferences of over 6000 attendees with many opportunities to network, learn new technology and see what is happening in the industry.

By registering specifically with IOUG for COLLABORATE 13, you’ll reap the following benefits:

  • Pre-Conference Workshops
    On Sunday, April 7, IOUG offers an extra, comprehensive day of Oracle training complimentary for IOUG Forum attendees.
  • IOUG Curricula
    The IOUG Curricula are designed to give well-rounded training and education on specialized topics, chosen by peers, throughout COLLABORATE.
  • IOUG IT Strategic Leadership Package
    Get the chance to discuss corporate strategy with senior IT management and improve your skills at influencing without authority, present business cases and help develop business solutions for your company.
  • Access to hands-on labs
    Sessions on Upgrade to the Latest Generation of Oracle Database and Consolidate your Databases Using Best Practices, Hacking, Cracking, Attacking – OH MY! and RAC Attack.
  • Networking
    Admission to IOUG’s exclusive networking activities, including our Sunday evening reception
  • Conference Proceedings
    Online access to conference proceedings before, during and after the event

You will also be able to attend education sessions offered by the OAUG and Quest user groups with your COLLABORATE 13 registration through the IOUG. Make plans to join me and thousands of your Oracle peers to soak in the solutions at this unique Oracle community event.

If you are an Oracle technology professional, be sure to secure your registration through the IOUG to obtain exclusive access to IOUG offerings.

Please contact  IOUG headquarters at ioug@ioug.org if you have any questions.

I hope to see you in Denver!

Best Regards,

Kyle Hailey

Uncategorized

A High Performance Architecture for Virtual Databases

April 3rd, 2013

Delphix completely changes the way companies do business by removing critical bottlenecks in development productivity. Gone are the days when a simple database clone operation from production to development takes hours or even days. With Delphix database virtualization, cloning of Oracle databases becomes a fast and practically free operation. Additionally, infrastructure costs can be drastically reduced due to decreased disk utilization in your cloned environments; in fact, the more environments you deploy, the more cost savings you will realize.

The old adage is that your options are Fast, Good, and Cheap; pick two of three. But as a recent performance study between Delphix and IBM shows, all three options are within reach.

  • Fast database deployments due to Delphix database virtualization technology
  • High performance results through shared block caching in Delphix memory
  • Reduced costs through compression, block mapping, and other Delphix core capabilities

Delphix and IBM partnered to design a high performance virtual database implementation that could be used for reporting, development, quality assurance (QA), and user acceptance testing (UAT) at reasonable costs. In the end, the research shows that the virtual database environments provisioned with Delphix can achieve strong performance levels and scalability suitable for any organization.

The average organization provisions multiple copies of a single production database which can include multiple copies of development, QA, UAT, stress testing, maintenance QA, and others. Each of these copies requires time to build and provision and the end result is several identical instances with their own copies of largely identical data blocks across several shared memory regions. Delphix achieves a great reduction is disk usage by only saving identical blocks to disk once. But more importantly, Delphix also only caches unique data blocks in memory. This means that read performance across multiple systems that are provisioned from a single source can show dramatic improvements and scalability.

Purpose of the Tests

Delphix is typically used to create non-production environments from production sources. With a Delphix powered infrastructure you can:

  • Enable high performance virtualized databases for reporting, development, and QA which improves productivity and decreases bottlenecks in deployment schedules
  • Dramatically reduce the cost of non-production environments
  • Reduce the impact of cloning and/or reporting on the production database system
  • Reduce the occurrence of application errors due to inadequate testing on out of date or partially populated development and QA systems

By design, Delphix has a small performance overhead because the I/O is supplied not over a dedicated fiber channel connection to storage but over NFS; however, by properly architecting the Delphix infrastructure, environments can be designed that actually run faster than physical deployments. On top of that, the environments come at a lower cost and as you will see from the research, performance actually gets better as the number of users increases.

Test Goals

In the tests run by IBM and Delphix, physical and virtual databases were tested under several scenarios to identify the effective performance benefits and how best to architect the Delphix server to maximize virtual database performance. The goal of the test was to both determine optimal configuration settings for the Delphix infrastructure and to show optimal I/O throughput on virtualized databases compared to physical database environments.

Test Environment

In order to properly test physical and Delphix virtual database environments, tests were performed concurrently at IBM Labs in Research Triangle Park, NC and Delphix Labs in Menlo Park, CA. Both environments used the same configuration and server hardware.

Generally a standard physical Oracle deployment will involve a database host that connects directly to a SAN or other storage device, typically over fiber. As such the physical database test performed by IBM used a direct connection to SAN. For the Delphix tests however, the SAN is connected directly to the Delphix host via fiber and the Oracle host is connected to Delphix via NFS. This allows Delphix to act as a layer between the Oracle database server and the storage device.

phys_vs_virt_setup

While this extra I/O layer may seem counterproductive, Delphix actually acts as a caching tier (in addition to its many other virtues). The presence of a properly configured Delphix server augments the storage subsystem and improves I/O performance on read requests from the Oracle host. The bigger and ‘warmer’ the cache, the greater the performance gain. And if SSD is used for your dedicated disk area, you can get more money out of your investment thanks to the single-block sharing built into Delphix.

Storage Configuration

For the purposes of this test, both the physical and virtual database testing environments used the same SAN. The SAN configuration consisted of a 5-disk stripe of 10K RPM spindles. Two 200GB LUNs were cut from the stripe set.

IBM Hardware

One of the main goals in this joint test with IBM was to find an optimal configuration for Delphix on hardware that could provide flexibility and power at an attainable price. To this end we chose the IBM x3690 X5 with Intel Xeon E7 chips; a system that is reasonably priced, powerful, and supports up to 2TB memory. Delphix does not necessarily require a large amount of memory, but the more there is available the better Delphix and your virtualized databases will scale with extremely fast response times.

The test x3690 servers were configured with 256GB RAM. VMware ESX 5.1 was installed on the systems to serve as hypervisor for the virtual environments. The Delphix VM itself (did I mention Delphix can run on as a virtual guest?) was configured with 192GB RAM. Additionally, two Linux guests were created and configured with 20GB each to act as a source and target system respectively.

delphix_architecture2
In this configuration, the source database is the initial provider of data to Delphix. Following the initial instantiation, change data is incorporated into Delphix to keep the environment up to date and for point-in-time deployment purposes. The target system connects to Delphix via NFS mounts and can have a virtualized database provisioned to it at any time.

Load Configuration with Swingbench

Swingbench (a free database loading utility found at http://www.dominicgiles.com/swingbench.html) was used to load and measure transactions per minute (TPM) on the database host. 60GB data sets were used to populate the source Oracle database that filled a 180GB datafile inside the DB. Tests were run using standard OLTP Think Times. User load was varied for more realistic testing between 1 and 60 concurrent users. Each test ran for a 60 second window.

Database Configuration

The Swingbench database served as a test bed for the physical database servers and as the source database for Delphix virtual database provisioning.
Delphix is capable of linking to multiple source databases. In this test, it connected and linked to a Swingbench source database. Once the initial link was made a virtual database was provisioned (extremely quickly) on the target database host.

The Oracle instance on both physical and virtual systems were set up with a 100MB buffer cache, a fact that is sure to make some administrators cringe with fear. But the buffer cache was intentionally set to a small size to emphasize the impact of database reads. A large cache would not show improvement to database reads, but simply that a cache was in use. In order to show the true power Delphix brings to your I/O configuration, a small cache on the target database instance shows the work that the benchmark has performed at the read level. As such, I/O latency becomes the key factor in benchmark performance. Caching at the virtualization layer will produce good performance, but uncached data could result in very poor I/O results.

Network Configuration

In the virtual database environment provisioned by Delphix, the network is just as important as storage due to the way the target Oracle host uses NFS to the Delphix server’s attached storage. The performance of NFS and TCP has a direct impact on the I/O latency of virtualized databases.

To reduce the I/O latency and increase I/O bandwidth in the virtual database test, the Oracle Linux guest used for the target is on the same ESX server as Delphix. By keeping the Delphix tier and target system on the same hardware and VM infrastructure NFS and TCP communication can be done without additional physical network latency by running communications through a NIC. This architecture is known as Pod Architecture and it eliminates typical issues with networks such as suboptimal NICs, routers, or congestion.

In the physical environment the network configuration was not important as processes and communications were all performed locally on the database host and storage on the SAN was accessed via fiber.

High Level Results

All tests were run twice – once with a completely cold cache (0 data in cache) and once with a warm cache (the full dataset has been touched and a working set of data in cache has been established).

With a load of 10 users, the throughput measured in TPM was as follows:

  • Physical Database
    • Cold Cache – 1800 TPM
    • Warm Cache – 1800 TPM
  • Virtual Database
    • Cold Cache – 2100 TPM
    • Warm Cache – 4000 TPM

The implications of these tests are absolutely astounding. Not only was Delphix capable of provisioning a target database host in a matter of minutes, but also the virtual database outperformed the physical counterpart with both a cold and warm cache. With nothing in cache, the virtualized database performed very well, and additional caching increased performance dramatically while on the physical database it remained stagnant.

Detailed Results

OLTP Tests
Performance improving by virtue of an increasingly warm cache is great, but there was much more the test revealed. During the course of the tests, it was found that an increased number of concurrent users (generally seen as a detriment to performance) improved performance even further. This level of scalability goes beyond standard environments where things like high levels of concurrency can bog down the database environment. Instead, higher concurrency improved throughput for scaling that comes with an exponential performance improvement.

With more than five users on a cold cache and testing 1-60 users on a warm cache, the virtual databases outperform the physical counterpart.

Cold Cache TPM Results by # of users:

phys_vs_virt_tpm_coldNumber of users


Warm Cache TPM Results by number users:

phys_vs_virt_tpm_warmnumber of users

Increased users (concurrency) brought greater performance benefits to the virtual database environment. Instead of degraded performance  as the number of concurrent users rose the tests conclusively showed dramatic improvements as more users were added to the testing process. As configured with a warm cache and 60 concurrent users, Delphix showed a TPM six times greater than the physical databases.

OLTP Load on Multiple Virtual Databases

In order to test the impact of multiple virtual databases sharing a single cache, two virtual databases were provisioned from the same production source. Tests were run similar to the previous testing exercise against:

  • A single physical database
  • Two concurrent physical databases using the same storage
  • A single virtual database
  • Two virtual databases using the same storage

In this test, we measured both the throughput in TPM and the average I/O latency.

TPM vs. Single Block I/O Latency by number of users:

TPM_vs_latencynumber of users

As you can see from these tests, as the number of a) database instances and b) concurrent users increased, latency degraded exponentially on the physical environment. As concurrency at the I/O layer rises, latency becomes a huge bottleneck in efficient block fetches resulting in flat or decreasing TPM.

On the other hand, the Delphix environment flourished under increased load. Thanks to shared block caching, more users and more virtual databases meant dramatically increased TPM because of the lack of latency due to shared blocks. Just as in the previous test, the scalability of Delphix is entirely unexpected based on traditional Oracle scaling; as systems and users rise the environment as a whole not only scales, but also scales exponentially.

Performance measured in seconds of a full table scan on the ORDERS table:

 

phys_vs_virt_fts_orders

Seconds

 

 

 

 

 

 

 

 

 

 

 

 

It is worth clarifying here that the impacts seen with caching on Delphix for a single database can of course be attained in any environment by caching more on the database host with an increased buffer cache. However, if there are multiple copies of the database running (remember the need for Dev, QA, Stress, UAT, etc.) there will be no benefit on a physical environment due to the inability of Oracle to share cache data. In a Delphix environment this problem disappears due to its dual function as a provisioning tool and I/O caching layer. Blocks in cache on one virtual database target system will be shared in the Delphix shared cache between all virtual databases.

To show the impact of this functionality, throughput tests were run against two different virtual database targets. First against Virtual DB 1 with a cold cache, then Virtual DB 1 with a warm cache, following by Virtual DB 2 with a  cold cache and Virtual DB 2 with a warm cache.

Performance measured in seconds of a full table scan  on customers, orders and order_items

virt_cold_vs_warm_fts

 

Seconds

 

 

 

 

 

 

 

 

 

 

Three queries were used for this test, all performing full table scans against different tables in each virtual database. Each query was run as previously described (Virtual DB 1 cold, Virtual DB 1 warm, Virtual DB 2 cold, Virtual DB 2 warm). The purpose of this test was to simulate standard Decision Support System (DSS) type queries across multiple virtual databases to show the effects of block caching in Delphix.

We see that by warming the cache on Virtual DB 1 the query time dropped dramatically (which is to be expected). However, it is also clear that running the query on Virtual DB 2 with a cold cache retained the same caching benefit. Because Virtual DB 1 warmed the cache, Virtual DB 2 was able to utilize the fast I/O of cached data without any pre-warming. This behavior is the core of the exceptional results in the previous TPM tests when a higher user load and target database count was introduced.

Maximizing Resources and Performance
We have all been required at some point to create multiple databases on a single host, and each time it is difficult to decide exactly how to set each SGA to make the best use of RAM on the server. Make a single database instance’s SGA too large and you take away critical assets from the other databases on the host. Make all of the instance’s SGAs too large and you can seriously hurt the performance of all databases mounted by instances on that server.

RAM is an expensive resource to use; not necessarily in terms of cost, but in terms of importance to the system and limited availability. By sharing the I/O cache between virtual database clones of the same source via Delphix, the RAM usage on the server is optimized in a way that’s simply not possible on a physical database configuration.

Delphix removes the RAM wall that exists in a physical database environment. Multiple instances are able to share data blocks for improved read times and increased concurrency capabilities. While it is possible to share caching on a SAN in a physical database configuration, remember that each database copy will use different cached blocks on the SAN. Additionally, SAN memory is far more expensive than memory on standard commodity x86 hardware. For example, the cost of 1GB RAM on an x86 server is around $30. On an EMC VMAX the same 1GB RAM will cost over $900.*  And that SAN caching will not carry with it all the additional provisioning benefits that Delphix brings to the table.

Even though the tests were constructed to show maximum performance improvements due to a well-architected Delphix infrastructure, the impact of nearly any Delphix deployment will be dramatic. Slower hardware, smaller cache, or other factors can contribute to a less optimal architecture but the principle benefits remain. The actual minimum requirement for the Delphix host is 16GB RAM, but the average size among customers is 64GB. This is obviously not a small size but it is dramatically smaller than the rest of the test.

In real use cases of Delphix at our customers’ sites, we have found that on average 60% of all database I/O block requests to  Delphix are satisfied  by Delphix cache. This means that 60% of customer queries against their development, QA, reporting, and other environments provisioned via Delphix never have to touch the SAN at all. This relieves bottlenecks at the SAN level and improves latency for the I/O that actually does need to occur on disk.

 

http://www.emc.com/collateral/emcwsca/master-price-list.pdf Price obtained on pages 897-898: Storage engine for VMAX 40k with 256 GB RAM is ~$393,000 Storage engine for VMAX 40k with 48 GB RAM is ~$200,000, thus 256GB – 48GB = 208GB  and $393,000 – $200,000 = $193,000, So the cost of RAM here is $193,000 / 208GB = $927/GB.

Summary

In nearly every test, Delphix outperformed the traditional physical database, a shift that flies in the face of every ‘performance scaling’ fact we have held as true until this point. By breaking outside of the normal optimization configuration (physical database with cache connected to SAN with cache), we are introducing a multipurpose layer which provides incredible shared caching benefits beyond any that can be found on a solitary database host.

Additionally, the more we threw at the Delphix targets the better it got. More databases, more concurrent users, all came back with better than linear scaling; dramatic gains were common as more work was required of the Delphix server. By implementing Delphix, the IBM x3690 we used for testing was capable of so much more than it could normally handle with the added benefit of cheap RAM as the cache layer and incredibly fast provisioning to boot. The architecture as a whole was significantly cheaper than a robust SAN caching configuration on purpose-built hardware while performing and scaling with dramatic improvements.

 Other reading

    The Delphix documentation is online at http://docs.delphix.com
    For more information on Delphix see http://dboptimizer.com/delphix/
    A video on database virtualization along with a blog article
and a few more blog posts on database virtualization:

Uncategorized

Accelerate SAP Projects with Virtual Databases

April 2nd, 2013

NASDAQ: KLAC

  • KLA-­-Tencor Corporation
  • One Technology Drive Milpitas, CA 95035 United States
  • Phone: 408.875.3000
  • Website: http://www.kla-­-tencor.com
  • Industry: Semiconductors

KEY RESULTS WITH DELPHIX

  • 2.5x faster project rollout
  • Consolidated 45 virtual databases across two Delphix Servers
  • Reduced refresh time from 2 weeks to 20 minutes on average
  • Performed 60 refreshes in 6 month
  • Reduced storage needs by 94%
  • Displaced need to purchase >$400K in Tier 1 storage

 

Business-Critical SAP Projects

Today’s businesses depend on critical applications like SAP to drive sales, finance, and marketing operations.  Application projects that deliver new or improved functionality can have an immediate and significant impact on top line revenues and bottom line earnings.  Most IT organizations can only manage a small number of projects in a given year, limiting the ability of businesses to capture market opportunities or improve operational efficiency.  Two factors frequently limit the speed and number of database projects: 1) cost and availability of hardware infrastructure, especially storage, and 2) complexity of managing data synchronization and refresh.

Heavy Infrastructure Required for Maintaining Landscapes

Supporting SAP landscapes is complex and resource-intensive for most organizations.  Multiple copies of each production database must be created for mandated development and testing environments.  Most organizations create 2 to 8 supporting environments, but large organizations expand to as many as 30 to 40 copies for various projects.  With production databases often averaging over a terabyte per SAP deployment, databases supporting these complex deployments can total 10s to 100s of terabytes.  As a result, storage costs and availability often become limiting factors for new projects.

Refreshing Databases Strains Organizations

Databases supporting applications for different functional areas (such as CRM and ERP) need to be synchronized to the same point in time for information consistency.  Provisioning databases may require the involvement of several teams in IT: storage administrators, system administrators, DBAs, and application administrators.  Due to cross-functional organizational dependencies, each supporting environment can take several days to weeks to provision or refresh.  The organizational and technical complexity of synchronizing and refreshing data for development and testing environments also limits the delivery of new projects.

KLA Tencor: 10 Databases to Provision, Refresh

KLA-Tencor supplies process control and yield management solutions for the semiconductor and related industries.  KLA-Tencor supports an SAP landscape with 7 key applications, from ERP to business warehousing, and 3 databases as web portals.  They have 10 Oracle databases in their production architecture, with 8 copies of the entire production environment for development, testing, trouble shooting, and disaster recovery, consuming over 40 TB of storage.  With iPhones and iPads driving incredible growth in global semiconductor chip usage, their business continues to scale, requiring fast, frequent additions to their SAP application environment.  Prior to implementing Delphix, it took KLA-Tencor an average of two weeks to refresh a testing or QA environment for any SAP project, with four to five administrators from different teams participating in the process.  Due to time and complexity, the IT teams could only deliver data refreshes on a monthly or bi-monthly basis, leaving stale data in project environments.  Since production databases continue to change, leaving stale data in project environments adds risk and uncertainty to project delivery and project quality.  Testing on stale data may not accurately represent the production environment, which can lead to project errors and failures after going live, which can be very expensive for a business.

Delphix Reduces Storage Needs by 94%

With a long backlog of key projects, KLA-Tencor would have needed to acquire more hardware infrastructure, especially storage, in order to support the oncoming project load.  Instead, they turned to Delphix to virtualize their databases.  As an Oracle gold-certified ISV partner, Delphix connects with Oracle databases through standard APIs, loads a first copy into Delphix, and then automatically maintains synchronization by requesting changed data – with little to no ongoing impact on production systems.  By policy, Delphix records data changes using its patent-pending TimeFlow technology for a set retention period (e.g.  two weeks).  From any point along the TimeFlow, DBAs can instantly provision or refresh VDBs, which look and behave like full copies of a database but only require a fraction of the storage space.  A single Delphix Server can provision and refresh multiple VDBs – all from a shared data footprint.  As a result, KLA-Tencor was able to provision more than 45 VDBs across two Delphix Servers, a consolidation ratio of more than 20:1 per server and a 94% reduction in storage requirements for their projects – displacing the need to purchase more than $400 thousand dollars worth in Tier 1 SAN storage.  “We tried a new technology and won big,” said Rajiv Gupta, Senior IT Manager, Enterprise Services at KLA-Tencor.  “Delphix provides the elasticity to expand our project infrastructure when we need it.”

Delphix_setup

Rapid Refresh of SAP Landscapes

SAP landscapes require synchronization across multiple SAP instances and their underlying databases.  Since business transactions frequently store data across multiple databases, all of the databases need to be provisioned or refreshed in concert – at the same point in time – in order to guarantee application coherency and consistency.  Provisioning and refreshing individual databases already strains IT organizations; the need to synchronize multiple databases only compounds the problem.  With integrated log synchronization, Delphix can provision multiple VDBs all at the same point in time, synchronizing data across multiple sources down to the second – dramatically simplifying this key requirement for provisioning and refreshing SAP landscapes.

Delphix_federated_provisioining

Self-Service Data Access, Refresh

With a steady stream of SAP projects on the horizon, KLA-Tencor needed to find ways to reduce the ongoing strain on their IT organization.  By configuring users, roles, and permissions in Delphix, KLA-Tencor enabled their SAP Basis team to have self-service access to provision or refresh VDBs for their projects.  Self-service eliminates the organizational dependencies and request/approval cycles that can tax workforces and slow projects.  In addition, by enabling the SAP Basis team to refresh VDBs according to the needs of their project schedules, they were able to better use the time of their contract developers – who would have had to wait for development environments on the clock.  “We were able to perform 60 refreshes in 6 months, which would have been impossible without virtualizing our databases,” said Shankar Bhavanasi, Senior Oracle DBA at KLA- Tencor.

Long-Term Benefits

By virtualizing the databases for their SAP architecture, KLA-Tencor accelerated their SAP projects, eliminated organizational dependencies by enabling self-service data provisioning and refresh, and reduced storage requirements by 94%.  More importantly, agile, virtual infrastructure allows KLA-Tencor to innovate faster while spending less, a critical competitive advantage in a fast-changing business environment – and one that will continue to pay dividends in years to come.

Uncategorized

Where to begin with Oracle and SQL

March 22nd, 2013

Seeing more and more questions on “where do I start with Oracle if I want to be a DBA?”  My perspective is a bit off since I’ve been surrounded by Oracle for over 20 years.  I hardly remember what it was like to start with Oracle and starting with Oracle now in 2013 is quite different than starting with Oracle in 1990.

Here is my list and everything on this list is excellent. I’m sure I missed a few good ones, but maybe people can add them in the comments.

Start with Oracle Docs, they are free and good!

Get the best books and read them

A bit old, but this is a great overview of Oracle: Practical Oracle 8i by Jonathan Lewis

After you have read the above, dive into the important details:

If you know SQL but want to get great at SQL performance, read these books

Join Online discussions and follow blogs

Create your own Oracle blog aggregator, here is mine: http://oracle.collected.info/

Go to conferences. First of all your local Oracle user groups and if you have the time and resources then go to the bigger conferences:

  • Hotsos
  • RMOUG
  • UKOUG

Uncategorized

Join Jonathan Lewis for a discussion of Delphix

March 21st, 2013

tires

Kicking the Tires on Delphix

Live webcast: Jonathan Lewis  – An Oracle Expert’s Look at the Delphix Technology

Jonathan Lewis came out to the Delphix offices in Menlo Park, CA to kick the tires on our product for a week.

Join Jonathan Lewis and myself for a discussion and sharing of first impressions of Delphix. Jonathan worked closely with the Delphix team investigating performance, comparing technologies, and testing community-requested use cases. In this chat, Jonathan  and I will have an informal discussion on the preliminary results of Jonathan’s  first-hand experiences with Delphix, working closely with our team to learn about the functional aims, implementation strategies, and underlying technologies. As part of his hands-on activity, Jonathan started with the simple provisioning benefits of Delphix, and went on to look at the performance implications of various scenarios, including test cases suggested by the Oracle community. For a glimpse into what will be discussed  see Jonathan’s blog post on his visit to Delphix.

 

 

 

Related  blog posts by Jonathan’s blog

 

Uncategorized