{"id":185,"date":"2015-02-27T17:00:10","date_gmt":"2015-02-27T20:00:10","guid":{"rendered":"https:\/\/maurobernal.com.ar\/blog\/?p=185"},"modified":"2020-09-10T23:50:21","modified_gmt":"2020-09-11T02:50:21","slug":"reparar-una-base-danada","status":"publish","type":"post","link":"https:\/\/maurobernal.com.ar\/blog\/reparar-una-base-danada\/","title":{"rendered":"Reparar una base da\u00f1ada de MS SQL Server"},"content":{"rendered":"\n<p>\u00daltimamente me ha tocado quemarme las pesta\u00f1as por casos de bases de datos da\u00f1adas. Una mala infraestructura, y\/o un mal plan de backups termina provocando este tipo de post luego de sufrir por un rato&#8230;<\/p>\n\n\n<h1>Reparar una base da\u00f1ada<\/h1>\n<p>El siguiente es un error com\u00fan cuando se da\u00f1a una base:<br \/><span style=\"text-decoration: underline;\"><br \/><\/span><span style=\"color: red;\">Msg\u00a0824,\u00a0Level\u00a024,\u00a0State\u00a02,\u00a0Line\u00a011<br \/>SQL\u00a0Server\u00a0detected\u00a0a\u00a0logical\u00a0consistency-based\u00a0I\/O\u00a0error:\u00a0incorrect\u00a0pageid\u00a0(expected\u00a01:49876;\u00a0actual\u00a017253:-991032068).\u00a0It\u00a0occurred\u00a0during\u00a0a\u00a0read\u00a0of\u00a0page\u00a0(1:49876)\u00a0in\u00a0database\u00a0ID\u00a015\u00a0at\u00a0offset\u00a00x000000185a8000\u00a0in\u00a0file\u00a0&#8216;E:\\Bases\\SBDAXXXX.MDF&#8217;.\u00a0\u00a0Additional\u00a0messages\u00a0in\u00a0the\u00a0SQL\u00a0Server\u00a0error\u00a0log\u00a0or\u00a0system\u00a0event\u00a0log\u00a0may\u00a0provide\u00a0more\u00a0detail.\u00a0This\u00a0is\u00a0a\u00a0severe\u00a0error\u00a0condition\u00a0that\u00a0threatens\u00a0database\u00a0integrity\u00a0and\u00a0must\u00a0be\u00a0corrected\u00a0immediately.\u00a0Complete\u00a0a\u00a0full\u00a0database\u00a0consistency\u00a0check\u00a0(DBCC\u00a0CHECKDB).\u00a0This\u00a0error\u00a0can\u00a0be\u00a0caused\u00a0by\u00a0many\u00a0factors;\u00a0for\u00a0more\u00a0information,\u00a0see\u00a0SQL\u00a0Server\u00a0Books\u00a0Online.<br \/><\/span><\/p>\n<p>A continuaci\u00f3n los pasos que se deber\u00eda seguir:<\/p>\n<ol>\n<li>Intentar hacer un backup de la base<\/li>\n<li>Obtener la cantidad de registros que hay en ese momento en cada tabla (script adjunto al final)<\/li>\n<li>Colocar la base en modo de usuario \u00fanico\n<pre title=\"Set Single_User\" class=\"lang:tsql decode:true\">ALTER DATABASE SBDAXXXX SET SINGLE_USER WITH ROLLBACK IMMEDIATE<\/pre>\n<p>\u00a0<\/p>\n<\/li>\n<li>Intentar reparar la base\n<pre title=\"CheckDB\" class=\"lang:tsql decode:true \">DBCC CHECKDB(SBDAXXXX,REPAIR_ALLOW_DATA_LOSS)<\/pre>\n<p><span style=\"font-family: Courier New; font-size: 10pt;\"><span style=\"color: blue;\">\u00a0<\/span><\/span><\/p>\n<\/li>\n<li>Verificar la cantidad de registros actual (script adjunto al final)<\/li>\n<\/ol>\n<pre title=\"Cantidad de Registros\" class=\"lang:tsql decode:true \">DECLARE @Tabla VARCHAR(250)\nDECLARE @SQL VARCHAR(2000)\nCREATE TABLE #TablaTemp(ID INT IDENTITY(1,1),Tabla_Nombre VARCHAR(200),Cant_Registros INT)\n\nDECLARE TINFO_CUR CURSOR FOR \nSELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES \nWHERE TABLE_TYPE='BASE TABLE'\n\nOPEN TINFO_CUR\nFETCH NEXT FROM TINFO_CUR INTO @Tabla\nWHILE @@FETCH_STATUS =0\nBEGIN\nSET @SQL='INSERT INTO #TablaTemp(Tabla_Nombre,Cant_Registros) SELECT '''+@Tabla+''',COUNT(*) FROM '+@Tabla+''\nEXECUTE (@SQL)\nFETCH NEXT FROM TINFO_CUR INTO @Tabla\nEND\nCLOSE TINFO_CUR\nDEALLOCATE TINFO_CUR\n\n\nSELECT * FROM #TablaTemp ORDER BY Tabla_Nombre\n\nDROP TABLE #TablaTemp<\/pre>\n<p>\u00a0<\/p>\n<p>Si la base est\u00e1 muy da\u00f1ada posiblemente no se repara, o se pierde informaci\u00f3n. En ese caso se puede recurrir a un software de 3ro para intentar reparar el .MDF.<\/p>","protected":false},"excerpt":{"rendered":"<p>\u00daltimamente me ha tocado quemarme las pesta\u00f1as por casos de bases de datos da\u00f1adas. Una mala infraestructura, y\/o un mal plan de backups termina provocando este tipo de post luego&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[4,3],"tags":[75,76,36,8,16,37,29],"class_list":["post-185","post","type-post","status-publish","format-standard","hentry","category-mssql","category-t-sql","tag-checkdb","tag-contar-registros","tag-mdf","tag-mssql-2","tag-sql","tag-sql-server","tag-tsql"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Reparar una base da\u00f1ada de MS SQL Server &#183; devops Mauro Bernal<\/title>\n<meta name=\"description\" content=\"Reparar una base da\u00f1ada de MS SQL Server\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/maurobernal.com.ar\/blog\/reparar-una-base-danada\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Reparar una base da\u00f1ada de MS SQL Server &#183; devops Mauro Bernal\" \/>\n<meta property=\"og:description\" content=\"Reparar una base da\u00f1ada de MS SQL Server\" \/>\n<meta property=\"og:url\" content=\"https:\/\/maurobernal.com.ar\/blog\/reparar-una-base-danada\/\" \/>\n<meta property=\"og:site_name\" content=\"devops Mauro Bernal\" \/>\n<meta property=\"article:published_time\" content=\"2015-02-27T20:00:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-09-11T02:50:21+00:00\" \/>\n<meta name=\"author\" content=\"Mauro Bernal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@_maurobernal\" \/>\n<meta name=\"twitter:site\" content=\"@_maurobernal\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mauro Bernal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/reparar-una-base-danada\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/reparar-una-base-danada\\\/\"},\"author\":{\"name\":\"Mauro Bernal\",\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/#\\\/schema\\\/person\\\/09c4dbdfb59b20e015c703fd19713283\"},\"headline\":\"Reparar una base da\u00f1ada de MS SQL Server\",\"datePublished\":\"2015-02-27T20:00:10+00:00\",\"dateModified\":\"2020-09-11T02:50:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/reparar-una-base-danada\\\/\"},\"wordCount\":246,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/#\\\/schema\\\/person\\\/09c4dbdfb59b20e015c703fd19713283\"},\"keywords\":[\"checkdb\",\"contar registros\",\"mdf\",\"mssql\",\"sql\",\"sql server\",\"tsql\"],\"articleSection\":[\"MSSQL\",\"T-SQL\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/reparar-una-base-danada\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/reparar-una-base-danada\\\/\",\"url\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/reparar-una-base-danada\\\/\",\"name\":\"Reparar una base da\u00f1ada de MS SQL Server &#183; devops Mauro Bernal\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/#website\"},\"datePublished\":\"2015-02-27T20:00:10+00:00\",\"dateModified\":\"2020-09-11T02:50:21+00:00\",\"description\":\"Reparar una base da\u00f1ada de MS SQL Server\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/reparar-una-base-danada\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/reparar-una-base-danada\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/reparar-una-base-danada\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Reparar una base da\u00f1ada de MS SQL Server\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/\",\"name\":\"devops Mauro Bernal\",\"description\":\"Cuando tu trabajo es hacer que las cosas funcionen bien...\",\"publisher\":{\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/#\\\/schema\\\/person\\\/09c4dbdfb59b20e015c703fd19713283\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/maurobernal.com.ar\\\/blog\\\/#\\\/schema\\\/person\\\/09c4dbdfb59b20e015c703fd19713283\",\"name\":\"Mauro Bernal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/maurobernal.com.ar\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/logo-maurobernal.png?fit=1740%2C1740&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/maurobernal.com.ar\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/logo-maurobernal.png?fit=1740%2C1740&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/maurobernal.com.ar\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/logo-maurobernal.png?fit=1740%2C1740&ssl=1\",\"width\":1740,\"height\":1740,\"caption\":\"Mauro Bernal\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/maurobernal.com.ar\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/logo-maurobernal.png?fit=1740%2C1740&ssl=1\"},\"description\":\"Desarrollo de Sistemas en .Net, IT Callcenters, DBA de SQL Server, Mikrotik, Pentest y T\u00e9cnico consultor de Sistemas Bejerman\",\"sameAs\":[\"https:\\\/\\\/maurobernal.com.ar\",\"https:\\\/\\\/x.com\\\/_maurobernal\",\"https:\\\/\\\/youtube.com\\\/maurobernal\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Reparar una base da\u00f1ada de MS SQL Server &#183; devops Mauro Bernal","description":"Reparar una base da\u00f1ada de MS SQL Server","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/maurobernal.com.ar\/blog\/reparar-una-base-danada\/","og_locale":"es_ES","og_type":"article","og_title":"Reparar una base da\u00f1ada de MS SQL Server &#183; devops Mauro Bernal","og_description":"Reparar una base da\u00f1ada de MS SQL Server","og_url":"https:\/\/maurobernal.com.ar\/blog\/reparar-una-base-danada\/","og_site_name":"devops Mauro Bernal","article_published_time":"2015-02-27T20:00:10+00:00","article_modified_time":"2020-09-11T02:50:21+00:00","author":"Mauro Bernal","twitter_card":"summary_large_image","twitter_creator":"@_maurobernal","twitter_site":"@_maurobernal","twitter_misc":{"Escrito por":"Mauro Bernal","Tiempo de lectura":"2 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/maurobernal.com.ar\/blog\/reparar-una-base-danada\/#article","isPartOf":{"@id":"https:\/\/maurobernal.com.ar\/blog\/reparar-una-base-danada\/"},"author":{"name":"Mauro Bernal","@id":"https:\/\/maurobernal.com.ar\/blog\/#\/schema\/person\/09c4dbdfb59b20e015c703fd19713283"},"headline":"Reparar una base da\u00f1ada de MS SQL Server","datePublished":"2015-02-27T20:00:10+00:00","dateModified":"2020-09-11T02:50:21+00:00","mainEntityOfPage":{"@id":"https:\/\/maurobernal.com.ar\/blog\/reparar-una-base-danada\/"},"wordCount":246,"commentCount":0,"publisher":{"@id":"https:\/\/maurobernal.com.ar\/blog\/#\/schema\/person\/09c4dbdfb59b20e015c703fd19713283"},"keywords":["checkdb","contar registros","mdf","mssql","sql","sql server","tsql"],"articleSection":["MSSQL","T-SQL"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/maurobernal.com.ar\/blog\/reparar-una-base-danada\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/maurobernal.com.ar\/blog\/reparar-una-base-danada\/","url":"https:\/\/maurobernal.com.ar\/blog\/reparar-una-base-danada\/","name":"Reparar una base da\u00f1ada de MS SQL Server &#183; devops Mauro Bernal","isPartOf":{"@id":"https:\/\/maurobernal.com.ar\/blog\/#website"},"datePublished":"2015-02-27T20:00:10+00:00","dateModified":"2020-09-11T02:50:21+00:00","description":"Reparar una base da\u00f1ada de MS SQL Server","breadcrumb":{"@id":"https:\/\/maurobernal.com.ar\/blog\/reparar-una-base-danada\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/maurobernal.com.ar\/blog\/reparar-una-base-danada\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/maurobernal.com.ar\/blog\/reparar-una-base-danada\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/maurobernal.com.ar\/blog\/"},{"@type":"ListItem","position":2,"name":"Reparar una base da\u00f1ada de MS SQL Server"}]},{"@type":"WebSite","@id":"https:\/\/maurobernal.com.ar\/blog\/#website","url":"https:\/\/maurobernal.com.ar\/blog\/","name":"devops Mauro Bernal","description":"Cuando tu trabajo es hacer que las cosas funcionen bien...","publisher":{"@id":"https:\/\/maurobernal.com.ar\/blog\/#\/schema\/person\/09c4dbdfb59b20e015c703fd19713283"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/maurobernal.com.ar\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":["Person","Organization"],"@id":"https:\/\/maurobernal.com.ar\/blog\/#\/schema\/person\/09c4dbdfb59b20e015c703fd19713283","name":"Mauro Bernal","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/i0.wp.com\/maurobernal.com.ar\/blog\/wp-content\/uploads\/2023\/07\/logo-maurobernal.png?fit=1740%2C1740&ssl=1","url":"https:\/\/i0.wp.com\/maurobernal.com.ar\/blog\/wp-content\/uploads\/2023\/07\/logo-maurobernal.png?fit=1740%2C1740&ssl=1","contentUrl":"https:\/\/i0.wp.com\/maurobernal.com.ar\/blog\/wp-content\/uploads\/2023\/07\/logo-maurobernal.png?fit=1740%2C1740&ssl=1","width":1740,"height":1740,"caption":"Mauro Bernal"},"logo":{"@id":"https:\/\/i0.wp.com\/maurobernal.com.ar\/blog\/wp-content\/uploads\/2023\/07\/logo-maurobernal.png?fit=1740%2C1740&ssl=1"},"description":"Desarrollo de Sistemas en .Net, IT Callcenters, DBA de SQL Server, Mikrotik, Pentest y T\u00e9cnico consultor de Sistemas Bejerman","sameAs":["https:\/\/maurobernal.com.ar","https:\/\/x.com\/_maurobernal","https:\/\/youtube.com\/maurobernal"]}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/maurobernal.com.ar\/blog\/wp-json\/wp\/v2\/posts\/185","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/maurobernal.com.ar\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/maurobernal.com.ar\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/maurobernal.com.ar\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/maurobernal.com.ar\/blog\/wp-json\/wp\/v2\/comments?post=185"}],"version-history":[{"count":4,"href":"https:\/\/maurobernal.com.ar\/blog\/wp-json\/wp\/v2\/posts\/185\/revisions"}],"predecessor-version":[{"id":740,"href":"https:\/\/maurobernal.com.ar\/blog\/wp-json\/wp\/v2\/posts\/185\/revisions\/740"}],"wp:attachment":[{"href":"https:\/\/maurobernal.com.ar\/blog\/wp-json\/wp\/v2\/media?parent=185"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/maurobernal.com.ar\/blog\/wp-json\/wp\/v2\/categories?post=185"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/maurobernal.com.ar\/blog\/wp-json\/wp\/v2\/tags?post=185"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}