DBCC - consistency errors - sql-server

I have a error like Table error: Object ID 3, index ID 1, Page is missing a reference from previous page.
DBCC results for 'RKB'.
Msg 8978, Level 16, State 1, Line 1
Table error: Object ID 3, index ID 1, partition ID 196608, alloc unit ID 196608 (type In-row data).
Page (1:452) is missing a reference from previous page (1:16153).
Possible chain linkage problem.
CHECKDB found 0 allocation errors and 1 consistency errors in table 'sys.sysrscols' (object ID 3).
Msg 7995, Level 16, State 1, Line 1
Database 'RKB': consistency errors in system catalogs prevent further DBCC checkdb processing.
CHECKDB found 0 allocation errors and 1 consistency errors in table '(Object ID 99)' (object ID 99).
CHECKDB found 0 allocation errors and 2 consistency errors in database 'RKB'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
I am try with DBCC CHECKDB (RKB, REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS but my consistency errors not solved. How can I fix this error? can anyone help me?

You can try recreating or reloading the table. You can have more info on this link
http://www.sqlsoldier.com/wp/sqlserver/introductiontointegritychainlinkageproblems
But if you see frequent errors like this, you should check you I/O sub system.

Related

Importing huge SQL file into SQL Server 2012

I have a database that is about 20 GB in size. I generated script for DB and content and now trying to import to different server. I googled and found such thing:
sqlcmd -S localhost -i C:\Users\Administrator\Downloads\SQL_backup.sql
While executing sqlcmd like this, the process starts but after some time I get an error :
Msg 105, Level 15, State 1, Server WIN-I79PRE6OQTV, Line 793
Unclosed quotation mark after the character string '
172551665 ......
So my question is - if I have generated script using Microsoft SQL Server Management Studio - why do I get such an error while importing the data?
How can I resolve this issue?
P.S the column that this error complains contains XML data stored as string and is very long string.
Is there any other backup/ restore way?
UPDATED
I ran - > dbcc checkdb('CreditInfoDB',REPAIR_ALLOW_DATA_LOSS)
and this is the result
DBCC results for 'CreditInfoDB'.
Service Broker Msg 9675, State 1: Message Types analyzed: 14.
Service Broker Msg 9676, State 1: Service Contracts analyzed: 6.
Service Broker Msg 9667, State 1: Services analyzed: 3.
Service Broker Msg 9668, State 1: Service Queues analyzed: 3.
Service Broker Msg 9669, State 1: Conversation Endpoints analyzed: 0.
Service Broker Msg 9674, State 1: Conversation Groups analyzed: 0.
Service Broker Msg 9670, State 1: Remote Service Bindings analyzed: 0.
Service Broker Msg 9605, State 1: Conversation Priorities analyzed: 0.
DBCC results for 'sys.sysrscols'.
There are 1092 rows in 14 pages for object "sys.sysrscols".
DBCC results for 'sys.sysrowsets'.
There are 147 rows in 3 pages for object "sys.sysrowsets".
DBCC results for 'sys.sysclones'.
There are 0 rows in 0 pages for object "sys.sysclones".
DBCC results for 'sys.sysallocunits'.
There are 172 rows in 2 pages for object "sys.sysallocunits".
DBCC results for 'sys.sysfiles1'.
There are 2 rows in 1 pages for object "sys.sysfiles1".
DBCC results for 'sys.sysseobjvalues'.
There are 0 rows in 0 pages for object "sys.sysseobjvalues".
DBCC results for 'sys.syspriorities'.
There are 0 rows in 0 pages for object "sys.syspriorities".
DBCC results for 'sys.sysdbfrag'.
There are 0 rows in 0 pages for object "sys.sysdbfrag".
DBCC results for 'sys.sysfgfrag'.
There are 0 rows in 0 pages for object "sys.sysfgfrag".
DBCC results for 'sys.sysdbfiles'.
There are 2 rows in 1 pages for object "sys.sysdbfiles".
DBCC results for 'sys.syspru'.
There are 0 rows in 0 pages for object "sys.syspru".
DBCC results for 'sys.sysbrickfiles'.
There are 0 rows in 0 pages for object "sys.sysbrickfiles".
DBCC results for 'sys.sysphfg'.
There are 1 rows in 1 pages for object "sys.sysphfg".
DBCC results for 'sys.sysprufiles'.
There are 2 rows in 1 pages for object "sys.sysprufiles".
DBCC results for 'sys.sysftinds'.
There are 0 rows in 0 pages for object "sys.sysftinds".
DBCC results for 'sys.sysowners'.
There are 14 rows in 1 pages for object "sys.sysowners".
DBCC results for 'sys.sysdbreg'.
There are 0 rows in 0 pages for object "sys.sysdbreg".
DBCC results for 'sys.sysprivs'.
There are 141 rows in 1 pages for object "sys.sysprivs".
DBCC results for 'sys.sysschobjs'.
There are 2271 rows in 52 pages for object "sys.sysschobjs".
DBCC results for 'sys.syscsrowgroups'.
There are 0 rows in 0 pages for object "sys.syscsrowgroups".
DBCC results for 'sys.sysexttables'.
There are 0 rows in 0 pages for object "sys.sysexttables".
DBCC results for 'sys.syscolpars'.
There are 890 rows in 14 pages for object "sys.syscolpars".
DBCC results for 'sys.sysxlgns'.
There are 0 rows in 0 pages for object "sys.sysxlgns".
DBCC results for 'sys.sysxsrvs'.
There are 0 rows in 0 pages for object "sys.sysxsrvs".
DBCC results for 'sys.sysnsobjs'.
There are 1 rows in 1 pages for object "sys.sysnsobjs".
DBCC results for 'sys.sysusermsgs'.
There are 0 rows in 0 pages for object "sys.sysusermsgs".
DBCC results for 'sys.syscerts'.
There are 0 rows in 0 pages for object "sys.syscerts".
DBCC results for 'sys.sysrmtlgns'.
There are 0 rows in 0 pages for object "sys.sysrmtlgns".
DBCC results for 'sys.syslnklgns'.
There are 0 rows in 0 pages for object "sys.syslnklgns".
DBCC results for 'sys.sysxprops'.
There are 0 rows in 0 pages for object "sys.sysxprops".
DBCC results for 'sys.sysscalartypes'.
There are 34 rows in 1 pages for object "sys.sysscalartypes".
DBCC results for 'sys.systypedsubobjs'.
There are 0 rows in 0 pages for object "sys.systypedsubobjs".
DBCC results for 'sys.sysidxstats'.
There are 227 rows in 4 pages for object "sys.sysidxstats".
DBCC results for 'sys.sysiscols'.
There are 419 rows in 2 pages for object "sys.sysiscols".
DBCC results for 'sys.sysendpts'.
There are 0 rows in 0 pages for object "sys.sysendpts".
DBCC results for 'sys.syswebmethods'.
There are 0 rows in 0 pages for object "sys.syswebmethods".
DBCC results for 'sys.sysbinobjs'.
There are 23 rows in 1 pages for object "sys.sysbinobjs".
DBCC results for 'sys.sysaudacts'.
There are 0 rows in 0 pages for object "sys.sysaudacts".
DBCC results for 'sys.sysobjvalues'.
There are 234 rows in 22 pages for object "sys.sysobjvalues".
DBCC results for 'sys.syscscolsegments'.
There are 0 rows in 0 pages for object "sys.syscscolsegments".
DBCC results for 'sys.syscsdictionaries'.
There are 0 rows in 0 pages for object "sys.syscsdictionaries".
DBCC results for 'sys.sysclsobjs'.
There are 16 rows in 1 pages for object "sys.sysclsobjs".
DBCC results for 'sys.sysrowsetrefs'.
There are 0 rows in 0 pages for object "sys.sysrowsetrefs".
DBCC results for 'sys.sysremsvcbinds'.
There are 0 rows in 0 pages for object "sys.sysremsvcbinds".
DBCC results for 'sys.sysxmitqueue'.
There are 0 rows in 0 pages for object "sys.sysxmitqueue".
DBCC results for 'sys.sysrts'.
There are 0 rows in 0 pages for object "sys.syscommittab".
DBCC results for 'sys.filetable_updates_2105058535'.
There are 0 rows in 0 pages for object "sys.filetable_updates_2105058535".
CHECKDB found 0 allocation errors and 0 consistency errors in database 'CreditInfoDB'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
You can, and should, use ETL to backup to a file and import it to the new server. ETL is going to be way more effective than scripts for large data sets.
Microsoft provides SSIS to do this exact thing. You can export to a RAW file (don't go via CSV or XLSX option), and import it into the other server.
More likely your script file is being truncated at some point in the process. The parser have a file size limit (you are using multiple processes [create, load, execute, etc.]).
The best way to perform such task would be a database backup/restore.
Edit: Based on comment from OP, added information.
If the data is corrupted then it makes no difference what approach you take. And as far as wanting a new database, well; the idea is to restore as a New Database, not to override the old one.
Before taking the backup run an integrity check on the source database. After the backup; verify your backup media.
Have you tried to increase packet size and see if the error is gone or another error comes up?
sqlcmd -S localhost -a 32767 -i C:\Users\Administrator\Downloads\SQL_backup.sql
On top of running backup/restore you could also try just moving the database as is by either detaching the database and then reattaching it in it's new location or using the move database.
Both methods are covered on msdn Detach MsSQL database 2008 - 2016 and Move MsSQL database 2008 - 2016 (I wouldn't normally post links but this is direct from the official support site so should stand up for a few years)

Database page-level restore seemingly ineffective

Background
SQL Server Enterprise 2012
Disk IO errors have occurred, causing two table errors:
DBCC CHECKDB(dbname)
GO
--Output:
--Msg 8939, Level 16, State 98, Line 1
--Table error: Object ID 0, index ID -1, partition ID 0, alloc unit ID 0 (type Unknown), page (3:7432269). Test (IS_OFF (BUF_IOERR, pBUF->bstat)) failed. Values are 133129 and -6.
--Msg 8939, Level 16, State 98, Line 1
--Table error: Object ID 0, index ID -1, partition ID 0, alloc unit ID 0 (type Unknown), page (3:7434265). Test (IS_OFF (BUF_IOERR, pBUF->bstat)) failed. Values are 133129 and -6.
The faulty disk has been replaced, with all files successfully copied to the replacement disk.
Problem
Having replaced the disk, subsequently carrying out a page-level restore from a full backup fortunately taken one day before the errors occurred results in 0 pages processed:
USE MASTER
RESTORE DATABASE dbname PAGE = '3:7434265, 3:7432269' FROM DISK = 'P:\MSSQL_BACKUPS\dbname\dbname\dbname_backup_2016_02_27_050001_8076562.full.bak' WITH NORECOVERY
GO
--Output:
--Processed 0 pages for database 'dbname', file 'dbname_pt0b' on file 1.
--RESTORE DATABASE ... FILE=<name> successfully processed 0 pages in 398.710 seconds (0.000 MB/sec).
Running CHECKDB again confirms the errors are still present. As far as I'm aware this is the correct method to recover from database corruption where only a small number of pages are affected. I know this won't get me to a stage where the database is fully restored - I need to restore the subsequent logs for that - but it should at least be in a state where the table errors have been fixed. What am I missing?
Thanks

How to set SQLException Number

I'm having an issue on settin up SqlException.Number
On my Stored Proc i'm raising an error
--#number = 50001
RAISERROR(#number, 16, 1) -
I should expect that the Error_Number() should be #number but I always get 18054
Is there something wrong with my RAISERROR?
Check the sys.messages table for error code 74601. if this is a user defined error, it shouold be added in the table.
for any error that is greater than 50000 should give you this output if not found.
Msg 18054, Level 16, State 1, Line 1
Error XXXXX, severity 16, state 1 was raised, but no message with that error number was found in sys.messages. If error is larger than 50000, make sure the user-defined message is added using sp_addmessage.
There is one small caveat: You can't supply a message on your own in this case. But this can be circumvented by adding an additional %s in the sp_addmessage call or by changing all mapped messages to your own pattern and supplying the right parameters in the raiseerror call.
Check there for more information:
SQL Server: Rethrow exception with the original exception number
RAISERROR can either reference a user-defined message stored in the
sys.messages catalog view or build a message dynamically.
Check for your error message exists or not using this:
select * from sys.messages
If it does not exists then Use sp_addmessage to add user-defined error messages and sp_dropmessage to delete user-defined error messages.
for more information follow RaiseError documentation.

SQL Server error

I am getting a fatal error on following code.
exec [sp_ExternalApp_UPDATEUSER] 'ZZZ', XXXXX','DDDDD','DDDFFDD','EREE', 'EREWWWWW',1,1,'QWEW#DFEE.DER','DEFF','XXXX','DDDD'
Following error occurred:
Location: memilb.cpp:1624
Expression: pilb->m_cRef == 0
SPID: 79
Process ID: 2256
Msg 3624, Level 20, State 1, Procedure sp_ExternalApp_UPDATEUSER, Line 32
A system assertion check has failed. Check the SQL Server error log for details
Msg 0, Level 20, State 0, Line 0
A severe error occurred on the current command. The results, if any, should be discarded.
Thank you
I got the solution.
I have used UPPER() function. As I removed that function, my problem solved
Like the message said, check your error log, there might be more detail in there..what does this proc do does it use sp_OACreate or calls xp_cmdshell? Post the proc code
You might want to check the database for corruption. Try
DBCC CHECKDB
(before doing so, read the documentation on that command! See http://msdn.microsoft.com/en-us/library/ms176064.aspx )

HD Crash SQL server -> DBCC - consistency errors in table 'sysindexes'

Hello A client of mine has had an HD crash an a SQL DB got corrupt :
They did not make backups so they have a big problem.
When I tried (an ultimate measure) to DBCC-repair I got the following message.
Can anybody help me with this ?
Server: Msg 8966, Level 16, State 1, Line 1
Could not read and latch page (1:872) with latch type SH. sysindexes failed.
Server: Msg 8944, Level 16, State 1, Line 1
Table error: Object ID 2, index ID 0, page (1:872), row 11. Test (columnOffsets->IsComplex (varColumnNumber) && (ColumnId == COLID_HYDRA_TEXTPTR || ColumnId == COLID_INROW_ROOT || ColumnId == COLID_BACKPTR)) failed. Values are 2 and 5.
The repair level on the DBCC statement caused this repair to be bypassed.
CHECKTABLE found 0 allocation errors and 1 consistency errors in table 'sysindexes' (object ID 2).
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Paul Randal's blog has a really good article on CHECKDB.
http://www.sqlskills.com/BLOGS/PAUL/category/CHECKDB-From-Every-Angle.aspx

Resources