Databases Reference
In-Depth Information
costlier solution because in addition to extra servers, additional storage is also required. It is important
to note, however, that a standby server can participate in multiple mirroring sessions and can also be
used for reporting purposes through the use of database snapshots since the mirrored database cannot
be directly accessed or queried against using Management Studio or any other tools.
Best Practice — Mirroring
Ensure your application supports database mirroring.
Log Shipping
One of the more basic yet quite powerful high availability features available with SQL Server involves
the process of shipping transaction logs from a primary database to a standby server and then restoring
the logs onto a standby database. Depending on how often logs are restored on the standby server, the
standby database may technically be minutes or even hours behind the primary database and so does
not provide a no-data-loss failover scenario.
Replication
SQL Server Replication is a feature that allows a SQL Server database acting as a publisher to publish
data to one or more subscribers. There are three different types of replication: Snapshot, merge, and
transactional. Typically, one of these three types of replication fit the needs of most organizations. Repli-
cation also allows filtering of data from the publisher to the subscriber, allowing the subscriber to receive
a subset of the data.
SQL Server 2005 offers a host of high-availability features and depending on the needs of the organi-
zation, one or more of these features can be implemented fairly easily. The disaster recovery planning
stage is the correct time to make the choice, keeping in mind that hardware requirements differ between
features.
Load Testing
Load testing an application or database is the process of exercising your would-be production system by
subjecting it to the largest loads that it can handle. This can also be referred to as endurance testing as the
goal of the exercise is to determine whether the production system will sustain itself under maximum
load, such as the number of transactions that will be seen during peak working hours. Load testing is also
used to detect any bugs that would not normally surface during cursory testing such as memory man-
agement issues, buffer issues, and I/O bottlenecks. The most important goal, however, is to determine
the maximum number of transactions per second that the entire production system can handle without
causing visible slowness to the users. Stress testing on the other hand is used to determine the maximum
capacity of the production system. This is usually accomplished by subjecting the system to larger than
usual workloads to determine the breaking point for the system. Stress testing is important because there
will always be that one unthinkable day when there is complete chaos in the system and everyone seems
to be entering thousands of transactions or pulling massive reports (such as at the end of the quarter).
Search WWH ::




Custom Search