SlideShare a Scribd company logo
1 of 81
© 2017 Pythian 1
Oracle Database on AWS
Getting the Best out of RDS and EC2
MARIS ELSINS
Lead Database Consultant
© 2017 Pythian 2
Maris Elsins
Lead Database Consultant
At Pythian since 2011
http://bit.ly/getMOSPatchV2
Located in Riga, Latvia
Oracle [Apps] DBA since 2005
Speaker at conferences since 2007
@MarisDBA elsins@pythian.com
© 2017 Pythian 3
3 Membership Tiers
• Oracle ACE Director
• Oracle ACE
• Oracle ACE
Associate
bit.ly/OracleACEProgram
500+ Technical Experts
Helping Peers Globally
Connect
:
Nominate yourself or someone you know: acenomination.oracle.com
@oracleace
Facebook.com/oracleaces
oracle-ace_ww@oracle.com
© 2017 Pythian 4
ABOUT PYTHIAN
Pythian’s 400+ IT professionals
help companies adopt and
manage disruptive technologies
to better compete
© 2017 Pythian 5
Systems currently
managed by Pythian
EXPERIENCED
Pythian experts
in 35 countries
GLOBAL
Millennia of experience
gathered and shared
over 19 years
EXPERTS
11,800 2400
© 2017 Pythian 6
•
© 2017 Pythian 7
•
© 2017 Pythian 8
Can I comment or ask questions
during the presentation?
Photo by Day Donaldson / CC BY 2.0
© 2017 Pythian 9
Photo by Day Donaldson / CC BY 2.0
Oracle Database on AWS
Getting the BEST out of RDS and EC2
It's a nice title, but....
WTH* did you mean here?
* WTH = WTF
What do you expect?
© 2017 Pythian 10
© 2017 Pythian 11
GOAL OF THE PRESENTATION
• When someone (AWS) promises to do something for you (*aaS)
– You have to accept how it's done,
– Use some workarounds,
– Be ready for trade-offs.
• Provide information to help you choose wisely:
© 2017 Pythian 12
NOT ON AGENDA
• Basics of AWS
• Why cloud and why AWS?
• Choosing between cloud vendors
• Terminology
• The right way of ...
I mean it!
It's not included!
© 2017 Pythian 13
OPTIONS
... for Oracle DBs on AWS
© 2017 Pythian 14
DEFINITIONS FROM AWS DOCUMENTATION
• RDS
– Amazon Relational Database Service (Amazon RDS) is a web
service that makes it easier to set up, operate, and scale a
relational database in the cloud. It provides cost-efficient, resizable
capacity for an industry-standard relational database and manages
common database administration tasks.
• EC2
– Amazon Elastic Compute Cloud (Amazon EC2) is a web service
that provides secure, resizable compute capacity in the cloud. It is
designed to make web-scale cloud computing easier for
developers.
They don't say they'll do it for
you!
... it will just be easier :)
© 2017 Pythian 15
*AAS FACTOR - WHAT IS MANAGED BY AWS?
Application
Security *
Database *
OS *
Virtualization
Servers *
Storage *
Networking *
Data Center *
RDS
(PaaS)
EC2
(IaaS)
How important for you
is to control these?
Most of you have some
ideas, but do you have
enough info to take the
decision?
© 2017 Pythian 16
DATA CENTERS
REGIONS AND AVAILABILITY ZONES
https://aws.amazon.com/about-aws/global-infrastructure/
© 2017 Pythian 17
• February 28, 2017
– S3 outage in US-EAST-1 Region
– Whole Region was affected
• Think about the DR between Regions
– Of course, if you need that...
DATA CENTERS
© 2017 Pythian 18
• EC2
– You're responsible for the DR...
– Use Data Guard if you like
– Logical replication...
• RDS
– Multi-AZ
– How to failover from one region to another?
– Copy snapshots? What about archived logs?
– Logical replication (DMS or GoldenGate)? Limitations ..
DR BETWEEN REGIONS
Multi-AZ is a synchronous
physical replication
between 2 AZs in the
same region. Didn't we just loose all the
simplicity?
© 2017 Pythian 19
STORAGE
• EBS volumes used in both cases
– Network attached
– Different types of IO Types
‐ General Purpose SSD (the cheap SSD)
‐ Provisioned IOPS SSD (the expensive SSD)
‐ Magnetic (spinning rust)
• RDS vs EC2
– RDS sets up the specified type/size storage for you
– EC2 - you set it up how you want it.
‐ i.e. ASM with multiple EC2 volumes..
In most cases it appears to
be a single EBS volume
behind it
© 2017 Pythian 20
• EC2 gives you more instance types to choose from!
• More options = good
– There's no RAC* on AWS, so vertical scaling options are important
– Choose a better balance between:
‐ CPU capacity
‐ Memory
‐ Instance Store SSD*
SERVERS / VIRTUALIZATION
© 2017 Pythian 21
SERVERS / VIRTUALIZATION
• Current generation instances for RDS (23):
– db.m4.10xlarge, db.m4.16xlarge, db.m4.2xlarge, db.m4.4xlarge, db.m4.large, db.m4.xlarge,
db.r3.2xlarge, db.r3.4xlarge, db.r3.8xlarge, db.r3.large, db.r3.xlarge, db.r4.16xlarge, db.r4.2xlarge,
db.r4.4xlarge, db.r4.8xlarge, db.r4.large, db.r4.xlarge, db.t2.2xlarge, db.t2.large, db.t2.medium,
db.t2.micro, db.t2.small, db.t2.xlarge
• Current generation instances for EC2 (74):
– t2.nano, t2.micro, t2.small, t2.medium, t2.large, t2.xlarge, t2.2xlarge, m4.large, m4.xlarge, m4.2xlarge,
m4.4xlarge, m4.10xlarge, m4.16xlarge, m3.medium, m3.large, m3.xlarge, m3.2xlarge, c5.large, c5.xlarge,
c5.2xlarge, c5.4xlarge, c5.9xlarge, c5.18xlarge, c4.large, c4.xlarge, c4.2xlarge, c4.4xlarge, c4.8xlarge,
c3.large, c3.xlarge, c3.2xlarge, c3.4xlarge, c3.8xlarge, f1.2xlarge, f1.16xlarge, g3.4xlarge, g3.8xlarge,
g3.16xlarge, g2.2xlarge, g2.8xlarge, p2.xlarge, p2.8xlarge, p2.16xlarge, p3.2xlarge, p3.8xlarge,
p3.16xlarge, r4.large, r4.xlarge, r4.2xlarge, r4.4xlarge, r4.8xlarge, r4.16xlarge, r3.large, r3.xlarge,
r3.2xlarge, r3.4xlarge, r3.8xlarge, x1.16xlarge, x1e.32xlarge, x1.32xlarge, d2.xlarge, d2.2xlarge,
d2.4xlarge, d2.8xlarge, i2.xlarge, i2.2xlarge, i2.4xlarge, i2.8xlarge, i3.large, i3.xlarge, i3.2xlarge,
i3.4xlarge, i3.8xlarge, i3.16xlarge I3 instances = High I/O
instances with NVMe Instance
Store
X1e Memory Optimized
128 vCPU / 4T RAM
© 2017 Pythian 22
CHOOSING THE EC2 INSTANCE
© 2017 Pythian 23
OS
• The OS on the RDS is:
– Some-kind-of-linux
SQL> select dbms_utility.port_string from dual;
PORT_STRING
-------------------
x86_64/Linux 2.4.xx
• The OS on the EC2 is:
– My-kind-of-linux (OL / RHEL / etc)
– This is really really important in some situations!
– Access to the OS is useful
‐ install tools you need (Oswatcher/TFA)
‐ Obtain diagnostic info (i.a. Incident trace file from ADR)
but what kind of linux?
© 2017 Pythian 24
DATABASE
What if I need a specific
one-off?
• EC2 - You install what you need and how you need
• RDS - Predefined engine versions
– 11gR2:
‐ 11.2.0.4.v1 - 11.2.0.4.v13 - ...
– 12cR1:
‐ 12.1.0.1.v1 - 12.1.0.1.v6 (no new engines released)
‐ 12.1.0.2.v1 - 12.1.0.2.v9 - …
– 12cR2: not available yet
– Engine versions differ by included patches
‐ PSU / DST / GG / + critical one-offs
– Old engines become unavailable
© 2017 Pythian 25
DATABASE
EDITIONS AND LICENSING ON RDS
Edition License Included Bring Your Own License
SE One ✓ ✓
SE Two ✓ ✓
SE ✓
EE ✓
© 2017 Pythian 26
DATABASE
LICENSING
• Two important sources:
– Licensing Oracle Software in the Cloud Computing Environment
‐ The rules for Amazon EC2 and RDS are:
○ 2* vCPUs == 1 Oracle Processor license /w hyper-threading
○ 1* vCPU == 1 Oracle Processor license w/o hyper-threading
– Virtual Cores by Amazon EC2 and RDS DB Instance Type
‐ If vCPUs != Virtual Cores, then HT is enabled
‐ HT is ON for RDS (vCPU is a HyperThread)
• When counting Oracle Processor license requirements in
Authorized Cloud Environments, the Oracle Processor Core Factor
Table is not applicable.
© 2017 Pythian 27
SECURITY
• RDS:
– Standard VPC, SG, ... and other from AWS
– Limited set of Option Groups for Oracle RDS:
‐ Oracle Transparent Data Encryption
‐ Oracle SSL
‐ Oracle Native Network Encryption
‐ Oracle Label Security
• EC2
– Standard VPC, SG, ... and other from AWS
– Manually configured set of Oracle features
© 2017 Pythian 28
Photo by Day Donaldson / CC BY 2.0
Is RDS good for anything?
© 2017 Pythian 29
IS RDS GOOD FOR ANYTHING?
IT DEPENDS ON WHAT YOU EXPECT
The process is very well
tested and is reliable.
It's done thousands of
times
• It's Managed by AWS
– It removes lots of headache
– Automates routine tasks
‐ Backup/Recovery
‐ Multi-AZ (Failover, Switchover, DR*)
‐ Patching and Upgrades
‐ Host Maintenance
‐ CloudWatch Monitoring and Alerting
‐ ...
– But it also introduces
‐ Limitations
‐ Non-intuitive way of operation
‐ Things that are better to know before starting...
© 2017 Pythian 30
Photo by Day Donaldson / CC BY 2.0
Let's talk about some RDS-specific things...
© 2017 Pythian 31http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.html
OPTION GROUPS
OPTIONS THAT CAN BE ENABLED FOR RDS INSTANCES
Option Option ID
Oracle Application Express APEX, APEX-DEV
Oracle Enterprise Manager OEM, OEM_AGENT
Oracle Label Security OLS
Oracle Native Network Encryption NATIVE_NETWORK_ENCRYPTION
Oracle SSL SSL
Oracle Statspack STATSPACK
Oracle Time Zone Timezone
Oracle Transparent Data Encryption TDE
Oracle UTL_MAIL UTL_MAIL
Oracle XML DB XMLDB
... ...
© 2017 Pythian 32
• Option group
– Defines the set of enabled options
– can be assigned to multiple RDS instances
• Default options groups:
– “default:oracle-ee-11-2” and “default:oracle-ee-12-1”
– has no options enabled by default
– Can't be modified
• Separate PROD, QA, TEST, …
INTRODUCTION
OPTION GROUPS
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.html
© 2017 Pythian 33
INTRODUCTION
PARAMETER GROUPS
• Parameter Groups
– Defines the init parameters
‐ Remember, you don't have to “/ as sysdba”
‐ How do I run “alter system …”?
– Can be assigned to multiple instances
– Some parameters are derived from instance settings
‐ i.e. DB_NAME={DbName}
• Default parameter groups can't be changed
– Even modifiable settings require reboot.
– We used a workaround in few cases - a logon trigger
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.html
© 2017 Pythian 34
• MEMORY_TARGET = {DBInstanceClassMemory*3/4}
– AMM means hugepages are not used
– Swapping is possible
•
•
•
•
•
•
PARAMETER GROUP
SOME DEFAULT PARAMETERS I FOUND INTERESTING …
Swap usage MB
Connection pool
misconfiguration
Ouch !
© 2017 Pythian 35
PARAMETER GROUP
SOME DEFAULT PARAMETERS I FOUND INTERESTING …
Ouch !
• UNDO_RETENTION not set (the default is 900 seconds)
• We're using parameter group “default.oracle-ee-11.2”
• The client asked to refresh one schema in TEST (from PROD)
– “expdp … consistent=y”
– And suddenly ...
ORA-31693: Table data object "XYZ"."BLAH_BLAH" failed to
load/unload and is being skipped due to error:
ORA-02354: error in exporting/importing data
ORA-01555: snapshot too old: rollback segment number 82 with
name "_SYSSMU82_540458409$" too small
How to fix it?
© 2017 Pythian 36
RUNNING AND MONITORING...
LIFE WITHOUT "SYSDBA"
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.html
• Only SQL*Net Connectivity
• Master User
– Limited set of privileges
• Common DBA Tasks for Oracle DB Instances
– Review them carefully, and prepare !
– Some tasks are done differently ...
‐ Killing a session
○ exec RDSADMIN.RDSADMIN_UTIL.KILL(..., ..., ...);
‐ Creating an AWR report (with no access to the OH)
○ DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_TEXT
– rdsadmin.rdsadmin_util
© 2017 Pythian 37
• No host access
– Prevents setting up some types of monitoring
‐ Cron jobs (everyone's favourite!)
‐ Certain 3rd party monitoring agents
• What's available?
– Cloudwatch monitoring + alerts
‐ 1 minute interval / difficult to correlate different metrics
– Enhanced monitoring (no alerts)
‐ 1s - 60s monitoring interval
– OEM Option (11g DB Control / Database Express 12c )
– OEM_AGENT Option !! (Announced Sep, 2016), supports 13c too!
– Custom monitoring over SQL*Net (Pythian's Avail)
RUNNING AND MONITORING...
MONITORING
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.html
© 2017 Pythian 38
RUNNING AND MONITORING...
Monitoring - CloudWatch RDS / Monitoring
Correlating graphs is
difficult
© 2017 Pythian 39
RUNNING AND MONITORING...
Monitoring - Enhanced Monitoring
© 2017 Pythian 40
RUNNING AND MONITORING...
Monitoring - CloudWatch RDS / Create Alarm
Not always simple to
integrate with ticketing
systems
© 2017 Pythian 41
RUNNING AND MONITORING...
Monitoring - 11g Database Control (OEM)
© 2017 Pythian 42
RUNNING AND MONITORING...
Monitoring - 12c Database Express (OEM)
© 2017 Pythian 43
RUNNING AND MONITORING...
Monitoring - OEM_AGENT
I haven't tried this yet, but
knowing the DB Express 12 is
more limited than DB Control -
It's a good thing we have it
now!
Standalone EM 12c CC is
required!
© 2017 Pythian 44
AWS RDS FOR ORACLE
EXAMPLE 1: LATENCY ISSUES
• In the middle of the migration project
– One database was moved to Oracle RDS
– Another interfacing system remained on-premise
• A batch job runs a LOT SLOWER
– Tracing reveals row-by-row processing between 2 DBs
– A local DB <-> AWS RDS
– Latency issue, each network round-trip took a lot longer.
https://calculator.s3.amazonaws.com/index.html
© 2017 Pythian 45
AWS RDS FOR ORACLE
EXAMPLE 2: ACCESS TO DATA
• A tiny OBIEE Database on RDS (40G)
– Db.m4.xlarge
– 4 vCPU + 16G RAM
• The problem
– IO slowness
– Beyond point where IOPS is reasonable to increase to
• The Solution
– Upgrade to Db.r3.xlarge (memory optimized)
– 4 vCPU + 30.5 RAM
– Set parameter _serial_direct_reads=never
https://calculator.s3.amazonaws.com/index.html
© 2017 Pythian 46
• A sudden execution plan change for a popular query
AWS RDS FOR ORACLE
EXAMPLE 3: A QUERY PLAN CHANGE
https://calculator.s3.amazonaws.com/index.html
© 2017 Pythian 47
-- Create the procedure that will be used to collect the execution plans
create or replace procedure PERF.XXSTABILITY_CAPTURE_PLANS is
cur sys_refcursor;
cursor clist is with raw_sqlids as (select sql_id from v$sqlarea
where sql_id in (select sql_id from v$active_session_history
where sample_time>=sysdate-1/24 and sql_plan_hash_value>0
and machine like '%-cool-app0%')
and plan_hash_value>0 and executions>2
union
select sql_id from v$sqlarea
where sql_id in (select sql_id from v$open_cursor where
sid in (select sid from v$session where machine like '%-cool-app0%'))
and plan_hash_value>0 and executions>2 and parsing_schema_name not in
('ANONYMOUS','APEX_030200','APEX_040000','APEX_SSO','APPQOSSYS',
'CTXSYS','DBSNMP','DIP','EXFSYS','FLOWS_FILES','MDSYS','OLAPSYS','ORACLE_OCM','ORDDATA','ORDPLUGINS','ORDSYS','OUTLN','OWBSYS
','SI_INFORMTN_SCHEMA','SQLTXADMIN','SQLTXPLAIN','SYS','SYSMAN','SYSTEM','TRCANLZR','WMSYS','XDB','XS$NULL')),
sqlids as (select distinct ''''||sql_id||'''' sql_id, trunc((rownum-1)/200) rn from raw_sqlids)
select listagg(s.sql_id,',') within group (order by s.sql_id) as sql_id_filter from sqlids s group by s.rn;
c clist%rowtype;
BEGIN
for c in clist loop
OPEN cur FOR SELECT VALUE(P) FROM table(dbms_sqltune.select_cursor_cache(basic_filter=>'sql_id
in('||c.sql_id_filter||')', attribute_list=>'ALL')) P;
DBMS_SQLTUNE.LOAD_SQLSET(load_option=>'MERGE',sqlset_name => 'XXSTABILITY_EXECUTION_PLANS', populate_cursor => cur);
CLOSE cur;
end loop;
Commit;
END;
/
AWS RDS FOR ORACLE
EXAMPLE 3: PRESERVING GOOD EXECUTION PLANS
© 2017 Pythian 48
-- Create the Scheduler Job which will run on every hour's 47th minute
Begin
Dbms_scheduler.create_job
(job_name => 'COLLECT_XXSTABILITY_PLANS',
job_type => 'STORED_PROCEDURE',
job_action => 'PERF.XXSTABILITY_CAPTURE_PLANS',
start_date => SYSDATE,
repeat_interval => 'FREQ=HOURLY; INTERVAL=1; BYMINUTE=47;',
enabled => TRUE);
End;
/
-- Loading the baseline from SELECT_SQLSET for a specific sql_id and plan
VARIABLE cnt NUMBER
EXECUTE :cnt := DBMS_SPM.LOAD_PLANS_FROM_SQLSET( -
sqlset_name => 'XXSTABILITY_EXECUTION_PLANS', -
basic_filter => 'sql_id=''dtzsc12fbbjk2'' and plan_hash_value=2896891279');
AWS RDS FOR ORACLE
EXAMPLE 3: PRESERVING EXECUTION PLANS
© 2017 Pythian 49
AWS RDS FOR ORACLE
EXAMPLE 4: COMBINED MAINTENANCE
• Combined maintenance - 30 minutes allocated
– Take a snapshot
– Change the instance size
• Oops!
– Snapshot takes just few seconds
‐ … before it's copied to S3
– “Creating Snapshot” for 45 minutes
https://calculator.s3.amazonaws.com/index.html
© 2017 Pythian 50
Photo by Day Donaldson / CC BY 2.0
Is RDS good for anything?
© 2017 Pythian 51
IS RDS GOOD FOR ANYTHING?
RDS IS VERY GOOD IF...
• Your requirements match the RDS' capabilities
• You're aware of the trade-offs and limitations
• You have access to the "Know-how"!
• You test the planned activities
© 2017 Pythian 52
I/O
... how it really behaves.
© 2017 Pythian 53
SIZING RDS CORRECTLY
IT'S NOT VERY SIMPLE...
• Instance size (CPU / RAM) is Important:
– Size it too big - cost-efficiency reduces
– Size it too small - performance suffers
– Relatively simple to size
• Storage size (GB / IOPS) is Important:
– Size it too big - cost-efficiency reduces
– Size it too small - performance suffers
– Extremely difficult to plan and the potential
impact is huge
‐ Imagine a large table scan
I did some
benchmarking to find out
more
© 2017 Pythian 54
IO
LOTS OF LIMITS
https://calculator.s3.amazonaws.com/index.html
• Different limits apply based on
– Instance Type
– Storage Type
– Storage Size
– PIOPS
• Limits like:
– EBS Throughput (Mbps) per Instance
– EBS Throughput (Mbps) per EBS Volume
– Max IOPS per Instance
– Max IOPS per Volume
– P-IOPS you reserved and paid for - you know it :)
– IOPS differ depending on the size of the IO
I guess I'll have to do some
real benchmarking !
© 2017 Pythian 55
IO
STORAGE TYPES
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
Magnetic General Purpose SSD Provisioned IOPS
• Spinning disks
• Previous gen / obsolete
• Pay per Use + Size
• ~ 100 IOPS
• 1MiB IO size
• SSD
• Cheap & Low Latency
• 3 IOPS * 1GiB <= 10000
• Pay per Size
• Up to 160 MiB/s
• Accounted IO size =
32K*
• Burstable (3000 IOPS)
• SSD
• Expensive & Low
Latency
• 10 IOPS * 1GiB <=20000
• Pay per Size + PIOPS
• Up to 320 MiB/s (or up to
500MiB/s ???)
• Accounted IO size =
32K*
This is super - complicated, read this!
The documentation
is not very clear
PIOPS =
Provisioned IO per Second
© 2017 Pythian 56
• P-IOPS
• GP-SSD
• Magnetic
IO COST
STORAGE - WHAT ABOUT COST OF 120G AND 1200 IOPS?
https://calculator.s3.amazonaws.com/index.html
My favourite :)
Burstable!
No IOPS
guarantee
© 2017 Pythian 57
IO
STORAGE TYPES - THE DOCUMENTATION SAYS
While Provisioned IOPS (io1 storage) can work with I/O sizes up to 256 KB, most databases do not
typically use such large I/O. An I/O request smaller than 32 KB is handled as one I/O; for
example, 1000 16 KB I/O requests are treated the same as 1000 32 KB requests. I/O requests larger
than 32 KB consume more than one I/O request; Provisioned IOPS consumption is a linear
function of I/O request size above 32 KB. For example, a 48 KB I/O request consumes 1.5 I/O requests
of storage capacity; a 64 KB I/O request consumes 2 I/O requests, etc. … Note that I/O size does not
affect the IOPS values reported by the metrics, which are based solely on the number of I/Os over time.
This means that it is possible to consume all of the IOPS provisioned with fewer I/Os than specified if
the I/O sizes are larger than 32 KB. For example, a system provisioned for 5,000 IOPS can attain a
maximum of 2,500 IOPS with 64 KB I/O or 1,250 IOPS with 128 KB IO.
… and …
I/O requests larger than 32 KB are treated as more than one I/O for the purposes of PIOPS capacity
consumption. A 40 KB I/O request will consume 1.25 I/Os, a 48 KB request will consume 1.5 I/Os, a 64
KB request will consume 2 I/Os, and so on. The I/O request is not split into separate I/Os; all
I/O requests are presented to the storage device unchanged. For example, if the database
submits a 128 KB I/O request, it goes to the storage device as a single 128 KB I/O request, but it will
consume the same amount of PIOPS capacity as four 32 KB I/O requests.
© 2017 Pythian 58
• 2 Blog posts
– Investigating IO Performance on Amazon RDS for Oracle
– Investigating IO Performance on Amazon EC2
• Documentation is not telling everything
– Who from you have made career by writing documentation?
Bryn Llewellyn
IO BENCHMARKING
INTERESTING FINDINGS
© 2017 Pythian 59
IO BENCHMARKING
THE TESTS
• Crated a RDS / EC2 instance with a DB on it
• Created a large table T
• Run script:exec rdsadmin.rdsadmin_util.flush_buffer_cache;
alter system flush fuffer_cache;
alter session set "_serial_direct_read"=always;
alter session set db_file_multiblock_read_count=&1;
-- Run FTS against T table forever.
declare
n number:=1;
begin
while n>0
loop
select /*+ full(t) */ count(*) into n from t;
end loop;
end;
/
• Measure IOPS / Read Throughput from CloudWatch or iostat.
© 2017 Pythian 60
• Db.m4.4xlarge (256MB/s) / 100G io1 / 1000 IOPS
IO BENCHMARKING
RDS - PROVISIONED IOPS
© 2017 Pythian 61
• Db.m4.4xlarge (256MB/s) / 100G io1 / 1000 IOPS
IO BENCHMARKING
EC2 - PROVISIONED IOPS
© 2017 Pythian 62
• Db.m4.4xlarge (256MB/s) / 100G io1 / 1000 IOPS
IO BENCHMARKING
RDS - PROVISIONED IOPS
© 2017 Pythian 63
• Db.m4.4xlarge (256MB/s) / 100G io1 / 1000 IOPS
IO BENCHMARKING
EC2 - PROVISIONED IOPS
© 2017 Pythian 64
• Different instances / 100G io1 / 1000 IOPS / MBPS=128
IO BENCHMARKING
RDS - PROVISIONED IOPS
© 2017 Pythian 65
• Db.m4.4xlarge (256MB/s) / 100G gp2 (300 IOPS)
IO BENCHMARKING
RDS - GENERAL PURPOSE SSD
© 2017 Pythian 66
• Db.m4.4xlarge (256MB/s) / 100G gp2 (300 IOPS)
IO BENCHMARKING
EC2 - GENERAL PURPOSE SSD
© 2017 Pythian 67
• Db.m4.4xlarge (256MB/s) / 100G io1 / 1000 IOPS)
IO BENCHMARKING
RDS - GENERAL PURPOSE SSD
© 2017 Pythian 68
• Db.m4.4xlarge (256MB/s) / 100G io1 / 1000 IOPS)
IO BENCHMARKING
EC2 - GENERAL PURPOSE SSD
© 2017 Pythian 69
• RDS dynamically chooses the “physical” IO size based on the
size of the incoming IO request (16K, 32K, 64K, 128K)
• The IOPS limit applies to smaller physical IO sizes
– General Purpose SSD up to 16K
– Provisioned IOPS SSD up to 32K
• The Throughput limit applies to larger IO sizes
– You can get more IOPS than provisioned or the baseline is
– Unclear how the throughput limit is determined for gp2 when small
EBS volumes are used (benchmark more?)
• Bursting applies to IOPS (3000), and throughput (unclear)
IO BENCHMARKING
CONCLUSIONS
© 2017 Pythian 70
• ASM and 5* 1G (100 IOPS) General Purpose SSD
– The volume limits apply separately
– 500 IOPS baseline
– 800MB/s Throughput (limited by instance )
• Bursting? Yes please!
– 15000 Max IOPS burst performance!
– Lasts for ~2000 seconds, or more
– “Refills” when IO consumption is below baselines
IO BENCHMARKING
EC2 FLEXIBILITY
© 2017 Pythian 71
• Bursting performance:
– 48214 KB/s
– 6024 IO/s
IO BENCHMARKING
EC2 5*GP2 - 8K READS
[root@ip-172-31-21-241 ~]# iostat 5 500
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
xvda 0.00 0.00 0.00 0 0
xvdf 3.40 0.00 16.80 0 84
xvdg 1203.40 9632.00 1.60 48160 8
xvdi 1199.60 9596.80 0.00 47984 0
xvdj 1211.60 9691.20 3.20 48456 16
xvdk 1208.60 9670.40 0.00 48352 0
xvdl 1203.00 9625.60 3.20 48128 16
© 2017 Pythian 72
• Bursting performance:
– 245111 KB/s (Instance limit)
‐ It was impossible to reach this performance with just 1 volume
– 1925 IO/s
IO BENCHMARKING
EC2 5*GP2 - 1M READS
[root@ip-172-31-21-241 ~]# iostat 5 500
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
xvda 0.00 0.00 0.00 0 0
xvdf 3.40 0.00 16.80 0 84
xvdg 384.40 48820.80 0.80 244104 4
xvdi 385.80 49155.20 0.00 245776 0
xvdj 385.00 49014.40 6.40 245072 32
xvdk 386.80 49225.60 0.00 246128 0
xvdl 385.00 48897.60 6.40 244488 32
© 2017 Pythian 73
• Perfect IO config for Oracle DB on AWS?
– EC2
– Multiple General Purpose SSD volumes
– ASM
– BLOCK_SIZE = 32K
• No artificial IOPS limit
• Only instance throughput limit applies.
IO BENCHMARKING
CHEATING THE SYSTEM
© 2017 Pythian 74
Photo by Day Donaldson / CC BY 2.0
What if IO performance is still insufficient?Or you simply want to pay less.
© 2017 Pythian 75
INSTANCE STORE
WHAT IT IS?
Nonpersistent storage.
Local SSD
Some instances
also have NVMe
© 2017 Pythian 76
INSTANCE STORE
ORACLE SMART FLASH CACHE
• Environment
– R3.4xlarge
‐ 16 vCPU, 122G RAM, 320G SSD Instance store
– 12.1.0.2
– Sga_target = 36G
– Oracle Linux 6.x
– 1.5T database
– ASM: 5 * 500G gp2 (7500 baseline IOPS)
• Enabling Oracle Smart Flash Cache
– db_flash_cache_file = '/dev/xvdb2'
– db_flash_cache_size = '300G'
It's only 59MB/s
with 8K IOs!
© 2017 Pythian 77
ORACLE SMART FLASH CACHE
DOES IT HELP?
• 95% of potential IO is provided from OSFC!
• Performed ~3 times faster compared the EBS IO
© 2017 Pythian 78
SUMMARY
© 2017 Pythian 79
SUMMARY
• Oracle DB on AWS has it's nuances
– RDS and EC2 are very different
‐ Understand the trade-offs
‐ Choose the one that fits your requirements
– Think about “smart IO architecture“
• If you choose RDS
– Practice being an Oracle RDS DBA
– Test before running in production
– Test before changing stuff in production
– RDS is simple to use, but not suitable for larger workloads
‐ Consider Oracle DB on EC2
© 2017 Pythian 80
•
SUMMARY
Beware of the most
dangerous checkbox
in your career.
© 2017 Pythian 81
THANK YOU
@MarisDBA
elsins@pythian.com

More Related Content

What's hot

Lakehouse Analytics with Dremio
Lakehouse Analytics with DremioLakehouse Analytics with Dremio
Lakehouse Analytics with DremioDimitarMitov4
 
Big Data and the Cloud a Best Friend Story
Big Data and the Cloud a Best Friend StoryBig Data and the Cloud a Best Friend Story
Big Data and the Cloud a Best Friend StoryAmazon Web Services
 
Red hat ceph storage customer presentation
Red hat ceph storage customer presentationRed hat ceph storage customer presentation
Red hat ceph storage customer presentationRodrigo Missiaggia
 
Provision GCP resources using Terraform @ GDG Craiova
Provision GCP resources using Terraform @ GDG CraiovaProvision GCP resources using Terraform @ GDG Craiova
Provision GCP resources using Terraform @ GDG CraiovaPradeep Bhadani
 
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesKubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesSlideTeam
 
Ceph Intro and Architectural Overview by Ross Turk
Ceph Intro and Architectural Overview by Ross TurkCeph Intro and Architectural Overview by Ross Turk
Ceph Intro and Architectural Overview by Ross Turkbuildacloud
 
How to build a data lake with aws glue data catalog (ABD213-R) re:Invent 2017
How to build a data lake with aws glue data catalog (ABD213-R)  re:Invent 2017How to build a data lake with aws glue data catalog (ABD213-R)  re:Invent 2017
How to build a data lake with aws glue data catalog (ABD213-R) re:Invent 2017Amazon Web Services
 
Data Modeling and Relational to NoSQL
 Data Modeling and Relational to NoSQL  Data Modeling and Relational to NoSQL
Data Modeling and Relational to NoSQL DATAVERSITY
 
Data Catalog & ETL - Glue & Athena
Data Catalog & ETL - Glue & AthenaData Catalog & ETL - Glue & Athena
Data Catalog & ETL - Glue & AthenaAmazon Web Services
 
Kubernetes Monitoring & Best Practices
Kubernetes Monitoring & Best PracticesKubernetes Monitoring & Best Practices
Kubernetes Monitoring & Best PracticesAjeet Singh Raina
 
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...OpenStack Korea Community
 
Altinity Quickstart for ClickHouse
Altinity Quickstart for ClickHouseAltinity Quickstart for ClickHouse
Altinity Quickstart for ClickHouseAltinity Ltd
 
Implement SQL Server on an Azure VM
Implement SQL Server on an Azure VMImplement SQL Server on an Azure VM
Implement SQL Server on an Azure VMJames Serra
 
Building a Data Lake on AWS
Building a Data Lake on AWSBuilding a Data Lake on AWS
Building a Data Lake on AWSGary Stafford
 
VMware Tanzu Introduction
VMware Tanzu IntroductionVMware Tanzu Introduction
VMware Tanzu IntroductionVMware Tanzu
 
Databricks Fundamentals
Databricks FundamentalsDatabricks Fundamentals
Databricks FundamentalsDalibor Wijas
 
21- Self-Hosted Integration Runtime in Azure Data Factory.pptx
21- Self-Hosted Integration Runtime in Azure Data Factory.pptx21- Self-Hosted Integration Runtime in Azure Data Factory.pptx
21- Self-Hosted Integration Runtime in Azure Data Factory.pptxBRIJESH KUMAR
 
Streaming Real-time Data to Azure Data Lake Storage Gen 2
Streaming Real-time Data to Azure Data Lake Storage Gen 2Streaming Real-time Data to Azure Data Lake Storage Gen 2
Streaming Real-time Data to Azure Data Lake Storage Gen 2Carole Gunst
 
Azure Synapse Analytics Overview (r1)
Azure Synapse Analytics Overview (r1)Azure Synapse Analytics Overview (r1)
Azure Synapse Analytics Overview (r1)James Serra
 

What's hot (20)

Lakehouse Analytics with Dremio
Lakehouse Analytics with DremioLakehouse Analytics with Dremio
Lakehouse Analytics with Dremio
 
Big Data and the Cloud a Best Friend Story
Big Data and the Cloud a Best Friend StoryBig Data and the Cloud a Best Friend Story
Big Data and the Cloud a Best Friend Story
 
Red hat ceph storage customer presentation
Red hat ceph storage customer presentationRed hat ceph storage customer presentation
Red hat ceph storage customer presentation
 
Provision GCP resources using Terraform @ GDG Craiova
Provision GCP resources using Terraform @ GDG CraiovaProvision GCP resources using Terraform @ GDG Craiova
Provision GCP resources using Terraform @ GDG Craiova
 
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesKubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
 
Ceph Intro and Architectural Overview by Ross Turk
Ceph Intro and Architectural Overview by Ross TurkCeph Intro and Architectural Overview by Ross Turk
Ceph Intro and Architectural Overview by Ross Turk
 
How to build a data lake with aws glue data catalog (ABD213-R) re:Invent 2017
How to build a data lake with aws glue data catalog (ABD213-R)  re:Invent 2017How to build a data lake with aws glue data catalog (ABD213-R)  re:Invent 2017
How to build a data lake with aws glue data catalog (ABD213-R) re:Invent 2017
 
Data Modeling and Relational to NoSQL
 Data Modeling and Relational to NoSQL  Data Modeling and Relational to NoSQL
Data Modeling and Relational to NoSQL
 
Data Catalog & ETL - Glue & Athena
Data Catalog & ETL - Glue & AthenaData Catalog & ETL - Glue & Athena
Data Catalog & ETL - Glue & Athena
 
Azure Synapse Analytics
Azure Synapse AnalyticsAzure Synapse Analytics
Azure Synapse Analytics
 
Kubernetes Monitoring & Best Practices
Kubernetes Monitoring & Best PracticesKubernetes Monitoring & Best Practices
Kubernetes Monitoring & Best Practices
 
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
 
Altinity Quickstart for ClickHouse
Altinity Quickstart for ClickHouseAltinity Quickstart for ClickHouse
Altinity Quickstart for ClickHouse
 
Implement SQL Server on an Azure VM
Implement SQL Server on an Azure VMImplement SQL Server on an Azure VM
Implement SQL Server on an Azure VM
 
Building a Data Lake on AWS
Building a Data Lake on AWSBuilding a Data Lake on AWS
Building a Data Lake on AWS
 
VMware Tanzu Introduction
VMware Tanzu IntroductionVMware Tanzu Introduction
VMware Tanzu Introduction
 
Databricks Fundamentals
Databricks FundamentalsDatabricks Fundamentals
Databricks Fundamentals
 
21- Self-Hosted Integration Runtime in Azure Data Factory.pptx
21- Self-Hosted Integration Runtime in Azure Data Factory.pptx21- Self-Hosted Integration Runtime in Azure Data Factory.pptx
21- Self-Hosted Integration Runtime in Azure Data Factory.pptx
 
Streaming Real-time Data to Azure Data Lake Storage Gen 2
Streaming Real-time Data to Azure Data Lake Storage Gen 2Streaming Real-time Data to Azure Data Lake Storage Gen 2
Streaming Real-time Data to Azure Data Lake Storage Gen 2
 
Azure Synapse Analytics Overview (r1)
Azure Synapse Analytics Overview (r1)Azure Synapse Analytics Overview (r1)
Azure Synapse Analytics Overview (r1)
 

Viewers also liked

Oracle RAC Internals - The Cache Fusion Edition
Oracle RAC Internals - The Cache Fusion EditionOracle RAC Internals - The Cache Fusion Edition
Oracle RAC Internals - The Cache Fusion EditionMarkus Michalewicz
 
Database as a Service on the Oracle Database Appliance Platform
Database as a Service on the Oracle Database Appliance PlatformDatabase as a Service on the Oracle Database Appliance Platform
Database as a Service on the Oracle Database Appliance PlatformMaris Elsins
 
Disaster Recovery using AWS -Architecture blueprints
Disaster Recovery using AWS -Architecture blueprintsDisaster Recovery using AWS -Architecture blueprints
Disaster Recovery using AWS -Architecture blueprintsHarish Ganesan
 
(NET406) Deep Dive: AWS Direct Connect and VPNs
(NET406) Deep Dive: AWS Direct Connect and VPNs(NET406) Deep Dive: AWS Direct Connect and VPNs
(NET406) Deep Dive: AWS Direct Connect and VPNsAmazon Web Services
 
Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016Brendan Gregg
 
Cloud Instances Price Comparison: AWS vs Azure vs Google vs IBM
Cloud Instances Price Comparison: AWS vs Azure vs Google vs IBMCloud Instances Price Comparison: AWS vs Azure vs Google vs IBM
Cloud Instances Price Comparison: AWS vs Azure vs Google vs IBMRightScale
 
AWS 101: Cloud Computing Seminar (2012)
AWS 101: Cloud Computing Seminar (2012)AWS 101: Cloud Computing Seminar (2012)
AWS 101: Cloud Computing Seminar (2012)Amazon Web Services
 
Essential Capabilities of an IoT Cloud Platform - AWS Online Tech Talks
Essential Capabilities of an IoT Cloud Platform - AWS Online Tech TalksEssential Capabilities of an IoT Cloud Platform - AWS Online Tech Talks
Essential Capabilities of an IoT Cloud Platform - AWS Online Tech TalksAmazon Web Services
 
What is Artificial Intelligence | Artificial Intelligence Tutorial For Beginn...
What is Artificial Intelligence | Artificial Intelligence Tutorial For Beginn...What is Artificial Intelligence | Artificial Intelligence Tutorial For Beginn...
What is Artificial Intelligence | Artificial Intelligence Tutorial For Beginn...Edureka!
 

Viewers also liked (10)

Oracle RAC Internals - The Cache Fusion Edition
Oracle RAC Internals - The Cache Fusion EditionOracle RAC Internals - The Cache Fusion Edition
Oracle RAC Internals - The Cache Fusion Edition
 
Database as a Service on the Oracle Database Appliance Platform
Database as a Service on the Oracle Database Appliance PlatformDatabase as a Service on the Oracle Database Appliance Platform
Database as a Service on the Oracle Database Appliance Platform
 
AWS Direct Connect
AWS Direct ConnectAWS Direct Connect
AWS Direct Connect
 
Disaster Recovery using AWS -Architecture blueprints
Disaster Recovery using AWS -Architecture blueprintsDisaster Recovery using AWS -Architecture blueprints
Disaster Recovery using AWS -Architecture blueprints
 
(NET406) Deep Dive: AWS Direct Connect and VPNs
(NET406) Deep Dive: AWS Direct Connect and VPNs(NET406) Deep Dive: AWS Direct Connect and VPNs
(NET406) Deep Dive: AWS Direct Connect and VPNs
 
Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016
 
Cloud Instances Price Comparison: AWS vs Azure vs Google vs IBM
Cloud Instances Price Comparison: AWS vs Azure vs Google vs IBMCloud Instances Price Comparison: AWS vs Azure vs Google vs IBM
Cloud Instances Price Comparison: AWS vs Azure vs Google vs IBM
 
AWS 101: Cloud Computing Seminar (2012)
AWS 101: Cloud Computing Seminar (2012)AWS 101: Cloud Computing Seminar (2012)
AWS 101: Cloud Computing Seminar (2012)
 
Essential Capabilities of an IoT Cloud Platform - AWS Online Tech Talks
Essential Capabilities of an IoT Cloud Platform - AWS Online Tech TalksEssential Capabilities of an IoT Cloud Platform - AWS Online Tech Talks
Essential Capabilities of an IoT Cloud Platform - AWS Online Tech Talks
 
What is Artificial Intelligence | Artificial Intelligence Tutorial For Beginn...
What is Artificial Intelligence | Artificial Intelligence Tutorial For Beginn...What is Artificial Intelligence | Artificial Intelligence Tutorial For Beginn...
What is Artificial Intelligence | Artificial Intelligence Tutorial For Beginn...
 

Similar to Oracle Databases on AWS - Getting the Best Out of RDS and EC2

Migrating Your SQL Server Databases to Amazon RDS - DAT312 - re:Invent 2017
Migrating Your SQL Server Databases to Amazon RDS - DAT312 - re:Invent 2017Migrating Your SQL Server Databases to Amazon RDS - DAT312 - re:Invent 2017
Migrating Your SQL Server Databases to Amazon RDS - DAT312 - re:Invent 2017Amazon Web Services
 
What’s New in Amazon RDS for Open-Source and Commercial Databases:
What’s New in Amazon RDS for Open-Source and Commercial Databases: What’s New in Amazon RDS for Open-Source and Commercial Databases:
What’s New in Amazon RDS for Open-Source and Commercial Databases: Amazon Web Services
 
What’s New in Amazon RDS for Open-Source and Commercial Databases
What’s New in Amazon RDS for Open-Source and Commercial DatabasesWhat’s New in Amazon RDS for Open-Source and Commercial Databases
What’s New in Amazon RDS for Open-Source and Commercial DatabasesAmazon Web Services
 
DAT309_Best Practices for Migrating from Oracle and SQL Server to Amazon RDS
DAT309_Best Practices for Migrating from Oracle and SQL Server to Amazon RDSDAT309_Best Practices for Migrating from Oracle and SQL Server to Amazon RDS
DAT309_Best Practices for Migrating from Oracle and SQL Server to Amazon RDSAmazon Web Services
 
Running SQL Server on AWS | John McCormack | DataGrillen 2019
Running SQL Server on AWS | John McCormack | DataGrillen 2019Running SQL Server on AWS | John McCormack | DataGrillen 2019
Running SQL Server on AWS | John McCormack | DataGrillen 2019John McCormack
 
Best Practices for Running PostgreSQL on AWS - DAT314 - re:Invent 2017
Best Practices for Running PostgreSQL on AWS - DAT314 - re:Invent 2017Best Practices for Running PostgreSQL on AWS - DAT314 - re:Invent 2017
Best Practices for Running PostgreSQL on AWS - DAT314 - re:Invent 2017Amazon Web Services
 
Migrating and Running DBs on Amazon RDS for Oracle
Migrating and Running DBs on Amazon RDS for OracleMigrating and Running DBs on Amazon RDS for Oracle
Migrating and Running DBs on Amazon RDS for OracleMaris Elsins
 
[Pgday.Seoul 2018] AWS Cloud 환경에서 PostgreSQL 구축하기
[Pgday.Seoul 2018]  AWS Cloud 환경에서 PostgreSQL 구축하기[Pgday.Seoul 2018]  AWS Cloud 환경에서 PostgreSQL 구축하기
[Pgday.Seoul 2018] AWS Cloud 환경에서 PostgreSQL 구축하기PgDay.Seoul
 
Running Oracle EBS in the cloud (DOAG TECH17 edition)
Running Oracle EBS in the cloud (DOAG TECH17 edition)Running Oracle EBS in the cloud (DOAG TECH17 edition)
Running Oracle EBS in the cloud (DOAG TECH17 edition)Andrejs Prokopjevs
 
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...Amazon Web Services
 
Running Oracle Databases on Amazon RDS - DAT313 - re:Invent 2017
Running Oracle Databases on Amazon RDS - DAT313 - re:Invent 2017Running Oracle Databases on Amazon RDS - DAT313 - re:Invent 2017
Running Oracle Databases on Amazon RDS - DAT313 - re:Invent 2017Amazon Web Services
 
Building Complex Workloads in Cloud - AWS PS Summit Canberra
Building Complex Workloads in Cloud - AWS PS Summit CanberraBuilding Complex Workloads in Cloud - AWS PS Summit Canberra
Building Complex Workloads in Cloud - AWS PS Summit CanberraAmazon Web Services
 
[db tech showcase Tokyo 2017] C24:Taking off to the clouds. How to use DMS in...
[db tech showcase Tokyo 2017] C24:Taking off to the clouds. How to use DMS in...[db tech showcase Tokyo 2017] C24:Taking off to the clouds. How to use DMS in...
[db tech showcase Tokyo 2017] C24:Taking off to the clouds. How to use DMS in...Insight Technology, Inc.
 
Getting Started with Amazon Redshift
Getting Started with Amazon RedshiftGetting Started with Amazon Redshift
Getting Started with Amazon RedshiftAmazon Web Services
 
(DAT209) NEW LAUNCH! Introducing MariaDB on Amazon RDS
(DAT209) NEW LAUNCH! Introducing MariaDB on Amazon RDS(DAT209) NEW LAUNCH! Introducing MariaDB on Amazon RDS
(DAT209) NEW LAUNCH! Introducing MariaDB on Amazon RDSAmazon Web Services
 
RedisConf17 - Redis Enterprise: Continuous Availability, Unlimited Scaling, S...
RedisConf17 - Redis Enterprise: Continuous Availability, Unlimited Scaling, S...RedisConf17 - Redis Enterprise: Continuous Availability, Unlimited Scaling, S...
RedisConf17 - Redis Enterprise: Continuous Availability, Unlimited Scaling, S...Redis Labs
 
2017 09-27 big data- how to securely implement and automate on aws (1)
2017 09-27 big data- how to securely implement and automate on aws (1)2017 09-27 big data- how to securely implement and automate on aws (1)
2017 09-27 big data- how to securely implement and automate on aws (1)REAN Cloud
 
What's New in Amazon RDS for Open-Source & Commercial Databases
What's New in Amazon RDS for Open-Source & Commercial DatabasesWhat's New in Amazon RDS for Open-Source & Commercial Databases
What's New in Amazon RDS for Open-Source & Commercial DatabasesAmazon Web Services
 
[よくわかるAmazon Redshift in 大阪]Amazon Redshift最新情報と導入事例のご紹介
[よくわかるAmazon Redshift in 大阪]Amazon Redshift最新情報と導入事例のご紹介[よくわかるAmazon Redshift in 大阪]Amazon Redshift最新情報と導入事例のご紹介
[よくわかるAmazon Redshift in 大阪]Amazon Redshift最新情報と導入事例のご紹介Amazon Web Services Japan
 

Similar to Oracle Databases on AWS - Getting the Best Out of RDS and EC2 (20)

Migrating Your SQL Server Databases to Amazon RDS - DAT312 - re:Invent 2017
Migrating Your SQL Server Databases to Amazon RDS - DAT312 - re:Invent 2017Migrating Your SQL Server Databases to Amazon RDS - DAT312 - re:Invent 2017
Migrating Your SQL Server Databases to Amazon RDS - DAT312 - re:Invent 2017
 
What’s New in Amazon RDS for Open-Source and Commercial Databases:
What’s New in Amazon RDS for Open-Source and Commercial Databases: What’s New in Amazon RDS for Open-Source and Commercial Databases:
What’s New in Amazon RDS for Open-Source and Commercial Databases:
 
What’s New in Amazon RDS for Open-Source and Commercial Databases
What’s New in Amazon RDS for Open-Source and Commercial DatabasesWhat’s New in Amazon RDS for Open-Source and Commercial Databases
What’s New in Amazon RDS for Open-Source and Commercial Databases
 
DAT309_Best Practices for Migrating from Oracle and SQL Server to Amazon RDS
DAT309_Best Practices for Migrating from Oracle and SQL Server to Amazon RDSDAT309_Best Practices for Migrating from Oracle and SQL Server to Amazon RDS
DAT309_Best Practices for Migrating from Oracle and SQL Server to Amazon RDS
 
Running SQL Server on AWS | John McCormack | DataGrillen 2019
Running SQL Server on AWS | John McCormack | DataGrillen 2019Running SQL Server on AWS | John McCormack | DataGrillen 2019
Running SQL Server on AWS | John McCormack | DataGrillen 2019
 
Best Practices for Running PostgreSQL on AWS - DAT314 - re:Invent 2017
Best Practices for Running PostgreSQL on AWS - DAT314 - re:Invent 2017Best Practices for Running PostgreSQL on AWS - DAT314 - re:Invent 2017
Best Practices for Running PostgreSQL on AWS - DAT314 - re:Invent 2017
 
Migrating and Running DBs on Amazon RDS for Oracle
Migrating and Running DBs on Amazon RDS for OracleMigrating and Running DBs on Amazon RDS for Oracle
Migrating and Running DBs on Amazon RDS for Oracle
 
[Pgday.Seoul 2018] AWS Cloud 환경에서 PostgreSQL 구축하기
[Pgday.Seoul 2018]  AWS Cloud 환경에서 PostgreSQL 구축하기[Pgday.Seoul 2018]  AWS Cloud 환경에서 PostgreSQL 구축하기
[Pgday.Seoul 2018] AWS Cloud 환경에서 PostgreSQL 구축하기
 
Running Oracle EBS in the cloud (DOAG TECH17 edition)
Running Oracle EBS in the cloud (DOAG TECH17 edition)Running Oracle EBS in the cloud (DOAG TECH17 edition)
Running Oracle EBS in the cloud (DOAG TECH17 edition)
 
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
 
Running Oracle Databases on Amazon RDS - DAT313 - re:Invent 2017
Running Oracle Databases on Amazon RDS - DAT313 - re:Invent 2017Running Oracle Databases on Amazon RDS - DAT313 - re:Invent 2017
Running Oracle Databases on Amazon RDS - DAT313 - re:Invent 2017
 
Building Complex Workloads in Cloud - AWS PS Summit Canberra
Building Complex Workloads in Cloud - AWS PS Summit CanberraBuilding Complex Workloads in Cloud - AWS PS Summit Canberra
Building Complex Workloads in Cloud - AWS PS Summit Canberra
 
[db tech showcase Tokyo 2017] C24:Taking off to the clouds. How to use DMS in...
[db tech showcase Tokyo 2017] C24:Taking off to the clouds. How to use DMS in...[db tech showcase Tokyo 2017] C24:Taking off to the clouds. How to use DMS in...
[db tech showcase Tokyo 2017] C24:Taking off to the clouds. How to use DMS in...
 
Getting Started with Amazon Redshift
Getting Started with Amazon RedshiftGetting Started with Amazon Redshift
Getting Started with Amazon Redshift
 
(DAT209) NEW LAUNCH! Introducing MariaDB on Amazon RDS
(DAT209) NEW LAUNCH! Introducing MariaDB on Amazon RDS(DAT209) NEW LAUNCH! Introducing MariaDB on Amazon RDS
(DAT209) NEW LAUNCH! Introducing MariaDB on Amazon RDS
 
RedisConf17 - Redis Enterprise: Continuous Availability, Unlimited Scaling, S...
RedisConf17 - Redis Enterprise: Continuous Availability, Unlimited Scaling, S...RedisConf17 - Redis Enterprise: Continuous Availability, Unlimited Scaling, S...
RedisConf17 - Redis Enterprise: Continuous Availability, Unlimited Scaling, S...
 
2017 09-27 big data- how to securely implement and automate on aws (1)
2017 09-27 big data- how to securely implement and automate on aws (1)2017 09-27 big data- how to securely implement and automate on aws (1)
2017 09-27 big data- how to securely implement and automate on aws (1)
 
What's New in Amazon RDS for Open-Source & Commercial Databases
What's New in Amazon RDS for Open-Source & Commercial DatabasesWhat's New in Amazon RDS for Open-Source & Commercial Databases
What's New in Amazon RDS for Open-Source & Commercial Databases
 
Bases de datos en la nube con AWS
Bases de datos en la nube con AWSBases de datos en la nube con AWS
Bases de datos en la nube con AWS
 
[よくわかるAmazon Redshift in 大阪]Amazon Redshift最新情報と導入事例のご紹介
[よくわかるAmazon Redshift in 大阪]Amazon Redshift最新情報と導入事例のご紹介[よくわかるAmazon Redshift in 大阪]Amazon Redshift最新情報と導入事例のご紹介
[よくわかるAmazon Redshift in 大阪]Amazon Redshift最新情報と導入事例のご紹介
 

More from Maris Elsins

An AWS DMS Replication Journey from Oracle to Aurora MySQL
An AWS DMS Replication Journey from Oracle to Aurora MySQLAn AWS DMS Replication Journey from Oracle to Aurora MySQL
An AWS DMS Replication Journey from Oracle to Aurora MySQLMaris Elsins
 
Mining AWR V2 - Trend Analysis
Mining AWR V2 - Trend AnalysisMining AWR V2 - Trend Analysis
Mining AWR V2 - Trend AnalysisMaris Elsins
 
DB12c: All You Need to Know About the Resource Manager
DB12c: All You Need to Know About the Resource ManagerDB12c: All You Need to Know About the Resource Manager
DB12c: All You Need to Know About the Resource ManagerMaris Elsins
 
C15LV: Ins and Outs of Concurrent Processing Configuration in Oracle e-Busine...
C15LV: Ins and Outs of Concurrent Processing Configuration in Oracle e-Busine...C15LV: Ins and Outs of Concurrent Processing Configuration in Oracle e-Busine...
C15LV: Ins and Outs of Concurrent Processing Configuration in Oracle e-Busine...Maris Elsins
 
Mining the AWR: Alternative Methods for Identification of the Top SQLs (inclu...
Mining the AWR: Alternative Methods for Identification of the Top SQLs (inclu...Mining the AWR: Alternative Methods for Identification of the Top SQLs (inclu...
Mining the AWR: Alternative Methods for Identification of the Top SQLs (inclu...Maris Elsins
 
LVOUG meetup #2 - Forcing SQL Execution Plan Instability
LVOUG meetup #2 - Forcing SQL Execution Plan InstabilityLVOUG meetup #2 - Forcing SQL Execution Plan Instability
LVOUG meetup #2 - Forcing SQL Execution Plan InstabilityMaris Elsins
 
OUG Harmony 2012 - Using SQL Plan Baselines for Performance Testing
OUG Harmony 2012 -  Using SQL Plan Baselines for Performance TestingOUG Harmony 2012 -  Using SQL Plan Baselines for Performance Testing
OUG Harmony 2012 - Using SQL Plan Baselines for Performance TestingMaris Elsins
 
LVOUG meetup #4 - Case Study 10g to 11g
LVOUG meetup #4 - Case Study 10g to 11gLVOUG meetup #4 - Case Study 10g to 11g
LVOUG meetup #4 - Case Study 10g to 11gMaris Elsins
 
Surviving the Crisis With the Help of Oracle Database Resource Manager
Surviving the Crisis With the Help of Oracle Database Resource ManagerSurviving the Crisis With the Help of Oracle Database Resource Manager
Surviving the Crisis With the Help of Oracle Database Resource ManagerMaris Elsins
 
Concurrent Processing Performance Analysis for Apps DBAs
Concurrent Processing Performance Analysis for Apps DBAsConcurrent Processing Performance Analysis for Apps DBAs
Concurrent Processing Performance Analysis for Apps DBAsMaris Elsins
 
Simplify Consolidation with Oracle Database 12c
Simplify Consolidation with Oracle Database 12cSimplify Consolidation with Oracle Database 12c
Simplify Consolidation with Oracle Database 12cMaris Elsins
 
10 ways to improve your rman script
10 ways to improve your rman script10 ways to improve your rman script
10 ways to improve your rman scriptMaris Elsins
 
Wildcard13 - warmup slides for the "Roundtable discussion with Oracle Profess...
Wildcard13 - warmup slides for the "Roundtable discussion with Oracle Profess...Wildcard13 - warmup slides for the "Roundtable discussion with Oracle Profess...
Wildcard13 - warmup slides for the "Roundtable discussion with Oracle Profess...Maris Elsins
 
Whitepaper: Running Oracle e-Business Suite Database on Oracle Database Appli...
Whitepaper: Running Oracle e-Business Suite Database on Oracle Database Appli...Whitepaper: Running Oracle e-Business Suite Database on Oracle Database Appli...
Whitepaper: Running Oracle e-Business Suite Database on Oracle Database Appli...Maris Elsins
 
Running E-Business Suite Database on Oracle Database Appliance
Running E-Business Suite Database on Oracle Database ApplianceRunning E-Business Suite Database on Oracle Database Appliance
Running E-Business Suite Database on Oracle Database ApplianceMaris Elsins
 
Internals of concurent managers
Internals of concurent managersInternals of concurent managers
Internals of concurent managersMaris Elsins
 
Using SQL Plan Management for Performance Testing
Using SQL Plan Management for Performance TestingUsing SQL Plan Management for Performance Testing
Using SQL Plan Management for Performance TestingMaris Elsins
 

More from Maris Elsins (17)

An AWS DMS Replication Journey from Oracle to Aurora MySQL
An AWS DMS Replication Journey from Oracle to Aurora MySQLAn AWS DMS Replication Journey from Oracle to Aurora MySQL
An AWS DMS Replication Journey from Oracle to Aurora MySQL
 
Mining AWR V2 - Trend Analysis
Mining AWR V2 - Trend AnalysisMining AWR V2 - Trend Analysis
Mining AWR V2 - Trend Analysis
 
DB12c: All You Need to Know About the Resource Manager
DB12c: All You Need to Know About the Resource ManagerDB12c: All You Need to Know About the Resource Manager
DB12c: All You Need to Know About the Resource Manager
 
C15LV: Ins and Outs of Concurrent Processing Configuration in Oracle e-Busine...
C15LV: Ins and Outs of Concurrent Processing Configuration in Oracle e-Busine...C15LV: Ins and Outs of Concurrent Processing Configuration in Oracle e-Busine...
C15LV: Ins and Outs of Concurrent Processing Configuration in Oracle e-Busine...
 
Mining the AWR: Alternative Methods for Identification of the Top SQLs (inclu...
Mining the AWR: Alternative Methods for Identification of the Top SQLs (inclu...Mining the AWR: Alternative Methods for Identification of the Top SQLs (inclu...
Mining the AWR: Alternative Methods for Identification of the Top SQLs (inclu...
 
LVOUG meetup #2 - Forcing SQL Execution Plan Instability
LVOUG meetup #2 - Forcing SQL Execution Plan InstabilityLVOUG meetup #2 - Forcing SQL Execution Plan Instability
LVOUG meetup #2 - Forcing SQL Execution Plan Instability
 
OUG Harmony 2012 - Using SQL Plan Baselines for Performance Testing
OUG Harmony 2012 -  Using SQL Plan Baselines for Performance TestingOUG Harmony 2012 -  Using SQL Plan Baselines for Performance Testing
OUG Harmony 2012 - Using SQL Plan Baselines for Performance Testing
 
LVOUG meetup #4 - Case Study 10g to 11g
LVOUG meetup #4 - Case Study 10g to 11gLVOUG meetup #4 - Case Study 10g to 11g
LVOUG meetup #4 - Case Study 10g to 11g
 
Surviving the Crisis With the Help of Oracle Database Resource Manager
Surviving the Crisis With the Help of Oracle Database Resource ManagerSurviving the Crisis With the Help of Oracle Database Resource Manager
Surviving the Crisis With the Help of Oracle Database Resource Manager
 
Concurrent Processing Performance Analysis for Apps DBAs
Concurrent Processing Performance Analysis for Apps DBAsConcurrent Processing Performance Analysis for Apps DBAs
Concurrent Processing Performance Analysis for Apps DBAs
 
Simplify Consolidation with Oracle Database 12c
Simplify Consolidation with Oracle Database 12cSimplify Consolidation with Oracle Database 12c
Simplify Consolidation with Oracle Database 12c
 
10 ways to improve your rman script
10 ways to improve your rman script10 ways to improve your rman script
10 ways to improve your rman script
 
Wildcard13 - warmup slides for the "Roundtable discussion with Oracle Profess...
Wildcard13 - warmup slides for the "Roundtable discussion with Oracle Profess...Wildcard13 - warmup slides for the "Roundtable discussion with Oracle Profess...
Wildcard13 - warmup slides for the "Roundtable discussion with Oracle Profess...
 
Whitepaper: Running Oracle e-Business Suite Database on Oracle Database Appli...
Whitepaper: Running Oracle e-Business Suite Database on Oracle Database Appli...Whitepaper: Running Oracle e-Business Suite Database on Oracle Database Appli...
Whitepaper: Running Oracle e-Business Suite Database on Oracle Database Appli...
 
Running E-Business Suite Database on Oracle Database Appliance
Running E-Business Suite Database on Oracle Database ApplianceRunning E-Business Suite Database on Oracle Database Appliance
Running E-Business Suite Database on Oracle Database Appliance
 
Internals of concurent managers
Internals of concurent managersInternals of concurent managers
Internals of concurent managers
 
Using SQL Plan Management for Performance Testing
Using SQL Plan Management for Performance TestingUsing SQL Plan Management for Performance Testing
Using SQL Plan Management for Performance Testing
 

Recently uploaded

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 

Oracle Databases on AWS - Getting the Best Out of RDS and EC2

  • 1. © 2017 Pythian 1 Oracle Database on AWS Getting the Best out of RDS and EC2 MARIS ELSINS Lead Database Consultant
  • 2. © 2017 Pythian 2 Maris Elsins Lead Database Consultant At Pythian since 2011 http://bit.ly/getMOSPatchV2 Located in Riga, Latvia Oracle [Apps] DBA since 2005 Speaker at conferences since 2007 @MarisDBA elsins@pythian.com
  • 3. © 2017 Pythian 3 3 Membership Tiers • Oracle ACE Director • Oracle ACE • Oracle ACE Associate bit.ly/OracleACEProgram 500+ Technical Experts Helping Peers Globally Connect : Nominate yourself or someone you know: acenomination.oracle.com @oracleace Facebook.com/oracleaces oracle-ace_ww@oracle.com
  • 4. © 2017 Pythian 4 ABOUT PYTHIAN Pythian’s 400+ IT professionals help companies adopt and manage disruptive technologies to better compete
  • 5. © 2017 Pythian 5 Systems currently managed by Pythian EXPERIENCED Pythian experts in 35 countries GLOBAL Millennia of experience gathered and shared over 19 years EXPERTS 11,800 2400
  • 8. © 2017 Pythian 8 Can I comment or ask questions during the presentation? Photo by Day Donaldson / CC BY 2.0
  • 9. © 2017 Pythian 9 Photo by Day Donaldson / CC BY 2.0 Oracle Database on AWS Getting the BEST out of RDS and EC2 It's a nice title, but.... WTH* did you mean here? * WTH = WTF What do you expect?
  • 11. © 2017 Pythian 11 GOAL OF THE PRESENTATION • When someone (AWS) promises to do something for you (*aaS) – You have to accept how it's done, – Use some workarounds, – Be ready for trade-offs. • Provide information to help you choose wisely:
  • 12. © 2017 Pythian 12 NOT ON AGENDA • Basics of AWS • Why cloud and why AWS? • Choosing between cloud vendors • Terminology • The right way of ... I mean it! It's not included!
  • 13. © 2017 Pythian 13 OPTIONS ... for Oracle DBs on AWS
  • 14. © 2017 Pythian 14 DEFINITIONS FROM AWS DOCUMENTATION • RDS – Amazon Relational Database Service (Amazon RDS) is a web service that makes it easier to set up, operate, and scale a relational database in the cloud. It provides cost-efficient, resizable capacity for an industry-standard relational database and manages common database administration tasks. • EC2 – Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides secure, resizable compute capacity in the cloud. It is designed to make web-scale cloud computing easier for developers. They don't say they'll do it for you! ... it will just be easier :)
  • 15. © 2017 Pythian 15 *AAS FACTOR - WHAT IS MANAGED BY AWS? Application Security * Database * OS * Virtualization Servers * Storage * Networking * Data Center * RDS (PaaS) EC2 (IaaS) How important for you is to control these? Most of you have some ideas, but do you have enough info to take the decision?
  • 16. © 2017 Pythian 16 DATA CENTERS REGIONS AND AVAILABILITY ZONES https://aws.amazon.com/about-aws/global-infrastructure/
  • 17. © 2017 Pythian 17 • February 28, 2017 – S3 outage in US-EAST-1 Region – Whole Region was affected • Think about the DR between Regions – Of course, if you need that... DATA CENTERS
  • 18. © 2017 Pythian 18 • EC2 – You're responsible for the DR... – Use Data Guard if you like – Logical replication... • RDS – Multi-AZ – How to failover from one region to another? – Copy snapshots? What about archived logs? – Logical replication (DMS or GoldenGate)? Limitations .. DR BETWEEN REGIONS Multi-AZ is a synchronous physical replication between 2 AZs in the same region. Didn't we just loose all the simplicity?
  • 19. © 2017 Pythian 19 STORAGE • EBS volumes used in both cases – Network attached – Different types of IO Types ‐ General Purpose SSD (the cheap SSD) ‐ Provisioned IOPS SSD (the expensive SSD) ‐ Magnetic (spinning rust) • RDS vs EC2 – RDS sets up the specified type/size storage for you – EC2 - you set it up how you want it. ‐ i.e. ASM with multiple EC2 volumes.. In most cases it appears to be a single EBS volume behind it
  • 20. © 2017 Pythian 20 • EC2 gives you more instance types to choose from! • More options = good – There's no RAC* on AWS, so vertical scaling options are important – Choose a better balance between: ‐ CPU capacity ‐ Memory ‐ Instance Store SSD* SERVERS / VIRTUALIZATION
  • 21. © 2017 Pythian 21 SERVERS / VIRTUALIZATION • Current generation instances for RDS (23): – db.m4.10xlarge, db.m4.16xlarge, db.m4.2xlarge, db.m4.4xlarge, db.m4.large, db.m4.xlarge, db.r3.2xlarge, db.r3.4xlarge, db.r3.8xlarge, db.r3.large, db.r3.xlarge, db.r4.16xlarge, db.r4.2xlarge, db.r4.4xlarge, db.r4.8xlarge, db.r4.large, db.r4.xlarge, db.t2.2xlarge, db.t2.large, db.t2.medium, db.t2.micro, db.t2.small, db.t2.xlarge • Current generation instances for EC2 (74): – t2.nano, t2.micro, t2.small, t2.medium, t2.large, t2.xlarge, t2.2xlarge, m4.large, m4.xlarge, m4.2xlarge, m4.4xlarge, m4.10xlarge, m4.16xlarge, m3.medium, m3.large, m3.xlarge, m3.2xlarge, c5.large, c5.xlarge, c5.2xlarge, c5.4xlarge, c5.9xlarge, c5.18xlarge, c4.large, c4.xlarge, c4.2xlarge, c4.4xlarge, c4.8xlarge, c3.large, c3.xlarge, c3.2xlarge, c3.4xlarge, c3.8xlarge, f1.2xlarge, f1.16xlarge, g3.4xlarge, g3.8xlarge, g3.16xlarge, g2.2xlarge, g2.8xlarge, p2.xlarge, p2.8xlarge, p2.16xlarge, p3.2xlarge, p3.8xlarge, p3.16xlarge, r4.large, r4.xlarge, r4.2xlarge, r4.4xlarge, r4.8xlarge, r4.16xlarge, r3.large, r3.xlarge, r3.2xlarge, r3.4xlarge, r3.8xlarge, x1.16xlarge, x1e.32xlarge, x1.32xlarge, d2.xlarge, d2.2xlarge, d2.4xlarge, d2.8xlarge, i2.xlarge, i2.2xlarge, i2.4xlarge, i2.8xlarge, i3.large, i3.xlarge, i3.2xlarge, i3.4xlarge, i3.8xlarge, i3.16xlarge I3 instances = High I/O instances with NVMe Instance Store X1e Memory Optimized 128 vCPU / 4T RAM
  • 22. © 2017 Pythian 22 CHOOSING THE EC2 INSTANCE
  • 23. © 2017 Pythian 23 OS • The OS on the RDS is: – Some-kind-of-linux SQL> select dbms_utility.port_string from dual; PORT_STRING ------------------- x86_64/Linux 2.4.xx • The OS on the EC2 is: – My-kind-of-linux (OL / RHEL / etc) – This is really really important in some situations! – Access to the OS is useful ‐ install tools you need (Oswatcher/TFA) ‐ Obtain diagnostic info (i.a. Incident trace file from ADR) but what kind of linux?
  • 24. © 2017 Pythian 24 DATABASE What if I need a specific one-off? • EC2 - You install what you need and how you need • RDS - Predefined engine versions – 11gR2: ‐ 11.2.0.4.v1 - 11.2.0.4.v13 - ... – 12cR1: ‐ 12.1.0.1.v1 - 12.1.0.1.v6 (no new engines released) ‐ 12.1.0.2.v1 - 12.1.0.2.v9 - … – 12cR2: not available yet – Engine versions differ by included patches ‐ PSU / DST / GG / + critical one-offs – Old engines become unavailable
  • 25. © 2017 Pythian 25 DATABASE EDITIONS AND LICENSING ON RDS Edition License Included Bring Your Own License SE One ✓ ✓ SE Two ✓ ✓ SE ✓ EE ✓
  • 26. © 2017 Pythian 26 DATABASE LICENSING • Two important sources: – Licensing Oracle Software in the Cloud Computing Environment ‐ The rules for Amazon EC2 and RDS are: ○ 2* vCPUs == 1 Oracle Processor license /w hyper-threading ○ 1* vCPU == 1 Oracle Processor license w/o hyper-threading – Virtual Cores by Amazon EC2 and RDS DB Instance Type ‐ If vCPUs != Virtual Cores, then HT is enabled ‐ HT is ON for RDS (vCPU is a HyperThread) • When counting Oracle Processor license requirements in Authorized Cloud Environments, the Oracle Processor Core Factor Table is not applicable.
  • 27. © 2017 Pythian 27 SECURITY • RDS: – Standard VPC, SG, ... and other from AWS – Limited set of Option Groups for Oracle RDS: ‐ Oracle Transparent Data Encryption ‐ Oracle SSL ‐ Oracle Native Network Encryption ‐ Oracle Label Security • EC2 – Standard VPC, SG, ... and other from AWS – Manually configured set of Oracle features
  • 28. © 2017 Pythian 28 Photo by Day Donaldson / CC BY 2.0 Is RDS good for anything?
  • 29. © 2017 Pythian 29 IS RDS GOOD FOR ANYTHING? IT DEPENDS ON WHAT YOU EXPECT The process is very well tested and is reliable. It's done thousands of times • It's Managed by AWS – It removes lots of headache – Automates routine tasks ‐ Backup/Recovery ‐ Multi-AZ (Failover, Switchover, DR*) ‐ Patching and Upgrades ‐ Host Maintenance ‐ CloudWatch Monitoring and Alerting ‐ ... – But it also introduces ‐ Limitations ‐ Non-intuitive way of operation ‐ Things that are better to know before starting...
  • 30. © 2017 Pythian 30 Photo by Day Donaldson / CC BY 2.0 Let's talk about some RDS-specific things...
  • 31. © 2017 Pythian 31http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.html OPTION GROUPS OPTIONS THAT CAN BE ENABLED FOR RDS INSTANCES Option Option ID Oracle Application Express APEX, APEX-DEV Oracle Enterprise Manager OEM, OEM_AGENT Oracle Label Security OLS Oracle Native Network Encryption NATIVE_NETWORK_ENCRYPTION Oracle SSL SSL Oracle Statspack STATSPACK Oracle Time Zone Timezone Oracle Transparent Data Encryption TDE Oracle UTL_MAIL UTL_MAIL Oracle XML DB XMLDB ... ...
  • 32. © 2017 Pythian 32 • Option group – Defines the set of enabled options – can be assigned to multiple RDS instances • Default options groups: – “default:oracle-ee-11-2” and “default:oracle-ee-12-1” – has no options enabled by default – Can't be modified • Separate PROD, QA, TEST, … INTRODUCTION OPTION GROUPS http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.html
  • 33. © 2017 Pythian 33 INTRODUCTION PARAMETER GROUPS • Parameter Groups – Defines the init parameters ‐ Remember, you don't have to “/ as sysdba” ‐ How do I run “alter system …”? – Can be assigned to multiple instances – Some parameters are derived from instance settings ‐ i.e. DB_NAME={DbName} • Default parameter groups can't be changed – Even modifiable settings require reboot. – We used a workaround in few cases - a logon trigger http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.html
  • 34. © 2017 Pythian 34 • MEMORY_TARGET = {DBInstanceClassMemory*3/4} – AMM means hugepages are not used – Swapping is possible • • • • • • PARAMETER GROUP SOME DEFAULT PARAMETERS I FOUND INTERESTING … Swap usage MB Connection pool misconfiguration Ouch !
  • 35. © 2017 Pythian 35 PARAMETER GROUP SOME DEFAULT PARAMETERS I FOUND INTERESTING … Ouch ! • UNDO_RETENTION not set (the default is 900 seconds) • We're using parameter group “default.oracle-ee-11.2” • The client asked to refresh one schema in TEST (from PROD) – “expdp … consistent=y” – And suddenly ... ORA-31693: Table data object "XYZ"."BLAH_BLAH" failed to load/unload and is being skipped due to error: ORA-02354: error in exporting/importing data ORA-01555: snapshot too old: rollback segment number 82 with name "_SYSSMU82_540458409$" too small How to fix it?
  • 36. © 2017 Pythian 36 RUNNING AND MONITORING... LIFE WITHOUT "SYSDBA" http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.html • Only SQL*Net Connectivity • Master User – Limited set of privileges • Common DBA Tasks for Oracle DB Instances – Review them carefully, and prepare ! – Some tasks are done differently ... ‐ Killing a session ○ exec RDSADMIN.RDSADMIN_UTIL.KILL(..., ..., ...); ‐ Creating an AWR report (with no access to the OH) ○ DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_TEXT – rdsadmin.rdsadmin_util
  • 37. © 2017 Pythian 37 • No host access – Prevents setting up some types of monitoring ‐ Cron jobs (everyone's favourite!) ‐ Certain 3rd party monitoring agents • What's available? – Cloudwatch monitoring + alerts ‐ 1 minute interval / difficult to correlate different metrics – Enhanced monitoring (no alerts) ‐ 1s - 60s monitoring interval – OEM Option (11g DB Control / Database Express 12c ) – OEM_AGENT Option !! (Announced Sep, 2016), supports 13c too! – Custom monitoring over SQL*Net (Pythian's Avail) RUNNING AND MONITORING... MONITORING http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.html
  • 38. © 2017 Pythian 38 RUNNING AND MONITORING... Monitoring - CloudWatch RDS / Monitoring Correlating graphs is difficult
  • 39. © 2017 Pythian 39 RUNNING AND MONITORING... Monitoring - Enhanced Monitoring
  • 40. © 2017 Pythian 40 RUNNING AND MONITORING... Monitoring - CloudWatch RDS / Create Alarm Not always simple to integrate with ticketing systems
  • 41. © 2017 Pythian 41 RUNNING AND MONITORING... Monitoring - 11g Database Control (OEM)
  • 42. © 2017 Pythian 42 RUNNING AND MONITORING... Monitoring - 12c Database Express (OEM)
  • 43. © 2017 Pythian 43 RUNNING AND MONITORING... Monitoring - OEM_AGENT I haven't tried this yet, but knowing the DB Express 12 is more limited than DB Control - It's a good thing we have it now! Standalone EM 12c CC is required!
  • 44. © 2017 Pythian 44 AWS RDS FOR ORACLE EXAMPLE 1: LATENCY ISSUES • In the middle of the migration project – One database was moved to Oracle RDS – Another interfacing system remained on-premise • A batch job runs a LOT SLOWER – Tracing reveals row-by-row processing between 2 DBs – A local DB <-> AWS RDS – Latency issue, each network round-trip took a lot longer. https://calculator.s3.amazonaws.com/index.html
  • 45. © 2017 Pythian 45 AWS RDS FOR ORACLE EXAMPLE 2: ACCESS TO DATA • A tiny OBIEE Database on RDS (40G) – Db.m4.xlarge – 4 vCPU + 16G RAM • The problem – IO slowness – Beyond point where IOPS is reasonable to increase to • The Solution – Upgrade to Db.r3.xlarge (memory optimized) – 4 vCPU + 30.5 RAM – Set parameter _serial_direct_reads=never https://calculator.s3.amazonaws.com/index.html
  • 46. © 2017 Pythian 46 • A sudden execution plan change for a popular query AWS RDS FOR ORACLE EXAMPLE 3: A QUERY PLAN CHANGE https://calculator.s3.amazonaws.com/index.html
  • 47. © 2017 Pythian 47 -- Create the procedure that will be used to collect the execution plans create or replace procedure PERF.XXSTABILITY_CAPTURE_PLANS is cur sys_refcursor; cursor clist is with raw_sqlids as (select sql_id from v$sqlarea where sql_id in (select sql_id from v$active_session_history where sample_time>=sysdate-1/24 and sql_plan_hash_value>0 and machine like '%-cool-app0%') and plan_hash_value>0 and executions>2 union select sql_id from v$sqlarea where sql_id in (select sql_id from v$open_cursor where sid in (select sid from v$session where machine like '%-cool-app0%')) and plan_hash_value>0 and executions>2 and parsing_schema_name not in ('ANONYMOUS','APEX_030200','APEX_040000','APEX_SSO','APPQOSSYS', 'CTXSYS','DBSNMP','DIP','EXFSYS','FLOWS_FILES','MDSYS','OLAPSYS','ORACLE_OCM','ORDDATA','ORDPLUGINS','ORDSYS','OUTLN','OWBSYS ','SI_INFORMTN_SCHEMA','SQLTXADMIN','SQLTXPLAIN','SYS','SYSMAN','SYSTEM','TRCANLZR','WMSYS','XDB','XS$NULL')), sqlids as (select distinct ''''||sql_id||'''' sql_id, trunc((rownum-1)/200) rn from raw_sqlids) select listagg(s.sql_id,',') within group (order by s.sql_id) as sql_id_filter from sqlids s group by s.rn; c clist%rowtype; BEGIN for c in clist loop OPEN cur FOR SELECT VALUE(P) FROM table(dbms_sqltune.select_cursor_cache(basic_filter=>'sql_id in('||c.sql_id_filter||')', attribute_list=>'ALL')) P; DBMS_SQLTUNE.LOAD_SQLSET(load_option=>'MERGE',sqlset_name => 'XXSTABILITY_EXECUTION_PLANS', populate_cursor => cur); CLOSE cur; end loop; Commit; END; / AWS RDS FOR ORACLE EXAMPLE 3: PRESERVING GOOD EXECUTION PLANS
  • 48. © 2017 Pythian 48 -- Create the Scheduler Job which will run on every hour's 47th minute Begin Dbms_scheduler.create_job (job_name => 'COLLECT_XXSTABILITY_PLANS', job_type => 'STORED_PROCEDURE', job_action => 'PERF.XXSTABILITY_CAPTURE_PLANS', start_date => SYSDATE, repeat_interval => 'FREQ=HOURLY; INTERVAL=1; BYMINUTE=47;', enabled => TRUE); End; / -- Loading the baseline from SELECT_SQLSET for a specific sql_id and plan VARIABLE cnt NUMBER EXECUTE :cnt := DBMS_SPM.LOAD_PLANS_FROM_SQLSET( - sqlset_name => 'XXSTABILITY_EXECUTION_PLANS', - basic_filter => 'sql_id=''dtzsc12fbbjk2'' and plan_hash_value=2896891279'); AWS RDS FOR ORACLE EXAMPLE 3: PRESERVING EXECUTION PLANS
  • 49. © 2017 Pythian 49 AWS RDS FOR ORACLE EXAMPLE 4: COMBINED MAINTENANCE • Combined maintenance - 30 minutes allocated – Take a snapshot – Change the instance size • Oops! – Snapshot takes just few seconds ‐ … before it's copied to S3 – “Creating Snapshot” for 45 minutes https://calculator.s3.amazonaws.com/index.html
  • 50. © 2017 Pythian 50 Photo by Day Donaldson / CC BY 2.0 Is RDS good for anything?
  • 51. © 2017 Pythian 51 IS RDS GOOD FOR ANYTHING? RDS IS VERY GOOD IF... • Your requirements match the RDS' capabilities • You're aware of the trade-offs and limitations • You have access to the "Know-how"! • You test the planned activities
  • 52. © 2017 Pythian 52 I/O ... how it really behaves.
  • 53. © 2017 Pythian 53 SIZING RDS CORRECTLY IT'S NOT VERY SIMPLE... • Instance size (CPU / RAM) is Important: – Size it too big - cost-efficiency reduces – Size it too small - performance suffers – Relatively simple to size • Storage size (GB / IOPS) is Important: – Size it too big - cost-efficiency reduces – Size it too small - performance suffers – Extremely difficult to plan and the potential impact is huge ‐ Imagine a large table scan I did some benchmarking to find out more
  • 54. © 2017 Pythian 54 IO LOTS OF LIMITS https://calculator.s3.amazonaws.com/index.html • Different limits apply based on – Instance Type – Storage Type – Storage Size – PIOPS • Limits like: – EBS Throughput (Mbps) per Instance – EBS Throughput (Mbps) per EBS Volume – Max IOPS per Instance – Max IOPS per Volume – P-IOPS you reserved and paid for - you know it :) – IOPS differ depending on the size of the IO I guess I'll have to do some real benchmarking !
  • 55. © 2017 Pythian 55 IO STORAGE TYPES http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html Magnetic General Purpose SSD Provisioned IOPS • Spinning disks • Previous gen / obsolete • Pay per Use + Size • ~ 100 IOPS • 1MiB IO size • SSD • Cheap & Low Latency • 3 IOPS * 1GiB <= 10000 • Pay per Size • Up to 160 MiB/s • Accounted IO size = 32K* • Burstable (3000 IOPS) • SSD • Expensive & Low Latency • 10 IOPS * 1GiB <=20000 • Pay per Size + PIOPS • Up to 320 MiB/s (or up to 500MiB/s ???) • Accounted IO size = 32K* This is super - complicated, read this! The documentation is not very clear PIOPS = Provisioned IO per Second
  • 56. © 2017 Pythian 56 • P-IOPS • GP-SSD • Magnetic IO COST STORAGE - WHAT ABOUT COST OF 120G AND 1200 IOPS? https://calculator.s3.amazonaws.com/index.html My favourite :) Burstable! No IOPS guarantee
  • 57. © 2017 Pythian 57 IO STORAGE TYPES - THE DOCUMENTATION SAYS While Provisioned IOPS (io1 storage) can work with I/O sizes up to 256 KB, most databases do not typically use such large I/O. An I/O request smaller than 32 KB is handled as one I/O; for example, 1000 16 KB I/O requests are treated the same as 1000 32 KB requests. I/O requests larger than 32 KB consume more than one I/O request; Provisioned IOPS consumption is a linear function of I/O request size above 32 KB. For example, a 48 KB I/O request consumes 1.5 I/O requests of storage capacity; a 64 KB I/O request consumes 2 I/O requests, etc. … Note that I/O size does not affect the IOPS values reported by the metrics, which are based solely on the number of I/Os over time. This means that it is possible to consume all of the IOPS provisioned with fewer I/Os than specified if the I/O sizes are larger than 32 KB. For example, a system provisioned for 5,000 IOPS can attain a maximum of 2,500 IOPS with 64 KB I/O or 1,250 IOPS with 128 KB IO. … and … I/O requests larger than 32 KB are treated as more than one I/O for the purposes of PIOPS capacity consumption. A 40 KB I/O request will consume 1.25 I/Os, a 48 KB request will consume 1.5 I/Os, a 64 KB request will consume 2 I/Os, and so on. The I/O request is not split into separate I/Os; all I/O requests are presented to the storage device unchanged. For example, if the database submits a 128 KB I/O request, it goes to the storage device as a single 128 KB I/O request, but it will consume the same amount of PIOPS capacity as four 32 KB I/O requests.
  • 58. © 2017 Pythian 58 • 2 Blog posts – Investigating IO Performance on Amazon RDS for Oracle – Investigating IO Performance on Amazon EC2 • Documentation is not telling everything – Who from you have made career by writing documentation? Bryn Llewellyn IO BENCHMARKING INTERESTING FINDINGS
  • 59. © 2017 Pythian 59 IO BENCHMARKING THE TESTS • Crated a RDS / EC2 instance with a DB on it • Created a large table T • Run script:exec rdsadmin.rdsadmin_util.flush_buffer_cache; alter system flush fuffer_cache; alter session set "_serial_direct_read"=always; alter session set db_file_multiblock_read_count=&1; -- Run FTS against T table forever. declare n number:=1; begin while n>0 loop select /*+ full(t) */ count(*) into n from t; end loop; end; / • Measure IOPS / Read Throughput from CloudWatch or iostat.
  • 60. © 2017 Pythian 60 • Db.m4.4xlarge (256MB/s) / 100G io1 / 1000 IOPS IO BENCHMARKING RDS - PROVISIONED IOPS
  • 61. © 2017 Pythian 61 • Db.m4.4xlarge (256MB/s) / 100G io1 / 1000 IOPS IO BENCHMARKING EC2 - PROVISIONED IOPS
  • 62. © 2017 Pythian 62 • Db.m4.4xlarge (256MB/s) / 100G io1 / 1000 IOPS IO BENCHMARKING RDS - PROVISIONED IOPS
  • 63. © 2017 Pythian 63 • Db.m4.4xlarge (256MB/s) / 100G io1 / 1000 IOPS IO BENCHMARKING EC2 - PROVISIONED IOPS
  • 64. © 2017 Pythian 64 • Different instances / 100G io1 / 1000 IOPS / MBPS=128 IO BENCHMARKING RDS - PROVISIONED IOPS
  • 65. © 2017 Pythian 65 • Db.m4.4xlarge (256MB/s) / 100G gp2 (300 IOPS) IO BENCHMARKING RDS - GENERAL PURPOSE SSD
  • 66. © 2017 Pythian 66 • Db.m4.4xlarge (256MB/s) / 100G gp2 (300 IOPS) IO BENCHMARKING EC2 - GENERAL PURPOSE SSD
  • 67. © 2017 Pythian 67 • Db.m4.4xlarge (256MB/s) / 100G io1 / 1000 IOPS) IO BENCHMARKING RDS - GENERAL PURPOSE SSD
  • 68. © 2017 Pythian 68 • Db.m4.4xlarge (256MB/s) / 100G io1 / 1000 IOPS) IO BENCHMARKING EC2 - GENERAL PURPOSE SSD
  • 69. © 2017 Pythian 69 • RDS dynamically chooses the “physical” IO size based on the size of the incoming IO request (16K, 32K, 64K, 128K) • The IOPS limit applies to smaller physical IO sizes – General Purpose SSD up to 16K – Provisioned IOPS SSD up to 32K • The Throughput limit applies to larger IO sizes – You can get more IOPS than provisioned or the baseline is – Unclear how the throughput limit is determined for gp2 when small EBS volumes are used (benchmark more?) • Bursting applies to IOPS (3000), and throughput (unclear) IO BENCHMARKING CONCLUSIONS
  • 70. © 2017 Pythian 70 • ASM and 5* 1G (100 IOPS) General Purpose SSD – The volume limits apply separately – 500 IOPS baseline – 800MB/s Throughput (limited by instance ) • Bursting? Yes please! – 15000 Max IOPS burst performance! – Lasts for ~2000 seconds, or more – “Refills” when IO consumption is below baselines IO BENCHMARKING EC2 FLEXIBILITY
  • 71. © 2017 Pythian 71 • Bursting performance: – 48214 KB/s – 6024 IO/s IO BENCHMARKING EC2 5*GP2 - 8K READS [root@ip-172-31-21-241 ~]# iostat 5 500 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn xvda 0.00 0.00 0.00 0 0 xvdf 3.40 0.00 16.80 0 84 xvdg 1203.40 9632.00 1.60 48160 8 xvdi 1199.60 9596.80 0.00 47984 0 xvdj 1211.60 9691.20 3.20 48456 16 xvdk 1208.60 9670.40 0.00 48352 0 xvdl 1203.00 9625.60 3.20 48128 16
  • 72. © 2017 Pythian 72 • Bursting performance: – 245111 KB/s (Instance limit) ‐ It was impossible to reach this performance with just 1 volume – 1925 IO/s IO BENCHMARKING EC2 5*GP2 - 1M READS [root@ip-172-31-21-241 ~]# iostat 5 500 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn xvda 0.00 0.00 0.00 0 0 xvdf 3.40 0.00 16.80 0 84 xvdg 384.40 48820.80 0.80 244104 4 xvdi 385.80 49155.20 0.00 245776 0 xvdj 385.00 49014.40 6.40 245072 32 xvdk 386.80 49225.60 0.00 246128 0 xvdl 385.00 48897.60 6.40 244488 32
  • 73. © 2017 Pythian 73 • Perfect IO config for Oracle DB on AWS? – EC2 – Multiple General Purpose SSD volumes – ASM – BLOCK_SIZE = 32K • No artificial IOPS limit • Only instance throughput limit applies. IO BENCHMARKING CHEATING THE SYSTEM
  • 74. © 2017 Pythian 74 Photo by Day Donaldson / CC BY 2.0 What if IO performance is still insufficient?Or you simply want to pay less.
  • 75. © 2017 Pythian 75 INSTANCE STORE WHAT IT IS? Nonpersistent storage. Local SSD Some instances also have NVMe
  • 76. © 2017 Pythian 76 INSTANCE STORE ORACLE SMART FLASH CACHE • Environment – R3.4xlarge ‐ 16 vCPU, 122G RAM, 320G SSD Instance store – 12.1.0.2 – Sga_target = 36G – Oracle Linux 6.x – 1.5T database – ASM: 5 * 500G gp2 (7500 baseline IOPS) • Enabling Oracle Smart Flash Cache – db_flash_cache_file = '/dev/xvdb2' – db_flash_cache_size = '300G' It's only 59MB/s with 8K IOs!
  • 77. © 2017 Pythian 77 ORACLE SMART FLASH CACHE DOES IT HELP? • 95% of potential IO is provided from OSFC! • Performed ~3 times faster compared the EBS IO
  • 78. © 2017 Pythian 78 SUMMARY
  • 79. © 2017 Pythian 79 SUMMARY • Oracle DB on AWS has it's nuances – RDS and EC2 are very different ‐ Understand the trade-offs ‐ Choose the one that fits your requirements – Think about “smart IO architecture“ • If you choose RDS – Practice being an Oracle RDS DBA – Test before running in production – Test before changing stuff in production – RDS is simple to use, but not suitable for larger workloads ‐ Consider Oracle DB on EC2
  • 80. © 2017 Pythian 80 • SUMMARY Beware of the most dangerous checkbox in your career.
  • 81. © 2017 Pythian 81 THANK YOU @MarisDBA elsins@pythian.com