SlideShare una empresa de Scribd logo
1 de 63
Descargar para leer sin conexión
© 2016 Pythian 1
Migrating and Running DBs
on Amazon RDS for Oracle
MARIS ELSINS
Lead Database Consultant
© 2016 Pythian 2
Maris Elsins
Lead Database Consultant
At Pythian since 2011
Located in Riga, Latvia
Oracle [Apps] DBA since 2005
Speaker at conferences since 2007
@MarisDBA elsins@pythian.com
http://bit.ly/getMOSPatchV2
© 2016 Pythian 3
Migrating and Running DBs on
Amazon RDS for Oracle
Mining AWR V2: Trend Analysis
Today: 17:55, Hall 9
© 2016 Pythian 4
© 2016 Pythian 5
ABOUT PYTHIAN
Pythian’s 400+ IT professionals
help companies adopt and
manage disruptive technologies
to better compete
© 2016 Pythian 6
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
© 2016 Pythian 7
• Intro...
• Sizing...
• Migrating...
• Running and Monitoring...
• When things go bad...
AGENDA
© 2016 Pythian 8
… these are just few of my
observations
• Why Cloud?
• Choosing between cloud vendors
• Terminology
• Complete pricing guide
• The right way to do anything
I mean it!
NOT ON AGENDA
© 2016 Pythian 9
DISCLAIMER
OK, YOU CAUGHT ME ...
I may have a few “Ouch!” slides in
the presentation, that probably will
make you think Oracle RDS is no
good.
It's not the intention.
I honestly think Oracle RDS is a
great service for the appropriate
workload, and if it's done right.
© 2016 Pythian 10
BEFORE WE START ...
Can I comment or ask questions
during the presentation?
Photo by Day Donaldson / CC BY 2.0
© 2016 Pythian 11
INTRODUCTION
... to RDS for Oracle
© 2016 Pythian 12
AWS RDS FOR ORACLE
INTRODUCTION - REGIONS
https://aws.amazon.com/about-aws/global-infrastructure/
© 2016 Pythian 13
INTRODUCTION
WHAT IS RDS
• Relational Database Service
• PaaS (DBaaS)
• Managed by AWS
– Setup / Provisioning
– Backups
– Maintenance / Patching
– Alerting
– DR
– ...
• SSH Access / SQL*Net connectivity
© 2016 Pythian 14
• 11gR2:
– 11.2.0.2.v3 - 11.2.0.2.v7
– 11.2.0.3.v1 - 11.2.0.3.v4
– 11.2.0.4.v1 - 11.2.0.4.v9
• 12cR1:
– 12.1.0.1.v1 - 12.1.0.1.v6
– 12.1.0.2.v1 - 12.1.0.2.v5
• Engine versions differ by included patches
– PSU / DST / GG / + critical one-offs
INTRODUCTION
DB ENGINES
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.PatchComposition.html
What if I need a specific
one-off?
© 2016 Pythian 15
INTRODUCTION
DATABASE EDITIONS
https://aws.amazon.com/rds/oracle/details/
Edition License Included Bring Your Own License
SE One ✓ ✓
SE Two ✓ ✓
SE ✓
EE ✓
© 2016 Pythian 16
INTRODUCTION
LICENSING
• Two important sources:
– Licensing Oracle Software in the Cloud Computing Environment
– Virtual Cores by Amazon EC2 and RDS DB Instance Type
• Virtual cores != Virtual CPUs (vCPUs)
– vCPU is actually a HyperThread
• Core Factor of 0.5 applies to "Virtual cores"
• Max sizing for SE:
– SE: 16 Virtual Cores | 32 vCPU
– SE: One/Two: 8 Virtual Cores | 16 vCPU
© 2016 Pythian 17
INTRODUCTION
LICENSING EXAMPLE
• Oracle EE
• 16 vCPU = 8 virtual cores
• 8 virtual cores * 0.5 (core factor) = 4 Licences
© 2016 Pythian 18
INTRODUCTION
INSTANCE CLASSES AND TYPES
https://aws.amazon.com/rds/oracle/details/
• Instance Classes (available for RDS)
– Standard - Latest Generation (db.m4.{type})
– Standard - Previous Generation (db.m3.{type})
– Memory Optimized - Current Generation (db.r3.{type})
– Micro instances (db.t1.{type})
• Types: micro - small - ... - xlarge - ... - 10xlarge
– vCPUs: 1 - 40
– Memory: 1 - 160 GiB
– PIOPS-Optimized: Yes / No
– Network Performance: Low to Moderate - 10 Gigabit
Pay attention to these
when choosing the
storage type!
© 2016 Pythian 19
INTRODUCTION
STORAGE TYPES
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.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
• Pay per Size
• Up to 160 MiB/s
• Accounted IO size = 32K
• Burstable
• SSD
• Expensive & Low
Latency
• 10 IOPS * 1GiB
• Pay per Size + PIOPS
• Up to 500 MiB/s (or
320MiB/s ???)
• Accounted IO size = 32K
This is super - complicated, read this!
The documentation
is not very clear
PIOPS =
Provisioned IO per Second
© 2016 Pythian 20
• P-IOPS
• GP-SSD
• Magnetic
INTRODUCTION
STORAGE - WHAT ABOUT COST OF 120G AND 1200 IOPS?
https://calculator.s3.amazonaws.com/index.html
My favourite :)
Burstable!
No IOPS
guarantee
© 2016 Pythian 21
INTRODUCTION
STORAGE-RELATED LIMITATIONS
https://calculator.s3.amazonaws.com/index.html
• Different limits apply based on
– Instance Type
– Storage Type
– Storage Size
– PIOPS
• For example:
– EBS Throughput (Mbps) per Instance
– EBS Throughput (Mbps) per EBS Volume
– Max IOPS per Instance
– Max IOPS per Volume
– PIOPS you reserved and paid for
– IOPS differ depending on the size of the IO
I guess I'll have to do some
real benchmarking !
© 2016 Pythian 22
INTRODUCTION
OPTION GROUPS - OPTIONS
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.html
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
© 2016 Pythian 23
• 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
© 2016 Pythian 24
INTRODUCTION
PARAMETER GROUPS
• Parameter Groups
– Defines the init parameters
• Remember, you don't have access 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
© 2016 Pythian 25
• MEMORY_TARGET = {DBInstanceClassMemory*3/4}
– AMM means hugepages are not used
– Swapping is possible
AWS RDS FOR ORACLE
SOME PARAMETERS I FOUND INTERESTING …
Swap usage MB
Connection pool
misconfiguration
Ouch !
© 2016 Pythian 26
• DB_FILE_MULTIBLOCK_READ_COUNT not set (128)
– IO size up to 1MiB issues by the DB
AWS RDS FOR ORACLE
SOME PARAMETERS I FOUND INTERESTING …
Ouch !
A single 1MiB-IO (128 data blocks) from the DB ...
… Is handled by 4 256K-IOs on SSD and ...
… Is accounted as 32 32K-IOs by AWS
Used for IOPS calculation
By AWS
© 2016 Pythian 27
• UNDO_RETENTION not set (the default is 900 seconds)
• We're using parameter group “default.oracle-ee-11.2”
AWS RDS FOR ORACLE
SOME PARAMETERS I FOUND INTERESTING …
Ouch !
• Suddenly:
– “expdp … consistent=y”
– 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
© 2016 Pythian 28
SIZING...
the Oracle RDS
© 2016 Pythian 29
SIZING IT 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
• Storage size (GB / IOPS) is Important:
– Size it too big - cost-efficiency reduces
– Size it too small - performance suffers
© 2016 Pythian 30
• How to check the current usage?
– sar - CPU/RAM/IO ?
• 10 minute intervals for past workloads
• Difficult to derive IOPS info
– SGA sizing
– iostat ?
– data from storage?
• What if it's not 1-to-1 move to RDS?
– 1DB with 20+ schemas -> 4 RDS instances?
SIZING IT CORRECTLY
TOOLS
Peak load?
© 2016 Pythian 31
• CPU is simple
– sar 1 99999 > cpu_usage.lst
• Provides CPU usage % for every issue
– ASH ?
• Probably still not granular enough (binary indicator)
• Good to for deriving the proportions of CPU usage
– v$sesstat / v$sysstat could be sampled too
• … we didn't go this way ...
SIZING IT CORRECTLY
CPU IS SIMPLE
© 2016 Pythian 32
SIZING IT CORRECTLY
CPU DISTRIBUTION AMONG SCHEMAS
• Using ASH to derive max CPU usage per hour by
schema
– (but again it ignores “spikes”)
select username, avg(CPUTIME_S), avg(DBTIME_S), avg(CPUTIME_PCT_OF_4CPU), avg(DBTIME_PCT_OF_4CPU),
min(CPUTIME_S), min(DBTIME_S), min(CPUTIME_PCT_OF_4CPU), min(DBTIME_PCT_OF_4CPU),
max(CPUTIME_S), max(DBTIME_S), max(CPUTIME_PCT_OF_4CPU), max(DBTIME_PCT_OF_4CPU)
from (select d.sample_time, u.username, 14400 AVAILABLE_TIME, CPUTIME_S, DBTIME_S,
round(CPUTIME_S/14400*100,1) CPUTIME_PCT_OF_4CPU, round(DBTIME_S/14400*100,1) DBTIME_PCT_OF_4CPU
from (select snap_id, trunc(min(sample_time),'HH24') sample_time, user_id,
10*count(decode(event,null,1,null)) CPUTIME_S, 10*count(*) DBTIME_S
from dba_hist_active_sess_history
where sample_time>= trunc(sysdate-31)
group by snap_id, user_id) d,
dba_users u
where d.user_id=u.user_id)
group by username order by 1;
© 2016 Pythian 33
SIZING IT CORRECTLY
CPU DISTRIBUTION AMONG SCHEMAS
© 2016 Pythian 34
• IO is not simple
– Differently-sized IO done by database
• 8K to 1024K
• … 1 to 32 RDS-IOs per 1 DB-IO
– Identifying spikes is difficult
• AWR (DBA_HIST_IOSTAT_DETAIL)
• SMALL_READ_MEGABYTES / LARGE_READ_MEGABYTES
• SMALL_READ_REQS / LARGE_READ_REQS
SIZING IT CORRECTLY
IO IS NOT SIMPLE
Peak load?
© 2016 Pythian 35
SIZING IT CORRECTLY
IO IS NOT SIMPLE
• Sampling ASM statistics:
– asm_metrics.pl by Bertrand Drouvot
– https://bdrouvot.wordpress.com/2013/10/04/...
• 1-second sampling:
23:00:03 Kby Avg AvgBy/ Kby Avg AvgBy/
23:00:03 DBINST DG Reads/s Read/s ms/Read Read Writes/s Write/s ms/Write Write
23:00:03 ----------- ----------- ------- ------- ------- ------ ------ ------- -------- ------
23:00:03 INST1 146 1360 9.1 9539 435 5578 25.5 13131
23:00:03 INST1 DATA 146 1360 9.1 9539 171 4096 61.7 24528
23:00:03 INST1 RECO 0 0 0.0 0 6 216 86.3 36864
23:00:03 INST1 REDO 0 0 0.0 0 258 1266 0.2 5025
23:00:03 INST2 245 2104 8.3 8794 2109 23955 97.5 11631
23:00:03 INST2 DATA 245 2104 8.3 8794 1998 21648 102.7 11095
23:00:03 INST2 RECO 0 0 0.0 0 3 1968 116.9 671744
23:00:03 INST2 REDO 0 0 0.0 0 108 339 0.1 3214
© 2016 Pythian 36
$ cat process.sh
DG=$2
FILE=$1
grep $2 $1 | awk '{RIO=0; WIO=0; IO=0; if ($7>32768) RIO=($5-($4*32))/32; if ($11>32768)
RIO=($9-($8*32))/32;IO=$4+$8+RIO+WIO; print $1,$2,$4,$5,$7,$8,$9,$11,RIO,WIO,IO;}' | awk '{if ($1==PREV_TIM)
{IO+=$11} else {print PREV_TIM,IO; IO=$11; PREV_TIM=$1}}'| cut -c 1-7,9- | awk '{if ($1==PREV_TIM) {IO+=$2} else
{AVGIOPS=IO/10; print PREV_TIM,AVGIOPS; IO=$2; PREV_TIM=$1}}'
$ process.sh asm_metrics_per_second_20150309_2300.txt DATA
23:00:0 4965.02
23:00:1 18455.1
23:00:2 14806.9
23:00:3 1460.35
23:00:4 1002.33
23:00:5 1600.22
SIZING IT CORRECTLY
IO IS NOT SIMPLE
© 2016 Pythian 37
SIZING IT CORRECTLY
IO IS NOT SIMPLE
What happens to the
spikes if you provision
less IOPS?
© 2016 Pythian 38
• Choose the instance and the storage type based on
– Max IOPS
– HDD size
– Max CPU usage
– RAM requirement
• Workloads vary too much
– getting it exactly right may be tricky
– But at least you shouldn't size it much too large
• Benchmark / Load Test
SIZING IT CORRECTLY
IO IS NOT SIMPLE
https://aws.amazon.com/rds/oracle/details/, http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html
© 2016 Pythian 39
MIGRATING ...
to Oracle RDS
© 2016 Pythian 40
MIGRATING TO ORACLE RDS
MIGRATION OPTIONS
• Offline options:
– Oracle Data Pump
– Oracle Export/Import Utilities
– Oracle SQL*Loader
– Oracle Materialized Views
• Additional options (logical replication):
– Data Migration Service (DMS)
– Oracle GoldenGate (GG)
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Procedural.Importing.html
© 2016 Pythian 41
$ expdp system/***@SOURCE DUMPFILE=data.dmp DIRECTORY=DATA_PUMP_DIR LOGFILE=data.log
flashback_time=systimestamp schemas=USER1
$ sqlplus SYS@SOURCE as sysdba
SQL> create database link TARGET connect to oracle_master identified by * using 'TARGET';
SQL> exec DBMS_FILE_TRANSFER.PUT_FILE(source_directory_object => 'DATA_PUMP_DIR',
source_file_name => 'data.dmp', destination_directory_object => 'DATA_PUMP_DIR',
destination_file_name => 'data.dmp', destination_database => 'TARGET')
$ impdp oracle_master/***@TARGET DUMPFILE=data.dmp DIRECTORY=DATA_PUMP_DIR
LOGFILE=data_imp_1.log
$ sqlplus oracle_master@TARGET
SQL> exec utl_file.fremove('DATA_PUMP_DIR','data.dmp');
SQL> exec utl_file.fremove('DATA_PUMP_DIR','data_imp_1.log');
MIGRATING TO ORACLE RDS
ORACLE DATA PUMP
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Procedural.Importing.html
Make sure you have
enough space on your
RDS instance!
© 2016 Pythian 42
MIGRATING TO ORACLE RDS
ORACLE GOLDENGATE
• Option A
• Option B
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.OracleGoldenGate.html
© 2016 Pythian 43
• Simple version of Logical Replication
– Also capable of converting between different types of DBs
– Schema migration in a few clicks
• New tool (announced on 15 Mar 2016)
• A few limitations
– Unclarity about the initial load
– Lack of "SCN"
– Can't adjust the migration task after starting it
– DDL is not captured
– Some data types not supported
• It should be good enough for simple cases
MIGRATING TO ORACLE RDS
DMS (DATA MIGRATION SERVICE)
http://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Configuration
© 2016 Pythian 44
RUNNING AND MONITORING...
© 2016 Pythian 45
RUNNING AND MONITORING...
LIFE WITHOUT "SYSDBA"
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.html
• Only SQL*Net Connectivity
• Master Username
– 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
• DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_TEXT
– RDSADMIN.RDSADMIN_UTIL
© 2016 Pythian 46
• No host access
– Prevents setting up some types of monitoring
• Cron jobs
• 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)
– Custom monitoring over SQL*Net (Avail)
RUNNING AND MONITORING...
MONITORING
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.html
© 2016 Pythian 47
RUNNING AND MONITORING...
Monitoring - CloudWatch RDS / Monitoring
Correlating graphs is
difficult
© 2016 Pythian 48
RUNNING AND MONITORING...
Monitoring - CloudWatch RDS / Create Alarm
Not always simple to
integrate with ticketing
systems
© 2016 Pythian 49
RUNNING AND MONITORING...
Monitoring - Enhanced Monitoring
© 2016 Pythian 50
RUNNING AND MONITORING...
Monitoring - 11g Database Control
© 2016 Pythian 51
RUNNING AND MONITORING...
Monitoring - 12c Database Express
© 2016 Pythian 52
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!
© 2016 Pythian 53
WHEN THINGS WENT BAD…
A few issues that I faced
© 2016 Pythian 54
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 <-> RDS
– Latency issue, each network round-trip took a lot longer.
https://calculator.s3.amazonaws.com/index.html
© 2016 Pythian 55
AWS RDS FOR ORACLE
EXAMPLE 2: ACCESS TO DATA
• A tiny OBIEE Database (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)
– 4vCPU + 30.5 RAM
– Set parameter _serial_direct_reads=never
https://calculator.s3.amazonaws.com/index.html
© 2016 Pythian 56
• 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
© 2016 Pythian 57
-- 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 '%-hesvc-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 '%-hesvc-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
© 2016 Pythian 58
-- 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
© 2016 Pythian 59
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
© 2016 Pythian 60
SUMMARY
© 2016 Pythian 61
• Simple to use, but not suitable for massive workloads
– Consider Oracle DB on EC2
• Difficult to size (especially storage)
– Load testing and Benchmarking
– 3000 IOPS or less -> Use gp2 (General Purpose SSD) volumes
• Get the config right from the beginning
– Changing certain things require downtime
• Practice being an Oracle RDS DBA
– Some things are different
SUMMARY
Oracle RDS
© 2016 Pythian 62
•
SUMMARY
Beware of the most
dangerous checkbox
in your career.
© 2016 Pythian 63
THANK YOU
@MarisDBA
Elsins@pythian.com

Más contenido relacionado

La actualidad más candente

Oracle Cloud Infrastructure セキュリティの取り組み [2021年2月版]
Oracle Cloud Infrastructure セキュリティの取り組み [2021年2月版]Oracle Cloud Infrastructure セキュリティの取り組み [2021年2月版]
Oracle Cloud Infrastructure セキュリティの取り組み [2021年2月版]オラクルエンジニア通信
 
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)オラクルエンジニア通信
 
Oracle Data Guard basics and how to create manually 18c plus
Oracle Data Guard basics and how to create manually 18c plusOracle Data Guard basics and how to create manually 18c plus
Oracle Data Guard basics and how to create manually 18c plusAkira Kusakabe
 
はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年8月11日)
はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年8月11日)はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年8月11日)
はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年8月11日)オラクルエンジニア通信
 
Achieving Continuous Availability for Your Applications with Oracle MAA
Achieving Continuous Availability for Your Applications with Oracle MAAAchieving Continuous Availability for Your Applications with Oracle MAA
Achieving Continuous Availability for Your Applications with Oracle MAAMarkus Michalewicz
 
What to Expect From Oracle database 19c
What to Expect From Oracle database 19cWhat to Expect From Oracle database 19c
What to Expect From Oracle database 19cMaria Colgan
 
Exadata master series_asm_2020
Exadata master series_asm_2020Exadata master series_asm_2020
Exadata master series_asm_2020Anil Nair
 
15 Troubleshooting Tips and Tricks for database 21c - OGBEMEA KSAOUG
15 Troubleshooting Tips and Tricks for database 21c - OGBEMEA KSAOUG15 Troubleshooting Tips and Tricks for database 21c - OGBEMEA KSAOUG
15 Troubleshooting Tips and Tricks for database 21c - OGBEMEA KSAOUGSandesh Rao
 
AWS Webcast - Amazon RDS for Oracle: Best Practices and Migration
AWS Webcast - Amazon RDS for Oracle: Best Practices and Migration  AWS Webcast - Amazon RDS for Oracle: Best Practices and Migration
AWS Webcast - Amazon RDS for Oracle: Best Practices and Migration Amazon Web Services
 
Oracle Drivers configuration for High Availability, is it a developer's job?
Oracle Drivers configuration for High Availability, is it a developer's job?Oracle Drivers configuration for High Availability, is it a developer's job?
Oracle Drivers configuration for High Availability, is it a developer's job?Ludovico Caldara
 
AWS初心者向けWebinar RDBのAWSへの移行方法(Oracleを例に)
AWS初心者向けWebinar RDBのAWSへの移行方法(Oracleを例に)AWS初心者向けWebinar RDBのAWSへの移行方法(Oracleを例に)
AWS初心者向けWebinar RDBのAWSへの移行方法(Oracleを例に)Amazon Web Services Japan
 
SAP S/4HANA on AWS Tシャツモデル
SAP S/4HANA on AWS TシャツモデルSAP S/4HANA on AWS Tシャツモデル
SAP S/4HANA on AWS TシャツモデルTetsuya Kawahara
 
Oracle Enterprise Manager Cloud Control 13c for DBAs
Oracle Enterprise Manager Cloud Control 13c for DBAsOracle Enterprise Manager Cloud Control 13c for DBAs
Oracle Enterprise Manager Cloud Control 13c for DBAsGokhan Atil
 
Free Load Testing Tools for Oracle Database – Which One Do I Use?
Free Load Testing Tools for Oracle Database – Which One Do I Use?Free Load Testing Tools for Oracle Database – Which One Do I Use?
Free Load Testing Tools for Oracle Database – Which One Do I Use?Christian Antognini
 
S13 Oracle Database を Microsoft Azure 上で運用する為に~基本事項とベストプラクティス
S13 Oracle Database を Microsoft Azure 上で運用する為に~基本事項とベストプラクティスS13 Oracle Database を Microsoft Azure 上で運用する為に~基本事項とベストプラクティス
S13 Oracle Database を Microsoft Azure 上で運用する為に~基本事項とベストプラクティスMicrosoft Azure Japan
 
[Oracle DBA & Developer Day 2014] しばちょう先生による特別講義! RMANの運用と高速化チューニング
[Oracle DBA & Developer Day 2014] しばちょう先生による特別講義! RMANの運用と高速化チューニング[Oracle DBA & Developer Day 2014] しばちょう先生による特別講義! RMANの運用と高速化チューニング
[Oracle DBA & Developer Day 2014] しばちょう先生による特別講義! RMANの運用と高速化チューニングオラクルエンジニア通信
 
2019 - OOW - Database Migration Methods from On-Premise to Cloud
2019 - OOW - Database Migration Methods from On-Premise to Cloud2019 - OOW - Database Migration Methods from On-Premise to Cloud
2019 - OOW - Database Migration Methods from On-Premise to CloudMarcus Vinicius Miguel Pedro
 

La actualidad más candente (20)

Oracle Cloud Infrastructure セキュリティの取り組み [2021年2月版]
Oracle Cloud Infrastructure セキュリティの取り組み [2021年2月版]Oracle Cloud Infrastructure セキュリティの取り組み [2021年2月版]
Oracle Cloud Infrastructure セキュリティの取り組み [2021年2月版]
 
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)
 
Oracle Data Guard basics and how to create manually 18c plus
Oracle Data Guard basics and how to create manually 18c plusOracle Data Guard basics and how to create manually 18c plus
Oracle Data Guard basics and how to create manually 18c plus
 
はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年8月11日)
はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年8月11日)はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年8月11日)
はじめてのOracle Cloud Infrastructure (Oracle Cloudウェビナーシリーズ: 2021年8月11日)
 
Achieving Continuous Availability for Your Applications with Oracle MAA
Achieving Continuous Availability for Your Applications with Oracle MAAAchieving Continuous Availability for Your Applications with Oracle MAA
Achieving Continuous Availability for Your Applications with Oracle MAA
 
What to Expect From Oracle database 19c
What to Expect From Oracle database 19cWhat to Expect From Oracle database 19c
What to Expect From Oracle database 19c
 
Oracle Database Vaultのご紹介
Oracle Database Vaultのご紹介Oracle Database Vaultのご紹介
Oracle Database Vaultのご紹介
 
Exadata master series_asm_2020
Exadata master series_asm_2020Exadata master series_asm_2020
Exadata master series_asm_2020
 
15 Troubleshooting Tips and Tricks for database 21c - OGBEMEA KSAOUG
15 Troubleshooting Tips and Tricks for database 21c - OGBEMEA KSAOUG15 Troubleshooting Tips and Tricks for database 21c - OGBEMEA KSAOUG
15 Troubleshooting Tips and Tricks for database 21c - OGBEMEA KSAOUG
 
AWS Webcast - Amazon RDS for Oracle: Best Practices and Migration
AWS Webcast - Amazon RDS for Oracle: Best Practices and Migration  AWS Webcast - Amazon RDS for Oracle: Best Practices and Migration
AWS Webcast - Amazon RDS for Oracle: Best Practices and Migration
 
Oracle Drivers configuration for High Availability, is it a developer's job?
Oracle Drivers configuration for High Availability, is it a developer's job?Oracle Drivers configuration for High Availability, is it a developer's job?
Oracle Drivers configuration for High Availability, is it a developer's job?
 
AWS初心者向けWebinar RDBのAWSへの移行方法(Oracleを例に)
AWS初心者向けWebinar RDBのAWSへの移行方法(Oracleを例に)AWS初心者向けWebinar RDBのAWSへの移行方法(Oracleを例に)
AWS初心者向けWebinar RDBのAWSへの移行方法(Oracleを例に)
 
Black Belt Online Seminar AWS Amazon RDS
Black Belt Online Seminar AWS Amazon RDSBlack Belt Online Seminar AWS Amazon RDS
Black Belt Online Seminar AWS Amazon RDS
 
SAP S/4HANA on AWS Tシャツモデル
SAP S/4HANA on AWS TシャツモデルSAP S/4HANA on AWS Tシャツモデル
SAP S/4HANA on AWS Tシャツモデル
 
Oracle Enterprise Manager Cloud Control 13c for DBAs
Oracle Enterprise Manager Cloud Control 13c for DBAsOracle Enterprise Manager Cloud Control 13c for DBAs
Oracle Enterprise Manager Cloud Control 13c for DBAs
 
Free Load Testing Tools for Oracle Database – Which One Do I Use?
Free Load Testing Tools for Oracle Database – Which One Do I Use?Free Load Testing Tools for Oracle Database – Which One Do I Use?
Free Load Testing Tools for Oracle Database – Which One Do I Use?
 
Structured Streaming - The Internal -
Structured Streaming - The Internal -Structured Streaming - The Internal -
Structured Streaming - The Internal -
 
S13 Oracle Database を Microsoft Azure 上で運用する為に~基本事項とベストプラクティス
S13 Oracle Database を Microsoft Azure 上で運用する為に~基本事項とベストプラクティスS13 Oracle Database を Microsoft Azure 上で運用する為に~基本事項とベストプラクティス
S13 Oracle Database を Microsoft Azure 上で運用する為に~基本事項とベストプラクティス
 
[Oracle DBA & Developer Day 2014] しばちょう先生による特別講義! RMANの運用と高速化チューニング
[Oracle DBA & Developer Day 2014] しばちょう先生による特別講義! RMANの運用と高速化チューニング[Oracle DBA & Developer Day 2014] しばちょう先生による特別講義! RMANの運用と高速化チューニング
[Oracle DBA & Developer Day 2014] しばちょう先生による特別講義! RMANの運用と高速化チューニング
 
2019 - OOW - Database Migration Methods from On-Premise to Cloud
2019 - OOW - Database Migration Methods from On-Premise to Cloud2019 - OOW - Database Migration Methods from On-Premise to Cloud
2019 - OOW - Database Migration Methods from On-Premise to Cloud
 

Similar a Migrating and Running DBs on Amazon RDS for Oracle

Running Oracle EBS in the cloud (UKOUG APPS16 edition)
Running Oracle EBS in the cloud (UKOUG APPS16 edition)Running Oracle EBS in the cloud (UKOUG APPS16 edition)
Running Oracle EBS in the cloud (UKOUG APPS16 edition)Andrejs Prokopjevs
 
Oracle Databases on AWS - Getting the Best Out of RDS and EC2
Oracle Databases on AWS - Getting the Best Out of RDS and EC2Oracle Databases on AWS - Getting the Best Out of RDS and EC2
Oracle Databases on AWS - Getting the Best Out of RDS and EC2Maris Elsins
 
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
 
AWS Webcast - Best Practices for Deploying SAP Workloads on AWS
AWS Webcast - Best Practices for Deploying SAP Workloads on AWSAWS Webcast - Best Practices for Deploying SAP Workloads on AWS
AWS Webcast - Best Practices for Deploying SAP Workloads on AWSAmazon Web Services
 
Introduction to Database Services
Introduction to Database ServicesIntroduction to Database Services
Introduction to Database ServicesAmazon Web Services
 
[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
 
Oracle & SQL Server on the Cloud: Database Week SF
Oracle & SQL Server on the Cloud: Database Week SFOracle & SQL Server on the Cloud: Database Week SF
Oracle & SQL Server on the Cloud: Database Week SFAmazon Web Services
 
Oracle & SQL Server on the Cloud: Database Week San Francisco
Oracle & SQL Server on the Cloud: Database Week San FranciscoOracle & SQL Server on the Cloud: Database Week San Francisco
Oracle & SQL Server on the Cloud: Database Week San FranciscoAmazon Web Services
 
AWS Activate webinar - Scalable databases for fast growing startups
AWS Activate webinar - Scalable databases for fast growing startupsAWS Activate webinar - Scalable databases for fast growing startups
AWS Activate webinar - Scalable databases for fast growing startupsAmazon Web Services
 
Oracle and SQL Server on the Cloud - Bill Baldwin
Oracle and SQL Server on the Cloud - Bill BaldwinOracle and SQL Server on the Cloud - Bill Baldwin
Oracle and SQL Server on the Cloud - Bill BaldwinAmazon Web Services
 
Oracle and SQL Server on the Cloud
Oracle and SQL Server on the CloudOracle and SQL Server on the Cloud
Oracle and SQL Server on the CloudAmazon Web Services
 
Relational Database Services on AWS - Bill Baldwin, Gareth Eagar
Relational Database Services on AWS - Bill Baldwin, Gareth EagarRelational Database Services on AWS - Bill Baldwin, Gareth Eagar
Relational Database Services on AWS - Bill Baldwin, Gareth EagarAmazon Web Services
 
Amazon Relational Database Service – How is it different to what you do today ?
Amazon Relational Database Service – How is it different to what you do today ?Amazon Relational Database Service – How is it different to what you do today ?
Amazon Relational Database Service – How is it different to what you do today ?Amazon Web Services
 
AWS March 2016 Webinar Series - Managed Database Services on Amazon Web Services
AWS March 2016 Webinar Series - Managed Database Services on Amazon Web ServicesAWS March 2016 Webinar Series - Managed Database Services on Amazon Web Services
AWS March 2016 Webinar Series - Managed Database Services on Amazon Web ServicesAmazon Web Services
 
Getting Started with Managed Database Services on AWS - September 2016 Webina...
Getting Started with Managed Database Services on AWS - September 2016 Webina...Getting Started with Managed Database Services on AWS - September 2016 Webina...
Getting Started with Managed Database Services on AWS - September 2016 Webina...Amazon Web Services
 

Similar a Migrating and Running DBs on Amazon RDS for Oracle (20)

SQL Server on AWS
SQL Server on AWSSQL Server on AWS
SQL Server on AWS
 
SQL Server on AWS
SQL Server on AWSSQL Server on AWS
SQL Server on AWS
 
Running Oracle EBS in the cloud (UKOUG APPS16 edition)
Running Oracle EBS in the cloud (UKOUG APPS16 edition)Running Oracle EBS in the cloud (UKOUG APPS16 edition)
Running Oracle EBS in the cloud (UKOUG APPS16 edition)
 
Oracle Databases on AWS - Getting the Best Out of RDS and EC2
Oracle Databases on AWS - Getting the Best Out of RDS and EC2Oracle Databases on AWS - Getting the Best Out of RDS and EC2
Oracle Databases on AWS - Getting the Best Out of RDS and EC2
 
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)
 
MySQL and MariaDB
MySQL and MariaDBMySQL and MariaDB
MySQL and MariaDB
 
AWS Webcast - Best Practices for Deploying SAP Workloads on AWS
AWS Webcast - Best Practices for Deploying SAP Workloads on AWSAWS Webcast - Best Practices for Deploying SAP Workloads on AWS
AWS Webcast - Best Practices for Deploying SAP Workloads on AWS
 
Introduction to Database Services
Introduction to Database ServicesIntroduction to Database Services
Introduction to Database Services
 
[Pgday.Seoul 2018] AWS Cloud 환경에서 PostgreSQL 구축하기
[Pgday.Seoul 2018]  AWS Cloud 환경에서 PostgreSQL 구축하기[Pgday.Seoul 2018]  AWS Cloud 환경에서 PostgreSQL 구축하기
[Pgday.Seoul 2018] AWS Cloud 환경에서 PostgreSQL 구축하기
 
Oracle & SQL Server on the Cloud: Database Week SF
Oracle & SQL Server on the Cloud: Database Week SFOracle & SQL Server on the Cloud: Database Week SF
Oracle & SQL Server on the Cloud: Database Week SF
 
Oracle & SQL Server on the Cloud: Database Week San Francisco
Oracle & SQL Server on the Cloud: Database Week San FranciscoOracle & SQL Server on the Cloud: Database Week San Francisco
Oracle & SQL Server on the Cloud: Database Week San Francisco
 
Deep Dive On Amazon Redshift
Deep Dive On Amazon RedshiftDeep Dive On Amazon Redshift
Deep Dive On Amazon Redshift
 
AWS Activate webinar - Scalable databases for fast growing startups
AWS Activate webinar - Scalable databases for fast growing startupsAWS Activate webinar - Scalable databases for fast growing startups
AWS Activate webinar - Scalable databases for fast growing startups
 
Oracle and SQL Server on the Cloud - Bill Baldwin
Oracle and SQL Server on the Cloud - Bill BaldwinOracle and SQL Server on the Cloud - Bill Baldwin
Oracle and SQL Server on the Cloud - Bill Baldwin
 
Oracle and SQL Server on the Cloud
Oracle and SQL Server on the CloudOracle and SQL Server on the Cloud
Oracle and SQL Server on the Cloud
 
Relational Database Services on AWS - Bill Baldwin, Gareth Eagar
Relational Database Services on AWS - Bill Baldwin, Gareth EagarRelational Database Services on AWS - Bill Baldwin, Gareth Eagar
Relational Database Services on AWS - Bill Baldwin, Gareth Eagar
 
Amazon Relational Database Service – How is it different to what you do today ?
Amazon Relational Database Service – How is it different to what you do today ?Amazon Relational Database Service – How is it different to what you do today ?
Amazon Relational Database Service – How is it different to what you do today ?
 
MySQL and MariaDB
MySQL and MariaDBMySQL and MariaDB
MySQL and MariaDB
 
AWS March 2016 Webinar Series - Managed Database Services on Amazon Web Services
AWS March 2016 Webinar Series - Managed Database Services on Amazon Web ServicesAWS March 2016 Webinar Series - Managed Database Services on Amazon Web Services
AWS March 2016 Webinar Series - Managed Database Services on Amazon Web Services
 
Getting Started with Managed Database Services on AWS - September 2016 Webina...
Getting Started with Managed Database Services on AWS - September 2016 Webina...Getting Started with Managed Database Services on AWS - September 2016 Webina...
Getting Started with Managed Database Services on AWS - September 2016 Webina...
 

Más de 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
 
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
 
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
 

Más de Maris Elsins (18)

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...
 
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
 
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
 

Último

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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
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
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
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
 
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
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
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
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
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
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
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
 

Último (20)

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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
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
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
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
 
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...
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
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
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
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
 

Migrating and Running DBs on Amazon RDS for Oracle

  • 1. © 2016 Pythian 1 Migrating and Running DBs on Amazon RDS for Oracle MARIS ELSINS Lead Database Consultant
  • 2. © 2016 Pythian 2 Maris Elsins Lead Database Consultant At Pythian since 2011 Located in Riga, Latvia Oracle [Apps] DBA since 2005 Speaker at conferences since 2007 @MarisDBA elsins@pythian.com http://bit.ly/getMOSPatchV2
  • 3. © 2016 Pythian 3 Migrating and Running DBs on Amazon RDS for Oracle Mining AWR V2: Trend Analysis Today: 17:55, Hall 9
  • 5. © 2016 Pythian 5 ABOUT PYTHIAN Pythian’s 400+ IT professionals help companies adopt and manage disruptive technologies to better compete
  • 6. © 2016 Pythian 6 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
  • 7. © 2016 Pythian 7 • Intro... • Sizing... • Migrating... • Running and Monitoring... • When things go bad... AGENDA
  • 8. © 2016 Pythian 8 … these are just few of my observations • Why Cloud? • Choosing between cloud vendors • Terminology • Complete pricing guide • The right way to do anything I mean it! NOT ON AGENDA
  • 9. © 2016 Pythian 9 DISCLAIMER OK, YOU CAUGHT ME ... I may have a few “Ouch!” slides in the presentation, that probably will make you think Oracle RDS is no good. It's not the intention. I honestly think Oracle RDS is a great service for the appropriate workload, and if it's done right.
  • 10. © 2016 Pythian 10 BEFORE WE START ... Can I comment or ask questions during the presentation? Photo by Day Donaldson / CC BY 2.0
  • 11. © 2016 Pythian 11 INTRODUCTION ... to RDS for Oracle
  • 12. © 2016 Pythian 12 AWS RDS FOR ORACLE INTRODUCTION - REGIONS https://aws.amazon.com/about-aws/global-infrastructure/
  • 13. © 2016 Pythian 13 INTRODUCTION WHAT IS RDS • Relational Database Service • PaaS (DBaaS) • Managed by AWS – Setup / Provisioning – Backups – Maintenance / Patching – Alerting – DR – ... • SSH Access / SQL*Net connectivity
  • 14. © 2016 Pythian 14 • 11gR2: – 11.2.0.2.v3 - 11.2.0.2.v7 – 11.2.0.3.v1 - 11.2.0.3.v4 – 11.2.0.4.v1 - 11.2.0.4.v9 • 12cR1: – 12.1.0.1.v1 - 12.1.0.1.v6 – 12.1.0.2.v1 - 12.1.0.2.v5 • Engine versions differ by included patches – PSU / DST / GG / + critical one-offs INTRODUCTION DB ENGINES http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.PatchComposition.html What if I need a specific one-off?
  • 15. © 2016 Pythian 15 INTRODUCTION DATABASE EDITIONS https://aws.amazon.com/rds/oracle/details/ Edition License Included Bring Your Own License SE One ✓ ✓ SE Two ✓ ✓ SE ✓ EE ✓
  • 16. © 2016 Pythian 16 INTRODUCTION LICENSING • Two important sources: – Licensing Oracle Software in the Cloud Computing Environment – Virtual Cores by Amazon EC2 and RDS DB Instance Type • Virtual cores != Virtual CPUs (vCPUs) – vCPU is actually a HyperThread • Core Factor of 0.5 applies to "Virtual cores" • Max sizing for SE: – SE: 16 Virtual Cores | 32 vCPU – SE: One/Two: 8 Virtual Cores | 16 vCPU
  • 17. © 2016 Pythian 17 INTRODUCTION LICENSING EXAMPLE • Oracle EE • 16 vCPU = 8 virtual cores • 8 virtual cores * 0.5 (core factor) = 4 Licences
  • 18. © 2016 Pythian 18 INTRODUCTION INSTANCE CLASSES AND TYPES https://aws.amazon.com/rds/oracle/details/ • Instance Classes (available for RDS) – Standard - Latest Generation (db.m4.{type}) – Standard - Previous Generation (db.m3.{type}) – Memory Optimized - Current Generation (db.r3.{type}) – Micro instances (db.t1.{type}) • Types: micro - small - ... - xlarge - ... - 10xlarge – vCPUs: 1 - 40 – Memory: 1 - 160 GiB – PIOPS-Optimized: Yes / No – Network Performance: Low to Moderate - 10 Gigabit Pay attention to these when choosing the storage type!
  • 19. © 2016 Pythian 19 INTRODUCTION STORAGE TYPES http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.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 • Pay per Size • Up to 160 MiB/s • Accounted IO size = 32K • Burstable • SSD • Expensive & Low Latency • 10 IOPS * 1GiB • Pay per Size + PIOPS • Up to 500 MiB/s (or 320MiB/s ???) • Accounted IO size = 32K This is super - complicated, read this! The documentation is not very clear PIOPS = Provisioned IO per Second
  • 20. © 2016 Pythian 20 • P-IOPS • GP-SSD • Magnetic INTRODUCTION STORAGE - WHAT ABOUT COST OF 120G AND 1200 IOPS? https://calculator.s3.amazonaws.com/index.html My favourite :) Burstable! No IOPS guarantee
  • 21. © 2016 Pythian 21 INTRODUCTION STORAGE-RELATED LIMITATIONS https://calculator.s3.amazonaws.com/index.html • Different limits apply based on – Instance Type – Storage Type – Storage Size – PIOPS • For example: – EBS Throughput (Mbps) per Instance – EBS Throughput (Mbps) per EBS Volume – Max IOPS per Instance – Max IOPS per Volume – PIOPS you reserved and paid for – IOPS differ depending on the size of the IO I guess I'll have to do some real benchmarking !
  • 22. © 2016 Pythian 22 INTRODUCTION OPTION GROUPS - OPTIONS http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.html 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
  • 23. © 2016 Pythian 23 • 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
  • 24. © 2016 Pythian 24 INTRODUCTION PARAMETER GROUPS • Parameter Groups – Defines the init parameters • Remember, you don't have access 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
  • 25. © 2016 Pythian 25 • MEMORY_TARGET = {DBInstanceClassMemory*3/4} – AMM means hugepages are not used – Swapping is possible AWS RDS FOR ORACLE SOME PARAMETERS I FOUND INTERESTING … Swap usage MB Connection pool misconfiguration Ouch !
  • 26. © 2016 Pythian 26 • DB_FILE_MULTIBLOCK_READ_COUNT not set (128) – IO size up to 1MiB issues by the DB AWS RDS FOR ORACLE SOME PARAMETERS I FOUND INTERESTING … Ouch ! A single 1MiB-IO (128 data blocks) from the DB ... … Is handled by 4 256K-IOs on SSD and ... … Is accounted as 32 32K-IOs by AWS Used for IOPS calculation By AWS
  • 27. © 2016 Pythian 27 • UNDO_RETENTION not set (the default is 900 seconds) • We're using parameter group “default.oracle-ee-11.2” AWS RDS FOR ORACLE SOME PARAMETERS I FOUND INTERESTING … Ouch ! • Suddenly: – “expdp … consistent=y” – 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
  • 28. © 2016 Pythian 28 SIZING... the Oracle RDS
  • 29. © 2016 Pythian 29 SIZING IT 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 • Storage size (GB / IOPS) is Important: – Size it too big - cost-efficiency reduces – Size it too small - performance suffers
  • 30. © 2016 Pythian 30 • How to check the current usage? – sar - CPU/RAM/IO ? • 10 minute intervals for past workloads • Difficult to derive IOPS info – SGA sizing – iostat ? – data from storage? • What if it's not 1-to-1 move to RDS? – 1DB with 20+ schemas -> 4 RDS instances? SIZING IT CORRECTLY TOOLS Peak load?
  • 31. © 2016 Pythian 31 • CPU is simple – sar 1 99999 > cpu_usage.lst • Provides CPU usage % for every issue – ASH ? • Probably still not granular enough (binary indicator) • Good to for deriving the proportions of CPU usage – v$sesstat / v$sysstat could be sampled too • … we didn't go this way ... SIZING IT CORRECTLY CPU IS SIMPLE
  • 32. © 2016 Pythian 32 SIZING IT CORRECTLY CPU DISTRIBUTION AMONG SCHEMAS • Using ASH to derive max CPU usage per hour by schema – (but again it ignores “spikes”) select username, avg(CPUTIME_S), avg(DBTIME_S), avg(CPUTIME_PCT_OF_4CPU), avg(DBTIME_PCT_OF_4CPU), min(CPUTIME_S), min(DBTIME_S), min(CPUTIME_PCT_OF_4CPU), min(DBTIME_PCT_OF_4CPU), max(CPUTIME_S), max(DBTIME_S), max(CPUTIME_PCT_OF_4CPU), max(DBTIME_PCT_OF_4CPU) from (select d.sample_time, u.username, 14400 AVAILABLE_TIME, CPUTIME_S, DBTIME_S, round(CPUTIME_S/14400*100,1) CPUTIME_PCT_OF_4CPU, round(DBTIME_S/14400*100,1) DBTIME_PCT_OF_4CPU from (select snap_id, trunc(min(sample_time),'HH24') sample_time, user_id, 10*count(decode(event,null,1,null)) CPUTIME_S, 10*count(*) DBTIME_S from dba_hist_active_sess_history where sample_time>= trunc(sysdate-31) group by snap_id, user_id) d, dba_users u where d.user_id=u.user_id) group by username order by 1;
  • 33. © 2016 Pythian 33 SIZING IT CORRECTLY CPU DISTRIBUTION AMONG SCHEMAS
  • 34. © 2016 Pythian 34 • IO is not simple – Differently-sized IO done by database • 8K to 1024K • … 1 to 32 RDS-IOs per 1 DB-IO – Identifying spikes is difficult • AWR (DBA_HIST_IOSTAT_DETAIL) • SMALL_READ_MEGABYTES / LARGE_READ_MEGABYTES • SMALL_READ_REQS / LARGE_READ_REQS SIZING IT CORRECTLY IO IS NOT SIMPLE Peak load?
  • 35. © 2016 Pythian 35 SIZING IT CORRECTLY IO IS NOT SIMPLE • Sampling ASM statistics: – asm_metrics.pl by Bertrand Drouvot – https://bdrouvot.wordpress.com/2013/10/04/... • 1-second sampling: 23:00:03 Kby Avg AvgBy/ Kby Avg AvgBy/ 23:00:03 DBINST DG Reads/s Read/s ms/Read Read Writes/s Write/s ms/Write Write 23:00:03 ----------- ----------- ------- ------- ------- ------ ------ ------- -------- ------ 23:00:03 INST1 146 1360 9.1 9539 435 5578 25.5 13131 23:00:03 INST1 DATA 146 1360 9.1 9539 171 4096 61.7 24528 23:00:03 INST1 RECO 0 0 0.0 0 6 216 86.3 36864 23:00:03 INST1 REDO 0 0 0.0 0 258 1266 0.2 5025 23:00:03 INST2 245 2104 8.3 8794 2109 23955 97.5 11631 23:00:03 INST2 DATA 245 2104 8.3 8794 1998 21648 102.7 11095 23:00:03 INST2 RECO 0 0 0.0 0 3 1968 116.9 671744 23:00:03 INST2 REDO 0 0 0.0 0 108 339 0.1 3214
  • 36. © 2016 Pythian 36 $ cat process.sh DG=$2 FILE=$1 grep $2 $1 | awk '{RIO=0; WIO=0; IO=0; if ($7>32768) RIO=($5-($4*32))/32; if ($11>32768) RIO=($9-($8*32))/32;IO=$4+$8+RIO+WIO; print $1,$2,$4,$5,$7,$8,$9,$11,RIO,WIO,IO;}' | awk '{if ($1==PREV_TIM) {IO+=$11} else {print PREV_TIM,IO; IO=$11; PREV_TIM=$1}}'| cut -c 1-7,9- | awk '{if ($1==PREV_TIM) {IO+=$2} else {AVGIOPS=IO/10; print PREV_TIM,AVGIOPS; IO=$2; PREV_TIM=$1}}' $ process.sh asm_metrics_per_second_20150309_2300.txt DATA 23:00:0 4965.02 23:00:1 18455.1 23:00:2 14806.9 23:00:3 1460.35 23:00:4 1002.33 23:00:5 1600.22 SIZING IT CORRECTLY IO IS NOT SIMPLE
  • 37. © 2016 Pythian 37 SIZING IT CORRECTLY IO IS NOT SIMPLE What happens to the spikes if you provision less IOPS?
  • 38. © 2016 Pythian 38 • Choose the instance and the storage type based on – Max IOPS – HDD size – Max CPU usage – RAM requirement • Workloads vary too much – getting it exactly right may be tricky – But at least you shouldn't size it much too large • Benchmark / Load Test SIZING IT CORRECTLY IO IS NOT SIMPLE https://aws.amazon.com/rds/oracle/details/, http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html
  • 39. © 2016 Pythian 39 MIGRATING ... to Oracle RDS
  • 40. © 2016 Pythian 40 MIGRATING TO ORACLE RDS MIGRATION OPTIONS • Offline options: – Oracle Data Pump – Oracle Export/Import Utilities – Oracle SQL*Loader – Oracle Materialized Views • Additional options (logical replication): – Data Migration Service (DMS) – Oracle GoldenGate (GG) http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Procedural.Importing.html
  • 41. © 2016 Pythian 41 $ expdp system/***@SOURCE DUMPFILE=data.dmp DIRECTORY=DATA_PUMP_DIR LOGFILE=data.log flashback_time=systimestamp schemas=USER1 $ sqlplus SYS@SOURCE as sysdba SQL> create database link TARGET connect to oracle_master identified by * using 'TARGET'; SQL> exec DBMS_FILE_TRANSFER.PUT_FILE(source_directory_object => 'DATA_PUMP_DIR', source_file_name => 'data.dmp', destination_directory_object => 'DATA_PUMP_DIR', destination_file_name => 'data.dmp', destination_database => 'TARGET') $ impdp oracle_master/***@TARGET DUMPFILE=data.dmp DIRECTORY=DATA_PUMP_DIR LOGFILE=data_imp_1.log $ sqlplus oracle_master@TARGET SQL> exec utl_file.fremove('DATA_PUMP_DIR','data.dmp'); SQL> exec utl_file.fremove('DATA_PUMP_DIR','data_imp_1.log'); MIGRATING TO ORACLE RDS ORACLE DATA PUMP http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Procedural.Importing.html Make sure you have enough space on your RDS instance!
  • 42. © 2016 Pythian 42 MIGRATING TO ORACLE RDS ORACLE GOLDENGATE • Option A • Option B http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.OracleGoldenGate.html
  • 43. © 2016 Pythian 43 • Simple version of Logical Replication – Also capable of converting between different types of DBs – Schema migration in a few clicks • New tool (announced on 15 Mar 2016) • A few limitations – Unclarity about the initial load – Lack of "SCN" – Can't adjust the migration task after starting it – DDL is not captured – Some data types not supported • It should be good enough for simple cases MIGRATING TO ORACLE RDS DMS (DATA MIGRATION SERVICE) http://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Configuration
  • 44. © 2016 Pythian 44 RUNNING AND MONITORING...
  • 45. © 2016 Pythian 45 RUNNING AND MONITORING... LIFE WITHOUT "SYSDBA" http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.html • Only SQL*Net Connectivity • Master Username – 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 • DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_TEXT – RDSADMIN.RDSADMIN_UTIL
  • 46. © 2016 Pythian 46 • No host access – Prevents setting up some types of monitoring • Cron jobs • 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) – Custom monitoring over SQL*Net (Avail) RUNNING AND MONITORING... MONITORING http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.html
  • 47. © 2016 Pythian 47 RUNNING AND MONITORING... Monitoring - CloudWatch RDS / Monitoring Correlating graphs is difficult
  • 48. © 2016 Pythian 48 RUNNING AND MONITORING... Monitoring - CloudWatch RDS / Create Alarm Not always simple to integrate with ticketing systems
  • 49. © 2016 Pythian 49 RUNNING AND MONITORING... Monitoring - Enhanced Monitoring
  • 50. © 2016 Pythian 50 RUNNING AND MONITORING... Monitoring - 11g Database Control
  • 51. © 2016 Pythian 51 RUNNING AND MONITORING... Monitoring - 12c Database Express
  • 52. © 2016 Pythian 52 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!
  • 53. © 2016 Pythian 53 WHEN THINGS WENT BAD… A few issues that I faced
  • 54. © 2016 Pythian 54 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 <-> RDS – Latency issue, each network round-trip took a lot longer. https://calculator.s3.amazonaws.com/index.html
  • 55. © 2016 Pythian 55 AWS RDS FOR ORACLE EXAMPLE 2: ACCESS TO DATA • A tiny OBIEE Database (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) – 4vCPU + 30.5 RAM – Set parameter _serial_direct_reads=never https://calculator.s3.amazonaws.com/index.html
  • 56. © 2016 Pythian 56 • 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
  • 57. © 2016 Pythian 57 -- 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 '%-hesvc-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 '%-hesvc-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
  • 58. © 2016 Pythian 58 -- 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
  • 59. © 2016 Pythian 59 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
  • 60. © 2016 Pythian 60 SUMMARY
  • 61. © 2016 Pythian 61 • Simple to use, but not suitable for massive workloads – Consider Oracle DB on EC2 • Difficult to size (especially storage) – Load testing and Benchmarking – 3000 IOPS or less -> Use gp2 (General Purpose SSD) volumes • Get the config right from the beginning – Changing certain things require downtime • Practice being an Oracle RDS DBA – Some things are different SUMMARY Oracle RDS
  • 62. © 2016 Pythian 62 • SUMMARY Beware of the most dangerous checkbox in your career.
  • 63. © 2016 Pythian 63 THANK YOU @MarisDBA Elsins@pythian.com