10.07.2015 Views

Expert Oracle Exadata - Parent Directory

Expert Oracle Exadata - Parent Directory

Expert Oracle Exadata - Parent Directory

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

CHAPTER 13 MIGRATING TO EXADATA Note: Remember that if you do not have huge data transfer requirements within a very low downtime window,then the issues described here may not be problems for you at all. You would want to pick the easiest andsimplest data transfer method that gets the job done within the required time window. It’s important to know theamount of data to be transferred in advance and test the actual transfer speeds in advance to see whether youwould fit into the planned downtime. If your dblink transfer or dumpfile copy operation is too slow, then you canuse free tools like iPerf (http://iperf.sourceforge.net) to test out your network throughput between sourceand target servers. If the dblinks or datapump dumpfile transfer is significantly worse than iPerf’s results, theremust be a configuration bottleneck somewhere.This leads us to software configuration topics for high network throughput for database migrations.This chapter does not aim to be a network tuning reference, but we would like to explain somechallenges we’ve seen. Getting the <strong>Oracle</strong> database links throughput right involves changing multiplesettings and requires manual parallelization. Hopefully this section will help you avoid reinventing thewheel when dealing with huge datasets and low downtime requirements.In addition to the need for sufficient throughput capacity at the network hardware level, there arethree major software configuration settings that affect <strong>Oracle</strong>’s data transfer speed:• Fetch array size (arraysize)• TCP send and receive buffer sizes• <strong>Oracle</strong> Net Session Data Unit (SDU) sizeWith regular application connections, the fetch array size has to be set to a high value, ranging fromhundreds to thousands, if you are transferring lots of rows. Otherwise, if <strong>Oracle</strong> sends too few rows out ata time, most of the transfer time may end up being spent waiting for SQL*Net packet ping-pong betweenthe client and server.However, with database links, <strong>Oracle</strong> is smart enough to automatically set the fetch array size to themaximum—it transfers 32767 rows at a time. So, we don’t need to tune it ourselves.Tuning TCP Buffer SizesThe TCP send and receive buffer sizes are configured at the operating-system level, so every O/S hasdifferent settings for it. In order to achieve higher throughput, the TCP buffer sizes have to be increasedin both ends of the connection. We’ll cover a Linux and Solaris example here; read your O/S networkingdocumentation if you need to do this on other platforms. We often use the Pittsburgh SupercomputingCenter’s “Enabling High Performance Data Transfers” page for reference(http://www.psc.edu/networking/projects/tcptune/). First, you’ll need to determine the maximumbuffer size TCP (per connection) in your system.On the <strong>Exadata</strong> servers, just keep the settings for TCP buffer sizes as they were set during standard<strong>Exadata</strong> install. On <strong>Exadata</strong> the TCP stack has already been changed from generic Linux defaults. Do notconfigure <strong>Exadata</strong> servers settings based on generic database documentation (such as the “<strong>Oracle</strong>Database Quick Installation Guide for Linux”).431

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!