The purpose of this academic article is to illustrate the importance of high availability databases for enterprises in the twenty-first century. It will outline the best practices for implementing high level functionality of these databases. In addition, the report also demonstrates the current trends in database storage systems for modern organization’s high database availability need.
This is report will demonstrate which current trends are best suited to implement the high availability best practices stipulated by the Oracle Maximum Availability Architecture (MAA) blueprint. An understanding of DB clustering is provided and also backup and recovery mechanisms are discussed. Additionally, this report highlights the issues and solutions pertaining to high availability databases.
High availability is a necessity for an enterprise irrespective of the size of the organization. It is now required in order to operate in a 24/7 support environment. Businesses are increasingly in pressure to be always available to their customers, partners, and suppliers. Therefore, it is essential that businesses use high availability methods, databases, and software that minimize the occurrence of downtime or system outage .
It is the purpose of this research paper to answer the following research questions: What are the current trends in data storage which would meet the present demands of business for high availability? What are the best practices which need to be implemented so as to ensure optimal use of these data storage systems? What are the procedures required to cope with both unplanned and planned downtimes of an IT infrastructure?
What is High Availability?
High availability can be defined as a system that is operational continuously and for long duration of time. The availability can be said to be hundred percent operational.
Why is it important?
According to Ashish Nadkarni explains that modern enterprises need to have a “reliable, highly available datacenter infrastructure” in order to be successful . Nadkarni explains further that if a firm’s Information Technology environment and connected applications consistently experience prolonged periods of downtime then this could lead to a “loss of productivity, customers, and current or future business opportunity” . This would then adversely affect the enterprise in terms of revenues, profits, branding, and for public companies it could have a “negative influence on stock prices and market conditions” . Therefore, in the twenty-first century, all organizations, regardless of size, are required to have a “movement toward constant uptime” and 24/7/365 environments .
Therefore, storage suppliers are constantly being pressured to discover ways to improve their storage infrastructure in order to fulfill the rising demands of small, medium-sized, and large businesses. In addition, it is imperative that a business decrease the “overall expenditure on IT infrastructure” while simultaneously adhering to and exceeding performance requirements. Modern businesses are also expected to “seamlessly” scale “storage resources” along with the growth of the business. Furthermore, businesses require that storage infrastructure be flexible, “continuous data availability” and “consistent performance” that decrease the price of up-front storage. Nadkarni suggests that this will permit businesses to construct their IT infrastructure according their needs, without having any impact on “end-user applications” .
What is DBMS Clustering?
DBMS Clustering is the capacity to connect different servers together to form a single database server. A clustering instance is a collection processes interacting with the database servers.
The major advantages of Clustering in high-volume database environments are Fault tolerance and Load Balancing.
- Fault tolerance is when multiple server instances are available for connection in a cluster to act as backup in case of any server failure.
- Load balancing is the feature where users are automatically allocated the servers with lesser load.
DataBase Management System (DBMS) clustering in High Availability (HA) database is a method to minimize downtime and provide continuous service in case of failure of one or more components. DBMS clusters consist of several nodes communicating and sharing information through shared data memory grids. DBMS clustering ensures high availability of database systems availability and reliability as well .
How is it implemented?
The implementation of DBMS Clustering requires use of “high availability architecture.” This can be an intimidating task considering the wide variety of available Oracle technologies and deployment options. In order to successfully implement high availability architecture, one needs to define clearly and thoroughly understand the business requirements of a particular enterprise. Once this is done then the database engineer needs to create a high availability structure which adheres to the business’s requirements for “availability, performance, scalability, and security” .
Types of DBMS clustering
Clustering takes varied forms according to the data storage and capacity and resources allocation. There are two types of clustering architectures:
Shared-nothing Architecture or Database Sharding
The first type, shared-nothing architecture or Shard architecture clustering has each node/server as independent of each other. There is no single point of contact for each other. For example a company having a single website but multiple data centers. All the different data servers are independent of each other and there is no single master for them. The other clustering architecture has a single server and therefore known as shared-disk architecture. In this type of clustering all data is stored at a central location and accessed through instances from different server nodes.
The difference in these two types of clustering architectures has diminished with the introduction of distributed caching or grid computing. In grid computing the data is centrally located however it is managed and controlled virtual servers that are distributed over the network and act as one single instance .
Oracle Real Application Clusters (RAC) is an example of DBMS Clustering. RAC is a premier database clustering technology permitting two or more nodes in a server pool to concurrently share a single database. This database system, on the surface, appears to have a “single unified database” but it actually involves the use of “multiple hardware systems” .
The RAC architecture is beneficial to all applications in terms of availability and scalability. This architecture or DBMS Clustering allows fault tolerance in case of hardware or software failures. Additionally, the RAC allows flexibility and cost effectiveness in terms of capacity planning. It allows the system to scale in capacity on demand and according to business needs change.
Another example of a DBMS Clustering is the Oracle Database 11g. Oracle 11g is beneficial to businesses because it offers reliable, efficient, and robust data management for mission-critical and online transactions. Additionally, the Oracle Database 11g provides secure data management for “query-intensive data warehouses as well as content management and Web 2.0 applications” . Below is an illustration of the architecture of the Oracle Database 11g that shows the various ways that the DBMS clustering facilitates high availability storage.
Issues and solutions
In order to manage unscheduled outages on the primary site the business needs to ensure that appropriate recovery steps are taken. For instance, in case of data lost during a cluster-wide failure it is required that at least one node or the cluster is restored. Afterward, tape backups need to be restored to regain lost or corrupted data. After this is done, then the database will be recovered .
Backup and Recovery
Backup and recovery are important aspects of database management and availability. It is an essential element of database security as well.Sun, Dong, Chen, & Wei in their study define a special way of asynchronous recovery and backup of the database based on de-duplication. Data de-duplication helps reduce the backup load and cuts down on the disk storage space thereby giving a cost benefit.
Oracle high availability architecture highlights different ways of backup that include the creation of active replica through cloud and using tape backup on periodic intervals .
RMAN is the backup and recovery solution of RMAN that refines and fine grains the recovery mechanism through recovery of small chunks of data blocks instead of the whole database. RMAN can efficiently track changed blocks and ensures backup of changed block only. It provides an implicit and powerful De-duplication. Active Data Guard, which is an oracle product, also permits creating the physical standby of databases for read access during the synchronization process of recovery thereby ensuring high availability .
Best practices that should be implemented when using the Oracle Database 11g include, but are not limited to, the following:
- Implement change control and security procedures.
- Create test environments.
- Document and communicate service level agreements (SLAs).
- Create and adhere to best practices pertaining to security.
- Use repair strategies recommended by the Maximum Availability Architecture (MAA) and design a system outage and repair decision diagram for crisis situations using the suggested MAA matrix.
- Create a system which automates and optimizes repair procedures to decrease downtime by adhering to MAA practices .
High availability database has a growing importance in current times due to requirements of enterprises that need to be always functional and running. If businesses refuse to adapt to the 24/7 world then, this could potentially lead to a loss of business, which would translate into a loss of revenue and profits. Moreover, in order to effectively compete in today’s business environment then it is expected that businesses have high availability databases. Oracle 11g provides a very robust set of features for high availability databases. The oracle products are not only beneficial for organizations in their quest to high availability support but also enable security.
Baird, C. (2004) Oracle® Database High Availability Architecture and Best Practices 10g Release 1 (10.1) Part Number B10726-02. White paper. Oracle.
Brewer, W. (2007) Simple Talk [Online]. Available from: https://www.simple-talk.com/sql/database-administration/database-high-availability-soup-to-nuts/ [Accessed 14 December 2014].
Janssen, C. (2014) Techopedia.com [Online]. Available from: http://www.techopedia.com/definition/17/clustering-databases [Accessed 16 December 2014].
Sun, G.Z., Dong, Y., Chen, D.W. & Wei, J. (2010) Data backup and recovery based on data de-duplication. IEEE, 2, pp.379-82.
Venkatraman, A. (2014) Scientists and Enterprises are Turning to the Cloud for HPC. Computer Weekly, pp.17-19.