117
Agile Data Platform: Revolutionizing Database Cloning Kyle Hailey http://kylehailey.com

OOUG: Database Virtualization

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: OOUG: Database Virtualization

Agile Data Platform: Revolutionizing Database Cloning

Kyle Haileyhttp://kylehailey.com

Page 2: OOUG: Database Virtualization

Problem in IT

Get the right dataTo the right peopleAt the right time

Page 3: OOUG: Database Virtualization

Production

Development

Business Intelligence

Backup

Data Guard

QA

UAT

Tape

Sandbox

Forensics

Page 4: OOUG: Database Virtualization

Part I : Cloning Technology

Virtual Thin Clone Physical

Part II : Agile Data Acceleration

Page 5: OOUG: Database Virtualization

Database Cloning Challenge

If you can’t satisfy the business demands then your process is broken.

Page 6: OOUG: Database Virtualization

Problem

Developers

QA and UAT

Reports

First copy

Production

• CERN -  European Organization for Nuclear Research

• 145 TB database• 75 TB growth each year• Dozens of developers want copies.

Page 7: OOUG: Database Virtualization

Tradeoff: Speed, Quality, Cost

Page 8: OOUG: Database Virtualization

What We’ve Seen

1. Inefficient QA: Higher costs of QA2. QA Delays : Greater re-work of code3. Sharing DB Environments : Bottlenecks4. Using DB Subsets: More bugs in Prod5. Slow Environment Builds: Delays

“if you can't measure it you can’t manage it”

Page 9: OOUG: Database Virtualization

1. Inefficient QA: Long Build times

Build Time

QA Test

96% of QA time was building environment$.04/$1.00 actual testing vs. setup

Build

Page 10: OOUG: Database Virtualization

2. QA Delays: bugs found late require more code re-work

Build QA Env QA Build QA Env QA

Sprint 1 Sprint 2 Sprint 3

Bug CodeX

1 2 3 4 5 6 70

10203040506070

Delay in Fixing the bug

Cost ToCorrect

Software Engineering Economics – Barry Boehm (1981)

Page 11: OOUG: Database Virtualization

3. Full Copy Shared : Bottlenecks

Frustration Waiting

Old Unrepresentative Data

Page 12: OOUG: Database Virtualization
Page 13: OOUG: Database Virtualization

4. Subsets : cause bugs

Page 14: OOUG: Database Virtualization

Production4. Subsets : cause bugs

Classic problem is that queries that run fast on subsets hit the wall in production.

Developers are unable to test against all data

The Production ‘Wall’

Page 15: OOUG: Database Virtualization

5. Slow Environment Builds: 3-6 Months to Deliver Data

Management

DBA

System Admin

Storage Admin

Developers Submit Request

Disk Capacity?

Approve Request $$ (2 Weeks)

Approve Request $$

(1 Week)

RequestAdditional Storage?

ProvisionCapacity

File SystemConfigured?

Configure LUNS & Build File System

Coordinate Replication w/ Infrastructure

Re-Parameterize & Configure DB

Mount Recovery DB to

Specific PIT

Begin Work

Approve Request $$ (2 Weeks)

(3 Days)

(3 Days)

(2 Days)

(3 Days)

(3 Days)

…….1-2 Weeks of Approvals, Delays, and Provisioning……

15

Page 16: OOUG: Database Virtualization

5. Slow Environment Builds: culture of no

DBA Developer

Page 17: OOUG: Database Virtualization

Never enough environments

Page 18: OOUG: Database Virtualization

bottlenecks

Page 19: OOUG: Database Virtualization

What We’ve Seen

1. Inefficient QA: Higher costs2. QA Delays : Increased re-work3. Sharing DB : Bottlenecks4. Subset DB : Bugs5. Slow Environment Builds: Delays

Page 20: OOUG: Database Virtualization

Clone 1 Clone 3Clone 2

99% of blocks are identical

Page 21: OOUG: Database Virtualization
Page 22: OOUG: Database Virtualization

Clone 1 Clone 2 Clone 3

Thin Clone

Page 23: OOUG: Database Virtualization

I. Clonedb Oracle II. EMC

• Copy on first write (COFW)III. Netapp

• write anywhere file system (WAFL)• & EMC VNX redirect on write (ROW)

IV. ZFS

2. Thin Cloning

Page 24: OOUG: Database Virtualization

RMAN backup

dNFSsparse fileI. clonedb

Page 25: OOUG: Database Virtualization

RMAN backup

dNFSsparse fileI. clonedb

Page 26: OOUG: Database Virtualization

CloneDB

1. dNFS 11.2.0.2+– cd $ORACLE_HOME/rdbms/lib– make -f ins_rdbms.mk dnfs_on

2. Clonedb.pl initSOURCE.ora output.sql– MASTER_COPY_DIR="/rman_backup”– CLONE_FILE_CREATE_DEST="/nfs_mount”– CLONEDB_NAME="clone"

3. sqlplus / as sysdba @output.sql– startup nomount PFILE=initclone.ora – Create control file backup location– dbms_dnfs.clonedb_renamefile ('/backup/file.dbf' , '/clone/file.dbf');– alter database open resetlogs;

Tim Hallwww.oracle-base.com/articles/11g/clonedb-11gr2.php

Page 27: OOUG: Database Virtualization

I. Clonedb Oracle II. EMC

• Copy on first write (COFW)III. Netapp

• write anywhere file system (WAFL)• & EMC VNX redirect on write (ROW)

IV. ZFS

Thin Cloning

Page 28: OOUG: Database Virtualization

D

ActiveFile

SystemSnapshot

CBA

II. EMC Copy on Write

Page 29: OOUG: Database Virtualization

D

ActiveFile

SystemSnapshot

DCBA

Write penalty (read and two writes)Limit 16 snapshotsNo Branching (snapshots of snapshots)

II. EMC Copy on Write

Page 30: OOUG: Database Virtualization

I. Clonedb Oracle II. EMC

• Copy on first write (COFW)III. Netapp

• write anywhere file system (WAFL)• & EMC VNX redirect on write (ROW)

IV. ZFS

Page 31: OOUG: Database Virtualization

Data Blocks

root

III. Netapp and EMC VNX

• 255 snapshots• Branching possible

Page 32: OOUG: Database Virtualization

I. Clonedb Oracle II. EMC

• Copy on first write (COFW)III. Netapp

• write anywhere file system (WAFL)• & EMC VNX redirect on write (ROW)

IV. ZFS

Page 33: OOUG: Database Virtualization

Snapshot rootLive root

ZilIntent Log

IV. ZFS Allocate on Write

Unlimited Instantaneous SnapshotsUnlimited Instantaneous ClonesBranching easy and unlimited

Page 34: OOUG: Database Virtualization

I. Clonedb Oracle II. EMC III. Netapp IV. ZFS

2. Thin Cloning

Database Luns

Production FilerTarget A

Target B

Target C

snapshotclones

1. Put database in hot backup2. Take Snapshot3. Clone Snapshot (ZFS & Netapp)4. Export Clone5. Mount on target host

InstanceInstance

InstanceInstance

InstanceInstance

InstanceInstance

Instance

Source

Page 35: OOUG: Database Virtualization

Database LUNs

snapshotclonesProduction Filer

Development Filer

Problem: How do you get data off Production?

Instance

Target A

Target B

Target C

InstanceInstance

InstanceInstance

InstanceInstance

Instance

Page 36: OOUG: Database Virtualization

Three Core Parts

Production

File System

Instance

DevelopmentStorage

21 3

1. Copy 2. Sync

Clone (snapshot)

Mount, recover, rename

Instance

Page 37: OOUG: Database Virtualization

Three Core Parts

Production

File System

Instance

DevelopmentStorage

1

1. Copy 2. Sync

Instance

Page 38: OOUG: Database Virtualization

Snap Manager

SnapManagerRepository

Protection Manager

Snap Drive

Snap Manager

Snap Mirror

Flex Clone

RMANRepository

Production

Development

DBA

Storage Admin

1 tr-3761.pdf

Netapp

Page 39: OOUG: Database Virtualization

NetApp Filer - DevelopmentNetApp Filer - Production

Database Luns

Snap mirror

Snapshot Manager for Oracle

Flexclone

Repository Database

SnapDrive

Protection Manage

Production

Development

1NetappTarget A

Target B

Target C

InstanceInstance

InstanceInstance

InstanceInstance

Instance

Page 40: OOUG: Database Virtualization

Three Core Parts

Production

File System

Instance

DevelopmentStorage

Instance

3

Mount, recover, renameRoles & security

3

Page 41: OOUG: Database Virtualization

Oracle EM 12c Snap Clone3

EM 12c

Agents instance

• Register Netapp or ZFS with Storage Credentials• Install agents on a LINUX machine to manage the Netapp or ZFS storage. • Register test master database• Enable Snap Clone for the test master database• Set up a zone – set max CPU and Memory and the roles that can see these zones• Set up a pool – a pool is a set of machines where databases can be provisioned• Set up a profile – a source database that can be used for thin cloning• Set up a service template – init.ora values

Test Master

Instance

Source

? instance

CloneLinux

ZFS orNetApp

PoolProfile

ZoneTemplate

Page 42: OOUG: Database Virtualization

Where we Are

Production Development QA UAT

Instance Instance Instance InstanceInstance Instance Instance Instance

Database

File systemFile system

Database

File systemFile system

Database

File system

Database

File systemFile systemFile systemFile system

Page 43: OOUG: Database Virtualization

Database

File system

Production

Instance

Database

Development

Instance

Database

QA

Instance

Database

UAT

Instance

Snapshots

Instance Instance Instance Instance

Want be here

Page 44: OOUG: Database Virtualization

EM 12c: Snap Clone

Production Development

Flexclone Flexclone

Netapp Snap Manager for Oracle

Page 45: OOUG: Database Virtualization

Thin Cloning

Page 46: OOUG: Database Virtualization
Page 47: OOUG: Database Virtualization
Page 48: OOUG: Database Virtualization

3. Database Virtualization

Page 49: OOUG: Database Virtualization

Three Physical CopiesThree Virtual Copies

Data Virtualization Appliance

Page 50: OOUG: Database Virtualization

Choose your virtualization Layer:• Delphix and Oracle SMU

SMU

ZFS Storage Appliance

Page 51: OOUG: Database Virtualization

Oracle 12c SMUOracle Snap Management Utility for ZFS Appliance

• Requires ZFS Appliance• Supports Linux , Solaris 10+, Windows

2008+• GUI

– snapshot source databases – provision virtual databases

Page 52: OOUG: Database Virtualization

Install Delphix on x86 hardware

Intel hardware

Page 53: OOUG: Database Virtualization

Allocate Any Storage to Delphix

Allocate StorageAny type

Page 54: OOUG: Database Virtualization

One time backup of source database

Database

Production

Instance

File system

File systemUpcoming

Supports

Page 55: OOUG: Database Virtualization

DxFS (Delphix) Compress Data

Database

Production

Instance

Data is compressed typically 1/3 size

File system

Page 56: OOUG: Database Virtualization

Incremental forever change collection

Database

Production

Instance

File system

Changes

• Collected incrementally forever• Old data purged

File system Time Window

Page 57: OOUG: Database Virtualization

Typical Architecture

Production Development QA UAT

Instance Instance Instance InstanceInstance Instance Instance Instance

Database

File systemFile system

Database

File systemFile system

Database

File system

Database

File systemFile systemFile systemFile system

Page 58: OOUG: Database Virtualization

With Delphix

Database

Production

Instance

Database

Development

Instance

Database

QA

Instance

Database

UAT

InstanceInstance Instance Instance Instance

File system

Page 59: OOUG: Database Virtualization
Page 60: OOUG: Database Virtualization
Page 61: OOUG: Database Virtualization

Three Core Parts

Production

Instance

Time Window

Instance

Self Service

Development

21 3

Source Syncing Storage (DxFS)

Page 62: OOUG: Database Virtualization

Fast, Fresh, Full

Instance

Time Window

Instance

Development VDB

Source

Page 63: OOUG: Database Virtualization

Free

Instance

Time Window

Instance

Instance

Instance

gif by Steve Karam

Source

Source

Page 64: OOUG: Database Virtualization

Self Service

Page 65: OOUG: Database Virtualization

Branching

Instance Instance

Instance

Time Window

Time Window

Dev1 VDB

Source

Source Dev VDB

QA VDB (branched from Dev)

End of SprintOr a Code Freeze

Page 66: OOUG: Database Virtualization

Federated Cloning

Page 67: OOUG: Database Virtualization
Page 68: OOUG: Database Virtualization

Federated

Instance

Time Window

Instance

Instance

Instance

Time Window

Source1

Source2Source1

Source2

Page 69: OOUG: Database Virtualization

“I looked like a hero”Tony Young, CIO Informatica

Page 70: OOUG: Database Virtualization

DevOps

Page 71: OOUG: Database Virtualization

DevOps With Delphix

1. Efficient QA: Low cost, high utilization2. Quick QA : Fast Bug Fix3. Every Dev gets DB: Parallelized Dev4. Full DB : Less Bugs5. Fast Builds: Fast Dev, Culture of Yes

Page 72: OOUG: Database Virtualization

1. Efficient QA: Lower cost

Build Time

QA Test

1% of QA time was building environment$.99/$1.00 actual testing vs. setup

Build Time

QA Test

Build

Page 73: OOUG: Database Virtualization

Rapid QA via Branching

Page 74: OOUG: Database Virtualization

2. QA Immediate: bugs found fast and fixed

Sprint 1 Sprint 2 Sprint 3

Bug CodeX

QA QA

Build QA Env QA Build QA Env Q

A

Sprint 1 Sprint 2 Sprint 3

Bug CodeX

Page 75: OOUG: Database Virtualization

3. Private Copies: Parallelize

Page 76: OOUG: Database Virtualization

4. Full Size DB : Eliminate bugs

Production

Page 77: OOUG: Database Virtualization

5. Self Service: Fast, Efficient. Culture of Yes!

Management

DBA

System Admin

Storage Admin

Developers Submit Request

Disk Capacity?

Approve Request $$ (2 Weeks)

Approve Request $$

(1 Week)

RequestAdditional Storage?

ProvisionCapacity

File SystemConfigured?

Configure LUNS & Build File System

Coordinate Replication w/ Infrastructure

Re-Parameterize & Configure DB

Mount Recovery DB to

Specific PIT

Begin Work

Approve Request $$ (2 Weeks)

(3 Days)

(3 Days)

(2 Days)

(3 Days)

(3 Days)

…….1-2 Weeks of Approvals, Delays, and Provisioning……

Page 78: OOUG: Database Virtualization

Quality

• Forensics• A/B testing• Recovery

Page 79: OOUG: Database Virtualization

Investigate Production Bugs

Instance

Time Window

Instance

Development

Anomaly on ProdPossible code bugAt noon yesterday

Spin up VDB of Prod as it was during anomaly

Page 80: OOUG: Database Virtualization

Rewind for patch and QA testing

Instance

Time Window

Instance

Development

Time Window

Prod

Page 81: OOUG: Database Virtualization

A/B testing

Instance

Time Window

Instance

Instance

• Keep tests for compare• Production vs Virtual

– invisible index on Prod– Creating index on virtual

• Flashback vs Virtual

Test A with Index 1

Test B with Index 2

Page 82: OOUG: Database Virtualization

Surgical recover of Production

Instance Instance

Development

Time Window

Spin VDB up Before drop

Problem on ProdDropped Table Accidently

Source

Page 83: OOUG: Database Virtualization

Time Window

Surgical or Full Recovery on VDB

Instance

Instance

Dev1 VDB

Time Window

Dev1 VDB

InstanceSource

Source

Dev2 VDB Branched

Page 84: OOUG: Database Virtualization

Virtual to Physical

Instance Instance

VDB

Source

Time Window

Spin VDB up Before drop

Corruption

Page 85: OOUG: Database Virtualization

Recovery

Page 86: OOUG: Database Virtualization

Business Intelligence

Page 87: OOUG: Database Virtualization

ETL and Refresh Windows

1pm 10pm 8am noon

Page 88: OOUG: Database Virtualization

ETL and DW refreshes taking longer

1pm 10pm 8am noon20112012201320142015

Page 89: OOUG: Database Virtualization

Database going Global

Page 90: OOUG: Database Virtualization

Globalization Reduces Windows

20112012201320142015

1pm 10pm 8am noon

10pm 8am noon 9pm

Page 91: OOUG: Database Virtualization

6am 8am 10pm

Page 92: OOUG: Database Virtualization

ETL and Refresh Windows

20112012201320142015

1pm 10pm 8am noon

10pm 8am noon 9pm

6am 8am 10pm

Page 93: OOUG: Database Virtualization

ETL and DW Refreshes

Instance

Prod

Instance

DW & BI

Data Guard – requires full refresh if usedActive Data Guard – read only, most reports don’t work

Page 94: OOUG: Database Virtualization

Fast Refreshes

• Collect only Changes• Refresh in minutes

Instance Instance

DW

Prod

Instance

BI

ETL24x7

Page 95: OOUG: Database Virtualization

Temporal Data

Page 96: OOUG: Database Virtualization

BI

a) Fast refreshes

b) Temporal queries

c) Confidence testing

Page 97: OOUG: Database Virtualization

Review: Use Cases

1. Development Accelerationa) Full, Fresh, Fast , Self Serveb) QA Branchingc) Federated

2. Qualitya) Forensicsb) Testing : A/B, upgrade, patchc) Recovery: logical, physical

3. BIa) Fast refreshb) Temporal Datac) Confidence testing

Page 98: OOUG: Database Virtualization
Page 99: OOUG: Database Virtualization

over 10 times

perhaps the single largest storage consolidation opportunity history“

Page 100: OOUG: Database Virtualization
Page 101: OOUG: Database Virtualization
Page 102: OOUG: Database Virtualization
Page 103: OOUG: Database Virtualization

Oracle 12c

Page 104: OOUG: Database Virtualization

80MB buffer cache ?

Page 105: OOUG: Database Virtualization

200GBCache

Page 106: OOUG: Database Virtualization

5000

Tnxs

/ m

inLa

tenc

y

300 ms

1 5 10 20 30 60 100 200

with

1 5 10 20 30 60 100 200Users

Page 107: OOUG: Database Virtualization

8000

Tnxs

/ m

inLa

tenc

y

600 ms

1 5 10 20 30 60 100 200Users

1 5 10 20 30 60 100 200

Page 108: OOUG: Database Virtualization

$1,000,000

$6,000

Page 109: OOUG: Database Virtualization

Database Virtualization

Page 110: OOUG: Database Virtualization
Page 111: OOUG: Database Virtualization
Page 112: OOUG: Database Virtualization

About Delphix

• Founded in 2008, launched in 2010• CEO Jedidiah Yueh (founder of Avamar: >$1B revenue))• Based in Silicon Valley, Global Operations• 10% of Fortune 500

Page 113: OOUG: Database Virtualization

$40M

$75M

$850M

$27,000M

Storage

IT

Develop

Business

Page 114: OOUG: Database Virtualization
Page 115: OOUG: Database Virtualization

Good, Cheap, Fast : choose two

Fast

GoodCheap

Page 116: OOUG: Database Virtualization

FS vs. ZFS

• FS per Volume

• FS limited bandwidth

• Storage stranded

• Many FS in a pool

• Grow automatically

• All bandwidth

Storage PoolVolume

FS

Volume

FS

Volume

FS ZFS ZFS ZFS

Page 117: OOUG: Database Virtualization

Three Core Parts

Production

File System

Instance

DevelopmentStorage

21 3

Copy Sync SnapshotsPurge Time Flow

Clone (snapshot)CompressShare CacheStorage Agnostic

Mount, recover, renameSelf Service, Roles & Security Rollback & Refresh Branch & Tag

Instance