<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SQL Database Recovery Blog from Stellar</title>
	<atom:link href="http://www.mssqldatabaserecovery.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mssqldatabaserecovery.com/blog</link>
	<description>Try to solve all your problem related to SQL database corruption</description>
	<lastBuildDate>Tue, 07 May 2013 10:08:37 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Gaining Maximum Benefits from Log Shipping Disaster Recovery Solution</title>
		<link>http://www.mssqldatabaserecovery.com/blog/gaining-maximum-benefits-from-log-shipping-disaster-recovery-solution/</link>
		<comments>http://www.mssqldatabaserecovery.com/blog/gaining-maximum-benefits-from-log-shipping-disaster-recovery-solution/#comments</comments>
		<pubDate>Tue, 07 May 2013 10:06:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[database mirroring]]></category>
		<category><![CDATA[log shipping]]></category>

		<guid isPermaLink="false">http://www.mssqldatabaserecovery.com/blog/?p=184</guid>
		<description><![CDATA[As SQL Server administrators lean on to new availability solutions features in SQL Server 2008, log shipping has somewhere fallen between the cracks. SQL Server 2005 brought to the table new enhancements to this high availability technology, while SQL Server 2008 gave it a miss. Log shipping can be still used as a disaster recovery [...]]]></description>
				<content:encoded><![CDATA[<style type="text/css"><!--
p { margin-bottom: 0.21cm; }
--></style>
<p>As SQL Server administrators lean on to new availability solutions features in SQL Server 2008, log shipping has somewhere fallen between the cracks. SQL Server 2005 brought to the table new enhancements to this high availability technology, while SQL Server 2008 gave it a miss. Log shipping can be still used as a disaster recovery solution where one or more secondary servers act as warm standbys. Other benefits of log shipping include use of secondary databases for other purposes (such as reporting) and limited read-only access to secondary databases. <span id="more-184"></span></p>
<p>There are ways with which you can use this technique meticulously to save time and minimize downtime. Let us peek into those techniques one by one.</p>
<p><b>Reversing Log Shipping</b></p>
<p>In times of disaster, it is necessary to fail over to a secondary log shipping server as quickly as possible. In order to reverse the roles of primary and standby servers, the only way out is to get the standby online, perform a full database backup, and then restore it to the original primary database. In case of large databases, this can be time-consuming and a real pain in the neck. In order to save considerable time, you can follow the given procedure to reverse log shipping roles:</p>
<ul>
<li>First up, disable the backup job on the primary server.</li>
<li>Restore the transaction logs onto the standby server to synchronize everything between the primary and secondary server instance.</li>
<li>Disable the restore jobs on the standby server.</li>
<li>Perform backup of the transaction log of the primary database using NORECOVERY option.</li>
<li>Restore the backup created in the above step on the standby server using RECOVERY option.</li>
<li>Right-click the database on standby server, click ‘Properties’, and then select ‘Transaction Log Shipping’.</li>
</ul>
<p>Finally, you need to make changes to the backup and secondary server settings.</p>
<p><b>Switching Between Log Shipping and Database Mirroring</b></p>
<p>Log shipping and database mirroring techniques have a lot in common. Both techniques use full database backup for initialization and require LSN chain to sync the data of primary and secondary database. Due to specific requirements, you sometimes need to drop your primary disaster recovery solution. In such instances, you can switch between the two techniques easily and avert the risks of some serious downtime. All you need to do is drop one technology and configure the other to make the switch. To do this, follow the given steps:</p>
<ul>
<li>Disable all backup jobs on both primary and secondary server instances.</li>
<li>Drop log shipping (by removing secondary database, disabling all log shipping jobs, and running them in sequence again) or drop database mirroring.</li>
<li>Configure database mirroring or log shipping (to which you are planning to switch).</li>
<li>Restart the jobs disabled earlier.</li>
</ul>
<p>If you need to fail over to the standby server for a short term, then switching between log shipping and database mirroring is your best bet.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mssqldatabaserecovery.com/blog/gaining-maximum-benefits-from-log-shipping-disaster-recovery-solution/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Definitive Approach for Safely Attaching SQL Server Databases without Transaction Log Files</title>
		<link>http://www.mssqldatabaserecovery.com/blog/a-definitive-approach-for-safely-attaching-sql-server-databases-without-transaction-log-files/</link>
		<comments>http://www.mssqldatabaserecovery.com/blog/a-definitive-approach-for-safely-attaching-sql-server-databases-without-transaction-log-files/#comments</comments>
		<pubDate>Fri, 29 Mar 2013 08:17:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[attach SQL database]]></category>

		<guid isPermaLink="false">http://www.mssqldatabaserecovery.com/blog/?p=180</guid>
		<description><![CDATA[There exists an abundance of situations where you do not have complete backup of your SQL Server database and you require restoring the database on a server without its transaction log. There are methods using which you can attach your primary database file (‘.MDF’) to the server without having the associated transaction log file. However, [...]]]></description>
				<content:encoded><![CDATA[<p>There exists an abundance of situations where you do not have complete backup of your SQL Server database and you require restoring the database on a server without its transaction log. There are methods using which you can attach your primary database file (‘.MDF’) to the server without having the associated transaction log file. However, you need to shut down your database cleanly in order for accomplishing the desired task successfully without errors. You can do so either using SQL Server Management Studio or by running a set of T-SQL statements. Let us delve deeper into the situation and discuss these two workarounds: <span id="more-180"></span><br />
<strong>Using SQL Server Management Studio</strong><br />
You can use the given steps with SQL Server 2005 and SQL Server 2008 to attach your SQL Server database when its transaction log file is missing.</p>
<ul>
<li>Launch SQL Server Management Studio and connect to the server instance.</li>
<li>Go to Object Explorer, right-click ‘Databases’, and choose ‘Attach’. The ‘Attach Databases’ window appears on your screen.</li>
<li>In the ‘Attach Databases’ window, click ‘Add’ below the ‘Databases to attach’ section. Select the ‘.MDF’ file for the database you need to attach in the ‘Locate Database Files’ window and click ‘OK’.</li>
<li>The selected MDF file will be listed in the bottom-right pane of the ‘Attach Databases’ window. You will see that the window displays ‘Not Found’ message for the associated log file of the database you need to attach to the server. Select this log file and click ‘Remove’ at the bottom. Next, click ‘OK’ to attach the database.</li>
<li>Once the database is successfully attached to the server without its transaction log, a new log file will be created by the server and stored at the same location as the data file.</li>
</ul>
<p><strong>Using T-SQL to Attach Your Database with Missing Transaction Log</strong></p>
<ul>
<li>First up, you need to create a database using the CREATE DATABASE command with ‘ATTACH’ option. For instance, you can attach ‘Employee.mdf’ file by providing its name and location as follows:</li>
</ul>
<p>USE [master]<br />
GO<br />
CREATE DATABASE [Employee] ON<br />
( FILENAME = N&#8217;C:\Program Files\&#8230;\MSSQL\DATA\Employee.mdf&#8217; )<br />
FOR ATTACH<br />
GO</p>
<p>Once you are finished with this, a message appears stating that a new transaction log file was successfully created for the database.</p>
<ul>
<li>Next, you need to verify the database consistency using DBCC CHECKDB. To do this run the following command:</li>
</ul>
<p>DBCC CHECKDB (&#8216;Employee&#8217;)<br />
GO</p>
<p>If your database comprised multiple transaction log files that you have lost, you should use ‘<strong>ATTACH_REBUILD_LOG</strong>’ option with the CREATE DATABASE command.</p>
<style type="text/css"><!--
x
--></style>
]]></content:encoded>
			<wfw:commentRss>http://www.mssqldatabaserecovery.com/blog/a-definitive-approach-for-safely-attaching-sql-server-databases-without-transaction-log-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Decrypting SQL Server Error 3154 With Possible Fixes</title>
		<link>http://www.mssqldatabaserecovery.com/blog/decrypting-sql-server-error-3154-with-possible-fixes/</link>
		<comments>http://www.mssqldatabaserecovery.com/blog/decrypting-sql-server-error-3154-with-possible-fixes/#comments</comments>
		<pubDate>Fri, 22 Mar 2013 09:18:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[SQL server error 3154]]></category>

		<guid isPermaLink="false">http://www.mssqldatabaserecovery.com/blog/?p=176</guid>
		<description><![CDATA[Backups are the best line of defense against data disasters. This rule of thumb holds true even for SQL Server databases. MS SQL Server includes a backup and restore component that enables you to create backups of SQL Server databases and restore these backups as and when needed. With this useful functionality, you can easily [...]]]></description>
				<content:encoded><![CDATA[<p>Backups are the best line of defense against data disasters. This rule of thumb holds true even for SQL Server databases. MS SQL Server includes a backup and restore component that enables you to create backups of SQL Server databases and restore these backups as and when needed. With this useful functionality, you can easily do away with all forms of media errors and user errors. Further, you can mitigate the risk of permanent loss of a server. <span id="more-176"></span></p>
<p>You may choose to back up your SQL Server database to a tape or disk file. A set of backup media that use the same number and type of backup devices is called a media set. If a single backup operation writes to multiple backup media in a media set it is known as a backup set. Sometimes, various problems are encountered when you try to restore data from these backup sets. A typical SQL Server error that pops up when performing a restore using a backup set is shown below:</p>
<p><em><strong>Error 3154</strong></em><br />
<em><strong>Severity Level 16</strong></em><br />
<em><strong>Message Text</strong></em><br />
<em><strong>The backup set holds a backup of a database other than the existing &#8216;%ls&#8217; database.</strong></em></p>
<p>SQL Server recognizes the backup set and the database to which you are restoring by the same name. It is quite often the case that you first create the database to which you need to restore the backup set with a different CREATE DATABASE statement. This implies that even if the database in the backup set and the database you created have the same name, they are indeed two different databases. When you restore to the database you created, you are very likely to receive the above error.</p>
<p><strong>Resolution</strong><br />
You can remedy this problem using two methods. You may choose to perform overwrite of the existing database by using the ‘WITH REPLACE’ clause with the ‘RESTORE DATABASE’ command. The second option is to use a different database name when restoring the backup set. When you are restoring to a different database name, make sure that the files that will be created as a result of restore are not already present in your system and are not being used by some other database. You may consider deleting the old database and again issue the RESTORE command.</p>
<p>The following example shows how to use ‘WITH REPLACE’ option when issuing the ‘RESTORE DATABASE’ command:</p>
<p><strong>RESTORE DATABASE AdventureWorks FROM DISK = &#8216;C:\BackupAdventureworks.bak&#8217; WITH REPLACE</strong></p>
<p>Some users end up choosing a wrong backup set for restore. You need to ensure that you choose the backup of the existing database.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mssqldatabaserecovery.com/blog/decrypting-sql-server-error-3154-with-possible-fixes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Uncovering Possible Instances Leading to Error 3902 in SQL Server</title>
		<link>http://www.mssqldatabaserecovery.com/blog/uncovering-possible-instances-leading-to-error-3902-in-sql-server/</link>
		<comments>http://www.mssqldatabaserecovery.com/blog/uncovering-possible-instances-leading-to-error-3902-in-sql-server/#comments</comments>
		<pubDate>Wed, 06 Mar 2013 05:33:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[SQL server error 3902]]></category>

		<guid isPermaLink="false">http://www.mssqldatabaserecovery.com/blog/?p=171</guid>
		<description><![CDATA[All uncommitted SQL Server transactions lead to transaction log filling up. Log space exhaustion can have serious implications for your database, such as failed UPDATE, DELETE, or INSERT queries. In a typical situation, an uncommitted transaction can give you the following error message:  The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION. (Microsoft OLE DB [...]]]></description>
				<content:encoded><![CDATA[<p>All uncommitted SQL Server transactions lead to transaction log filling up. Log space exhaustion can have serious implications for your database, such as failed UPDATE, DELETE, or INSERT queries. In a typical situation, an uncommitted transaction can give you the following error message: <span id="more-171"></span></p>
<p>The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION. (Microsoft OLE DB Provider for SQL Server)</p>
<p>This is an application error which generally indicates that the DB-Library call dbcancel() which originated from within a user-defined transaction has failed to execute properly. The call dbcancel() cancels the currently executing SQL statement by aborting and roll backing it. At the same time, the outer transaction does not get affected by the call. When this happens, it is necessary to roll back or close the transaction using the ROLLBACK TRANSACTION or COMMIT TRANSACTION statement. If the application does not close the transaction at this stage, you receive the above error on your screen.</p>
<p>It would be worthwhile if the application can identify the level of transaction nesting by requesting a <strong>SELECT @@TRANCOUNT</strong>. Once the application knows the transaction nesting level, it can send a <strong>COMMIT/ROLLBACK</strong> to get @@TRANCOUNT to zero. But, this should be done carefully. In case the <strong>@@TRANCOUNT</strong> at a specific time does not match with what the application expects, the application may end up aborting critical transactions using COMMIT/ROLLBACK. This is because the application is not aware of actual transactions that lead to this unintended nesting level.</p>
<p>A typical example of the above situation is when you use ODBC CALL syntax in a transaction to call a recursive SQL Server stored procedure. There could be two instances where the SQL Server would execute the stored procedure. The first occasion is when SET FMT ONLY is set to ON. In this case, there is a good chance that the maximum nesting level is exceeded and causes the server to roll back the transaction. As this happens internally, you may not see an error. The SQL Server executes the procedure once again. In case the nesting level is exceeded again, you will receive an error. When the SQL Server runs the stored procedure correctly and this does not exceed the maximum nesting level, you will see error 3902 as discussed above.</p>
<p><b>Workaround</b></p>
<ul>
<li>An easy workaround is to avoid calling the stored procedure via ODBC Call syntax. You can do the same in many ways with the help of ADO. One possible way is to use a command object.</li>
<li>You can also choose to change settings on the connection manager. SET &#8216;<em>RetainSameConnection&#8217;</em> property to TRUE.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.mssqldatabaserecovery.com/blog/uncovering-possible-instances-leading-to-error-3902-in-sql-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Breaking Down Major Misconceptions Around Database Repair in SQL Server</title>
		<link>http://www.mssqldatabaserecovery.com/blog/breaking-down-major-misconceptions-around-database-repair-in-sql-server/</link>
		<comments>http://www.mssqldatabaserecovery.com/blog/breaking-down-major-misconceptions-around-database-repair-in-sql-server/#comments</comments>
		<pubDate>Wed, 27 Feb 2013 03:46:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[database repair in SQL server]]></category>

		<guid isPermaLink="false">http://www.mssqldatabaserecovery.com/blog/?p=164</guid>
		<description><![CDATA[Database repair has always been a matter of great debate and confusion among the users. Some inexperienced users believe that simply repairing the database can help them break free from all types of corruption errors and bring their database back online. However, the method used to perform repair determines how running repair is going to [...]]]></description>
				<content:encoded><![CDATA[<p>Database repair has always been a matter of great debate and confusion among the users. Some inexperienced users believe that simply repairing the database can help them break free from all types of corruption errors and bring their database back online. However, the method used to perform repair determines how running repair is going to impact your database. In general, it is not wise to go for a repair immediately after finding corruption in the database. Let us quickly walk you through some of the common misconceptions that need to be corrected in order to better understand the purpose and scope of database repair:</p>
<p style="text-align: center;"><a href="http://www.mssqldatabaserecovery.com/blog/breaking-down-major-misconceptions-around-database-repair-in-sql-server/sql-server/" rel="attachment wp-att-165"><img class="size-full wp-image-165 aligncenter" alt="sql server" src="http://www.mssqldatabaserecovery.com/blog/wp-content/uploads/2013/02/sql-server.jpg" width="248" height="203" /></a></p>
<p><strong>Repair Won’t Lead To Data Loss</strong><br />
It mainly depends on the repair option being used with the DBCC command. For a majority of corruption errors, the minimum repair level needed to fix corruption is provided in the error itself. If the minimum repair level is ‘REPAIR_ALLOW_DATA_LOSS’, you are very likely to lose your data after the repair. <span id="more-164"></span></p>
<p><strong>Repair Should Always Be Run As Default</strong><br />
It isn’t always necessary or fruitful to perform repair. For instance, if your database contains a large-sized clustered index which is damaged, you won’t be able to rebuild the index unless there is sufficient free space available on your hard disk.</p>
<p><strong>No Checks Are Needed After Running Repair</strong><br />
No, this is not always true. A few types of corruption will prevent the repair command from executing deeper checks. Once the corruption is fixed, you should rerun DBCC CHECKDB to complete all the remaining checks on your database.</p>
<p><strong>Repair Can Fix Everything</strong><br />
The repair options of DBCC CHECKDB cannot fix all types of corruptions you may run across. Some common unrepairable corruptions include metadata corruption, PFS Page header corruption, and column value corruption.</p>
<p><strong>Repair Is Safe For Fixing System Databases</strong><br />
As ‘model’ database does not contain user tables, the repair operation is unlikely to fix such type of database corruption. Because the master or tempdb database cannot be switched to single-user mode, no repair is possible for these two databases. If you run repair on ‘msdb’ database, you may run into additional problems.</p>
<p><strong>Repairs Can Be Done Online</strong><br />
In order to run a repair, you need to get your database into single-user mode. This is only possible if you take it offline.</p>
<p><strong>Repairs Always Fix Constraints</strong><br />
The repair operation does not bother about any constraints that exist in your database. You should explicitly run DBCC CHECKCONSTRAINT after a repair to examine the validity of your database constraints.</p>
<p><strong>It Is Safe To Rely On Emergency Mode</strong><br />
If you have issues with your file system, then the Emergency mode repair might fail. Further, you cannot undo a repair done in Emergency mode.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mssqldatabaserecovery.com/blog/breaking-down-major-misconceptions-around-database-repair-in-sql-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Get Your Conflicting SQL Server Database Out of &#8216;SUSPECT&#8217; Mode</title>
		<link>http://www.mssqldatabaserecovery.com/blog/how-to-get-your-conflicting-sql-server-database-out-of-suspect-mode/</link>
		<comments>http://www.mssqldatabaserecovery.com/blog/how-to-get-your-conflicting-sql-server-database-out-of-suspect-mode/#comments</comments>
		<pubDate>Fri, 25 Jan 2013 03:52:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[suspect mode]]></category>

		<guid isPermaLink="false">http://www.mssqldatabaserecovery.com/blog/?p=159</guid>
		<description><![CDATA[It is not uncommon for SQL Server users to have their database marked as &#8216;suspect&#8216; by the server. It is no surprise to claim that maximum percentage of downtime comes from these cases. When the database is marked &#8216;suspect&#8217;, you cannot connect to the database to access your data. The reason why SQL Server sets [...]]]></description>
				<content:encoded><![CDATA[<p>It is not uncommon for SQL Server users to have their database marked as &#8216;<a title="suspect" href="http://www.mssqldatabaserecovery.com/sql-server-suspect-mode.php" target="_blank">suspect</a>&#8216; by the server. It is no surprise to claim that maximum percentage of downtime comes from these cases. When the database is marked &#8216;suspect&#8217;, you cannot connect to the database to access your data. The reason why SQL Server sets a &#8216;suspect&#8217; flag is to secure your database against any potential loss of data. A typical error that shows up everytime you launch SQL Server and attempt to connect to your &#8216;suspect&#8217; database is Error 9003. This error gets logged in the SQL Server error log as follows:<span id="more-159"></span></p>
<p>&#8216;Error: 9003, Severity: 20, State: 9.<br />
The log scan number (189624:16:2) passed to log scan in database &#8216;BPO&#8217; is not valid. This error may indicate data corruption or that the log file (.ldf) does not match the data file (.mdf).&#8217;</p>
<p>The above error may also occur when you use log shipping in SQL Server 2005 and your secondary database is running in &#8216;Standby&#8217; mode.</p>
<p><strong>Some common reasons why a database goes into &#8216;Suspect&#8217; mode:</strong></p>
<ul>
<li>Your database has encountered corruption.</li>
<li>Startup recovery of your database has failed due to insufficient disk space or memory.</li>
<li>The database files are currently in use by another program and cannot be accessed.</li>
<li>SQL Server crashed abruptly due to a power spike or hardware failure.</li>
</ul>
<p>You can get your database out of &#8216;suspect&#8217; mode by following a few troubleshooting steps. First off, you need to determine all the databases that are marked &#8216;suspect&#8217; by the server. Follow the below series of steps to recover a suspect database:</p>
<p><strong>Use the below mentioned T-SQL code to get the names of all &#8216;suspect&#8217; databases:</strong></p>
<p>USE master<br />
GO<br />
SELECT NAME,STATE_DESC FROM SYS.DATABASES<br />
WHERE STATE_DESC=&#8217;SUSPECT&#8217;<br />
GO</p>
<p><strong>Once you find out which databases are suspect, you can execute the below T-SQL statements to set your database to &#8216;Emergency&#8217; mode.</strong></p>
<p>&#8216;USE master<br />
GO<br />
ALTER DATABASE BPO SET EMERGENCY<br />
GO&#8217;</p>
<p>Once you have brought the database in &#8216;Emergency&#8217; mode, you can execute queries as before. Further, if you have a good backup, you can restore your database from this. In case you fail to get your database up and running, use professional SQL database recovery software to regain access to your lost data. These advanced tools are adept at fixing all types of corruption in SQL Server databases. Using these tools, you can restore all or select database objects to a new SQL database.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mssqldatabaserecovery.com/blog/how-to-get-your-conflicting-sql-server-database-out-of-suspect-mode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Handling Index Corruption in SQL Server in SQL server 2000</title>
		<link>http://www.mssqldatabaserecovery.com/blog/handling-index-corruption-in-sql-server-in-sql-server-2000/</link>
		<comments>http://www.mssqldatabaserecovery.com/blog/handling-index-corruption-in-sql-server-in-sql-server-2000/#comments</comments>
		<pubDate>Wed, 16 Jan 2013 05:55:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[Index corruption]]></category>

		<guid isPermaLink="false">http://www.mssqldatabaserecovery.com/blog/?p=155</guid>
		<description><![CDATA[SQL server index speed ups the querying process by offering easy access. It is created on column in the database tables or views. For example; index of a document that helps in finding the information quickly within the document. Sometimes, you may get below error during query processing on the database. 2012-12-06 09:14:53.19 spid61 Error: [...]]]></description>
				<content:encoded><![CDATA[<style type="text/css"><!--
p { margin-bottom: 0.21cm; }
--></style>
<p>SQL server index speed ups the querying process by offering easy access. It is created on column in the database tables or views. For example; index of a document that helps in finding the information quickly within the document. Sometimes, you may get below error during query processing on the database.</p>
<p><span style="color: #ff0000;">2012-12-06 09:14:53.19 spid61 Error: 644, Severity: 21, State: 5 </span></p>
<p><span style="color: #ff0000;">2012-12-06 09:14:53.19 spid61 could not find the index entry for RID &#8217;16afe06e0100000000ed170000020000&#8242; in index page (1:16904330), index ID 2, database &#8216;Employee-Historial&#8217;…<span id="more-155"></span></span></p>
<p><b>Cause</b>: Above error message appears when SQL server found index corruption in the database. As indicated by the error message, index is non-clustered because index ID is greater than 1.</p>
<p><b>Required Action</b>: Follow below steps to solve index corruption in the database</p>
<p>1. <b>Run DBCC CHECKDB</b>: First of all run DBCC CHECKDB command on the database to determine the level of corruption.</p>
<p lang="en-US">Transact-SQL: DBCC CHECKDB Your database Name;</p>
<p>2. <b>Run DBCC CHECKDB with Repair_Rebuild</b>: Now execute DBCC CHECKDB with Repair_Rebuild clause to fix the index corruption issue.</p>
<p lang="en-US">Transact-SQL: DBCC CHECKDB Your database name with repair-rebuild;</p>
<p lang="en-US">3. <b>Drop &amp; Re-Create Index</b>: If problem still persist after running DBCC CHECKDB with repair_rebuild clause then drop and re-create the affected index. To do this, follow below steps:</p>
<ul>
<li>Write down the value of index page &amp; index ID from the error message.</li>
<li>Index Page: (1:16904330) &amp; Index ID: 2</li>
<li>Now check which table &amp; index match to the index page number.</li>
<li>Note: If object ID is less the 100 then you can&#8217;t drop the index because this object ID corresponds to a system table. Here you have only one option that is restore from clean database backup.</li>
<li>If object ID is greater than 100, drop and re-create the index using table name &amp; index name.</li>
<li>Re-execute DBCC CHECKDB on the affected database to verify that problem has been solved.</li>
</ul>
<p><b>T-SQL to drop an Index</b>: DROP INDEX Index-name ON Table-name;</p>
<p><b>T-SQL to re-create an Index</b>: CREATE INDEX index_name ON table_name (column_name);</p>
<p>4. <b>3</b><sup><b>rd</b></sup><b> Party SQL Repair Program</b>: If problem still persist after performing above three steps then try an advanced SQL repair program from 3<sup>rd</sup> party. <a href="http://www.mssqldatabaserecovery.com/sqlserver-mdf-file-recovery.php" target="_blank">SQL repair program</a> is able to fix index corruption problem in the database and also supports SQL server 2000.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mssqldatabaserecovery.com/blog/handling-index-corruption-in-sql-server-in-sql-server-2000/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Help Me! I am getting Error 8941 in SQL server 2000</title>
		<link>http://www.mssqldatabaserecovery.com/blog/help-me-i-am-getting-error-8941-in-sql-server-2000/</link>
		<comments>http://www.mssqldatabaserecovery.com/blog/help-me-i-am-getting-error-8941-in-sql-server-2000/#comments</comments>
		<pubDate>Mon, 31 Dec 2012 05:40:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.mssqldatabaserecovery.com/blog/?p=147</guid>
		<description><![CDATA[Getting an error message in SQL server is probably one of the most worst nightmares in database administrator life. It results in database down, customers frustration, managers shouting and so many other unpleasant things. In this article, I&#8217;m going to explain some of the steps to solve SQL server error message 8941. “Table error: Object [...]]]></description>
				<content:encoded><![CDATA[<p lang="en-US">Getting an error message in SQL server is probably one of the most worst nightmares in database administrator life. It results in database down, customers frustration, managers shouting and so many other unpleasant things. In this article, I&#8217;m going to explain some of the steps to solve SQL server error message 8941.</p>
<p lang="en-US">“<em>Table error: Object ID O_ID, index ID I_ID, page P_ID. Test (TEST) failed. Slot S_ID, offset 0xADDRESS is invalid</em>.”<span id="more-147"></span></p>
<p lang="en-US"><b>Root Cause: </b>SQL server gives error 8941when it found invalid offset address for the database table during testing.</p>
<p lang="en-US"><b>How to Resolve</b>: You can resolve SQL server error 8941 by following below steps.</p>
<p lang="en-US"><b>Step 1: Check Hardware Problem</b></p>
<p lang="en-US">First of all examine the SQL Server error log to see if the error occurred due to hardware failure. If you finds that error has occurred due to hardware problem then immediately run hardware diagnostic tool &amp; fix the problem. If you have persistent SQL database corruption issues then I will recommend you to swap out the hardware with new component.</p>
<p lang="en-US"><b>Step 2: Try to Restore from Updated Backup</b></p>
<p lang="en-US">If you have verified that error 8941 has not appeared due to hardware problem then try to restore your database from clean &amp; updated backup. If you don&#8217;t have a clean backup of the database then go with the next step.</p>
<p lang="en-US"><b>Step 3: Run DBCC CHECKDB Command</b></p>
<p lang="en-US">Most of the database administrator including me recommend don&#8217;t run DBCC CHECKDB command on the database without knowing the effect of it. This command helps to resolve SQL server error 8941 when there is no clean backup available.</p>
<p lang="en-US">First of all execute DBCC CHECKDB command without a repair clause. It will determine the level of SQL database corruption &amp; recommend a repair clause to use. Now execute DBCC CHECKDB with proper repair clause to repair SQL database corruption.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mssqldatabaserecovery.com/blog/help-me-i-am-getting-error-8941-in-sql-server-2000/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Doing Away with Page Corruptions in SQL Server 2005 Using Checksum</title>
		<link>http://www.mssqldatabaserecovery.com/blog/doing-away-with-page-corruptions-in-sql-server-2005-using-checksum/</link>
		<comments>http://www.mssqldatabaserecovery.com/blog/doing-away-with-page-corruptions-in-sql-server-2005-using-checksum/#comments</comments>
		<pubDate>Thu, 27 Dec 2012 09:11:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[SQL page corruption]]></category>

		<guid isPermaLink="false">http://www.mssqldatabaserecovery.com/blog/?p=141</guid>
		<description><![CDATA[The concept of &#8216;Page Checksum&#8217; debuted in SQL Server 2005. This feature is superior to the Torn Page Detection&#8217; mechanism for identifying corrupt pages in an SQL database. However, this is achieved at the cost of incurring some amount of overhead. Overhead would be caused during every page read and write. Thus, it may possibly [...]]]></description>
				<content:encoded><![CDATA[<style type="text/css"><!--
p { margin-bottom: 0.21cm; }
--></style>
<p>The concept of &#8216;Page Checksum&#8217; debuted in SQL Server 2005. This feature is superior to the Torn Page Detection&#8217; mechanism for identifying corrupt pages in an SQL database. However, this is achieved at the cost of incurring some amount of overhead. Overhead would be caused during every page read and write. Thus, it may possibly affect your overall performance.</p>
<p>I/O subsystem issues are fairly common in any real-time work environment and the main reasons for causing downtime. Database corruption is often the outcome of problems that occur at the I/O subsystem level. Checksum helps to figure out corruption caused by these failures or possibly take out the faulty I/O device from your system.<span id="more-141"></span></p>
<p>Whenever a page is written to the disk, SQL Server computes checksum for this page by verifying its bit pattern and stores the checksum in the page header. The checksum for this page is recomputed before each read and compared to the one stored its header. If the two values do not match, then it is assumed that the page got corrupt by something outside of the SQL Server environment. Checksum is enabled at the database level via ‘Alter Database’ command.</p>
<p>If you enable checksum for a database at the time of its creation, all pages in that database will have this setting enabled. However, if checksum is not enabled for a database initially, it will be calculated for only the pages that are written after the feature has been turned on. There is no inbuilt tool that can be used for enabling checksum computation for the pages that are not preconfigured for this. In reality though, this is not worthwhile as the page that has already become corrupt will have checksum computed based on the invalid data.</p>
<p>In order to verify checksum for all pages in your SQL database, you should run DBCC CHECKDB against the database with ‘PHYSICAL_ONLY’ option. This will perform a consistency check on your database with minimum overhead. After you have detected which pages are corrupt, you can fix this corruption manually by rebuilding the indexes or recovering the damaged files.</p>
<p>You can also take help of professional SQL database recovery software to repair and restore your corrupt database. Using these tools, you can safely recover all the damaged or inaccessible objects to a new database at any user-specified location. Further, these software support MS SQL Server 2012, 2008 R2, 2008, 2005, 2000, and 7.0.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mssqldatabaserecovery.com/blog/doing-away-with-page-corruptions-in-sql-server-2005-using-checksum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stellar Phoenix SQL Recovery Software V4.0 has been released</title>
		<link>http://www.mssqldatabaserecovery.com/blog/stellar-phoenix-sql-recovery-software-v4-0-has-been-released/</link>
		<comments>http://www.mssqldatabaserecovery.com/blog/stellar-phoenix-sql-recovery-software-v4-0-has-been-released/#comments</comments>
		<pubDate>Thu, 13 Dec 2012 04:05:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.mssqldatabaserecovery.com/blog/?p=137</guid>
		<description><![CDATA[Stellar data recovery, leaders in data recovery software &#38; services announced the launch of Stellar Phoenix SQL Recovery Software V4.0. Now SQL recovery software will compatible with SQL server 2008 R2 as conformed by Stellar R&#38;D team. New Added Features: Now Stellar Phoenix SQL Recovery V4.0 will support following features. Support for MS SQL Server 2008 [...]]]></description>
				<content:encoded><![CDATA[<p>Stellar data recovery, leaders in data recovery software &amp; services announced the launch of Stellar Phoenix SQL Recovery Software V4.0. Now SQL recovery software will compatible with SQL server 2008 R2 as conformed by Stellar R&amp;D team.</p>
<p><strong>New Added Features</strong>: Now Stellar Phoenix SQL Recovery V4.0 will support following features.</p>
<ul>
<li>Support for MS SQL Server 2008 R2.</li>
<li>Support for fast scanning algorithms. <a href="http://www.stellarsqldatabaserecovery.com/blog/stellar-phoenix-sql-recovery-software-v4-0-has-been-released/" rel="nofollow">Read the rest of this story..</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.mssqldatabaserecovery.com/blog/stellar-phoenix-sql-recovery-software-v4-0-has-been-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
