Sunday, October 4, 2015

Repair Clustered and Non-Clustered Index in SQL Server

In a general way, if we define a cluster then we will define like this: A cluster is a group of some items which acts like a single system. From the figure 1, you can easily find your answer. We have 3 clusters on the image. They all have their own systems but, for each other they are only one system.

Clustered Index: Every database has rows and columns. Clustered index is used to determine the order in which the rows of the table are stored into disk.Let’s take an example, suppose we have table named Student which has a column named Roll_No. If we create a clustered index on the column Roll_No then all the rows inside the table Student will be sorted on the disk space according to the column Roll_No.

Point to remember: Index follows the tree data structure in which leaf nodes contains the actual data of the table. Leaf nodes are those nodes which have no child and they will always present on the bottom level of the tree.

Advantage: Searching and fetching of the data become faster with the cluster index because data will physically sorted right next to the each other.

Disadvantage: Clustered index is not useful or those columns that have repeated value.

How to crate clustered index: I will discuss a T-SQL method to create clustered index. Let’s take the same example of table Student that we have discussed above. With a default database, Clustered index automatically created with the primary key.

USE AdventureWorks2012;
CREATE TABLE dbo.Student
(Roll_Noint NOT NULL,
Name char(10) NULL,
Address varchar(70) NULL);

This query will create a table of three columns named Roll_No, Name and Address. Now we create a clustered index:

ON dbo.Student (Roll_No); 

This is the way to create clustered index in a table. You can choose the clustered index name according to your choice. Rather than this approach, you try it by SQL Server Management Studio.

Non-Clustered Index: Non-clustered index contain pointers that point to actual data. Pointer is a variable which contains the address of actual data.

From the above image it is clear that, the leaf nodes contain all the pointers. The main difference between clustered and non-clustered, in clustered type when we reach on the leaf nodes then we are on the actual data. In non-clustered type, when we reach on the leaf nodes then we are on the pointers.

Advantages: This approach is useful when data has redundancy.

Disadvantages: Data fetching is less easyas compared to clustered index. 

Note: A table can contain more than one non-clustered index because they do not affect the order of the row which contains data.

How to crate Non-clustered index: Using T-SQL, you can create a non-clustered index like this:

USE AdventureWorks2012;
ON dbo.Student (Name); 

Corruption in clustered and non-clustered index: When corruption occurs in the SQL server database then you should check the corrupt objects. Run the DBCC CHECKDB command:

DBCC CHECKDB(CorruptDB) With No_InfoMsgs, All_ErrorMsgs, TableResults;

It returns database ID, object ID and index ID. Here the term index ID shows the status of the index. Take a look on the index ID mapping:

ID 0 = heap
ID 1 = Clustered
ID 2 = Non-clustered 

Solution: If the index ID is greater than 1 that is non-clustered index then drop and recreate it. If the index Id is 0 or 1 then try these methods:

Restore from the backup:

If the data model is full or bulk logged then you can backup of the tail log. In simple recovery model, you will not get this option and you can only restore from the last backup.Run this command to restore from the backup:


If you want to repair a specific page then you can run this command:

RESTORE DATABASE YourDatabaseName PAGE = ‘1:85663’ FROM DISK = ‘C:\YourDatabaseName.bak’ WITH NORECOVERY

In section PAGE = ‘1:85663’, 1 is Index ID and 85663 is the page no.

More options:

You can also try these automatic repairing options. Take a look on these options:

REPAIR_REBUILD: Its syntax is:


Basically this is for minor corruption on the database.

REPAIR_ALLOW_DATA_LOSS: As it is clear from its name, it allows the data loss and tried to repair all errors. When corruption is very severe then this command deallocates the page from the memory and modifies the links. Its syntax is:


A Final Option: If you are unable to repair your database by these options then the final way is to use a secure third party tool. Before buying any tool just read all instructions very carefully.

Final words: We have seen the different methods to repair the corruption of index in SQL server database and I am sure that, you can use these options without any trouble and according to level of corruption. DBCC CHECKDB is very strong tool but it can turn into a dangerous tool when someone usesthis without knowledge.
»» 

Friday, September 25, 2015

How to Monitor Low Disk Space in SQL Server

As a SQL server user, you should be aware of disk space availability in SQL server because once SQL Server runs out of disk on the primary host, then everything comes to a crashing halt. In this case, the SQL server engine expands the size of database file. Every SQL database has the growth option setting and all the database files depend on it. This problem cannot create any trouble if you identify on time and solve it quickly. Every database has a default size and you can also increase the size of it. To increase the database size then, use this command:

USE master;
ALTER DATABASE AdventureWorks2012
   (NAME = databasename,
    SIZE = 20MB);

Many users set the database on auto-growth option. When the auto-growth event occurs then SQL server find the more space on the disk. This space can be anywhere on the disk rather than right next to the existing database space and become the reason of database fragmentation. We have an xp_fixeddrives extended procedure to check the available disk space. You can use this procedure like this:

EXEC MASTER..xp_fixeddrives

Above query will return two columns. First is drive name and second is MB free. You have another option to know about the free disk space. Use this query:

SELECT DISTINCT dovs.logical_volume_name AS LogicalName,
dovs.volume_mount_point AS Drive,
CONVERT(INT,dovs.available_bytes/1048576.0) AS FreeSpaceInMB
FROM sys.master_files mf
CROSS APPLY sys.dm_os_volume_stats(mf.database_id, mf.FILE_ID) dovs

This query will return three columns; Logical name, drive name and free space in MB.

This is the way by which you can check the available disk space in SQL Server. If you are interested to know about the used space by indexes then you can use usp_SpaceUsedAnalyzer stored procedure. You can download usp_SpaceUsedAnalyzer as by here.

Note: This procedure won’t work with SQL Server 2000 and earlier versions because the SP uses system database table which is available in SQL Server 2005 and later versions. 

The above stored procedure is inspired by sp_spaceused stored procedure. Now we will see the working of sp_spaceused.

I have discussed with some DBAs about this SP and few of them are not aware about the terms “unallocated space” and “unused space”. 

USE [AdventureWorks2012]
EXEC sp_spaceused
This query will give you the following result:

This query will give you the following result:

Let’s understand the column names.

  1. database_size: It is sum of data files and log files. In this database it is 205.75 MB.
  2. unallocated space: A space which is not reserved for data files or log files. It is 14.95 MB.
  3. reserved: A space which is reserved for use by either data files or log files. It is 194608 KB and I will convert from KB to MB by this formula: 194608 KB/1024=190.05 MB.
  4. data: Space used by data = 97016 KB/1024= 94.74 MB.
  5. index_size: Space used by indexes = 88048 KB/1024 = 85.99 MB.
  6. unused: It is a part of reserved space which is not used by any data files or log files. 9544 KB/1024 = 9.32 MB.
  7. used: data+index_size = 94.74+85.99=180.73 MB.
You can remember the simple formula:

Final words:  So these are few simple methods by which we can check the disk space allocated by SQL Server database. If you are running the database without monitoring the disk space availability of your SQL Server database then you are running it on high risk. So check the disk space of your database to prevent your data from corruption.
»» 

Thursday, September 17, 2015

Restore SQL Database with .MDF File Only

Every new version of Microsoft SQL Server comes with interesting features and these features make it very easy and powerful. As a SQL server user I love to explore new things. I read about different types of database corruption and try to solve them. SQL Server database has a primary file called .MDF (Master Data File) file which contains schema and data. When corruption occurs then, experts suggest to restore the database from clean and updated backup and it should be the primary step that we can follow. In this post we will see the different ways to restore the SQL database with.MDF file only.

I had faced this problem when my friend sent me.MDF file and forgot to send .LDF file along with it. I used the first method to solve my problem.

First Method: Restore by GUI

It is very easy approach to attach .MDF to SQL Server. Simply follow these steps:
  • Open SSMS.
  • To attach the database, Right-Click on the database and select Attach option.
  • In Attach Databases dialog, click on Add option and navigate to the location of your .MDF file.
  • As we have only .MDF file then it will show the Not Found along with .LDF file.

  • When you will click on the OK button then, It will raise an error:

  • Now you can take the help of T-SQL to achieve this. This method will also work when more than 1 log file is missing.
        (FILENAME = 'C:\123\TestDB.mdf')

Note: After successful completion, you will get the below message:

File activation failure. The physical file name "C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\TestDB_1.ldf" may be incorrect.

New log file 'C:\123\TestDB_log.ldf' was created.

Second Method: This method is very useful when a single log file is missing:

EXEC sp_attach_single_file_db @dbname='TestDB',
@physname=N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQL \MSSQL\DATA\ TestDB.mdf'

Third Method:

( FILENAME =N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQL\MSSQL\DATA\TestDB.mdf')

It is only to attach a single log file.

Conclusion: It is the very common problem for SQL Server users andI hope this post will help you to fix this issue. If you have any other option to fix this problem then share with me. 
»» 

Monday, September 7, 2015

How to Change the SQL Server Database Mode?

If required, SQL server database administrator can change his/her database’s mode by using SQL server enterprise manager, SQL server management studio and SQL commands like ALTER database or sp_dboption. SQL server enterprise manager is a Microsoft management console that provides user interface for DBAs to perform several tasks like create database, define groups, register server etc. DBA can use it to change the database mode in single user mode or in multi user mode for SQL server 2000. Similarly SQL server management studio can be used for changing the database mode for SQL server 2005 and all upper versions.

What is Database Mode?
Database mode specifies your database access permission like how many users can access your database at time. Suppose your database is in single user mode then it specifies that only one user can access the database at a time and generally it is used for the database maintenance purpose. Your database can be used by multiple users at a time when database is in multi user mode.    

Change the SQL database mode using ALTER command:

Change the SQL database mode using stored procedure:
EXEC sp_dboption 'Works', 'single user', 'false'
EXEC sp_dboption 'Works', 'single user', 'true'

Change the SQL database mode using SQL server management studio: To change the database mode using SQL server management studio, first open it and connect to the SQL server instance. Now open the databases belonging to the instance in object explorer windows and right click on your desired database and click on the properties menu. When you click on the properties menu, database properties will be displayed at the screen like below image.

As you see in the above screen, there are three options: single, multiple, & restricted. I have already discussed these modes in the above section. When you choose single from the list to change the database mode either you will successfully change the mode or will get fail due to existence of active connection to the desired database. SQL server prompts you to close all the active connection from the database before changing the database mode. After closing all the connection, you will be able to change the database mode in single_user mode. Similarly you will change the database mode in multi_user mode of your desired database.
»» 

Thursday, September 3, 2015

Fix Page Level Corruption of SQL Server Database

Database corruption can occur anytime and most often due to faulty hardware or operational mistakes like deleting the transactional log file etc. SQL server database has a RESTORE DATABASE command, which has an optional parameter. It provides the facility to restore one or more pages instead of the entire database. This option is very useful when corruption occurs in few database pages by IO subsystem problem.To solve this problem you can try these options:

  • First of all, change the database into single user mode because end users can create the restrictions in the restore operation. To set the database into SINGLE_USER mode, execute the following command:

Here we use the ROLLBACK AFTER n SECONDS option, which will be able to kill the running operations and connection.
  • Now you can start the recovery process by taking the tail-end backup of the log file. It can be a single portion that has not already backed up. Example :
BACKUP LOG MyDatabaseName
TO DISK = N'D:\SQLBackups\ MyDatabaseName _TailEnd.trn'
  • Now, execute the RESTORE DATABASE command with PAGE switch option which is loaded as many pages as needed.
PAGE = 'fileid:pageid,fileid:pageid,etc'  -- e.g. 1:5220,1:5221,etc
FROM DISK = 'D:\SQLBackups\ MyDatabaseName _lastFull.BAK'
Here we are using NORECOVERY option so; you do not recover your database with this command.
  • You can apply the transactional log with NORECOVERY either you have full backup or differential backup.  Make sure, you do not recover the database. See example:
RESTORE LOG MyDatabaseName
FROM DISK = 'D:\SQLBackups\ MyDatabaseName_LogFileFrom3PM.TRN'
RESTORE LOG MyDatabaseName
FROM DISK = 'D:\SQLBackups\ MyDatabaseName_LogFileFrom315PM.TRN'

There are similar log backups in the sequence. This sequence runs up to the point of disaster. 

RESTORE LOG MyDatabaseName
FROM DISK = 'D:\SQLBackups\ MyDatabaseName_LogFileFrom630PM.TRN'

Now again we are using NORECOVERY option.
  • Now we will apply the tail-end backup that we have got in step 2 and recover the database.
RESTORE LOG MyDatabaseName
FROM DISK = ‘D:\SQLBackups\ MyDatabaseName _TailEndBackupOfYourLogFileFromStep2.TRN’

Note: Here we are using the recovery option to recover the database.
  • Now use the following command to clear out the msdb..suspect_pages
DELETE FROM msdb..suspect_pages
  • Now, again run the DBCC CHECKDB() with ALL_ERRORMSGS (and NO_INFOMSGS) options.
  • Switch the database into the multi-user mode:

Final Words: We have seen the steps of page level restore options. This is more feasible for few page corruptions. If you have a large number of corrupt pages then you have to manually handle all t-log applications. A third party tool is also available to fix the page level corruption
»» 

Tuesday, August 25, 2015

Backup and Recovery Options of SQL Server

Database corruption is the part of many database user lives and it gives the chances to explore new things every day. This blog is about the advanced backup and restore options of SQL server database. All DBA’s understand the importance of backup and restore command but sometimes a lesser-known option can be very useful. Let’s see the different options:

Verifying the Backup Integrity: Most of the time; I found that experts easily neglect backup integrity while it plays an important role in database. SQL server 2005 introduced page checksums feature and it works as the page corruption detector of the data file. This function is by default enable in the SQL server 2005 and if you need to enable them then upgrade the database from previous version.

You can use the BACKUP command with CHECKSUM option to confirm that page checksums are checked. This option is very important because it notifies you when your backup was corrupted. If it finds page corruption then backup will fail by default. At this time user get the following error message on the screen:

Msg 3043, Level 16, State 1, Line 1
Backup ‘broken detected an error on page (1:143)
in file ‘C:\.....\broken.mdf’.
Msg 3013, Level 16, State 1, Line 1
BACKUP DATABASE is terminating abnormally.

Some DBA’s use the RESTORE command with VERIFYONLY option to check the integrity of the database but, it only checks BACKUP header not the data inside BACKUP. You have to use RESTORE command with CHECKSUM and VERIFYONLY options to restore the process and recheck the all pages and entire BACKUP checksums.   

Minimize the Data Loss: When a corruption occurs in the database then, many users start restoring the database from backup. At this situation it is a possibility of the last portion of the transactional log disappears forever. This kind of backup is called tail-log backup. This backup is most useful when you are using synchronous database mirroring.

If you are using tail-log backup and the data files are missing then, you will get the following error message on your screen:

Msg 945, Level 14, State 2, Line 1
Database ‘DBMine2008’ cannot be opened due to
inaccessible files or insufficient memory or disk space.
See the SQL Server errorlog for details.
Msg 3013, Level 16, State 1, Line 1
BACKUP LOG is terminating abnormally.

In this case, you can use NO_TRUNCATE option with BACKUP statement because it allows the backup to proceed. 

Note: In SQL Server 2005 and later versions, a database that has tail-log backup cannot be overwritten by the restore option unless you have to use REPLACE option.

Point in Time Restoring: Let’s assume a scenario, you deleted the data and you need to restore the data from the log backup created right before the deletion. If you know the time of data deletion then simply you will choose the STOPAT option to restore it. If you don’t know about the timing of data deletion then, you have to use STOPAT and STANDBY options to progress through the log and check by small amount of time to reach on the correct point.

You can also use its alternative which is marked transaction. It creates log mark in transactional log. For example:


You can use this known point during database restoration. STOPATMARK can be used if you want to include marked transaction and STOPBEFOREMARK option to exclude marked transaction. To use these options you should have the information about the name of log mark. If you haven’t then you can find in the logmarkhistory table in msdb. If you lost this information then, it is difficult to find the log mark names manually. In this case you have to use a third party tool.

Restart Interrupted Restore Option: RESTORE command has many options and WITH RESTART is one of them. It is less-known option which uses to restart an interrupted restore option. This restores operation works on the checkpoint file which has the information of point to which restore has progressed. You can check this file on \InstanceName\MSSQL\Backup folder location.

A checkpoint file is updated by the following reasons:
  1. After the processing of each and every backup set.
  2. When the redo part of the recovery is finished.
  3. At the time of database file creation after completion of zeroing.

When you use this WITH RESTART option on the absence of checkpoint file then, you can get this error message:

The restart-checkpoint file ‘C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\RestoreCheckpointDB8.CKP’ was not found. The RESTORE command will continue from the beginning as if RESTART had not been specified. 

This option is best for the large backup which has many taps because you can restart the restore option without going back to the first tape. It is also suitable to restore disk-based backups.

Other Options: There are many options which are lesser-known option which I said at the starting of blog so, you should try these options. By using BUFFERCOUNT and MAXTRANSFERSIZE options you can get the great performance to modify the I/O buffer. PAGE and PARTIAL options reduce the downtime when disaster occurs and these are used to single-page and piecemeal.

Conclusion: I hope you like these options and curious to know more about them. Database backup and restore is the very vast topic and used by many database users. Few corruptions are very hard to solve and at this point I can only suggest any trustworthy SQL database repair tool to repair your valuable database.
»» 

Wednesday, June 17, 2015

Get the Solution of Error 3343 in MS Access Database

MS-Access is mostly used in the small organizations to manage the valuable data. A database user faces different database errors during run-time and error 3343 is one of them. Error 3343 occurs when the database has corrupted and a user tries to access the same database. Possibly following error message is display on the user’s screen:

Let’s walk through the different reasons behind this error:

Reason 1: Splitting of the database
As we all know that a database can be small or large in the size. In the most cases; user stores data in a single file of the database and this single database file grows day by day and can create trouble. Spitting of database can fix the problem, but it is not the concern here. When you try to split this database into two parts and corruption on a single part of the database may be the main reason of whole database corruption. This is very serious issue and complete database repairing is a very tough job when it large in size.

How to fix: MS-Access has inbuilt repair tool to repair the database and it is called Compact and Repair utility. With this utility, you can easily repair the corrupt database.

Note: If the user is unable to repair the database using above utility then can download other tool which can repair the database.

Reason 2: Opening a database in previous version
It is the second most possible reason behind the error 3343 in MS Access database. Default file format supported by the Access 2007 and 2010 is .accdband if you want to open the Access 2010 file into Access 2003 then, you have to convert the file of 2010 to 2003 by MS- Access. Mostly you convert the database into the earlier version for sharing with others.

How to fix: Split the database into parts and open the database file in the previous version are the main reasons of this error. To fix this error you can take help from reliable commercial software
»» 

Monday, June 15, 2015

Shaking Hands with SQL Server 2016

I am a SQL Server lover and I was eagerly waiting for the SQL Server 2016. It is good to hear that, its public preview is available to download. Mr. Satya Nadella, CEO of Microsoft announced SQL Server 2016 during ignite conference. If you thinking about to upgrade the SQL Server then, it is a best reason to start budgeting and planning for the upgrades in your organization. It has the ability to deliver mission-critical capabilities with operational analytics built-in. Top capability for the SQL Server 2016 is the always encrypted behavior and mainly designed to protect data in motion or rest.

Always Encrypted and Secure: This feature is the highlight of the SQL Server 2016. With this feature, SQL Server can perform operation on encrypted data and encryption key can be resided with the application in the customer trusted environment. Encryption and decryption of the data happens clearly inside the application which reduces the changes that have to be made to existing applications.

In-Memory OLTP & Real Time Operational Analytics:  In-Memory Online Transactional Processing (OLTP) is a major focus is fast performance. Maximum size of the durable table in the SQL Server 2016 is 2 TB where as in 2014 it is 256 GB. It also supports nested native procedure calls and natively-compiled scalar UDFs. It has new syntax extension to ALTER your bucket count values with the simple rebuild:
ALTER TABLE dbo.InMemoryTable

Mobile BI and PolyBase: SQL Server 2016 expands its scope beyond data warehousing, transaction processing and business intelligence to deliver the advanced analytics to know deeper insights of the data. Additionally, we are creating PloyBase into the SQL Server to expand the power of extract value structured and unstructured data using existing T-SQL skills. With this feature user can get the faster insights by rich visualization on different devices including mobile application on Windows, iOS and Android.

Stretch Database:  This awesome technology allows you to dynamically stretch your cold and warm transactional data into the Azure cloud platform, so your important operational data is always at hand without any worry of size. Always encrypted feature can be used with stretch database to extend the data in a more secure manner.

Additional Features

  • Security enhancements for the Row-level security and Dynamic Data Masking to round out security investment.
  • Partially support DML triggers.
  • Supports indexes on NULLable columns.
  • Supports foreign key.
  • Analysis Services and SQL Server Enterprise Information Management (EIM) tools to get an upgrade in performance, usability and scalability.
»» 

Wednesday, May 27, 2015

Easy to Deal with MySQL Error #1045

When a user formatted PC and re-installed local server (XAMPP) then sometimes user got 1045 error message. This occurs when root@localhost wasn’t granted the essential rights a user tries to access phpMyAdmin after successful installation of the local server. Here is the complete error message which occurs on screen:
#1045 Access Denied for user 'root'@'localhost' (using password: YES)

We have different servers to use MySQL database like: WAMP, MAMP, LAMP and XAMPP. WAMP is for Windows, LAMP for Linux, MAMP for Mac OS X and XAMPP for all operating systems. It also supports perl, mercury mail, filezilla and some scripts. In this blog, I will try to help users to get rid from this error for any local host server by the use of phpMyAdmin.

User can try following methods to resolve this error. Your problem might be fixed using the first method or you have to perform all three.

First Method

  1. Start the command prompt and go to the XAMPP directory: cd ../../Program Files/xampp
  2. Now go to xampp->mysql->bin
  3. Now run the following command: mysql.exe --user=root --password= 
  4. After this, MySQL command line will start and we can change the –user= and –password= accordingly.
Second Method: In this method we create the batch file to make it easier. To do this just follows simple steps:

  1. Create a file mysql_command.bat in the XAMPP folder and edit this file with any text editor and paste in this:
      @echo off
      echoMySQL command line...
      mysql\bin\mysql.exe --user=root --password=
  2. Save the file and change the username and password if you changed username and password. Now run command.bat and command prompt will display with MySQL command line in running condition.
Third Method:Open the file which is located in localhost ->xampp ->phpmyadmin->

  1. Open this file using any text editor.
  2. Now find the code $cfg['Servers'][$i]['password'] = ''; // MySQL password
  3. Now change the password which you have created in step 1.
  4. Click on the Save button.
»» 

Thursday, May 21, 2015

Save More than 35% on Purchase of Stellar Database Repair Bundle

Recently I saw a discussion on forum about database recovery tool and I was very surprised to discover that many people do not think that these tools actually work. Sometimes when a user tried many options to recover and repair the database and unable to do it then, a third party tool can be the ray of hope. Stellar Data Recovery presents a database bundle which is tested by the team of experts. The most important thing for any tool is a reliable source which can provide useful software. This blog is about Database Bundle which includes Database recovery software for SQL Server, MySQL and Oracle. For many businesses, a database recovery tool plays a major role in their work and these tools are safe and secure.

This database bundle consist three tools:

Stellar Phoenix SQL Database Repair: It is a perfect tool that facilitates complete recovery of .MDF and .NDF file ofthe SQL server database. It supports MS SQL server 2014, 2012, 2008 and all lower versions. This tremendous tool recovers tables, triggers, keys, indexes, rules and constraints. It has the ability to self-reconnect in case of interruption during data recovery process and capable to repair much kind of corruption errors like: suspected database, consistency corruption, possible schema corruption and clustered index leaf node corruption. 

Price: $599

Key Features:
  • Recovery of foreign keys, primary keys, unique keys and identity.
  • Recovery of triggers, tables and view.
  • Supports sequence objects.
  • Supports ROW compressed and PAGE compressed data.
  • Supports XML data types and XML data indexes.
  • It allows finding of object name in the tree view.
  • It shows the preview of the recoverable database object.
Stellar Phoenix Database Repair for MySQL: It is a professional MySQL database recovery tool that carefully repairs corrupt MySQL databases to recover valuable objects such as primary key, triggers and views from it.Software supports MySQL versions 6.x, 5.x, 4.x and 3.x versions.

Price: $449

Key Features:
  • Customizable user interface.
  • It repairs all data types except spatial data types.
  • It also repairs MySQL database created on Linux platform.
  • Shows the details of ongoing process in a message log pane. 
Stellar Phoenix Oracle Database Recovery: Oracle database recovery process can be very straight forward with this tool because this tool perfectly repairs a corrupt.DBF file created in oracle 9i, 10g and 11g. It searches all Oracle databases present in the system and enables preview of recoverable database objects. Moreover, the tool creates the log report of the recovery process. A heavily damaged database can be optimally repaired and restored by this amazing tool.

Price: $799

Key Features:
  • Recovers schemas, triggers, roles, index, synonyms and sequence.
  • Recovers database query that links in .txt file.
  • Recovers cluster and cluster tables.
  • Recovers stored-procedures and user-defined data functions.
  • It is able to recover nested table, nested array type, nested object type etc.
  • It simply recovers package and package body.

»»