High Availability and Sharding with Oracle ... - Oracle Cloud · •SGCC is adopting Microservice...

Preview:

Citation preview

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

TRN4032:HighAvailabilityandSharding DeepDivewithNextGenerationOracleDatabase

WeiHuVicePresident,ProductDevelopmentHighAvailability TechnologiesOctober22,2018

Confidential– OracleInternal/Restricted/HighlyRestricted

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

SafeHarborStatement

Thefollowingisintended tooutline ourgeneralproductdirection. Itisintended forinformationpurposes only,andmaynotbe incorporatedintoanycontract.Itisnotacommitment todeliver anymaterial,code,orfunctionality,andshouldnotberelieduponinmakingpurchasingdecisions. Thedevelopment, release, timing, andpricingofanyfeaturesorfunctionality described forOracle’sproductsmaychangeandremainsatthesolediscretion ofOracleCorporation.

Confidential– OracleInternal/Restricted/HighlyRestricted

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

Amazon.comrunsOracle• AmazonPaymentsPlatformrunsonOracle

– eCommerce paymentssystemsupportingmillionsofAmazoncustomers

• AmazonRetailSystemsrunonOracle– MultiplelargedatabasessupportingOLTPandDSS

• AmazonDigitalCommercePlatformrunsOracle– Supports theservicesbehindtheKindleandotherAmazondigitalbusinesses

• Processpaymentsatanunprecedentedscale,withaccuracy,speed,andmission-criticalavailability – Amazon.comquote

• Amazonspends$60millionwithOracle – LarryEllison,OOW2017

3

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

WhydoesAmazon.comuseOracle?• AmazontellstheircustomerstouseAurora,Redshift,Postgres,andMySQL• ButthesedatabasesarenotgoodenoughforAmazon.com

– NoRAC,noActiveDataGuard,noReal-Application Testing,…

• Importanttake-away:– YoucanmodifyanapplicationwrittentoOracletorun onotherdatabases– ButonlyOraclecanrunapplications attheavailability,andsecuritythatAmazon.com(andothercustomers) require

– Also,unlikeAmazon’sdatabases (Aurora,Redshift), Oracleisavailable on-premisesandinthecloud(includingAWS)

• ThissessionwilltalkabouttheOracleavailabilityfeaturesthatcustomerslikeAmazon.comrelyontokeeptheirapplicationsrunning24x7

4

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

Edition-based Redefinition,Online Redefinition, DataGuard,GoldenGate–Minimaldowntimemaintenance,upgrades,migrations

ActiveDataGuard– DataProtection,DisasterRecovery– QueryOffload

GoldenGate– Active-activereplication– Heterogeneous

ActiveReplica

RMAN,OracleSecureBackup,ZeroDataLoss RecoveryAppliance

– Backuptodisk,tapeorcloud

Enterprise ManagerCloud Control– SiteGuard,CoordinatedSiteFailoverApplication Continuity– ApplicationHAGlobalDataServices– ServiceFailover/LoadBalancing

RAC– Scalability– ServerHA

ASM– Localstorage

protection

ProductionSite

Flashback– Humanerror

correction

OracleMaximumAvailabilityArchitecture(MAA)

5

Sharding– HorizontalPartitioning,

Scalability,SharedNothingarchitecture

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

ProgramAgenda

ActiveDataGuard

Sharding

GloballyDistributedDatabase

PlannedDowntime

AutonomousDatabaseandCloud

1

2

3

4

5

Confidential– OracleInternal/Restricted/HighlyRestricted 6

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

ActiveDataGuardisCriticalPartofMAA

• Automaticfailoverincaseofsitefailure(usingFast-StartFailover)– Humaninvolvementwillslowfailovertime(increase RTO)

• Protectsagainstdataandstoragecorruptions• Automaticallyrepairsblockcorruptions• Active-active architectureautomaticallyensuresthatstandbyisfunctioningandfailover-ready

• Minimumdowntimerollingupgrades(usingtransientlogicalstandby)

7

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

ActiveDataGuardfeaturesin12.1and12.2• ZeroDataLoss

– FarSyncsupports zerodatalossoverlongdistances– FastSyncsupports low-latencycommitsforzerodataloss– Real-timeCascadesupports near-zerodatalossevenforcascadedconfigurations

• Active Standby– In-memoryDBonActiveDataGuardallowsin-memorytablesonthestandby– Diagnosticandtuningpack(AWR),SQLPlanManagement onActiveDataGuard– GlobalTemporaryTables onActiveDataGuard– GlobalDataServicesloadbalancesconnections amongprimaryandActiveDataGuardinstances

• FastFailover– Preservesessions onActiveDataGuardduringfailoverorswitchover– Multi-instanceparallelredoapply usesallinstancesinaRACstandbytoapplyredo

• …andmore…8

Production

ActiveDataGuard

FarSync

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

ActiveDataGuardfeaturesinOracleDatabase18c

• Fast,automaticnologging loadswithActiveDataGuard– Customersusenologging loadstoavoidoverheadofgeneratingredo– InOracle18c,theprimaryshipsdatablockstothestandbyasblocksareloadedtotheprimary

– AvailableonEngineeredSystemsandOracleCloud• DataGuardBrokerprovidesvalidationandproactivehealthchecks.UsedbyOracleCloudtodetectandfixproblems beforetheyoccur

• CREATE GLOBAL TEMPORARY TABLE onActiveDataGuard– ActiveDataGuard12ccanupdateglobaltemporarytables,butthetablesstillneededtobecreatedattheprimary.In18c,thestandbycancreateitsowntemporarytables

9

Production

ActiveDataGuard

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

ActiveDataGuardFeaturesinOracleDatabase18c

• Automatically updatepasswordfileonstandbys(12.2)– ChangingAdminpasswordonprimaryautomatically updatesstandbys’

• Zero-downtime,Standby-first,encryption– Firstencrypttablespaces onstandby,switchover,thenencryptontheoldprimary

• NewDGredoauthentication protocol- usesSSLcertificate for‘redo_transport_user’

• Trackloginfailuresacrossalldatabases inaDataGuardconfiguration.Loginsanywherewillbedeniedwhenthemaxlogincountisreached

SimplifyingSecurityManagementforYourDataGuardConfiguration

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

UpdatesonActiveDataGuardusingDMLRedirection• Previously,youcanonlyupdateGlobalTempTablesonActiveDataGuard.With19c,youcanupdateregulartables

• UpdatesonActiveDataGuard:1. Updatewillbe redirected tothe primary2. Primarymakes update, generates&sends redo forthatupdate toall

standbys3. ActiveDataGuard session sees theupdate in redoapply andresumes

• PreservesACIDpropertiesforADGsession– Redirectedupdate only visible tosession before commit; visible toall

sessions aftercommit

• For“MostlyRead,OccasionalUpdates”applications– forexample,recordinguserloginsforauditingpurposes

• EnabledbyADG_REDIRECT_DML atsystemorsessionlevel

11

UpdateX

ActiveDataGuardPrimary

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

ProgramAgenda

ActiveDataGuard

Sharding

GloballyDistributedDatabase

PlannedDowntime

AutonomousDatabaseandCloud

1

2

3

4

5

Confidential– OracleInternal/Restricted/HighlyRestricted 12

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

• Dataautomaticallypartitionedacrosspoolofindependentdatabases(shards)

• Addshardsonlinetoincreasethroughput• Data,usersandtransactionsscalelinearly• Single- andmulti-shardqueries

• Outageorslowdownofashardhasnoimpactonavailabilityofothershards

• Shard-levelHAautomaticallyconfiguredusingdatabasereplication(RACoptional)

• Shardscanbeindependentlypatchedandupgradedwithoutaffectingothershards

• Flexibleshardorganization- consistenthash,range,list,orcomposite(range-hash,list-hash)

• Dataplacementforavailability,disasterrecovery,performance,ortomeetregulatoryrequirements

13

RACandDataGuardmeetneedsofmostapplicationswhilepreservingapplicationtransparencySomelargescaleapplicationswanttoshardacrossfarmofindependent databasesandarewillingtomodifyapplication

OracleDatabaseSharding

LinearScalability FaultTolerant GeographicDistribution

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

OracleProvidesContinuumofShared-DiskandShared-Nothing

• Shared-DiskandShared-Nothinghavetheirrespectivestrengths• Applicationtransparencyvseasyscalabilityandfaultisolation

– SAPvsiCloud• Mostdatabasesonlysupportshared-nothingbecauseshared-disk(RAC)ishard

• Oracleoffersbothendsofthespectrum(RACandSharding)• 18c introducesmid-pointarchitecturethatprovidesinterestingcapabilities– RACSharding

OracleRestricted 14

Shared-Disk Shared-Nothing

Complex schema,complex access pattern

Simple schema,Key-based access pattern

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

RACSharding

• Affinitizes shardstoRACinstances– Requeststhatspecifysharding keywillberoutedtothe

RACinstancethatlogicallyholdstheshard– Bettercacheutilizationandreducedblockpingsacross

instances

• Requests thatdon’tspecifysharding keystillworktransparently

• GivesSharded Databaseperformancewithminimalapplication changes– Justaddsharding keytothemostperformanceintensiveoperations

• AvailableonEngineered SystemsandOracleCloud

15

OracleRACDatabase

Higherperformanceforshard-awareRACapplications

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

OracleSharding | 19cFeatures• SupportmultiplePDB-shardsinthesameCDB

– APDBcanbesharded acrossmultiple CDBs– Allowsconsolidation ofsharded databases

• Scale-outmulti-shardquerycoordinators– Canconfigureshardcatalog's ADGstandbystoactasmulti-shard querycoordinators– Greatforanalyticworkloadsthatneedtoquerymultiple shards

• MultipleTableFamilies– Allowsasharded database tosupportmultiple tablefamilies, eachofwhichcanbeshardedwithadifferentshardingkey

• Generationofgloballyuniquesequencenumbersacrossshards– Fornon-primarykeycolumns (e.g.order_id)

Oracle Sharding POC

@ State Grid Corporation of China

• Largestelectricutilityintheworld• Providespowertoover1.1billionpeople across88%ofChina• Globalpresencewithsubsidiaries inPhilippines, Brazil,Portugal,AustraliaandItaly

• 1.72million employees, $585billion inassets, $348.9billion revenue(2017)• Ranked#2inFortuneGlobal500(2nd largestcompanygloballybyrevenue)

• Companymission• Asasuper-largestate-owned enterprise crucialtonational energysecurityandeconomic lifeline, SGCChasamission toprovidesafer,cleaner,andmoreeconomical andsustainable powersupply

State Grid Corporation of China (SGCC)

• SGCCisadoptingMicroservice architecture forthegrowingbusiness• Microservice architectureprovidesresiliencythroughloosecouplingandflexibilitytomeetgrowingandchangingbusinessneeds

• Microservice architecture inturnrequiresahighlyscalable,loosely-coupled,andultra-reliable distributeddatabase

• StateGridwanted toprovethattheirbusiness-critical orderingservice systemcanleverage OracleSharding tomeetthese requirements

• Orderingservicecurrentlyhas200-300millionusersdistributedacross26subsidiaries.Goalistobuildcentralizedorderingservice

• Tominimizetheimpactontheirdevelopment processes, thenewdistributeddatabasemustsupport their currentdevelopment frameworkbasedonSpring+Mybatis

Challenges

• Schemasharded usingOrderNumber• ClientusesSpring-MyBatis JavapersistenceframeworkusingOracleUCPasDataSource

• ToavoidmodifyingMyBatis sourcecode,localthreadwasaddedtopasstheSharding keyfromControllertotheUCPDataSourcedirectly–allowinghighperformancedirectaccesstoshards

Architecture

• Successfully leveragedOracleSharding inSpring+MyBatis Frameworkwithoutmodifyinganyapplicationcode

• Goodexample forhowtointegrateShardingAPIintoJavapersistence frameworks ingeneral

• Inthefuture, Oracleuser-defined Sharding alsoallowsdatatobestoredclosetoStateGrid’s customersdistributed indifferent locations

• OracleSharding provides thehighlyscalable, loosely-coupled, andultrareliabledistributeddatabase requiredbynewgenerationmicroservice-basedapplications

Results

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

OracleSharding Strategy• Supersetofallsharding architectures(SQLandNoSQL)

– Pluggablereplication architecture• Supports allthereplicationmodels(master-slave,active-active,ring,etc.)

– Multiple sharding techniques• Consistenthash,range,list,composite

– Tunableconsistency• Withinandacrossshards.Plusuniquely,high-performancestrongconsistencyacrossshards

– Continuumofshared-disk andshared-nothing capabilities– Standards-based (SQLandJava9)

• Plusuniquecapabilitiesarounddatasovereigntyandmulti-cloud

OracleRestricted 22

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

ProgramAgenda

ActiveDataGuard

Sharding

GloballyDistributedDatabase

PlannedDowntime

AutonomousDatabaseandCloud

1

2

3

4

5

Confidential– OracleInternal/Restricted/HighlyRestricted 23

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.| Confidential– OracleInternal/Restricted/HighlyRestricted

OracleSharded DatabaseisaGloballyDistributedDatabaseWhywouldyouwanttodothis?

• Datasovereignty– dataforcountrymustbestored&replicated in-country

• Querydataacrossall regions• DisasterRecovery– primaryandstandby(s)canbefarapart

• Lowlatencyforreads– readfromnearestreplica;withloadbalancingandfailover

• Lowlatencyforwrites ifdataispartitionedproperly.E.g.,locateEuropeandatainEuropeandatacenter

• Single logicaldatabase – application&DBAsseeonedatabase

OneLogical Database

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

DataSovereignty(Pattern1)andMulti-Cloud

25

UserDefinedSharding

ShardedDatabaseUser-defined shards onhybrid cloud

• DataSovereigntyrequiresdatatobekept inthecountry

• 18cUser-Defined Sharding (LISTorRANGE) letsyoucreateashardforeachcountry– AddCOUNTRYcolumntoeachtable

• Applications withinthecountrycandirectlyaccess shardwithoutasharding key

• Queryacrossallcountriesbyconnecting toCoordinatorandissuemulti-shard queries

• OtherUseCases– Multi-Cloud(shardacross2ormoreclouds)– HybridCloudandCloudBursting

• Some shards onpremises; other shards inthecloud

OracleConfidential– Restricted

Coordinator(Global)

US EU

JAPAN

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

DataSovereigntywithGlobalSingleInstance(Pattern2)

26

Most datacentralizedwithsome datashardedbycountry

ShardedDatabase• Havingglobalsingle instance isbeneficial

– Strongdataconsistencybyeliminatingduplication• Centralizebulkofyourdata

– Keeponlysubset(e.g.,CUSTOMER,andotherPersonallyIdentifiableInformationPII)inthecountriesoforigin

– Canqueryandrunreportsacrossalldata(centralizedandcountry-specific)

• WithOracleSharding– Createalltablesinacentralshardcatalog– Placecertaindataacrosscountry-specificshards– Seeallthedatausingmulti-shardquerycoordinator– Applicationalwaysconnecttocoordinatordatabase

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

HowDoesOracleSharding ComparewithAlternatives?

Confidential– OracleInternal/Restricted/HighlyRestricted

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

RealandFakeNews• GoogleCloudSpannerasclaimed:

–Onlyenterprise-grade,globally-distributed,andstronglyconsistentdatabaseserviceforthecloud

–Combinesbenefitsofrelational databasestructurewithnon-relationalhorizontalscale

–Querydatausingfamiliar,industry-standardANSI2011SQL–High-performancetransactions andstrongconsistencyacrossrows,regions,andcontinentswithanindustry-leading99.999% availabilitySLA..andenterprisegradesecurity

• RealNews:strongconsistency,relationalmodel,ANSISQL,andtransactionsarecool!

OracleRestricted 28

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

UPDATE savings_accountsSETbalance =balance- 500WHEREcust_id =12345ANDaccount=3209;

UPDATE checking_accountsSETbalance =balance+500WHEREcust_id =12345ANDaccount=3208;

INSERT INTOjournal(tran_code, cust_id,account,balance,change_amount)SELECT (13,cust_id,account,balance,-500)FROM savings_accounts WHERE cust_id = 12345ANDaccount=3209;

INSERT INTOjournal(tran_code, cust_id,account,balance,change_amount)SELECT (12,cust_id,account,balance,500)FROMchecking_accounts WHERE cust_id =12345ANDaccount=3208;

COMMIT WORK;

DoesThisSQLRunonSpanner?

Decrement Savings Acct(Savings tableconstraint:amount>$100)

Increment Checking Acct

Journal thetransfer operations(tran_cod 13– transfer fromtran_code 12– transfer to)

End transaction

Transfer$500fromSavingsAccounttoCheckingAccount

29OracleConfidential

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

static voidwriteWithTransact ion(Dat aba seC lient dbClient) {dbClient.readWriteTransaction().run(

new TransactionCallable <Void>() {@Overridepublic Void run(TransactionContext transaction) throws Exception {//Transfer $500 fromSAVINGS toCHECKING.We do the transfer in atransaction to//ensure that the transfer is atomic.Struct row=transaction.readRow( "SAVINGS_ ACCOUNTS ", Key.of(12345, 3209),

Arrays.asList("SavingsRow"));long savingsBalance =row.getLong(2);//Transaction will only becommitted if sufficient funds (>$100) constraint ismet//at the timeofcommit.Otherwise itwill beaborted and thecallable will be rerun//by theclient library.if (savingsBalance >=600) {longcheckingBalance =transaction

.readRow("CHECKING_ACCOUNTS ", Key.of(12345, 3208),Arrays.asList("Checking sRow"))

.getLong(2);long transfer =500;checkingBalance +=transfer;savingsBalance -=transfer;transaction.buffer(Mutation.newUpdate Bu ilder( "CHE CKING_ ACCOUNTS ")

.set("cust_id")

.to(12345)

.set("account")

.to(3208)

.set("CheckingsRow")

.to(checkingBalance)

.build());transaction.buffer(Mutation.newUpdate Bu ilder( "SAVINGS_ACCOUNTS")

.set("cust_id")

.to(12345)

.set("account")

.to(3209)

.set("SavingsRow")

.to(savingsBalance)

.build());

// Lognewbalances, cannot readyour own writes//mutations: checkingBalance, savingsBalance//must fit inmemory!transaction.buffer(Mutation.newInsertBui lde r("JOURN AL")

.set("tran_code")

.to(13)

.set("cust_id")

.to(12345)

.set("account")

.to(3209)

.set("balance")

.to(savingsBalance)

.set("change_amount")

.to(transfer)

.build());transaction.buffer(Mutation.newInsertBui lde r("JOURN AL")

.set("tran_code")

.to(12)

.set("cust_id")

.to(12345)

.set("account")

.to(3208)

.set("balance")

.to(checkingBalance)

.set("change_amount")

.to(transfer)

.build());}return null;

}});

}// writeWithTransaction

/* transfer $500 fromsavings tochecking *//*all tables aresharded bycust_id *//*savings tableconstraint: amount >$100*/UPDATE savings_accountsSETbalance =balance - 500 WHERE cust_id =12345 ANDaccount=3209;

UPDATE checking_accountsSETbalance =balance +500WHERE cust_id =12345 ANDaccount=3208;

/* log newbalances (readyourown writes) *//* tran_code =13– transfer from*/INSERT INTOjournal (tran_code, cust_id, account, balance, change_amount)SELECT (13, cust_id, account, balance, -500)FROM savings_accounts WHERE cust_id =12345 ANDaccount=3209;

/* tran_code =12– transfer to*/INSERT INTOjournal (tran_code, cust_id, account, balance, change_amount)SELECT (12, cust_id, account, balance, 500)FROM checking_accounts WHERE cust_id =12345ANDaccount =3208;

COMMIT WORK;

OracleSQLvsSpannerProgram(ApplicationTransparent!NOT)

30OracleConfidential

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

OracleSharded DatabaseisaGloballyDistributedDatabase• Single logicaldatabasewithreplicasacrossdatacentersandregions• Applications seesone logicaldatabase

– Connect toasingle ‘service’ andberouted totherightreplica– Routing takesintoaccount: network latency, replica response time, anddataheld byeach replica– Handles failover; i.e.,routetoagood replica iforiginal is unavailable– Handle add anddropof replicas (thatmaycontain disjoint data)

• Managethereplicasasasingledatabase– Administrators donotneedtomaintain theirspreadsheet of nodes, whoreplicates towhom, and perform admin

operations Ntimesforeach replica– Globalmetadataand viewof thephysical databases (replicas), datatheycontain, replication topology, etc.– Automatic configuration of replication– Automatic propagation ofmanagement operations (DDLs, passwd files, …)toallreplicas– Rebalance dataandsynchronize stateasnodes areadded/dropped

• OracleSharding doesallthis,whilesupportdatasovereigntyandmulti-cloud

OracleRestricted 31

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

ProgramAgenda

ActiveDataGuard

Sharding

GloballyDistributedDatabase

PlannedDowntime

AutonomousDatabaseandCloud

1

2

3

4

5

Confidential– OracleInternal/Restricted/HighlyRestricted 32

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

PlannedMaintenanceisKeytoUptime• Unplanned downtimeisrarewithwell-runsystems

– Hardware/softwarefailuresareautomatically handled byMAA

• Keytobestuptimeisreducingplanned downtime– Makeapplication schema changesonline– Applypatchesandupgradesonlineorrolling

• Focusonautomationtomakethemsimple• UseApplicationContinuitytohidedowntimefromapplications

33

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

Patching Improvements• Zero-DowntimeOracleGridInfrastructurePatching

– PatchOracleGridInfrastructurewithout interruptingdatabase operations.– Patchesareapplied out-of-place andina rollingfashionwithonenodebeingpatchedatatimewhilethedatabase instance(s)onthatnoderemain upandrunning.

– SupportedforOracleRACandRACOneNodeclusterswithtwoormorenodes.

• OJVMisOracleRACrollingpatchingenabledwithOracleRAC18c(18.4)– Non-Javaservices areavailableatalltimes.– Javaservices areavailableall thetime, exceptfora~10secondsbrownout.

• Noerrorsarereportedduringthebrownout.

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

Applicationsseenoerrorsduringmaintenance• Whenweshutdownaninstancefor

maintenance, itisbest ifallappsrelease theirconnections• However, manyapplications donot explicitly disconnect,

preventing usfrom shutting down instance

• 18cDatabaseandDriversreclaimconnectionswhereapplications donotnoticepriortomaintenance• Example:EndofWebrequests, Transaction

boundaries,Connection tests,Connectionreturnedtopool,andCustomrules

• Applications thatdonotrelease theirconnections arefailedover

35

Application ormid-tier testsconnections

Databasemarkssessionstoreclaim

AutomaticallyreclaimConnections

Clients

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

FailoverApplicationsthatdonotReleasetheirConnections

36

DatabaseRequest

Errors/Timeoutshidden

TransparentApplicationContinuity

Clients • Sessions thatdonotrelease theirconnectionsmustbekilled.TransparentApplication Continuitythenrestoressession onanother instance

• Keyinnovations– Tracksessionstateasitchanges.Thisisverifiedduringreplay

– Automaticallyenablesanddisablescaptureofreplaystate• Disables capture aftercommits sincewedonotreplaycommitted transactions (orstatements withside-effects)

• Automatically re-enables

– Automaticallytrimstheclient’sreplayhistory– HandlesSYSDATE,sequences, …

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

ActiveDataGuardRollingDatabaseUpgrades(DBMS_ROLLING)AutomatedTransientLogicalStandby(Oracle12c)

DatabaseA DatabaseBDBMS_ROLLING.INIT_PLANDBMS_ROLLING.BUILD_PLANDBMS_ROLLING.START_PLAN

Synchronize

SynchronizeSTBY

Dotheupgrade(DBUA)

SWITCHOVERDBMS_ROLLING.SWITCHOVERSTBY

SynchronizeDBMS_ROLLING.FINISH_PLANSTBY

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

EnhancementstoDBMS_ROLLING(18cand19c)• DBMS_ROLLING requiressupportinglogicalreplicationofeachdatatype

– Allthecommondatatypesarefullysupportedduringrollingupgrade– 18cand19caddedmore:BigSCN,LongIdentifiers,SDO_GEORASTER, TOPOLOGY,REF,top-level varrays attributes, SDO_RDF_TRIPLE_S,…

• Newapproachtohandlethefewremainingunsupportedtypes– Keyobservation: unsupported datatypesareokifnotupdated duringupgrade– In19c,weblockupdatestothese unsupported types(andplsql)duringarollingupgrade• Feasible ascustomers candisable certainreportsandbatchjobsduringupgrades

– Allowsdatabases containingunsupported typestouseDBMS_ROLLING

Confidential– OracleInternal/Restricted/HighlyRestricted

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.| 39

EnterpriseEdition(EE)ActiveDataGuardandGoldenGate

ZeroDowntimeUpgrade(ZDU)

EnterpriseEdition(EE)FullyAutomatedWorkflow EnterpriseEdition(EE)Robust,Fast&SpaceEfficient

Clone

SwitchOver

Upgrade

SwitchBack

• FastcloningwithSnapshots fordatabaseshostedonACFS

• FullDatabasecopyalsosupported

Robust

• Resume-ableafterfailures

• Revertibleforfastrollback/fallback.

Fast&SpaceEfficient

SyncUp

• Automaticsetup/teardownandconfigurationofActiveDataGuard(TransientLogicalStandby)orGoldenGate

• Worksfrom11.2.0.4

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

OnlineOperations

• DBMS_REDEFINITION allowsyoutoreorganizeandredefinetables online– Add/drop/rename columns,switchphysicalstoragestructures,reorgtable,transformdata…online

• DBMS_REDEFINITION enhanced in12.2foreventhe largest,busiest databases:– Fullrestartability (resumeatpointoffailure)– Entireredefinitionprocessrunswithout acquiringExclusiveDDLlock– Maintaindependent MVsduringredefinition– V$online_redef forprogressmonitoring– Support forBinaryXMLstoragechanges,BFILE,invisiblecolumns

• 18c,19caddedsupportfortableswithbitmapjoinindexes, hybridpartitioning, rowarchival,andbothspatial indexandVPDpolicies

OnlineRedefinitionImprovements

Source Table

Update Tracking

Transform

CopyTable

TransformUpdates

Result Table

Continuous Queries & Updates

Store Updates

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

OnlineOperationsDon’tbringdownOracletomakeschemachanges!

11.2 &Prior Createindex online, rebuildindexonline,rebuildindexpartitiononlineAddColumn,AddConstraintenablenovalidate

12.1 OnlinemovepartitionDropindex onlineSet unused columnonline,altercolumnvisible/invisible,alterindexunusableonline,alter indexvisible/invisiblealterindexparallel/noparallel

12.2 Altertablemoveonlinefornon-partitionedtablesAltertablefromnon-partitionedtopartitionedonlineAltertablesplitpartitiononlineCreatetableforexchange (usableforonlinepartitionexchange)Move/merge/splitpartitionmaintenanceoperationscannowdodatafiltering

18.1 Altertablemodify partitioned tabletoadifferent partitioningmethod (e.g.,hash torange)Altertablemergepartition/subpartition online

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

OnlineOperations

• 18cand19cenhancedtoreduceimpactofonlineDDLsonrunningsystems• Improvedconcurrencybetweenmultiplepartitionmaintenanceoperations• 18cand19cdoesintelligent, fine-grainedcursorinvalidation(avoidingblanketcursorinvalidation)– Fine-grained invalidation(treatDMLandSELECTcursorsdifferently)– Rolling invalidation (existing, possiblysub-optimal cursorscanstill beused)– CREATE/DROP/ALTER INDEX,TRUNCATE TABLE, PartitionMaintenance Operations,DDLsonunusable andinvisible indexes, …

Evenbetterwith19c

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

ProgramAgenda

ActiveDataGuard

Sharding

GloballyDistributedDatabase

PlannedDowntime

AutonomousDatabaseandCloud

1

2

3

4

5

43

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

MaximumAvailabilityArchitecture(MAA)OracleAutonomousDatabase– Ingredient1

AutonomousDatabase

• MAAadoptedasastandardbymanycompanies largeandsmall– All4TopUSbanks(JPMC,BoA,Citibank,WellsFargo)adoptedMAA

• MAAisOracle’sbest recommended architecture– Ifyouwanttoastandardizedarchitecture– pickwhatthatOraclerecommendsandthatothercrediblecustomershaveadopted

– ThesecustomersstandardizedonMAAonlyafterduediligence

• Leveragethecollective know-how,experienceofOracleandothercompaniessuchasJPMC,BoA,PayPal,…

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

OracleAutonomousDatabase– Ingredient2Exadata• Exadata standardizesthehardwareandconfiguration• Standardizationacrosscustomersbringsgreaterreliability.Fixesfoundbyothercustomersdirectlyhelpyoubemorestable

• Exadata istheonlyplatformthatcandothis– Samereliability asNewYorkStockExchangeandtopbanks

worldwide• Exadata alsoprovidesuniqueavailabilityadvantages

– In-memoryqueryonActiveDataGuard,RACSharding,Nologging loadswithActiveDataGuard,ActiveDataGuardmulti-instanceparallelredoapply…

• Evenifthereiszero uniquecapability,Exadata wouldstillbringgreaterreliabilitybecauseofstandardization

AutonomousDatabase

Copyright©2018, Oracleand/oritsaffiliates.Allrightsreserved.|

OracleAutonomousDatabase– Ingredient3CloudManagementwithMachine Learning• MAA+Exadata providesastandardarchitecture,software,andhardwareconfiguration

• TheAutonomousDatabasesoftwarethenmakesthisentireinfrastructureself-managingandself-healing

• All3ingredients:MAA,Exadata,andAutonomousDatabasesoftwarecombinetotouniquelyprovide99.995%NXAvailability

AutonomousDatabase

Recommended