Topic 1, Fairstone Manufacturing Inc.
General Overview
You are the Senior Database Administrator (DBA) for a manufacturing company named Fairstone
Manufacturing.
Fairstone Manufacturing is based in the New York area. The company has two offices: a main
office in the city and a branch office just outside the city. The company has four factories where
their products are manufactured. Two factories are in the New York area and the other two
factories are in Washington.
Network Connectivity
The two offices are connected by a 10 Mbps dedicated WAN link.
SQL Server Environment
The main office has four SQL Server 2012 Standard Edition servers named MainDB1, MainDB2,
MainDB3 and MainDB4.
The branch office has two SQL Server 2012 Standard Edition servers named BranchDB1 and
BranchDB2.
The main office has a Development department. All databases used by the Development
department are hosted on MainDB3 and MainDB4.
MainDB1 and MainDB2 host the following databases:
Products
Manufacturing
Sales
HR
Customers
DailyReportsTemp
BranchDB1 and BranchDB2 host the same databases as MainDB1 and MainDB2.
The DailyReportsTemp database is a temporary database that is recreated every day and used for
reporting purposes.
One of the tables in the Customer database lists all the customers. Another table linked to the
customers table contains a list of classifications for the customers. The classifications are Hot,
Warm and Cold based on the number of orders placed by the customers in the last year. The
customers are classified according to the following criteria:
Hot – Over 100 orders placed in a year.
Warm – Between 50 and 100 orders placed in a year.
Cold – Under 50 orders placed in a year.
Stored Procedures
Three tables in the Manufacturing database are modified by a stored procedure named ManProc1.
A segment of code from ManProc1 is as follows:
CREATE PROCEDURE Manufacturing.ManProc1
AS
BEGIN TRANSACTION
UPDATE Manufacturing.Type …
UPDATE Manufacturing.Version …
UPDATE Manufacturing.Revision …
COMMIT TRANSACTION
GO
The same three tables are also modified by a stored procedure named ManProc2.
A segment of code from ManProc2 is as follows:
CREATE PROCEDURE Manufacturing.ManProc2
AS
BEGIN TRANSACTION
UPDATE Manufacturing.Revision …
UPDATE Manufacturing.Type …
UPDATE Manufacturing.Version …
COMMIT TRANSACTION
GO
A product list in the Products database is updated using information from tables in the
Manufacturing database by a stored procedure named ProductUpdateProc. Locks on tables in the
Manufacturing database often cause ProductUpdateProc to take a long time to complete.
A list of manufacturing processes required to create each product is stored in tables in the
Manufacturing database and updated by a stored procedure named ProcessUpdateProc. The
ProcessUpdateProc stored procedure contains several UPDATE statements. The UPDATE
statements are configured to be called in a specific order. The ProcessUpdateProc stored
procedure continues to run in the event of a failure of one of the UPDATE statements. This can
cause inaccurate results in the manufacturing process list.
Sales Director Statement:
The Sales Director has made the following observations about the current database design:
The current customer classification system needs to be changed. Currently the customers are
classified by the number of orders placed in the last year. This information is an unreliable guide
as it does not take in to account the size of the orders. I would suggest a trial run of a classification
system based on the revenue generated by the orders placed in the last year. We may add more
than the current three classification types in future. We should have a method of recording
changes to the classifications.
IT Manager Statement:
The IT Manager has listed the following requirements for the SQL Server and database
environment:
We need to provide a group of users from the IT and Manufacturing departments the minimum
administrative rights to view database information and server state for the Manufacturing database
on MainDB1.
The Sales database takes too long to back up due to the large amount of historical sales order
data in the database. We need to reduce the backup time for this database.
The DailyReportsTemp database takes four hours to back up. We need to be able to recover the
DailyReportsTemp database in less than one hour if the database storage hardware fails.
We need to be able to immediately return the Manufacturing database to its previous state if the
ProcessUpdateProc stored procedure fails to update the process information correctly.
I also want the ProcessUpdateProc stored procedure to stop running in the event of a failure of
one of the UPDATE statements.
IT Administrators need to be able to monitor the disk space used on the SQL Servers by running
real-time reports on the disk usage.
The Developers would like to install second instances of SQL Server on MainDB3 and MainDB4.
They would like to assign each instance to specific processors on the SQL Servers.
************************************************************
You need to design a solution to that enables the recovery of the DailyReportsTemp
database in less than one hour in the event of a storage hardware failure. Your solution
must minimize costs.
What should you recommend?
A.
SQL Server Failover Clustering
B.
Peer-to-peer replication
C.
Differential backups
D.
Log shipping
E.
Database snapshots
Explanation:
The DailyReportsTemp database is a temporary database that is recreated every day and used for reporting purposes.
**Can a RTO of ”less than ONE hour in the event of a hardware failure” be achieved with Log Shipping?
What’s wrong with implementing good ol’ Failover Clustering?! After all, SQL Server 2012 Standard Edition supports it. And the organization already has the needed hardware in-house!!
FC couldn’t prevent storage hardware failure because the nodes share SAN storage.
The Case Study [In SQL Server Environment] says ” has four SQL Server 2012 Standard Edition … has two SQL Server 2012 Standard Edition …”, and “SQL Server Failover Clustering” is only available to Enterprise Edition, so A isn’t the answer.
The Case Study [In SQL Server Environment] says “… DailyReportsTemp .. recreated every day …”, A “Peer-to-peer replication” for a database that is recreated every day would have alot of work associated to establish again the replication every time the database is dropped, so B isn’t the answer.
The Question says “less than one hour”, and a differential backup may take longer since the SQL Server Engine have to read the Full Backup and the Differential Backups in order to create it, so C isn’t the answer.
The Question says “Your solution must minimize costs” and “less than one hour”, lets suppose that means 30 minutes, if you create a database snapshot every 30 minutes it will cost a lot of hardware to store those snapshots, so E isn’t the answer.
Now, all that is left if “Log Shipping”, that conforms with all of Case Study Requests and the Question Requests, also doesn’t need to read old backups or log shipping files to be created, so D is the correct answer.