what’s new in the next generaon of oracle databasecreate sharded table customers ( custno number...
TRANSCRIPT
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
What’sNewintheNextGeneraEonofOracleDatabase
GeraldVenzl(@GeraldVenzl)SeniorPrincipalProductManagerDatabaseDevelopmentJune08,2017
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
SafeHarborStatementThefollowingisintendedtooutlineourgeneralproductdirecEon.ItisintendedforinformaEonpurposesonly,andmaynotbeincorporatedintoanycontract.Itisnotacommitmenttodeliveranymaterial,code,orfuncEonality,andshouldnotberelieduponinmakingpurchasingdecisions.Thedevelopment,release,andEmingofanyfeaturesorfuncEonalitydescribedforOracle’sproductsremainsatthesolediscreEonofOracle.
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
ProgramAgenda
ApplicaEonContainers
OracleDatabaseSharding
Evenbe[erJSON
BigDataSQL
Longaskedforandothers
1
2
3
4
5
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
ProgramAgenda
ApplicaEonContainers
OracleDatabaseSharding
Evenbe[erJSON
BigDataSQL
Longaskedforandothers
1
2
3
4
5
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
OracleDataandUserDataBefore12.1:Oracleanduserdataintermingleover;me
• NewdatabasecontainsOraclemeta-dataonly
• Populatedatabasewithuserdata– Oracleandcustomermeta-dataintermingled
– Portabilitychallenge!
• MulEtenantfix:Horizontally-par--oneddatadic-onary– OnlyOracle-suppliedmeta-dataremainsinroot
RootPDB
Meta-Data UserData
OBJ$ TAB$ SOURCE$
…
OBJ$
…
TAB$ SOURCE$ DEPTEMP
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
ApplicaEonContainers
thebrooklynbeanV2
ProgramsreplicatedacrossPDBs
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
• ApplicaEonContainercomprises– ApplicaEonRoot(Master)– ApplicaEonPDBs(foreachTenant)– ApplicaEonSeed(forprovisioning)
• PDBsshareapplicaEonobjects– Code,metadataanddata
• Furthersimplifiesmanagement– ApplyupdatestoapplicaEoncontainer– SynctenantPDBsfromcentralmaster
• SuitableforallapplicaEons– SaaS,franchise,divisional,etc.
ApplicaEonContainersRootcontainerforyourapplica;ons
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
ApplicaEonContainersShare&propagateacrossmul;plePDBs
AccountType• Credit• Debit• Check• Savings
BankAccount
Person
BankCard
PDB$SEED APPROOT PDB1 PDB2 PDB3
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
WhatisanApplicaEonContainer?
• AnApplicaEoncontainerisacollecEonofPDBsconsisEngofApplicaEonRootandallApplicaEonPDBsassociatedwithit
CDB$ROOT
AppRoot AppPDB1 AppPDB2 PDB1
CDB$ROOT
APPRoot PDB1
AppPDB1 AppPDB2
PhysicalRepresentaEonLogicalRepresentaEon
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
ApplicaEonContainers
• ApplicaEonRootPDBfordefiningapplicaEonmaster– MetadataandcommondatasharedacrosstenantPDBs
• InstallonecopyofyourapplicaEon• InstantprovisioningofanApplicaEonPDB/Tenant(withaseedPDB)• ContainerDataviewsforreporEngacrossPDBs(CONTAINERSclausebased)
• Supportsin-placesimplepatching• SupportsUnplug/PlugupgradeacrossApplicaEonRoot
ThefutureofDatabaseApplica;onDevelopment
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
ProgramAgenda
ApplicaEonContainers
OracleDatabaseSharding
Evenbe[erJSON
BigDataSQL
Longaskedforandothers
1
2
3
4
5
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
OracleDatabaseShardingOracleDatabaseforweb-scaleapplica;ons
OnegiantdatabaseparEEonedintomanysmalldatabases(shards)
CustomersAmericas
Customers
CustomersEurope
CustomersAsia
• RACandDataGuardmeetneedsofover99%ofapplica;onswhilepreservingapplicaEontransparency
• SomeGlobal-ScaleOLTPapplica;onsprefertoshardmassivedatabasesintoafarmofsmallerdatabases
– Avoidscalabilityoravailabilityedgecasesofasinglelargedatabase
– WillingtocustomizedatamodelandapplicaEonstoenabletransacEonstobeautomaEcallyroutedtotherightshard
• NaEveSQLforshardingtablesacrossupto1000Shards- RouEngofSQLbasedonshardkey,andcrossshardqueries- OnlineaddiEonandreorganizaEonofshards- Linearscalabilityofdata,workload,userswithisolaEon
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
ApplicaEonSuitabilityforShardingOLTPApplica;onswiththeFollowingCharacteris;cs
• ApplicaEonsformassivescale– E.g.e-commerce,mobile,socialetc.
• ApplicaEonsmustbeshard-aware• Primaryusagepa[ern
– Single-shardoperaEonsbasedonshardkey,e.g.customer_id,account_idetc.
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
OracleShardingAutomatedDistribuEonEnhancedSQLsyntaxforSharding…
CREATE SHARDED TABLE Customers( CustId VARCHAR2(60) NOT NULL, FirstName VARCHAR2(60), LastName VARCHAR2(60), … PRIMARY KEY(CustId),)PARTITION BY CONSISTENT HASH (CustId) …
• SQLsyntaxforcreaEngshardedtables• NotproprietaryAPIsaswithNoSQL
• CreaEonofashardedtableautomaEcallyparEEonsdataacrossshards
• Transparentreshardingasdatagrows• Choiceofshardingmethods:
• Systemmanaged-consistenthash• Userdefined-range,list• Composite-range-hash,list-hash
• Commonreferencedata(e.g.PriceList)isautomaEcallyduplicatedonallshards
• SupportsshardplacementinspecificgeographiestosaEsfygovernmentdataprivacy
…
…
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
ShardedSchema
Customers Orders LineItems
Products
Sharded
Duplicated
Public
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
ShardedTableFamily–EnhancedSQLDDLSyntax
CREATE LOOKUP TABLE Products( SKU NUMBER(4) PRIMARY KEY, Product VARCHAR2(20), Price NUMBER(6,2)) ) TABLESPACE dupl ;
CREATE SHARDED TABLE Customers ( CustNo NUMBER NOT NULL, Name VARCHAR2(50), …. Class VARCHAR2(3), CONSTRAINT RootPK PRIMARY KEY(CustNo) ) PARTITION BY CONSISTENT HASH (CustNo) PARTITIONS AUTO TABLESPACE SET ts1 ;
CREATE SHARDED TABLE Orders ( OrderNo NUMBER(5), CustNo NUMBER(3), OrderDate DATE , … CONSTRAINT CustFK FOREIGN KEY (CustNo) REFERENCES Customers(CustNo) ) PARTITION BY REFERENCE (CustFK) ;
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
CoordinatorDB
AppTier
RouEngTier
RouEngSupportonClientforHighestSpeed
ApplicaEonServer
ShardDirectors
• Clientspassshardingkey(e.g.CustomerID)toConnecEonpool,connecEonisroutedtotherightshard
• Fast:cachingkeyrangesonclientensuresthatmostaccessesgodirectlytotheshard
• Scalable:easilyscaleswithmoreclientsandshards
• SupportsUCP,OCI,ODP.NET,andJDBC
Shardingkey
…
…
DataTier
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
DataTier
Non-ShardKeyAccess&Cross-ShardQueries
• IfclientdoesnotpassshardkeytoConnecEonpool,theconnecEonismadetothecoordinatordatabase
• CoordinatorparsesSQLandwillproxy/routerequesttooneormoreshards
• Supportsshardpruningandsca[er-gather
• Fordeveloperconvenienceandnotforhighperformance
• SupportsmanybutnotallQueries
• NoUpdatesupport
CoordinatorDB
AppTier
RouEngTier
ApplicaEonServer
ShardDirectors
…
…
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
ProgramAgenda
ApplicaEonContainers
OracleDatabaseSharding
Evenbe[erJSON
BigDataSQL
Longaskedforandothers
1
2
3
4
5
Copyright©2016Oracleand/oritsaffiliates.Allrightsreserved.|
Copyright©2016Oracleand/oritsaffiliates.Allrightsreserved.|
EvoluEonofdatamanagement
1970s
CobolISAM
Rela;onalSQL
ObjectDBs
Mul;-ModelSQL
XMLXPath
Mul;-ModelSQL
JSON
Mul;-ModelSQL
Complexity
Copyright©2016Oracleand/oritsaffiliates.Allrightsreserved.|
EvoluEonofdatamanagement
1970s
CobolISAM
Rela;onalSQL
1980s
ObjectDBs
Mul;-ModelSQL
XMLXPath
Mul;-ModelSQL
JSON
Mul;-ModelSQL
Complexity
Copyright©2016Oracleand/oritsaffiliates.Allrightsreserved.|
EvoluEonofdatamanagement
1970s
CobolISAM
Rela;onalSQL
1980s
ObjectDBs
Mul;-ModelSQL
XMLXPath
Mul;-ModelSQL
JSON
Mul;-ModelSQL
1990s
Complexity
Copyright©2016Oracleand/oritsaffiliates.Allrightsreserved.|
EvoluEonofdatamanagement
1970s
CobolISAM
Rela;onalSQL
1980s
ObjectDBs
Mul;-ModelSQL
XMLXPath
Mul;-ModelSQL
JSON
Mul;-ModelSQL
Complexity
1990s
Copyright©2016Oracleand/oritsaffiliates.Allrightsreserved.|
EvoluEonofdatamanagement
1970s
CobolISAM
Rela;onalSQL
1980s
ObjectDBs
Mul;-ModelSQL
XMLXPath
Mul;-ModelSQL
JSON
Mul;-ModelSQL
2000s
Complexity
1990s
Copyright©2016Oracleand/oritsaffiliates.Allrightsreserved.|
EvoluEonofdatamanagement
1970s
CobolISAM
Rela;onalSQL
1980s
ObjectDBs
Mul;-ModelSQL
XMLXPath
Mul;-ModelSQL
JSON
Mul;-ModelSQL
2000s
Complexity
1990s
Copyright©2016Oracleand/oritsaffiliates.Allrightsreserved.|
EvoluEonofdatamanagement
1970s
CobolISAM
Rela;onalSQL
1980s
ObjectDBs
Mul;-ModelSQL
XMLXPath
Mul;-ModelSQL
JSON
Mul;-ModelSQL
2000s 2010s
Complexity
1990s
Copyright©2016Oracleand/oritsaffiliates.Allrightsreserved.|
MulE-modelprevailsoverEmeComplexity
1970s
Rela;onalSQL
1980s
ObjectDBs
Mul;-ModelSQL
XMLXPath
Mul;-ModelSQL
JSON
Mul;-ModelSQL
1990s 2000s 2010s 20??
CobolISAM
Mul;-ModelSQL
Next“big”thing
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
SimpleNoSQLDevelopmentexperienceOracle12cJSONdocumentstore
SQL
ApplicaEonsdevelopedusing
SODAAPIs
JSONDocumentsStoredandManagedUsingOracleDatabase
SQLbasedreporEngandanalyEcaloperaEonsonJSONDocuments
OracleDatabase12c
JSON
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
EnterpriseDataManagementOracle12cJSONdocumentstore
ApplicaEonsdevelopedusing
SODAAPIs
JSONDocumentsStoredandManagedUsingOracleDatabase
SQLbasedreporEngandanalyEcaloperaEonsonJSONDocuments
OracleDatabase12c
SQLJSON
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
AllthepowerofSQLwhenneededOracle12cJSONdocumentstore
ApplicaEonsdevelopedusing
SODAAPIs
JSONDocumentsStoredandManagedUsingOracleDatabase
SQLbasedreporEngandanalyEcaloperaEonsonJSONDocuments
OracleDatabase12c
SQLJSON
Copyright©2015Oracleand/oritsaffiliates.Allrightsreserved.|
JSONSupportinOracleDatabaseFastApplicaEonDevelopment+PowerfulSQLAccess
33
ApplicaEondevelopers:AccessJSONdocumentsusingRESTAPI
POST /my_database/my_schema/customers HTTP/1.0Content-Type: application/jsonBody: { "firstName": "John", “lastName”: "Smith", "age": 25, "address": {
"streetAddress": "21 2nd Street", "city": "New York",
"state": "NY", "postalCode": "10021“, "isBusiness" : false },
"phoneNumbers": [ {"type": "home", "number": "212 555-1234“ }, {"type": "fax", "number": "646 555-4567“ } ]
}
select c.json_document.firstName, c.json_document.lastName, c.json_document.address.cityfrom customers c;
firstName lastName address.city----------- ----------- --------------“John” “Smith” “New York”
AnalyEcaltoolsandbusinessusers:QueryJSONusingSQL
JSON
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
JSONintegraEonwithPL/SQL• NewPL/SQLobjectsenablefinegrainedmanipulaEonofJSONcontent
– JSON_OBJECT_T:forworkingwithJSONobjects– JSON_ARRAY_T:forworkingwithJSONArrays– JSON_OBJECT_TandJSON_ARRAY_TaresubtypesofJSON_ELEMENT_T
• TheseobjectsprovideasetofmethodsformanipulaEngJSON• PiecewiseupdatesofJSONdocumentsnowsupportedinPL/SQL
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
JSONintegraEonwithPL/SQLWITH FUNCTION updateTax(JSON_DOC in VARCHAR2 ) RETURN VARCHAR2 IS
jo JSON_OBJECT_T; price NUMBER; taxRate NUMBER;
BEGIN jo := JSON_OBJECT_T(JSON_DOC); taxRate := jo.get_Number('taxRate'); price := jo.get_Number('total'); jo.put('totalIncludingTax', price * (1+taxRate)); RETURN jo.to_string();
END; ORDERS AS (
SELECT '{"taxRate":0.175,"total":10.00}' JSON_DOCUMENT FROM dual
) SELECT JSON_DOCUMENT, updateTax(JSON_DOCUMENT) FROM ORDERS; JSON_DOCUMENT UPDATETAX(JSON_DOCUMENT) ------------------------------- ---------------------------------------------------------{"taxRate":0.175,"total":10.00} {"taxRate":0.175,"total":10.00,"totalIncludingTax":11.75}
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
DataGuide:UnderstandingyourJSONdocuments
• Metadatadiscovery:discoversthestructureofcollecEonofJSONdocuments– OpEonal:deepanalysisofJSONforListofValues,ranges,sizingetc.
• AutomaEcallyGenerates– Virtualcolumns– RelaEonalviews
• De-normalizedrelaEonalviewsforarrays
– Reports/SynopsisofJSONstructure
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
DataGuide:AutomaEcSchemaInference
SQL> desc MOVIE_TICKETS NAME TYPE --------------------- ----------- BOOKING_ID RAW(16) BOOKING_TIME TIMESTAMP(6) BOOKING_DETAILS VARCHAR2(4000)
TablecontainingJSONdocuments
JSONDataGuide Tableenhancedwithvirtualcolumns
SQL> desc MOVIE_TICKETS NAME TYPE --------------------- ----------- BOOKING_ID RAW(16) BOOKING_TIME TIMESTAMP(6) BOOKING_DETAILS VARCHAR2(4000) BOOKING_DETAILS$Movie VARCHAR2(16) BOOKING_DETAILS$Theater VARCHAR2(16) BOOKING_DETAILS$Adults NUMBER BOOKING_DETAILS$Time VARCHAR2(32) {
"Theater":"AMC 15", "Movie":"Jurrasic World 3D", "Time“:2015-11-26T18:45:00", "Tickets":{ "Adults":2 }}
DBMS_JSON.AddVC( “MOVIE_TICKETS”, “BOOKING_DETAILS”);
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
JSONSearchIndex:AuniversalindexforJSONcontent
• Supports searching on JSON using key, path and value• Supports range searches on numeric values• Supports full text searches:
– Full boolean search capabilities (and, or, and not)– Phrase search, proximity search and "within field" searches.– Inexact queries: fuzzy match, soundex and name search.– Automatic linguistic stemming for 32 languages– A full, integrated ISO thesaurus framework
CREATE SEARCH INDEX JSON_SEARCH_INDEX ON J_PURCHASEORDER (PO_DOCUMENT) FOR JSON;
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
QueryOpEmizaEonsforJSONExadataSmartScans• ExadataSmartScansexecuteporEonsofSQLqueriesonExadatastoragecells
• JSONqueryoperaEons‘pusheddown’toExadatastoragecells• MassivelyparallelprocessingofJSONdocuments
In-MemoryColumnarStore• Virtualcolumns,includedthosegeneratedusingJSONDataGuideloadedintoIn-MemoryVirtualColumns
• JSONdocumentsloadedusingahighlyopEmizedIn-Memorybinaryformat
• QueryoperaEonsonJSONcontentautomaEcallydirectedtoIn-Memory
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
NaEveJSONGeneraEon
• JSONgeneraEonfuncEonsavailable:– JSON_OBJECT/JSON_OBJECTAGG– JSON_ARRAY/JSON_ARRAYAGG
SQL> SELECT JSON_OBJECT('Id' is EMPLOYEE_ID, 'FirstName' is FIRST_NAME, 2 'LastName' is LAST_NAME) JSON 3 FROM HR.EMPLOYEES 4 WHERE EMPLOYEE_ID = 100; JSON ------------------------------------------------------------------------------ { "Id" : 100 , "FirstName" : "Steven" , "LastName" : "King" } SQL>
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
ProgramAgenda
ApplicaEonContainers
OracleDatabaseSharding
Evenbe[erJSON
BigDataSQL
Longaskedforandothers
1
2
3
4
5
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
BigDataSQL
TheBestofBothWorlds
SQL
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
TheBestofBothWorlds
• Simplicity• SpecializaEon• Performance
• Complexity• FragmentaEon• Delays
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
Yesterday’sOn-PremisesDeploymentModels
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
TodayMoreDeploymentOpEonsforBigDataSQL
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
ProgramAgenda
ApplicaEonContainers
OracleDatabaseSharding
Evenbe[erJSON
BigDataSQL
Longaskedforandothers
1
2
3
4
5
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
Case-insensiEveDatabaseandColumn-levelCollaEonGreatlysimplifiesmigra;onofcase-insensi;vefunc;onalityof3rd-partyproducts
• LinguisEc-sensiEveoperaEons,e.g.,comparisonandsorEng,onthecolumnhonorthedeclaredcollaEon
• UnspecifiedcolumncollaEonisinheritedfromthedefaultcollaEonpropertyoftheparenttableorschema
• COLLATEoperatorcanbeusedtocastanexplicitcollaEonanywhereinanexpression
CREATE TABLE product ( id NUMBER, name VARCHAR2(50) COLLATE BINARY_CI, comments VARCHAR2(500) ) DEFAULT COLLATION BINARY;
SELECT name, comments FROM product WHERE name LIKE '%BASE%' OR comments COLLATE BINARY_CI LIKE '%REPORT%'; NAME COMMENTS _ Oracle Database Activity-Based Management Business Intelligence Replaces Reports
_CI=case-insensiEve
InheritsBINARY
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
• 12.1.0.2APPROX_COUNT_DISTINCT• 12.2.0.1adds:• APPROX_PERCENTILE• APPROX_MEDIAN
– FindthevalueforagivenpercenEle,e.g.whatistheamountsoldthatrepresentsthe90%percenEleofallsales
– 6-13Xfasterwitherrortypically<1%
• ApproximatefuncEonsusedwithoutanyapplicaEonchanges– QueriesautomaEcallyre-wri[entouseapproximatefuncEons
– approx_for_aggregaEon=TRUE
• Storeapproximateaggregatesinmaterializedviewswithqueryrewrite– NotpreviouslypossibletouseMV’swithdisEnctandpercenEleaggregates
ApproximateQueryProcessingNoteveryqueryrequiresacompletelyaccurateresult
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
PropertyGraphSupport• Massively-ScalableGraphDatabase
– Scalestotrillionsofedges• Memory-basedGraphAnalyEcs
– Morethan35graphanalysisalgorithms
• SimpleStandardinterfaces– SQL,Java– Tinkerpop:Blueprints,Gremlin,Rexster– Groovy,Python
START
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
PL/SQLdeprecatepragma
create procedure p authid Definer is pragma deprecate(p, 'p is deprecated. You must use p2 instead.'); begin DBMS_Output.Put_Line('p'); end p; PLW-06019: entity P is deprecated create procedure q authid Definer is begin p(); DBMS_Output.Put_Line('q'); end q; PLW-06020: reference to a deprecated entity: p is deprecated. You must use p2 instead.
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
128-byteidenEfiersforobjects
CREATE TABLE VERY_VERY_LONG_TABLE_NAME_IDENTIFIER_THAT_IS_58_BYTES_LONG ( VERY_VERY_LONG_TEXT_COLUMN_WITH_DATA_TYPE_VARCHAR2_THAT_IS_72_BYTES_LONG VARCHAR2(25) ); Table VERY_VERY_LONG_TABLE_NAME_IDENTIFIER_THAT_IS_58_BYTES_LONG created. INSERT INTO VERY_VERY_LONG_TABLE_NAME_IDENTIFIER_THAT_IS_58_BYTES_LONG VALUES ('Hello OOW attendees!'); 1 row inserted. SELECT * FROM VERY_VERY_LONG_TABLE_NAME_IDENTIFIER_THAT_IS_58_BYTES_LONG; VERY_VERY_LONG_TEXT_COLUM ------------------------- Hello OOW attendees!
Copyright©2015Oracleand/oritsaffiliates.Allrightsreserved.|
OracleonDocker
• OracleDatabaseisfullysupportedonDocker– OracleLinux7– RedHatEnterpriseLinux7
• OracleimageonDockerStore• DockerbuildfilesonGitHub
Copyright©2015Oracleand/oritsaffiliates.Allrightsreserved.|
OracleonDocker• Dockercontainercontainssingle-PDBCDB• PDBcanbeplugged,unplugged,etc.• PDBcanmovebi-direcEonal
Copyright©2015Oracleand/oritsaffiliates.Allrightsreserved.|
DockerStore• Oracle12.1.0.2imagesareavailableonDockerStoreRegistry
– h[ps://store.docker.com– 12.2.0.1comingsoon(currentlygoingthroughtesEng)
Copyright©2015Oracleand/oritsaffiliates.Allrightsreserved.|
DockerbuildfilesavailableonGitHub• Repository:h[ps://github.com/oracle/docker-images• Buildfilesfor12.2.0.1EE/SE2,12.1.0.2EE/SE2,11.2.0.2XE
Copyright©2014Oracleand/oritsaffiliates.Allrightsreserved.|
LiveSQL.oracle.com
56
ThefullpowerofOracleSQLinyourbrowser
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
Thankyou!
haps://developer.oracle.com
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
SafeHarborStatementTheprecedingisintendedtooutlineourgeneralproductdirecEon.ItisintendedforinformaEonpurposesonly,andmaynotbeincorporatedintoanycontract.Itisnotacommitmenttodeliveranymaterial,code,orfuncEonality,andshouldnotberelieduponinmakingpurchasingdecisions.Thedevelopment,release,andEmingofanyfeaturesorfuncEonalitydescribedforOracle’sproductsremainsatthesolediscreEonofOracle.
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|