SlideShare ist ein Scribd-Unternehmen logo
1 von 24
1
Designing and Developing your
Database for Application Availability
Presented to the Melbourne CBD SQL PASS Chapter.
Saxons - Level 8, 500 Collins Street. Melbourne, Australia
12:30 – 14:00, July 26th 2010
Charley Hanania, QS2 AG
B.Sc (Computing), MCP, MCDBA, MCITP, MCTS, MCT, Microsoft MVP: SQL Server
Senior Database Specialist
My Background
• Now:
• Microsoft MVP: SQL Server
• Database Consultant (again, and very happy) at QS2 AG
• Formerly:
• Production Product Owner of MS SQL Server Platform at UBS Investment Bank
• Technical Team Lead
• ITIL v3 Certified
• SQL Server Certified since 1998
• On SQL Server since 1995
• Version 4 on OS/2
• IT Professional since 1992
• PASS
• Chapter Leader – Switzerland
• Regional Mentor – Europe
• European PASS Conference Lead
• Event Speaker
2
26 July, 2010
Designing
&
Developing
Databases
for
Application
Availability
Contact Info
• Email: Charley.Hanania@sqlpass.org
• Website: http://www.sqlpass.ch <- Slides here
• Twitter: http://www.twitter.com/CharleyHanania
• Blog: http://blogs.mssqltips.com/blogs/charleyhanania
• Linked-in: http://www.linkedin.com/in/charleyhanania
3
26 July, 2010
Designing
&
Developing
Databases
for
Application
Availability
Agenda
• General Barriers to Application Availability
• Standard High Availability Methodology
• General Standard - Clustering
• One up on the Standard – Database Mirroring
• Decreasing component start-up time
• Instant File Initialisation
• Partitioning your Database Infrastructure
• Eureka! Partitioning for Availability (PfA)
• Basic PfA Methodology
• Code Samples
• Questions
Designing
&
Developing
Databases
for
Application
Availability
4
26 July, 2010
General Barriers to Availability
Designing
&
Developing
Databases
for
Application
Availability
6
26 July, 2010
Simplistic Network Topology View:
Slightly more realistic view:
And that’s just scratching the surface of the Peripherals!
Think about the layered complexity of the supporting software and drivers…!
Environmental Complexity
Standard HA Methodology
• Keep it up for as long as possible.
• Increase redundancy
• Decrease Single Points of Failure
• Bring it back as quickly as possible
• Decrease the dependency sequence
• Decrease component start-up time
Designing
&
Developing
Databases
for
Application
Availability
7
26 July, 2010
General Standard - Clustering
• Keep it up for as long as possible.
• Increase redundancy
• Additional Servers waiting in readiness 
• Increased redundancy = increased cost 
• Increased redundancy = decreased
utilisation 
• Decrease Single Points of Failure
• Virtual IP Addresses 
• Virtual Network Names 
• Additional Network Cards etc 
• Storage 
• Bring it back as quickly as possible
• Decrease the dependency
sequence
• Server is Started 
• SQL Instance is an exclusive Cluster
Resource 
• Decrease component start-up time
• Instant File Initialisation 
• App Database isn’t useable until Primary
Data File is opened and recovered 
26 July, 2010
Designing
&
Developing
Databases
for
Application
Availability
8
Primary
Standby
Database Mirroring
• We could discuss the architecture, benefits and uses of DB
Mirroring, but I’m told you’re mainly architects and
developers, and the doors here aren’t locked…
• If you’d like to discuss DB Mirroring, we can chat after the
session…
Designing
&
Developing
Databases
for
Application
Availability
9
26 July, 2010
Decreasing Component Startup Time
(Another DBA point, but one that is Golden and not to be missed!)
• Data and log files are first initialized by being filled and with
zeros when created or restored.
• When SQL Server Starts, the tempdb database is recreated.
• Application databases do not come online until tempdb has.
• If large, then startup times can be quite long!
• Action:
• Ensure that instant file initialisation is set (Windows:
SE_MANAGE_VOLUME_NAME right)
• The group that the SQL Server Service Account is in needs to be
added to the Perform Volume Maintenance Tasks security policy,
in the “Local Security Policy” Tool.
• I’ve seen this reduce SQL Server Startup from 8 minutes to 1
second (max)
Designing
&
Developing
Databases
for
Application
Availability
10
26 July, 2010
INSTANT FILE INITIALISATION
Decreasing Component Startup Time
• Msdn lists the following (summarised)
• Hardware Partitioning
• Multiprocessors that enable multiple threads of operations.
• RAID (redundant array of independent disks) devices
• A table striped across multiple drives can typically be scanned faster than
the same table stored on a single drive.
• Horizontal Partitioning
• Divide tables into multiple tables containing the same number of
columns, but fewer rows.
• Partitioning data horizontally based on age and use is common.
• Vertical Partitioning
• Divide tables into multiple tables containing fewer columns through
normalization and row splitting.
Designing
&
Developing
Databases
for
Application
Availability
11
26 July, 2010
PARTITIONING DATABASE COMPONENTS
Additional Partitioning Options
• Logical Schema Partitioning
• Used mainly for securing and grouping objects by department,
role, application etc…
• Physical Partitioning
• Of Files and Filegroups
• Used mainly for performance
• Files placed on multiple different data volumes
• Multiple files created for round-robin writes and extent allocations
Designing
&
Developing
Databases
for
Application
Availability
12
26 July, 2010
Eureka! Partitioning for Availability
• Each database has an area similar to a disk’s boot record
• For a database this resides in the Primary data file
• If this file is corrupt or unavailable, the database will not be
loaded and opened regardless of other data files
• A good practice is to not put any objects in this data file, and to
put all your tables and objects into secondary data files.
• Within the DB you can distribute objects into files to achieve
one or more of the following
• Enable an application to continue working when other data files
are missing or corrupt by grouping needed objects together
• Restore the most critical files for your application system to start
up first, allowing partial functionality of your application to
continue without issue.
Designing
&
Developing
Databases
for
Application
Availability
13
26 July, 2010
14
Designing
&
Developing
Databases
for
Application
Availability
26 July, 2010
Open Discussion
Which ways could we split the adventureworks db,
focussed on client facing / downstream application
functionality, criticality and startup sequence for
Availability?
Adventureworks Schema
PfA Methodology
• Conceptual extension from Logical Schema Partitioning and
Physical File Partitioning:
1. Don’t put user defined objects in the Primary FileGroup
i. Allows the Primary Filegroup to load faster
2. Schema Separate user defined objects
i. For clarity of purpose and operational use
ii. Try not to use dbo schema (good design/operational practice)
iii. DBA’s will schematize objects in a similar fashion to what was in the
Adventureworks sample. For PfA you should look to map your schema’s
around your application’s core functionality and use cases and criticality
3. Create Filegroups for each Schema
i. Multiple if you want to partition historical data horizontally etc
ii. Name them in a fashion that allows easy understanding of what is
in them, or how they should be used.
Designing
&
Developing
Databases
for
Application
Availability
16
26 July, 2010
PfA Methodology(2)
• Conceptual extension from Logical Schema Partitioning and
Physical File Partitioning:
4. Design your application to modularise its data access needs
i. This is critical to segmenting your application to specific data
files/filegroups.
ii. This includes stored procedure and function internals, use
try/catch within sp’s for example to decide whether rollback or
other functionality is needed when a filegroup is offline.
iii. The key flows could be
 to either contain data access within the necessary filegroups, or
 determine whether a function can be used to catch that an object is in an
offline filegroup and skip it / do something else / roll back, or
 Catch “Msg 8653, Level 16, State 1, Line 3”* and do as per point above.
5. Document application’s modules, with emphasis on criticality
and data dependencies.
i. Allows stepped sequencing of apps by criticality during start up
Designing
&
Developing
Databases
for
Application
Availability
17
26 July, 2010
*[Tambs] While the database is in a state of partial availability, the filegroups that
remain online can support queries. However, queries that depend on data that
resides in filegroups that are offline return error 8653:
Msg 8653, Level 16, State 1, Line 3
The query processor is unable to produce a plan for the table or view 'X' because
the table resides in a filegroup which is not online.
18
Designing
&
Developing
Databases
for
Application
Availability
26 July, 2010
Adding Files and File Groups to a Database
USE [master]
GO
CREATE DATABASE [PfA]
ON PRIMARY
(
NAME = N'PfA_Primary'
,FILENAME = N'E:MSSQL10.SQL2008INST01MSSQLDataPfA_Primary.mdf'
,SIZE = 400MB
),
FILEGROUP [PfA_FG1]
(
NAME = N'PfA_F1_FG1'
,FILENAME = N'E:MSSQL10.SQL2008INST01MSSQLDataPfA_F1_FG1.ndf'
,SIZE = 300MB
),
(
NAME = N'PfA_F2_FG1'
,FILENAME = N'E:MSSQL10.SQL2008INST01MSSQLDataPfA_F2_FG1.ndf'
,SIZE = 300MB
),
FILEGROUP [PfA_FG2]
(
NAME = N'PfA_F1_FG2'
,FILENAME = N'E:MSSQL10.SQL2008INST01MSSQLDataPfA_F1_FG2.ndf'
,SIZE = 300MB
),
FILEGROUP [PfA_FG3]
(
NAME = N'PfA_F1_FG3'
,FILENAME = N'E:MSSQL10.SQL2008INST01MSSQLDataPfA_F1_FG3.ndf'
,SIZE = 300MB
)
LOG ON
(
NAME = N'PfA_log'
,FILENAME = N'F:MSSQL10.SQL2008INST01MSSQLLogsPfA_PfA_log.LDF'
,SIZE = 100MB
)
GO
USE [PfA];
GO
SELECT * FROM sys.database_files;
SELECT * FROM sys.filegroups;
19
Designing
&
Developing
Databases
for
Application
Availability
26 July, 2010
Create and Allocate Objectsto Schemas
USE [PfA];
GO
CREATE SCHEMA [Sales];
GO
CREATE SCHEMA [Production];
GO
CREATE SCHEMA [Person];
GO
-- moving tables from dbo schema to
-- [Production] and [Sales] schemas
ALTER SCHEMA [Sales]
TRANSFER [dbo].[Customer];
-- Note that triggers move as well...
GO
ALTER SCHEMA [Production]
TRANSFER [dbo].[BillOfMaterials];
GO
ALTER SCHEMA [Person]
TRANSFER [dbo].[ContactInsert];
GO
ALTER SCHEMA [Person]
TRANSFER [dbo].[Contact];
GO
-- change stored proc definitions to focus on right schemas
ALTER PROC [dbo].[ContactInsert]
(
@VbiContactID BIGINT
,@VvcSalutation VARCHAR(4) = NULL
,@VnvcForename NVARCHAR(100),@VnvcMiddlename NVARCHAR(100) = NULL
,@VnvcSurname NVARCHAR(100),@VvcJobTitle NVARCHAR(100) = NULL
,@VvcCompany NVARCHAR(100) = NULL,@VnvcAddressLine1 NVARCHAR(100)
,@VnvcAddressLine2 NVARCHAR(100) = NULL
,@VnvcAddressLine3 NVARCHAR(100) = NULL
,@VvcPostCode VARCHAR(12),@VnvcCity NVARCHAR(50)
,@VnvcState NVARCHAR(50) = NULL,@VinCountryID INT
,@VvcEmailAddress VARCHAR(100),@VvcBusinessPhone VARCHAR(25)
,@VvcBusExt VARCHAR(10) = NULL,@VvcFacsimile VARCHAR(25) = NULL
,@VvcMobilePhone VARCHAR(25) = NULL,@VvcPassword VARCHAR(20)
)
AS
INSERT INTO [Person].[Contact]
([ContactID],[Salutation]
,[Forename],[Middlename]
,[Surname],[JobTitle]
,[Company],[AddressLine1]
,[AddressLine2],[AddressLine3]
,[PostCode],[City]
,[State],[CountryID]
,[EmailAddress],[BusinessPhone]
,[BusExt],[Facsimile]
,[MobilePhone],[Password])
VALUES
(@VbiContactID,@VvcSalutation
,@VnvcForename,@VnvcMiddlename
,@VnvcSurname,@VvcJobTitle
,@VvcCompany,@VnvcAddressLine1
,@VnvcAddressLine2,@VnvcAddressLine3
,@VvcPostCode,@VnvcCity
,@VnvcState,@VinCountryID
,@VvcEmailAddress,@VvcBusinessPhone
,@VvcBusExt,@VvcFacsimile
,@VvcMobilePhone,@VvcPassword);
GO
* Use Synonyms to help the transition from
dbo native schema to proper schema usage
20
Designing
&
Developing
Databases
for
Application
Availability
26 July, 2010
Allocate an Object to a Filegroup
CREATE TABLE [Sales].[SalesInvoice]
(
[SalesInvoiceID] INT IDENTITY(1,1) PRIMARY KEY CLUSTERED
,[Amount] MONEY
,[CustomerID] INT
,[DateInvoiced] DATETIME
,[DatePaid] DATETIME
) ON [PfA_FG1];
GO
• Creating tables on a filegroup is easy as per the code sample.
• Moving existing tables can be a little more complicated:
• Use Create index (clustered) with Drop Existing
• Rebuild indexes etc to move them
• It may take many iterations to get the sequencing and code here
right, but its worth it in the long run.
21
Designing
&
Developing
Databases
for
Application
Availability
26 July, 2010
Retry Logic (1)
ADO.NET Code Example (http://technet.microsoft.com/en-us/library/cc917713.aspx#ECAA)
This code example uses ADO.NET 2.0 (SqlClient). The following parameters are used in the example.
strConn is the database connection string that includes the failover partner.
strCmd is the command, such as Transact-SQL or a stored procedure, to execute.
iRetryInterval is the number of seconds to wait (sleep) between retries.
iMaxRetries is the number of times to retry the command before failing.
Example connection string ( strConn )
Data Source=SQLAINST1;Failover Partner=SQLBINST1;
Initial Catalog=DBMTest;Integrated Security=True
using System.Data;
using System.Data.SqlClient;
using System.Threading;
bool ExecuteSQLWithRetry_NoResults(string strConn,
string strCmd,
int iRetryInterval,
int iMaxRetries)
{
// Step 1: Enter the retry loop in case an error occurs
for (int iRetryCount = 0; iRetryCount < iMaxRetries; iRetryCount++)
{
try
{
// Step 2: Open the database connection
conn = new SqlConnection(strConn);
conn.Open();
// Step 3: Execute the command
if (null != conn && ConnectionState.Open == conn.State)
{
cmd = new SqlCommand(strCmd, conn);
cmd.ExecuteNonQuery();
// Step 4: If there were no errors, clean-up & return success
return true;
}
}
catch (Exception ex)
{
// Step 5: Catch Error on Open Connection or Execute Command
// Error Handling to be added here: ex
}
• I expect that the code here will only need
slight Adjustments for use with Clustering
• Connection string would use virtual name
• Timeout retry delay would cater for longer
startup/failover
22
Designing
&
Developing
Databases
for
Application
Availability
26 July, 2010
Retry Logic (2)
finally
{ // Step 6: Clean up the Command and database Connection objects
try
{
// Clean Command object
if (null != cmd)
cmd.Dispose();
cmd = null;
// Clean up Connection object
if (null != conn && ConnectionState.Closed != conn.State)
conn.Close();
conn = null;
}
catch (Exception ex)
{
// Error handling to be added here
}
}
// Step 7: If the maximum number of retries not exceeded
if (iRetryCount < iMaxRetries)
{
// Step 7a: Sleep and continue (convert to milliseconds)
Thread.Sleep(iRetryInterval * 1000);
}
} // end for loop: iRetryCount < iMaxRetries
// Step 7b: If the max number of retries exceeded, return failure
return false;
}
Continued…
23
Designing
&
Developing
Databases
for
Application
Availability
26 July, 2010
Query Returning Files, Filegroups and Sizes
SELECT
s.data_space_id as Id
,g.name as Filegroup_name
,s.name as Logical_name
,physical_name
,g.is_default AS [IsDefault]
,g.is_read_only AS [ReadOnly]
,CAST(
ISNULL
(
(
SELECT
SUM(gs.size)*CONVERT(float,8)
FROM
sys.database_files gs
WHERE
gs.data_space_id = g.data_space_id
), 0
) AS float
) AS [Size]
FROM
sys.filegroups AS g
INNER JOIN
sys.master_files AS s
ON (s.data_space_id = g.data_space_id)
WHERE
s.type = 0
AND
s.database_id = db_id()
AND
s.drop_lsn IS NULL; From “Partial Database Availability”
(Danny Tambs, May 2007)
Links and Resources
• AdventureWorks Database Diagram
• http://www.microsoft.com/downloads/details.aspx?FamilyID=0f6e0bcf-a1b5-4760-8d79-
67970f93d5ff&DisplayLang=en
• Whitepaper: “Partial Database Availability” (Danny Tambs, May 2007)
• http://technet.microsoft.com
• Whitepaper: “Partitioned Table and Index Strategies Using SQL Server 2008” (Ron
Talmage, March 2009)
• http://technet.microsoft.com
Designing
&
Developing
Databases
for
Application
Availability
24
26 July, 2010
Questions?
Designing
&
Developing
Databases
for
Application
Availability
25
26 July, 2010

Weitere ähnliche Inhalte

Was ist angesagt?

The Evolution of the Oracle Database - Then, Now and Later (Fontys Hogeschool...
The Evolution of the Oracle Database - Then, Now and Later (Fontys Hogeschool...The Evolution of the Oracle Database - Then, Now and Later (Fontys Hogeschool...
The Evolution of the Oracle Database - Then, Now and Later (Fontys Hogeschool...Lucas Jellema
 
ora_sothea
ora_sotheaora_sothea
ora_sotheathysothea
 
Big Data: Getting started with Big SQL self-study guide
Big Data:  Getting started with Big SQL self-study guideBig Data:  Getting started with Big SQL self-study guide
Big Data: Getting started with Big SQL self-study guideCynthia Saracco
 
SQL Server and SharePoint - Best Practices presented by Steffen Krause, Micro...
SQL Server and SharePoint - Best Practices presented by Steffen Krause, Micro...SQL Server and SharePoint - Best Practices presented by Steffen Krause, Micro...
SQL Server and SharePoint - Best Practices presented by Steffen Krause, Micro...European SharePoint Conference
 
A to z for sql azure databases
A to z for sql azure databasesA to z for sql azure databases
A to z for sql azure databasesAntonios Chatzipavlis
 
Big Data: HBase and Big SQL self-study lab
Big Data:  HBase and Big SQL self-study lab Big Data:  HBase and Big SQL self-study lab
Big Data: HBase and Big SQL self-study lab Cynthia Saracco
 
Introduction to Oracle Database
Introduction to Oracle DatabaseIntroduction to Oracle Database
Introduction to Oracle Databasepuja_dhar
 
FileTable and Semantic Search in SQL Server 2012
FileTable and Semantic Search in SQL Server 2012FileTable and Semantic Search in SQL Server 2012
FileTable and Semantic Search in SQL Server 2012Michael Rys
 
What SQL DBAs need to know about SharePoint-Indianapolis 2013
What SQL DBAs need to know about SharePoint-Indianapolis 2013What SQL DBAs need to know about SharePoint-Indianapolis 2013
What SQL DBAs need to know about SharePoint-Indianapolis 2013J.D. Wade
 
Pass chapter meeting - november - partitioning for database availability - ch...
Pass chapter meeting - november - partitioning for database availability - ch...Pass chapter meeting - november - partitioning for database availability - ch...
Pass chapter meeting - november - partitioning for database availability - ch...Charley Hanania
 
Sql portfolio admin_practicals
Sql portfolio admin_practicalsSql portfolio admin_practicals
Sql portfolio admin_practicalsShelli Ciaschini
 
Microsoft SQL Server 2012 Components and Tools (Quick Overview) - Rev 1.3
Microsoft SQL Server 2012 Components and Tools (Quick Overview) - Rev 1.3Microsoft SQL Server 2012 Components and Tools (Quick Overview) - Rev 1.3
Microsoft SQL Server 2012 Components and Tools (Quick Overview) - Rev 1.3Naji El Kotob
 
Easy In, Easy Out: Customizing Your Open Source Publishing Software
Easy In, Easy Out: Customizing Your Open Source Publishing SoftwareEasy In, Easy Out: Customizing Your Open Source Publishing Software
Easy In, Easy Out: Customizing Your Open Source Publishing SoftwareNina McHale
 
11 Strategic Considerations for SharePoint Migration presented by Christian B...
11 Strategic Considerations for SharePoint Migration presented by Christian B...11 Strategic Considerations for SharePoint Migration presented by Christian B...
11 Strategic Considerations for SharePoint Migration presented by Christian B...European SharePoint Conference
 
SQL Server Extended Events
SQL Server Extended Events SQL Server Extended Events
SQL Server Extended Events Stuart Moore
 
SQL server Backup Restore Revealed
SQL server Backup Restore RevealedSQL server Backup Restore Revealed
SQL server Backup Restore RevealedAntonios Chatzipavlis
 

Was ist angesagt? (18)

The Evolution of the Oracle Database - Then, Now and Later (Fontys Hogeschool...
The Evolution of the Oracle Database - Then, Now and Later (Fontys Hogeschool...The Evolution of the Oracle Database - Then, Now and Later (Fontys Hogeschool...
The Evolution of the Oracle Database - Then, Now and Later (Fontys Hogeschool...
 
ora_sothea
ora_sotheaora_sothea
ora_sothea
 
Big Data: Getting started with Big SQL self-study guide
Big Data:  Getting started with Big SQL self-study guideBig Data:  Getting started with Big SQL self-study guide
Big Data: Getting started with Big SQL self-study guide
 
SQL Server and SharePoint - Best Practices presented by Steffen Krause, Micro...
SQL Server and SharePoint - Best Practices presented by Steffen Krause, Micro...SQL Server and SharePoint - Best Practices presented by Steffen Krause, Micro...
SQL Server and SharePoint - Best Practices presented by Steffen Krause, Micro...
 
A to z for sql azure databases
A to z for sql azure databasesA to z for sql azure databases
A to z for sql azure databases
 
Big Data: HBase and Big SQL self-study lab
Big Data:  HBase and Big SQL self-study lab Big Data:  HBase and Big SQL self-study lab
Big Data: HBase and Big SQL self-study lab
 
Oracle database introduction
Oracle database introductionOracle database introduction
Oracle database introduction
 
Introduction to Oracle Database
Introduction to Oracle DatabaseIntroduction to Oracle Database
Introduction to Oracle Database
 
FileTable and Semantic Search in SQL Server 2012
FileTable and Semantic Search in SQL Server 2012FileTable and Semantic Search in SQL Server 2012
FileTable and Semantic Search in SQL Server 2012
 
Ibm info sphere datastage tutorial part 1 architecture examples
Ibm info sphere datastage tutorial part 1  architecture examplesIbm info sphere datastage tutorial part 1  architecture examples
Ibm info sphere datastage tutorial part 1 architecture examples
 
What SQL DBAs need to know about SharePoint-Indianapolis 2013
What SQL DBAs need to know about SharePoint-Indianapolis 2013What SQL DBAs need to know about SharePoint-Indianapolis 2013
What SQL DBAs need to know about SharePoint-Indianapolis 2013
 
Pass chapter meeting - november - partitioning for database availability - ch...
Pass chapter meeting - november - partitioning for database availability - ch...Pass chapter meeting - november - partitioning for database availability - ch...
Pass chapter meeting - november - partitioning for database availability - ch...
 
Sql portfolio admin_practicals
Sql portfolio admin_practicalsSql portfolio admin_practicals
Sql portfolio admin_practicals
 
Microsoft SQL Server 2012 Components and Tools (Quick Overview) - Rev 1.3
Microsoft SQL Server 2012 Components and Tools (Quick Overview) - Rev 1.3Microsoft SQL Server 2012 Components and Tools (Quick Overview) - Rev 1.3
Microsoft SQL Server 2012 Components and Tools (Quick Overview) - Rev 1.3
 
Easy In, Easy Out: Customizing Your Open Source Publishing Software
Easy In, Easy Out: Customizing Your Open Source Publishing SoftwareEasy In, Easy Out: Customizing Your Open Source Publishing Software
Easy In, Easy Out: Customizing Your Open Source Publishing Software
 
11 Strategic Considerations for SharePoint Migration presented by Christian B...
11 Strategic Considerations for SharePoint Migration presented by Christian B...11 Strategic Considerations for SharePoint Migration presented by Christian B...
11 Strategic Considerations for SharePoint Migration presented by Christian B...
 
SQL Server Extended Events
SQL Server Extended Events SQL Server Extended Events
SQL Server Extended Events
 
SQL server Backup Restore Revealed
SQL server Backup Restore RevealedSQL server Backup Restore Revealed
SQL server Backup Restore Revealed
 

Andere mochten auch

Developing a database server: software engineer's view
Developing a database server: software engineer's viewDeveloping a database server: software engineer's view
Developing a database server: software engineer's viewLaurynas Biveinis
 
قواعد البيانات
قواعد البياناتقواعد البيانات
قواعد البياناتLumah Madany
 
1 introduction databases and database users
1 introduction databases and database users1 introduction databases and database users
1 introduction databases and database usersKumar
 
Knowledge management system priyank
Knowledge management system priyankKnowledge management system priyank
Knowledge management system priyankPRIYANK JAIN
 
Knowledge management system
Knowledge management system Knowledge management system
Knowledge management system Setyagus Sucipto
 
Database Design Slide 1
Database Design Slide 1Database Design Slide 1
Database Design Slide 1ahfiki
 
Knowledge Management System & Technology
Knowledge Management System & TechnologyKnowledge Management System & Technology
Knowledge Management System & TechnologyElijah Ezendu
 

Andere mochten auch (7)

Developing a database server: software engineer's view
Developing a database server: software engineer's viewDeveloping a database server: software engineer's view
Developing a database server: software engineer's view
 
قواعد البيانات
قواعد البياناتقواعد البيانات
قواعد البيانات
 
1 introduction databases and database users
1 introduction databases and database users1 introduction databases and database users
1 introduction databases and database users
 
Knowledge management system priyank
Knowledge management system priyankKnowledge management system priyank
Knowledge management system priyank
 
Knowledge management system
Knowledge management system Knowledge management system
Knowledge management system
 
Database Design Slide 1
Database Design Slide 1Database Design Slide 1
Database Design Slide 1
 
Knowledge Management System & Technology
Knowledge Management System & TechnologyKnowledge Management System & Technology
Knowledge Management System & Technology
 

Ähnlich wie Designing and developing your database for application availability

Microsoft Azure News - Dec 2016
Microsoft Azure News - Dec 2016Microsoft Azure News - Dec 2016
Microsoft Azure News - Dec 2016Daniel Toomey
 
Azure Synapse Analytics Overview (r2)
Azure Synapse Analytics Overview (r2)Azure Synapse Analytics Overview (r2)
Azure Synapse Analytics Overview (r2)James Serra
 
Geek Sync | Deployment and Management of Complex Azure Environments
Geek Sync | Deployment and Management of Complex Azure EnvironmentsGeek Sync | Deployment and Management of Complex Azure Environments
Geek Sync | Deployment and Management of Complex Azure EnvironmentsIDERA Software
 
Adf and ala design c sharp corner toronto chapter feb 2019 meetup nik shahriar
Adf and ala design c sharp corner toronto chapter feb 2019 meetup nik shahriarAdf and ala design c sharp corner toronto chapter feb 2019 meetup nik shahriar
Adf and ala design c sharp corner toronto chapter feb 2019 meetup nik shahriarNilesh Shah
 
Real world business workflow with SharePoint designer 2013
Real world business workflow with SharePoint designer 2013Real world business workflow with SharePoint designer 2013
Real world business workflow with SharePoint designer 2013Ivan Sanders
 
10 Reasons Snowflake Is Great for Analytics
10 Reasons Snowflake Is Great for Analytics10 Reasons Snowflake Is Great for Analytics
10 Reasons Snowflake Is Great for AnalyticsSenturus
 
Introduction to Azure Data Lake
Introduction to Azure Data LakeIntroduction to Azure Data Lake
Introduction to Azure Data LakeAntonios Chatzipavlis
 
Modern ETL: Azure Data Factory, Data Lake, and SQL Database
Modern ETL: Azure Data Factory, Data Lake, and SQL DatabaseModern ETL: Azure Data Factory, Data Lake, and SQL Database
Modern ETL: Azure Data Factory, Data Lake, and SQL DatabaseEric Bragas
 
PASS_Summit_2019_Azure_Storage_Options_for_Analytics
PASS_Summit_2019_Azure_Storage_Options_for_AnalyticsPASS_Summit_2019_Azure_Storage_Options_for_Analytics
PASS_Summit_2019_Azure_Storage_Options_for_AnalyticsDustin Vannoy
 
A Review of Data Access Optimization Techniques in a Distributed Database Man...
A Review of Data Access Optimization Techniques in a Distributed Database Man...A Review of Data Access Optimization Techniques in a Distributed Database Man...
A Review of Data Access Optimization Techniques in a Distributed Database Man...Editor IJCATR
 
A Review of Data Access Optimization Techniques in a Distributed Database Man...
A Review of Data Access Optimization Techniques in a Distributed Database Man...A Review of Data Access Optimization Techniques in a Distributed Database Man...
A Review of Data Access Optimization Techniques in a Distributed Database Man...Editor IJCATR
 
Pass chapter meeting dec 2013 - compression a hidden gem for io heavy databas...
Pass chapter meeting dec 2013 - compression a hidden gem for io heavy databas...Pass chapter meeting dec 2013 - compression a hidden gem for io heavy databas...
Pass chapter meeting dec 2013 - compression a hidden gem for io heavy databas...Charley Hanania
 
So You Want to Build a Data Lake?
So You Want to Build a Data Lake?So You Want to Build a Data Lake?
So You Want to Build a Data Lake?David P. Moore
 
UNIT 5- Other Databases.pdf
UNIT 5- Other Databases.pdfUNIT 5- Other Databases.pdf
UNIT 5- Other Databases.pdfShitalGhotekar
 
Prague data management meetup 2018-03-27
Prague data management meetup 2018-03-27Prague data management meetup 2018-03-27
Prague data management meetup 2018-03-27Martin BĂŠm
 
Big SQL 3.0 - Fast and easy SQL on Hadoop
Big SQL 3.0 - Fast and easy SQL on HadoopBig SQL 3.0 - Fast and easy SQL on Hadoop
Big SQL 3.0 - Fast and easy SQL on HadoopWilfried Hoge
 
Case Study: Implementing Hadoop and Elastic Map Reduce on Scale-out Object S...
Case Study: Implementing Hadoop and Elastic Map Reduce on Scale-out Object S...Case Study: Implementing Hadoop and Elastic Map Reduce on Scale-out Object S...
Case Study: Implementing Hadoop and Elastic Map Reduce on Scale-out Object S...Cloudian
 
Dipping Your Toes: Azure Data Lake for DBAs
Dipping Your Toes: Azure Data Lake for DBAsDipping Your Toes: Azure Data Lake for DBAs
Dipping Your Toes: Azure Data Lake for DBAsBob Pusateri
 
Tech-Spark: Scaling Databases
Tech-Spark: Scaling DatabasesTech-Spark: Scaling Databases
Tech-Spark: Scaling DatabasesRalph Attard
 

Ähnlich wie Designing and developing your database for application availability (20)

Microsoft Azure News - Dec 2016
Microsoft Azure News - Dec 2016Microsoft Azure News - Dec 2016
Microsoft Azure News - Dec 2016
 
Azure Synapse Analytics Overview (r2)
Azure Synapse Analytics Overview (r2)Azure Synapse Analytics Overview (r2)
Azure Synapse Analytics Overview (r2)
 
Geek Sync | Deployment and Management of Complex Azure Environments
Geek Sync | Deployment and Management of Complex Azure EnvironmentsGeek Sync | Deployment and Management of Complex Azure Environments
Geek Sync | Deployment and Management of Complex Azure Environments
 
Adf and ala design c sharp corner toronto chapter feb 2019 meetup nik shahriar
Adf and ala design c sharp corner toronto chapter feb 2019 meetup nik shahriarAdf and ala design c sharp corner toronto chapter feb 2019 meetup nik shahriar
Adf and ala design c sharp corner toronto chapter feb 2019 meetup nik shahriar
 
Data servers
Data serversData servers
Data servers
 
Real world business workflow with SharePoint designer 2013
Real world business workflow with SharePoint designer 2013Real world business workflow with SharePoint designer 2013
Real world business workflow with SharePoint designer 2013
 
10 Reasons Snowflake Is Great for Analytics
10 Reasons Snowflake Is Great for Analytics10 Reasons Snowflake Is Great for Analytics
10 Reasons Snowflake Is Great for Analytics
 
Introduction to Azure Data Lake
Introduction to Azure Data LakeIntroduction to Azure Data Lake
Introduction to Azure Data Lake
 
Modern ETL: Azure Data Factory, Data Lake, and SQL Database
Modern ETL: Azure Data Factory, Data Lake, and SQL DatabaseModern ETL: Azure Data Factory, Data Lake, and SQL Database
Modern ETL: Azure Data Factory, Data Lake, and SQL Database
 
PASS_Summit_2019_Azure_Storage_Options_for_Analytics
PASS_Summit_2019_Azure_Storage_Options_for_AnalyticsPASS_Summit_2019_Azure_Storage_Options_for_Analytics
PASS_Summit_2019_Azure_Storage_Options_for_Analytics
 
A Review of Data Access Optimization Techniques in a Distributed Database Man...
A Review of Data Access Optimization Techniques in a Distributed Database Man...A Review of Data Access Optimization Techniques in a Distributed Database Man...
A Review of Data Access Optimization Techniques in a Distributed Database Man...
 
A Review of Data Access Optimization Techniques in a Distributed Database Man...
A Review of Data Access Optimization Techniques in a Distributed Database Man...A Review of Data Access Optimization Techniques in a Distributed Database Man...
A Review of Data Access Optimization Techniques in a Distributed Database Man...
 
Pass chapter meeting dec 2013 - compression a hidden gem for io heavy databas...
Pass chapter meeting dec 2013 - compression a hidden gem for io heavy databas...Pass chapter meeting dec 2013 - compression a hidden gem for io heavy databas...
Pass chapter meeting dec 2013 - compression a hidden gem for io heavy databas...
 
So You Want to Build a Data Lake?
So You Want to Build a Data Lake?So You Want to Build a Data Lake?
So You Want to Build a Data Lake?
 
UNIT 5- Other Databases.pdf
UNIT 5- Other Databases.pdfUNIT 5- Other Databases.pdf
UNIT 5- Other Databases.pdf
 
Prague data management meetup 2018-03-27
Prague data management meetup 2018-03-27Prague data management meetup 2018-03-27
Prague data management meetup 2018-03-27
 
Big SQL 3.0 - Fast and easy SQL on Hadoop
Big SQL 3.0 - Fast and easy SQL on HadoopBig SQL 3.0 - Fast and easy SQL on Hadoop
Big SQL 3.0 - Fast and easy SQL on Hadoop
 
Case Study: Implementing Hadoop and Elastic Map Reduce on Scale-out Object S...
Case Study: Implementing Hadoop and Elastic Map Reduce on Scale-out Object S...Case Study: Implementing Hadoop and Elastic Map Reduce on Scale-out Object S...
Case Study: Implementing Hadoop and Elastic Map Reduce on Scale-out Object S...
 
Dipping Your Toes: Azure Data Lake for DBAs
Dipping Your Toes: Azure Data Lake for DBAsDipping Your Toes: Azure Data Lake for DBAs
Dipping Your Toes: Azure Data Lake for DBAs
 
Tech-Spark: Scaling Databases
Tech-Spark: Scaling DatabasesTech-Spark: Scaling Databases
Tech-Spark: Scaling Databases
 

Mehr von Charley Hanania

2024.03.01 - My weakness, Your Glory - Contemplations on Jonah.pptx
2024.03.01 - My weakness, Your Glory - Contemplations on Jonah.pptx2024.03.01 - My weakness, Your Glory - Contemplations on Jonah.pptx
2024.03.01 - My weakness, Your Glory - Contemplations on Jonah.pptxCharley Hanania
 
SQLBits 2008 - SQL Server High Availability and Disaster Recovery Overview - ...
SQLBits 2008 - SQL Server High Availability and Disaster Recovery Overview - ...SQLBits 2008 - SQL Server High Availability and Disaster Recovery Overview - ...
SQLBits 2008 - SQL Server High Availability and Disaster Recovery Overview - ...Charley Hanania
 
SQL Server Club - SQL Server Enterprise Consolidation - charley hanania
SQL Server Club - SQL Server Enterprise Consolidation - charley hananiaSQL Server Club - SQL Server Enterprise Consolidation - charley hanania
SQL Server Club - SQL Server Enterprise Consolidation - charley hananiaCharley Hanania
 
TehDays Basel - Auditing in sql server 2012 - charley hanania - tech days bas...
TehDays Basel - Auditing in sql server 2012 - charley hanania - tech days bas...TehDays Basel - Auditing in sql server 2012 - charley hanania - tech days bas...
TehDays Basel - Auditing in sql server 2012 - charley hanania - tech days bas...Charley Hanania
 
Swiss pass chapter deck lausanne - june 2011
Swiss pass chapter deck   lausanne - june 2011Swiss pass chapter deck   lausanne - june 2011
Swiss pass chapter deck lausanne - june 2011Charley Hanania
 
Swiss pass chapter deck - zurich - april 2011
Swiss pass chapter deck - zurich - april 2011Swiss pass chapter deck - zurich - april 2011
Swiss pass chapter deck - zurich - april 2011Charley Hanania
 
Pass camp 2010 - DBA 101 to 401 - From Spring Board to Deep Wreck Dives
Pass camp 2010 - DBA 101 to 401 - From Spring Board to Deep Wreck DivesPass camp 2010 - DBA 101 to 401 - From Spring Board to Deep Wreck Dives
Pass camp 2010 - DBA 101 to 401 - From Spring Board to Deep Wreck DivesCharley Hanania
 
Sql server operational best practices notes from the field - charley hanan...
Sql server operational best practices    notes from the field - charley hanan...Sql server operational best practices    notes from the field - charley hanan...
Sql server operational best practices notes from the field - charley hanan...Charley Hanania
 
Sql server club - performance management methodologies and enhancements in sq...
Sql server club - performance management methodologies and enhancements in sq...Sql server club - performance management methodologies and enhancements in sq...
Sql server club - performance management methodologies and enhancements in sq...Charley Hanania
 
Sql connections germany - migration considerations when migrating your on pre...
Sql connections germany - migration considerations when migrating your on pre...Sql connections germany - migration considerations when migrating your on pre...
Sql connections germany - migration considerations when migrating your on pre...Charley Hanania
 

Mehr von Charley Hanania (10)

2024.03.01 - My weakness, Your Glory - Contemplations on Jonah.pptx
2024.03.01 - My weakness, Your Glory - Contemplations on Jonah.pptx2024.03.01 - My weakness, Your Glory - Contemplations on Jonah.pptx
2024.03.01 - My weakness, Your Glory - Contemplations on Jonah.pptx
 
SQLBits 2008 - SQL Server High Availability and Disaster Recovery Overview - ...
SQLBits 2008 - SQL Server High Availability and Disaster Recovery Overview - ...SQLBits 2008 - SQL Server High Availability and Disaster Recovery Overview - ...
SQLBits 2008 - SQL Server High Availability and Disaster Recovery Overview - ...
 
SQL Server Club - SQL Server Enterprise Consolidation - charley hanania
SQL Server Club - SQL Server Enterprise Consolidation - charley hananiaSQL Server Club - SQL Server Enterprise Consolidation - charley hanania
SQL Server Club - SQL Server Enterprise Consolidation - charley hanania
 
TehDays Basel - Auditing in sql server 2012 - charley hanania - tech days bas...
TehDays Basel - Auditing in sql server 2012 - charley hanania - tech days bas...TehDays Basel - Auditing in sql server 2012 - charley hanania - tech days bas...
TehDays Basel - Auditing in sql server 2012 - charley hanania - tech days bas...
 
Swiss pass chapter deck lausanne - june 2011
Swiss pass chapter deck   lausanne - june 2011Swiss pass chapter deck   lausanne - june 2011
Swiss pass chapter deck lausanne - june 2011
 
Swiss pass chapter deck - zurich - april 2011
Swiss pass chapter deck - zurich - april 2011Swiss pass chapter deck - zurich - april 2011
Swiss pass chapter deck - zurich - april 2011
 
Pass camp 2010 - DBA 101 to 401 - From Spring Board to Deep Wreck Dives
Pass camp 2010 - DBA 101 to 401 - From Spring Board to Deep Wreck DivesPass camp 2010 - DBA 101 to 401 - From Spring Board to Deep Wreck Dives
Pass camp 2010 - DBA 101 to 401 - From Spring Board to Deep Wreck Dives
 
Sql server operational best practices notes from the field - charley hanan...
Sql server operational best practices    notes from the field - charley hanan...Sql server operational best practices    notes from the field - charley hanan...
Sql server operational best practices notes from the field - charley hanan...
 
Sql server club - performance management methodologies and enhancements in sq...
Sql server club - performance management methodologies and enhancements in sq...Sql server club - performance management methodologies and enhancements in sq...
Sql server club - performance management methodologies and enhancements in sq...
 
Sql connections germany - migration considerations when migrating your on pre...
Sql connections germany - migration considerations when migrating your on pre...Sql connections germany - migration considerations when migrating your on pre...
Sql connections germany - migration considerations when migrating your on pre...
 

KĂźrzlich hochgeladen

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
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
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 

KĂźrzlich hochgeladen (20)

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
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
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 

Designing and developing your database for application availability

  • 1. 1 Designing and Developing your Database for Application Availability Presented to the Melbourne CBD SQL PASS Chapter. Saxons - Level 8, 500 Collins Street. Melbourne, Australia 12:30 – 14:00, July 26th 2010 Charley Hanania, QS2 AG B.Sc (Computing), MCP, MCDBA, MCITP, MCTS, MCT, Microsoft MVP: SQL Server Senior Database Specialist
  • 2. My Background • Now: • Microsoft MVP: SQL Server • Database Consultant (again, and very happy) at QS2 AG • Formerly: • Production Product Owner of MS SQL Server Platform at UBS Investment Bank • Technical Team Lead • ITIL v3 Certified • SQL Server Certified since 1998 • On SQL Server since 1995 • Version 4 on OS/2 • IT Professional since 1992 • PASS • Chapter Leader – Switzerland • Regional Mentor – Europe • European PASS Conference Lead • Event Speaker 2 26 July, 2010 Designing & Developing Databases for Application Availability
  • 3. Contact Info • Email: Charley.Hanania@sqlpass.org • Website: http://www.sqlpass.ch <- Slides here • Twitter: http://www.twitter.com/CharleyHanania • Blog: http://blogs.mssqltips.com/blogs/charleyhanania • Linked-in: http://www.linkedin.com/in/charleyhanania 3 26 July, 2010 Designing & Developing Databases for Application Availability
  • 4. Agenda • General Barriers to Application Availability • Standard High Availability Methodology • General Standard - Clustering • One up on the Standard – Database Mirroring • Decreasing component start-up time • Instant File Initialisation • Partitioning your Database Infrastructure • Eureka! Partitioning for Availability (PfA) • Basic PfA Methodology • Code Samples • Questions Designing & Developing Databases for Application Availability 4 26 July, 2010
  • 5. General Barriers to Availability Designing & Developing Databases for Application Availability 6 26 July, 2010 Simplistic Network Topology View: Slightly more realistic view: And that’s just scratching the surface of the Peripherals! Think about the layered complexity of the supporting software and drivers…! Environmental Complexity
  • 6. Standard HA Methodology • Keep it up for as long as possible. • Increase redundancy • Decrease Single Points of Failure • Bring it back as quickly as possible • Decrease the dependency sequence • Decrease component start-up time Designing & Developing Databases for Application Availability 7 26 July, 2010
  • 7. General Standard - Clustering • Keep it up for as long as possible. • Increase redundancy • Additional Servers waiting in readiness  • Increased redundancy = increased cost  • Increased redundancy = decreased utilisation  • Decrease Single Points of Failure • Virtual IP Addresses  • Virtual Network Names  • Additional Network Cards etc  • Storage  • Bring it back as quickly as possible • Decrease the dependency sequence • Server is Started  • SQL Instance is an exclusive Cluster Resource  • Decrease component start-up time • Instant File Initialisation  • App Database isn’t useable until Primary Data File is opened and recovered  26 July, 2010 Designing & Developing Databases for Application Availability 8 Primary Standby
  • 8. Database Mirroring • We could discuss the architecture, benefits and uses of DB Mirroring, but I’m told you’re mainly architects and developers, and the doors here aren’t locked… • If you’d like to discuss DB Mirroring, we can chat after the session… Designing & Developing Databases for Application Availability 9 26 July, 2010
  • 9. Decreasing Component Startup Time (Another DBA point, but one that is Golden and not to be missed!) • Data and log files are first initialized by being filled and with zeros when created or restored. • When SQL Server Starts, the tempdb database is recreated. • Application databases do not come online until tempdb has. • If large, then startup times can be quite long! • Action: • Ensure that instant file initialisation is set (Windows: SE_MANAGE_VOLUME_NAME right) • The group that the SQL Server Service Account is in needs to be added to the Perform Volume Maintenance Tasks security policy, in the “Local Security Policy” Tool. • I’ve seen this reduce SQL Server Startup from 8 minutes to 1 second (max) Designing & Developing Databases for Application Availability 10 26 July, 2010 INSTANT FILE INITIALISATION
  • 10. Decreasing Component Startup Time • Msdn lists the following (summarised) • Hardware Partitioning • Multiprocessors that enable multiple threads of operations. • RAID (redundant array of independent disks) devices • A table striped across multiple drives can typically be scanned faster than the same table stored on a single drive. • Horizontal Partitioning • Divide tables into multiple tables containing the same number of columns, but fewer rows. • Partitioning data horizontally based on age and use is common. • Vertical Partitioning • Divide tables into multiple tables containing fewer columns through normalization and row splitting. Designing & Developing Databases for Application Availability 11 26 July, 2010 PARTITIONING DATABASE COMPONENTS
  • 11. Additional Partitioning Options • Logical Schema Partitioning • Used mainly for securing and grouping objects by department, role, application etc… • Physical Partitioning • Of Files and Filegroups • Used mainly for performance • Files placed on multiple different data volumes • Multiple files created for round-robin writes and extent allocations Designing & Developing Databases for Application Availability 12 26 July, 2010
  • 12. Eureka! Partitioning for Availability • Each database has an area similar to a disk’s boot record • For a database this resides in the Primary data file • If this file is corrupt or unavailable, the database will not be loaded and opened regardless of other data files • A good practice is to not put any objects in this data file, and to put all your tables and objects into secondary data files. • Within the DB you can distribute objects into files to achieve one or more of the following • Enable an application to continue working when other data files are missing or corrupt by grouping needed objects together • Restore the most critical files for your application system to start up first, allowing partial functionality of your application to continue without issue. Designing & Developing Databases for Application Availability 13 26 July, 2010
  • 13. 14 Designing & Developing Databases for Application Availability 26 July, 2010 Open Discussion Which ways could we split the adventureworks db, focussed on client facing / downstream application functionality, criticality and startup sequence for Availability?
  • 15. PfA Methodology • Conceptual extension from Logical Schema Partitioning and Physical File Partitioning: 1. Don’t put user defined objects in the Primary FileGroup i. Allows the Primary Filegroup to load faster 2. Schema Separate user defined objects i. For clarity of purpose and operational use ii. Try not to use dbo schema (good design/operational practice) iii. DBA’s will schematize objects in a similar fashion to what was in the Adventureworks sample. For PfA you should look to map your schema’s around your application’s core functionality and use cases and criticality 3. Create Filegroups for each Schema i. Multiple if you want to partition historical data horizontally etc ii. Name them in a fashion that allows easy understanding of what is in them, or how they should be used. Designing & Developing Databases for Application Availability 16 26 July, 2010
  • 16. PfA Methodology(2) • Conceptual extension from Logical Schema Partitioning and Physical File Partitioning: 4. Design your application to modularise its data access needs i. This is critical to segmenting your application to specific data files/filegroups. ii. This includes stored procedure and function internals, use try/catch within sp’s for example to decide whether rollback or other functionality is needed when a filegroup is offline. iii. The key flows could be  to either contain data access within the necessary filegroups, or  determine whether a function can be used to catch that an object is in an offline filegroup and skip it / do something else / roll back, or  Catch “Msg 8653, Level 16, State 1, Line 3”* and do as per point above. 5. Document application’s modules, with emphasis on criticality and data dependencies. i. Allows stepped sequencing of apps by criticality during start up Designing & Developing Databases for Application Availability 17 26 July, 2010 *[Tambs] While the database is in a state of partial availability, the filegroups that remain online can support queries. However, queries that depend on data that resides in filegroups that are offline return error 8653: Msg 8653, Level 16, State 1, Line 3 The query processor is unable to produce a plan for the table or view 'X' because the table resides in a filegroup which is not online.
  • 17. 18 Designing & Developing Databases for Application Availability 26 July, 2010 Adding Files and File Groups to a Database USE [master] GO CREATE DATABASE [PfA] ON PRIMARY ( NAME = N'PfA_Primary' ,FILENAME = N'E:MSSQL10.SQL2008INST01MSSQLDataPfA_Primary.mdf' ,SIZE = 400MB ), FILEGROUP [PfA_FG1] ( NAME = N'PfA_F1_FG1' ,FILENAME = N'E:MSSQL10.SQL2008INST01MSSQLDataPfA_F1_FG1.ndf' ,SIZE = 300MB ), ( NAME = N'PfA_F2_FG1' ,FILENAME = N'E:MSSQL10.SQL2008INST01MSSQLDataPfA_F2_FG1.ndf' ,SIZE = 300MB ), FILEGROUP [PfA_FG2] ( NAME = N'PfA_F1_FG2' ,FILENAME = N'E:MSSQL10.SQL2008INST01MSSQLDataPfA_F1_FG2.ndf' ,SIZE = 300MB ), FILEGROUP [PfA_FG3] ( NAME = N'PfA_F1_FG3' ,FILENAME = N'E:MSSQL10.SQL2008INST01MSSQLDataPfA_F1_FG3.ndf' ,SIZE = 300MB ) LOG ON ( NAME = N'PfA_log' ,FILENAME = N'F:MSSQL10.SQL2008INST01MSSQLLogsPfA_PfA_log.LDF' ,SIZE = 100MB ) GO USE [PfA]; GO SELECT * FROM sys.database_files; SELECT * FROM sys.filegroups;
  • 18. 19 Designing & Developing Databases for Application Availability 26 July, 2010 Create and Allocate Objectsto Schemas USE [PfA]; GO CREATE SCHEMA [Sales]; GO CREATE SCHEMA [Production]; GO CREATE SCHEMA [Person]; GO -- moving tables from dbo schema to -- [Production] and [Sales] schemas ALTER SCHEMA [Sales] TRANSFER [dbo].[Customer]; -- Note that triggers move as well... GO ALTER SCHEMA [Production] TRANSFER [dbo].[BillOfMaterials]; GO ALTER SCHEMA [Person] TRANSFER [dbo].[ContactInsert]; GO ALTER SCHEMA [Person] TRANSFER [dbo].[Contact]; GO -- change stored proc definitions to focus on right schemas ALTER PROC [dbo].[ContactInsert] ( @VbiContactID BIGINT ,@VvcSalutation VARCHAR(4) = NULL ,@VnvcForename NVARCHAR(100),@VnvcMiddlename NVARCHAR(100) = NULL ,@VnvcSurname NVARCHAR(100),@VvcJobTitle NVARCHAR(100) = NULL ,@VvcCompany NVARCHAR(100) = NULL,@VnvcAddressLine1 NVARCHAR(100) ,@VnvcAddressLine2 NVARCHAR(100) = NULL ,@VnvcAddressLine3 NVARCHAR(100) = NULL ,@VvcPostCode VARCHAR(12),@VnvcCity NVARCHAR(50) ,@VnvcState NVARCHAR(50) = NULL,@VinCountryID INT ,@VvcEmailAddress VARCHAR(100),@VvcBusinessPhone VARCHAR(25) ,@VvcBusExt VARCHAR(10) = NULL,@VvcFacsimile VARCHAR(25) = NULL ,@VvcMobilePhone VARCHAR(25) = NULL,@VvcPassword VARCHAR(20) ) AS INSERT INTO [Person].[Contact] ([ContactID],[Salutation] ,[Forename],[Middlename] ,[Surname],[JobTitle] ,[Company],[AddressLine1] ,[AddressLine2],[AddressLine3] ,[PostCode],[City] ,[State],[CountryID] ,[EmailAddress],[BusinessPhone] ,[BusExt],[Facsimile] ,[MobilePhone],[Password]) VALUES (@VbiContactID,@VvcSalutation ,@VnvcForename,@VnvcMiddlename ,@VnvcSurname,@VvcJobTitle ,@VvcCompany,@VnvcAddressLine1 ,@VnvcAddressLine2,@VnvcAddressLine3 ,@VvcPostCode,@VnvcCity ,@VnvcState,@VinCountryID ,@VvcEmailAddress,@VvcBusinessPhone ,@VvcBusExt,@VvcFacsimile ,@VvcMobilePhone,@VvcPassword); GO * Use Synonyms to help the transition from dbo native schema to proper schema usage
  • 19. 20 Designing & Developing Databases for Application Availability 26 July, 2010 Allocate an Object to a Filegroup CREATE TABLE [Sales].[SalesInvoice] ( [SalesInvoiceID] INT IDENTITY(1,1) PRIMARY KEY CLUSTERED ,[Amount] MONEY ,[CustomerID] INT ,[DateInvoiced] DATETIME ,[DatePaid] DATETIME ) ON [PfA_FG1]; GO • Creating tables on a filegroup is easy as per the code sample. • Moving existing tables can be a little more complicated: • Use Create index (clustered) with Drop Existing • Rebuild indexes etc to move them • It may take many iterations to get the sequencing and code here right, but its worth it in the long run.
  • 20. 21 Designing & Developing Databases for Application Availability 26 July, 2010 Retry Logic (1) ADO.NET Code Example (http://technet.microsoft.com/en-us/library/cc917713.aspx#ECAA) This code example uses ADO.NET 2.0 (SqlClient). The following parameters are used in the example. strConn is the database connection string that includes the failover partner. strCmd is the command, such as Transact-SQL or a stored procedure, to execute. iRetryInterval is the number of seconds to wait (sleep) between retries. iMaxRetries is the number of times to retry the command before failing. Example connection string ( strConn ) Data Source=SQLAINST1;Failover Partner=SQLBINST1; Initial Catalog=DBMTest;Integrated Security=True using System.Data; using System.Data.SqlClient; using System.Threading; bool ExecuteSQLWithRetry_NoResults(string strConn, string strCmd, int iRetryInterval, int iMaxRetries) { // Step 1: Enter the retry loop in case an error occurs for (int iRetryCount = 0; iRetryCount < iMaxRetries; iRetryCount++) { try { // Step 2: Open the database connection conn = new SqlConnection(strConn); conn.Open(); // Step 3: Execute the command if (null != conn && ConnectionState.Open == conn.State) { cmd = new SqlCommand(strCmd, conn); cmd.ExecuteNonQuery(); // Step 4: If there were no errors, clean-up & return success return true; } } catch (Exception ex) { // Step 5: Catch Error on Open Connection or Execute Command // Error Handling to be added here: ex } • I expect that the code here will only need slight Adjustments for use with Clustering • Connection string would use virtual name • Timeout retry delay would cater for longer startup/failover
  • 21. 22 Designing & Developing Databases for Application Availability 26 July, 2010 Retry Logic (2) finally { // Step 6: Clean up the Command and database Connection objects try { // Clean Command object if (null != cmd) cmd.Dispose(); cmd = null; // Clean up Connection object if (null != conn && ConnectionState.Closed != conn.State) conn.Close(); conn = null; } catch (Exception ex) { // Error handling to be added here } } // Step 7: If the maximum number of retries not exceeded if (iRetryCount < iMaxRetries) { // Step 7a: Sleep and continue (convert to milliseconds) Thread.Sleep(iRetryInterval * 1000); } } // end for loop: iRetryCount < iMaxRetries // Step 7b: If the max number of retries exceeded, return failure return false; } Continued…
  • 22. 23 Designing & Developing Databases for Application Availability 26 July, 2010 Query Returning Files, Filegroups and Sizes SELECT s.data_space_id as Id ,g.name as Filegroup_name ,s.name as Logical_name ,physical_name ,g.is_default AS [IsDefault] ,g.is_read_only AS [ReadOnly] ,CAST( ISNULL ( ( SELECT SUM(gs.size)*CONVERT(float,8) FROM sys.database_files gs WHERE gs.data_space_id = g.data_space_id ), 0 ) AS float ) AS [Size] FROM sys.filegroups AS g INNER JOIN sys.master_files AS s ON (s.data_space_id = g.data_space_id) WHERE s.type = 0 AND s.database_id = db_id() AND s.drop_lsn IS NULL; From “Partial Database Availability” (Danny Tambs, May 2007)
  • 23. Links and Resources • AdventureWorks Database Diagram • http://www.microsoft.com/downloads/details.aspx?FamilyID=0f6e0bcf-a1b5-4760-8d79- 67970f93d5ff&DisplayLang=en • Whitepaper: “Partial Database Availability” (Danny Tambs, May 2007) • http://technet.microsoft.com • Whitepaper: “Partitioned Table and Index Strategies Using SQL Server 2008” (Ron Talmage, March 2009) • http://technet.microsoft.com Designing & Developing Databases for Application Availability 24 26 July, 2010

Hinweis der Redaktion

  1. [Tambs] While the database is in a state of partial availability, the filegroups that remain online can support queries. However, queries that depend on data that resides in filegroups that are offline return error 8653: Msg 8653, Level 16, State 1, Line 3 The query processor is unable to produce a plan for the table or view 'X' because the table resides in a filegroup which is not online.