Monday 26 September 2016

Virtualising SQL Server Analysis Services (SSAS) Databases using Delphix AppData




Introduction


SQL Server Analysis Services (SSAS) deliver online analytical processing (OLAP) for business intelligence applications. Analysis Services support OLAP by letting you design, create, and manage multidimensional structures that contain data aggregated from other data sources, such as MS SQL Server.

SSAS hosts aggregated cubed data and stores it into a SSAS database.   End users query pre-aggregated data from the SSAS database.  In many cases the SSAS database can satisfy all such queries, but some queries may require access to the underlying SQL Server database.


SSAS Pinch Points


1      Estimates suggest that the primary storage of an SSAS multidimensional database can be about one third size of the original data.

2      SSAS cannot support an unlimited number of concurrent users or queries.  A common technique is to distribute the workload across multiple dedicated query servers, which has many advantages, yet the downside is an inefficient use of expensive storage resources given that each query server requires a separate database copy.  See Scale-Out Querying for Analysis Services with Read-Only Databases


Enter Delphix


Delphix can assist with two scenarios

1      Enable SSAS database generation by provisioning virtual copies (VDBs) of the underlying SQL Server database(s)

This offloads the SSAS generation process from production databases.

2      Scale out access to SSAS databases using AppData provisioning and corresponding MS SQL Virtual Database provisioning.

This allows expansion of access to SSAS data with minimal storage overhead at maximum speed.


How do I do that?


Setup Source Environment (description based on SQL Server 2008 R2)
  1. Import AdventureWorks2008R2 sample MS SQL database into a source SQL Server Instance.
  2.  Install Analysis Services and Business Intelligence Development Studio on both source and target SQL Server Instances.
  3. Run the SQL Server Analysis Services Tutorial on the source SQL Server Instance.

Ingest Sources

  1. Ingest the AdventureWorks2008R2 MS SQL database into Delphix
  2. Ingest SSAS database, located at “C:\Program Files\Microsoft SQL Server\MSAS10_50.MSSQLSERVER\OLAPusing AppData (virtual files).  Note since this is a database it may need to be quiesced before ingest to guarantee consistency.
  3. Ingest the Visual Studio Project, located at “C:\Users\delphix_admin\Documents\Visual Studio 2008\Projects\Analysis Services Tutorial”, using AppData
Note: files can only be ingested via a server running the Delphix connector.  I used an SMB share to the target server.


Provision Clones (Virtual Copies)


All steps below apply to the target server.
  1.  Provision virtual copy of AdventureWorks2008R2 as a VDB, named “vAdventureWorks2008R2”.
  2. Stop the SSAS Windows service
  3. Rename “C:\Program Files\Microsoft SQL Server\MSAS10_50.MSSQLSERVER\OLAP”
  4. Provision virtual copy of SSAS database onto “C:\Program Files\Microsoft SQL Server\MSAS10_50.MSSQLSERVER\OLAP”
  5. Start the SSAS Windows service
  6. Provision virtual copy of the Visual Studio Project, called Analysis Services Tutorial into “C:\Users\delphix_admin\Documents\Visual Studio 2008\Projects\Analysis Services Tutorial”.
  7. Using SQL Server Business Intelligence Development Studio, modify the data source connection string to connect to the Virtual Database, “vAdventureWorks2008R2”.
  8. Test by selecting Database -> Process -> Run, to prove the cube can be refreshed from the MS SQL database


Complete.


Conclusion


Now you have a virtual copy of the entire SSAS analysis stack provisioned in minutes with almost no storage overhead.  You can collate all three components together into a JetStream container and manipulate them as a single data and application environment.



            







Wednesday 21 September 2016

Delphix versus Oracle Snap Clone for Oracle Database Logical Recovery

Background


More frequently than we care to imagine, customers require to be able to recover quickly from scenarios where a database table or data is lost from production either through physical storage corruption or logical mistakes.  Due to the size and complexity of the environments these issues can take a long time to recover from.  Frequently we find that a customer's recovery time objective is challenging to meet.

Many customers use storage replication for HA and DR, however this does not protect against physical storage corruption nor logical mistakes.  Any such corruption would be replicated intact.  Corruption issues can be identified by application users but frequently they are identified much later during backups using RMAN block validation.

An Oracle standby database using database flashback still does not solve the problem because of the time taken to flashback a database and the administration overhead of managing flashback recovery areas.

Customers require a solution that can start up a clone or virtual copy database in minutes, from a specific point in time, to quickly source a database object that can be used to restore the production copy.

Most of the end-to-end recovery time is consumed locating, restoring and recovering the right version of the database.  It is an iterative process to find the most recent non-corrupted database copy.

Both Delphix and Oracle Snap Clone could be viewed as alternative solutions to implement Logical Recovery.

Key Requirements for Logical Recovery


There are three key requirements to implement a logical recovery solution.

1.    Synchronising with Source Database(s)

This solution requires that you have access to a continuous rolling window of backups since you will need to restore database objects (usually tables) from a version of the production database immediately prior to the corruption or fault occurring.  You want to restore the latest good copy of the database object(s).

2.    Provisioning Database Copies

The solution must also be able to provision a database copy to a point-in-time extremely quickly as this may have to be performed several times before the most up-to-date ‘good’ version of the object is located.

3.    Simplicity

The entire recovery process must be automated, easy to use and fast.  Recovery scenarios are stressful events and intuitive ease of use avoids artificial delays during the recovery process itself.


Oracle EM 12c DBaaS Snap Clone for Logical Recovery


1.    Synchronising with Source Database(s)

For continuous synchronisation with a source database Oracle requires a replication method to maintain an up-to-date Test Master from which all clones will be provisioned.
The replication method is typically an Oracle Data Guard physical standby.
The storage on which the standby is running is limited to Sun Storage, NetApp or EMC.  You can use any other storage as long as you have a server running Solaris to create and manage a ZFS file system on that storage.

Challenges

1.     Requires a licensed database server to run the standby database instance
2.     Enough storage for a full physical copy of the source databases
3.     Administration overhead managing the standby database, for example, synchronising nologging operations on the source database and physical changes including datafile addition and deletion
4.     Limited set of storage options
5.     Additional licenses are required if using 3rd party, NetApp or EMC, snapshots capabilities 

2.    Provisioning Database Copies

Oracle Snap Clone can provision point-in-time clones of the Test Master from storage snapshots.

Challenges
1.     All target servers where clones are deployed must be licensed with
·       Oracle Database Lifecycle Management Pack
·       Cloud Management Pack

3.    Simplicity

Even customers who are familiar with Enterprise Manager may find that installing, configuring and managing DBaaS Snap Clone is non-trivial.


Delphix for Logical Recovery


1.    Synchronising with Source Database(s)

Delphix synchronises with source database seamlessly using an RMAN initial full backup and incremental forever backups including transaction log files.  All the ingested data is compressed to typically 50% of the size.  The compression saves storage for the source and virtual copies but more importantly improves the IO performance of virtual copies.

When we perform an incremental synchronisation (SnapSync) we can also validate the integrity of the database using validated synchronisation.  This will ensure that the backup copy we have can be used for recovery and the data is intact.  It also speeds up the process of provisioning a virtual copy.  The validated SnapSync could be run as frequently as required to support the recovery time objective.

Advantages
  • With Delphix there is no requirement for a Standby Database
  • Synchronisation is automatic regardless of any database changes (nologging, physical etc)
  • Easy to define a retention policy for the span of time you want to keep backups
  • Validated Sync can continuously check for corruptions and recoverability of the Delphix database copy
  • No additional Oracle licenses required

2.    Provisioning Database Copies

Delphix can provision a virtual copy of a database in minutes to any point-in-time within the retention period of the source copy.  Provisioning can be performed via the GUI, CLI or API.  You can also provision as many copies as you want concurrently, from independent points in time to accelerate the time to restore service.

3.    Simplicity
                       
Delphix is easy to install, has automated discovery of source systems, once synchronisation is established with a retention period and one or more target servers are configured to provision virtual databases to there is very little monitoring or maintenance required.

Key advantages of Delphix over Oracle DBaaS Snap Clone 


1.     Easy to install and configure
2.     Complete automation of restore and recover process
3.     No requirement for multiple standby environments, avoiding setup, maintenance, monitoring, server capacity and licenses.
4.     Continuous validation and recovery of ingested backups as a further safeguard against corruptions and providing early detection of issues.
5.     Reduced Storage requirement
6.     Lower maintenance
7.     Minimal Licensing, with no additional licenses required if want to expand usage for provisioning non-production database copies

8.     More References