0% found this document useful (0 votes)
87 views9 pages

Database Mirroring Questions and Answers

This document discusses database mirroring in Microsoft SQL Server. It begins by defining database mirroring and explaining how it works to maintain a synchronized mirror database by sending transaction log records from the principal database. It then covers the benefits and disadvantages of database mirroring. The rest of the document discusses various aspects of configuring and using database mirroring such as requirements, restrictions, roles of principal/mirror/witness servers, operating modes, and states.

Uploaded by

Devvrata
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
87 views9 pages

Database Mirroring Questions and Answers

This document discusses database mirroring in Microsoft SQL Server. It begins by defining database mirroring and explaining how it works to maintain a synchronized mirror database by sending transaction log records from the principal database. It then covers the benefits and disadvantages of database mirroring. The rest of the document discusses various aspects of configuring and using database mirroring such as requirements, restrictions, roles of principal/mirror/witness servers, operating modes, and states.

Uploaded by

Devvrata
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

Database Mirroring.

This is very interesting topic and consists of very wide range of terminologies and
scope. I will cover this topic in two blogs so that I can touch base all the possible Questions
from Database Mirroring.
1. What is Database Mirroring?
Database mirroring was introduced with Microsoft SQL Server 2005 technology that can be used to
design high-availability and high-performance solutions for database redundancy.

In database mirroring, transaction log records are sent directly from the principal database to the mirror
database. This helps to keep the mirror database up to date with the principal database, with no loss of
committed data. If the principal server fails, the mirror server automatically becomes the new principal
server and recovers the principal database using a witness server under high-availability mode. We will
discuss these modes later. Fundamentally to summarize there are three jargon to understand – Principal
database is the active live database that supports all the commands, Mirror is the hot standby and
witness which allows for a quorum in case of automatic switch over.

2. How does Database Mirroring works?


In database mirroring, the transaction log records for a database are directly transferred from one server
to another, thereby maintaining a hot standby server. As the principal server writes the database’s log
buffer to disk, it simultaneously sends that block of log records to the mirror instance. The mirror server
continuously applies the log records to its copy of the database. Mirroring is implemented on a per-
database basis, and the scope of protection that it provides is restricted to a single-user database.
Database mirroring works only with databases that use the full recovery model.

3. What are the benefits of that Database Mirroring?


 Database mirroring architecture is more robust and efficient than Database Log Shipping. It can be
configured to replicate the changes synchronously to minimized data loss.
 It has automatic server failover mechanism.
 Configuration is simpler than log shipping and replication, and has built-in network encryption support
(AES algorithm).
 Because propagation can be done asynchronously, it requires less bandwidth than synchronous
method (e.g. host-based replication, clustering) and is not limited by geographical distance with
current technology.
 Database mirroring supports full-text catalogs.
 Does not require special hardware (such as shared storage, heart-beat connection) and cluster ware,
thus potentially has lower infrastructure cost
4. What are the Disadvantages of Database Mirroring?
 Potential data lost is possible in asynchronous operation mode. RTO will vary and depend on several
factors, such as propagation interval time and bandwidth speed.
 It only works at database level and not at server level. It only propagates changes at database level, no
server level objects, such as logins and fixed server role membership, can be propagated.
 Automatic server failover may not be suitable for application using multiple databases.
5. What are the minimum requirements for Database Mirroring?
 Database base recovery model should be full
 Database name should be same on both SQL Server instances
 Server should be in the same domain name
 Mirror database should be initialized with principle server
6. What are the Restrictions for Database Mirroring?
 A mirrored database cannot be renamed during a database mirroring session.
 Only user databases can be mirrored. You cannot mirror the master, msdb, tempdb, or model
databases.
 Database mirroring does not support FILESTREAM. A FILESTREAM filegroup cannot be created on the
principal server. Database mirroring cannot be configured for a database that contains FILESTREAM
filegroups.
 On a 32-bit system, database mirroring can support a maximum of about 10 databases per server
instance.
 Database mirroring is not supported with either cross-database transactions or distributed
transactions.
7. What is a Principal server?
Principal server is the server which serves the databases requests to the Application.

8. What is a Mirror?
This is the Hot standby server which has a copy of the database.

9. What is a Witness Server?


This is an optional server. If the Principal server goes down then Witness server controls the fail over
process.

10. What is Synchronous and Asynchronous mode of Database Mirroring?


In synchronous mode, committed transactions are guaranteed to be recorded on the mirror server.
Should a failure occur on the primary server, no committed transactions are lost when the mirror server
takes over. Using synchronous mode provides transaction safety because the operational servers are in a
synchronized state, and changes sent to the mirror must be acknowledged before the primary can
proceed

In asynchronous mode, committed transactions are not guaranteed to be recorded on the mirror server.
In this mode, the primary server sends transaction log pages to the mirror when a transaction is
committed. It does not wait for an acknowledgement from the mirror before replying to the application
that the COMMIT has completed. Should a failure occur on the primary server, it is possible that some
committed transactions may be lost when the mirror server takes over.

11. What are the operating modes of Database Mirroring?


SQL Server provides 3 operating modes for database mirroring.

 High Availability Mode


 High Protection Mode
 High Performance Mode
12. What is High Availability operating mode?
It consist of the Principal, Witness and Mirror in synchronous communication. In this mode SQL server
ensures that each transaction that is committed on the Principal is also committed in the Mirror prior to
continuing with next transactional operation in the principal. The cost of this configuration is high as
Witness is required. If the network does not have the bandwidth, a bottleneck could form causing
performance issue in the Principal. If Principal is lost Mirror can automatically take over.
13. What is High Protection operating mode?
It is pretty similar to High Availability mode except that Witness is not available, as a result failover is
manual. It also has transactional safety FULL i.e. synchronous communication between principal and
mirror. Even in this mode if the network is poor it might cause performance bottleneck.

14. What is High Performance operating mode?


It consists of only the Principal and the Mirror in asynchronous communication. Since the safety is OFF,
automatic failover is not possible, because of possible data loss; therefore, a witness server is not
recommended to be configured for this scenario. Manual failover is not enabled for the High Performance
mode. The only type of failover allowed is forced service failover, which is also a manual operation.

15. What are Recovery models support Database Mirroring?


Database Mirroring is supported with Full Recovery model.

16. What are End Points and its usages?


An endpoint is a network protocol which is used to communicate Principal, Mirror and Witness servers
over the network.

17. How can we create an end point using SQL script?


CREATE ENDPOINT Endpoint1
STATE = STARTED
AS TCP ( LISTENER_PORT = 5022 )
FOR DATABASE_MIRRORING (ROLE=PARTNER);
GO
18. What is the default of end points (port numbers) of principal, mirror and witness servers?
The default port numbers of principal, mirror and Witness servers are 5022, 5023 and 5024

19. What is Log Hardening?


Log hardening is the process of writing the log buffer to the transaction log on disk, a process called.

20. Is it possible to perform read only operation at mirrored database in mirror server?
Yes, using database snapshots.

21. What is Role-switching?


Inter changing of roles like principal and mirror are called role switching.

22. How to Set a Witness Server to Database Mirroring?


ALTER DATABASE AdventureWorks SET WITNESS = 'TCP://SQLWITN.local:5024'
23. How to Remove a Witness Server from Database Mirroring?
ALTER DATABASE AdventureWorks SET WITNESS OFF
24. What are the Database Mirroring states?
 SYNCHRONIZING
 SYNCHRONIZED
 SUSPENDED
 PENDING_FAILOVER
 DISCONNECTED
25. What does SYNCHRONIZING state means in Database Mirroring?
The contents of the mirror database are lagging behind the contents of the principal database. The
principal server is sending log records to the mirror server, which is applying the changes to the mirror
database to roll it forward. At the start of a database mirroring session, the database is in the
SYNCHRONIZING state. The principal server is serving the database, and the mirror is trying to catch up.

26. What does SYNCHRONIZED state means in Database Mirroring?


When the mirror server becomes sufficiently caught up to the principal server, the mirroring state
changes to SYNCHRONIZED. The database remains in this state as long as the principal server continues
to send changes to the mirror server and the mirror server continues to apply changes to the mirror
database.

If transaction safety is set to FULL, automatic failover and manual failover are both supported in the
SYNCHRONIZED state, there is no data loss after a failover.
If transaction safety is off, some data loss is always possible, even in the SYNCHRONIZED state.

27. What does SUSPENDED state means in Database Mirroring?


The mirror copy of the database is not available. The principal database is running without sending any
logs to the mirror server, a condition known as running exposed. This is the state after a failover. A
session can also become SUSPENDED as a result of redo errors or if the administrator pauses the session.
SUSPENDED is a persistent state that survives partner shutdowns and startups.

28. What does PENDING_FAILOVER state means in Database Mirroring?


This state is found only on the principal server after a failover has begun, but the server has not
transitioned into the mirror role.

When the failover is initiated, the principal database goes into the PENDING_FAILOVER state, quickly
terminates any user connections, and takes over the mirror role soon thereafter.

29. What does DISCONNECTED state means in Database Mirroring?


The partner has lost communication with the other partner

30. Why we get the below error message while configuring database mirroring?
Msg 1416, Level 16, State 31, Line 3. Database is not configured for database mirroring
We need to restore the Full backup from principal server using With NoRecovery option and also one
transactional log backup from principal server using With NoRecovery option and then start configuring
mirroring.

31. Can we configure a single database to be mirrored to more than one server. i.e) One source &
many destination like logshipping?
No, It is not possible.

1) What is Database Snapshot?

A database snapshot is a view of what the source database looked like at the time at which the snapshot
was created. This means that all the objects will be the same as what it was when the snapshot was taken
and all of the data will be exactly as it was then. To use database snapshots to recover from an unwanted
DML statement, you need to have a suitable snapshot in place. Snapshots can only be created by using a
T-SQL statement.

2) How to create a Database Snapshot?

CREATE DATABASE AdventureWorks2012_S1 ON (NAME = [AdventureWorks2012_Data], FILENAME =


'D:\ MSSQL\DATA\AdventureWorks2012_Data_SS_1.ss') AS SNAPSHOT OF AdventureWorks2012

3) How does a snapshot work?

High level tasks of snapshot involves

 When you create a snapshot a sparse file is created for each data file

 When data is modified in the source database for the first time, the old value of the modified data
is copied to the sparse file

 If the same data is the subsequently changed again, those changes will be ignored and not copied
to the snapshot

 When you query the snapshot, it first checks if the data is available in the snapshot. If it’s there it
reads if from the snapshot. If it’s not there, I reads through to the source database and gets the
data from there instead, because that means the data has not yet changed since the time the
snapshot was taken

4) What is SPARSE file?

When a database snapshot is created, a sparse file is added for each database file in the database of which
the snapshot was taken. A sparse file is basically an empty file. It does not contain any data until a change
is made to the source database

5) What are important things to remember about sparse files?

 The maximum size a sparse file can grow to is the size of the original file at the time of the
database creation

 Sparse files are limited to 16 GB on Windows 2008 and 64 GB on Windows 2003

 Sparse files grow in increments of 64 KB

6) How can we check the SPARSE files?

SELECT name, is_sparse FROM sys.database_files

7) Can we change the permissions in a database snapshot?

No it’s not possible.

8)Can we take a backup of a database snapshot?

No.
9) Can we detach a database snapshot?

No.

10) What are the restrictions in Database Snapshots?

 Database snapshots depend on the source database. They can only be created on the same server
as where the database resides (or the server to which the database is mirrored.)

 While there are snapshots present, you cannot drop the database or add any new files to it

 Once a database snapshot becomes suspect it cannot be saved. It just has to be deleted. This can
happen if the snapshot runs out of space or reaches the maximum sparse file size limit

 You cannot create indexes on snapshots, they are strictly read only

 The user permissions are exactly the same as it was in the source database. You cannot grant a
user access to a snapshot. You have to grant the access in the source database and then take
another snapshot first before the user will be able to access it

11) What are the benefits of Database Snapshots?

 Snapshots can be used for reporting purposes.

 Using a mirror database that you are maintaining for availability purposes to offload reporting.

 Safeguarding data against administrative and user error

12) Can we configure mirroring between Standard Edition & Enterprise Edition or Vice Versa?

No it’s not possible, both principal and mirror should have same edition

13) Is it possible to take backup of mirrored database in mirror server?

No

14) Can I create multiple endpoints for configuring different databases for mirroring and point
each database to unique endpoint?

No

15) Can I configure a single database to be mirrored to more than one server. i.e) One source &
many destination like logshipping?

No

16) How to know the database mirroring connection time out in Mirroring?

SELECT Mirroring_Connection_Timeout FROM sys.database_mirroring WHERE database_id =


db_id('Database Names')

17) How can I increase Heartbeat time between principal and mirror server? By default its 10 sec.
ALTER DATABASE AdventureWorks SET PARTNER TIMEOUT 30

18) What status of mirroring has if secondary is down?

If secondary is down principle or Mirror show status disconnected

19) What status of mirroring has if principle is down?

If principle is down mirror will be disconnected with in recovery instead of synchronized with restoring

20) What status of mirroring has if mirroring is paused?

If mirroring is set to paused from principle then both principle & mirror in suspending

21) How to monitoring Mirroring?

There are six methods are available for monitoring the Database Mirroring
a) Database Mirroring Monitor:- Database Mirroring Monitor is a GUI tool that shows update status and
to configure warning thresholds.
To open DM Monitor:- Right click on Principal Database > Tasks > Select Launch Database Mirroring
Monitor.
b) SQL Server Management Studio:- A green arrow on the mirror server is indicates running well. A red
arrow indicates problems that need to investigate.
c) SQL Server Log:- It provides information of Mirroring establishment and status. If any errors occur it
will be logged to SQL Server log and Windows event log.
d) Performance Monitor:- It can provides real-time information about Database mirroring. We can use
performance counters to get status of the database mirroring such as Bytes received/sec, Bytes sent/sec,
Transaction delay etc.
e) Profiler:- Profiler many events are providing the status of the Database mirroring
f) System Stored Procedures:-
sp_dbmmonitoraddmonitoring
sp_dbmmonitorchangemonitoring
sp_dbmmonitorhelpmonitoring
sp_dbmmonitordropmonitoring

22) What will be the impact if we add data files to the Primary database in Database Mirroring?

Data files will be added to the Mirror database if the identical location is present at the mirrored server
without any issues.

23) What will be the impact if we add data files to the Primary database with a location which is
not present on the Mirrored server in Database Mirroring?

Database mirroring will not work in this case. We have to break the Mirroring and take a Log backup of
the Primary database and restore it on the Mirror database using “WITH MOVE” and “NORECOVERY”
option. Once it’s done then Reestablish the mirroring.

24) If we add any users to the Primary database, will it be copied to the Mirror databases or not?
Yes, It will be copied to the Mirror database with the permissions. However you have to create the login
manually with the same SID.s

25) How to disable mirroring by scripts?

ALTER DATABASE <sdatabase_name> SET PARTNER OFF

26) How to do manual failover to Mirror when principle is working fine?

ALTER DATABASE <DB Name> SET PARTNER FAILOVER

27) What is Transparent Client Redirection?

Database mirroring provides a feature of automatically redirection of the Application connection to


Mirror database in case of Primary database failures. Database connections configured as below to enable
this functionality.

.NET Example

Data Source=SQLA;Failover Partner=SQLB;Initial Catalog = AdventureWorks2008R2 ; Integrated


Security=True

28) What is Log buffer?

Log buffer is a small contiguous memory structure, only 60k maximum, to host in memory transaction
logs per database. When the transaction is committed, entire buffer will be written to transaction log file
before commit finishes.

29) What is Automatic Page Repairing?

Automatic page repair is supported by database mirroring. After certain types of errors corrupt a page,
making it unreadable, a database mirroring partner (principal or mirror) attempts to automatically
recover the page. The partner/replica that cannot read the page requests a fresh copy of the page from its
partner. If this request succeeds, the unreadable page is replaced by the readable copy, and this usually
resolves the error, this whole process is called Automatic Page Repair.
30) What are the error types which cause and Automatic Page Repair attempt?

Instances that cause


Error automatic page-repair
number Description attempt

Action is taken only if the operating


system performed a cyclic ERROR_CRC. The
redundancy check (CRC) that failed operating-system value
823 on the data. for this error is 23.

Logical data errors, such


as torn write or bad
824 Logical errors. page checksum.

A page has been marked as restore


829 pending. All.

31) What are the page types which are not repairable using Automatic Page repair option?

Automatic page repair cannot repair the following control page types:

 File header page (page ID 0).

 Page 9 (the database boot page).

 Allocation pages: Global Allocation Map (GAM) pages, Shared Global Allocation Map (SGAM) pages,
and Page Free Space (PFS) pages.

You might also like