Поправка на база данни

от Wiki

Версия от 09:55, 1 ноември 2017 на Marketing (Беседа | приноси)
(разл) ←По-стара версия | преглед на текущата версия (разл) | По-нова версия→ (разл)
Направо към: навигация, търсене

В много редки случаи се получава проблем в базата от данни. За нейното възстановяване са предвидени съответни процедури, които зависят от вида на базата.

Съдържание

Подготовка за поправка на базата

Преди да се започне реалната поправка на базата от данни е необходимо да се изпълнят редица процедури за проверка на системата. Процедурите включват следните стъпки:

  • Проверка на свободното място на диска. Трябва да се обърне внимание на папките, които съхраняват базата от данни, самия дял на Windows и временните папки;
  • Грешките на MSDE , Microsoft SQL Server 2000, Microsoft SQL Server 2005 и Microsoft SQL Server 2008 се записват в Event Log на Windows (Start/Control panel/Administrative Tools/Event Viewer), откъдето може да се разбере дали проблема е в диска, в базата данни или в самия SQL сървър;
  • Извършва се проверка на дяловете на диска за лоши сектори;
  • Проверява се последния архив на базата, при положение че има архив на базата данни до момента в които се е установила повреда, по лесната стъпка е да се възстанови архив.

След изпълнение на тези задължителни стъпки може да се премине към същинската поправка на базата от данни.

Access

При поправка на база данни Access се изпълнява следната последователност:

  1. Задължително се прави архив на базата от данни. Използват се следните способи:
    • Ако е възможно да се отвори базата чрез самата програма, прави се архив чрез меню Файл/Архивиране и Възстановяване. Името и пътя до базата данни се проверява чрез меню Файл/Активна база;
    • Ако има проблем с отварянето на базата чрез програмата се извършва ръчно копиране в различна папка от работната. Папката на базата от данни е описана в тази статия "http://www.microinvest.net/wiki/index.php?title=Папки_на_продуктите".
  2. Отваря се базата чрез MS Access, версии 2003, 2007 или 2010. За достъп до базата от данни има въведена парола, която може да се получи от партньорския раздел на сайта;
  3. Ако при отваряне на базата чрез MS Access се изведе съобщение, че файлът не може да използва, тогава трябва да се използва допълнителен софтуер за възстановяване на данните или да се потърси архив на базата;
  4. След отваряне на БД в зависимост от версията на MS Access се избира:
    • MS Access 2003 - от меню Tools->Database Utilities->Compact and Repair Database...;
    • MS Access 2007 - избира се Office Button, който се намира в горния ляв ъгъл, следва опция Manage и Compact and Repair Database;
    • MS Access 2010 - от меню File->Info->Compact & Repair;

С това поправката е завършена успешно.

MySQL

За извършване на поправка на MySQL база от данни са необходими допълнителни инструменти:

Слад инсталация на MySQL GUI Tools или MySQL Administrator трябва да бъде стартиран MySQL Administrator, който изисква допълнителна информация за връзка към сървъра, съдържащ базата данни.
Полетата, необходими за връзка към сървър са:
Server Host - името или IP-то на сървъра, на който се намира базата данни. Данните в полето съответстват на същите данни в настройката на Microinvest Склад Pro;
Username - Потребителското име за връзка към сървъра. По подразбиране това е root. Данните в полето съответстват на същите данни в настройката на Microinvest Склад Pro;
Pasword - Парола за връзка към сървъра. Данните в полето съответстват на същите данни в настройката на Microinvest Склад Pro.

След успешното стартиране на MySQL Administrator и осъществяване на връзка към базата от данни се изпълняват следните стъпки:

  1. Архивиране на базата данни:
    1. Използвайте Microinvest Архи Pro, повече информация за този продукт е достъпна на http://microinvest.net/BG/Софтуер-архив-Архиватор-Pro
    2. "MySQL Administrator" - притежава вградена функция за създаване на архиви, изпълнява се следното:
    • В горното ляво меню се избира Backup;
    • В долния десен ъгъл се избира бутон New Project;
    • Маркира се с ляв бутон базата данни, на която искате да направите архив (Schema);
    • Избира се малкия квадратен бутон ">" за да се потвърди избраната база данни. Тя ще се визуализира в дясната част на приложението с прилежащите и таблици (Backup Content);
    • Потвърждава се с бутон Execute Backup Now;
    • Показва се прозорец Save As, чрез който трябва да се избере къде ще се запази архивния файл;
    • След избор на бутон Save започва процес на архивиране. Необходимо е да се изчака докато не се появи съобщение "The Backup was finished successfully". Архивирането приключва с натискане на OK;
  2. В горното ляво меню се избира Catalogs. В долното ляво меню се показват базите данни, който се намират на този сървър;
  3. Избира се базата данни и се маркира с левия бутон на мишката. В дясната част на програмата се показва структурата на базата данни с прилежащите и таблици (Schema Tables);
  4. В долния десен ъгъл се избира бутон Maintenance. Следват опции на задачите и там се избира Repair Tables. Потвърждава се с "Next >>", маркира се нивото за поправка на Extended. Последната стъпка е активирането на "Repair Tables".

С това процесът на поправка на база данни MySQL е приключен.

MSDE и Microsoft SQL Server 2000

За изпълнението на поправката на база от данни е необходимо да има и инструменти за управление на самия сървър:

  1. Процедурите се извършват с помощта на Microsoft SQL Server Management Studio
    • При положение че версията на Windows e 64 битова, се сваля 64 битова версия на Microsoft SQL Server Management Studio;
    • Ако няма инсталиран MSXML6.0 на компютъра, преди да започне инсталацията на Microsoft SQL Server Management Studio, е необходимо да се инсталира този компонент;
    • MSXML6.0 за 64 битов Windows е достъпен от тук;
  2. След успешна инсталация на компонентите, Microsoft SQL Server Management Studio се стартира и се свързва за MSDE сървъра чрез зададените потребител и парола за достъп до SQL Server-a. Тези параметри се задават още при инсталирането на MSDE и съответстват на параметрите за връзка с базата от данни в програмата;
  3. В Microsoft SQL Server Management Studio се разгъва папка Databases, маркира се базата, която трябва да се поправи с десен бутон на мишката и се избира опция „New Query”. Същото може да се постигне чрез ляв бутон на мишката върху базата данни като се избере „New Query”;
  4. В отворения прозорец се пишат следните команди:
    • ALTER DATABASE db_name SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
    • DBCC CHECKDB ( 'db_name' , REPAIR_ALLOW_DATA_LOSS);
    • ALTER DATABASE db_name SET MULTI_USER;

като на мястото на db_name се замества името на базата. Всички заявки се изпълняват в прозореца с натискането на F5 или с избирането на бутон Execute на Microsoft SQL Server Management Studio. В зависимост от големината на базата и от вида на грешките, времето на заявката може да варира от няколко секунди до няколко часа.

  1. Когато приключи изпълнението на заявките в Microsoft SQL Server Management Studio се извежда информация за базата данни. Ако има редове в раздел Messages, оцветени в червено това означава, че заявката е намерила проблеми в базата данни. В повечето случай проблемите са коригирани, като в раздел Messages е описано дали са поправени откритите грешки или не.
  2. В случай че не е ясно дали базата данни е поправена може отново да се стартират заявките. При повторното пускане на заявките не трябва да има редове в червено.

Microsoft SQL Server 2005, Microsoft SQL Server 2008

За изпълнението на поправката на база от данни е необходимо да има и инструменти за управление на самия сървър:

  1. Процедурите се извършват с помощта на Microsoft SQL Server Management Studio 2005 или Microsoft SQL Server Management Studio 2008
    • При положение че версията на Windows e 64 битова, се сваля 64 битова версия на Microsoft SQL Server Management Studio 2005 или Microsoft SQL Server Management Studio 2008;
    • Ако няма инсталиран MSXML6.0 на компютъра, преди да започне инсталацията на Microsoft SQL Server Management Studio, е необходимо да се инсталира този компонент;
    • MSXML6.0 за 64 битов Windows е достъпен от тук;
  2. След успешната инсталация се стартира Microsoft SQL Server Management Studio и се свързва за SQL Server. Потребителят и паролата съответстват на зададените при инсталацията на сървъра и отговарят на същите от програмата;
  3. Разгъва се папка Databases, маркира се базата която трябва да се поправи r с десен бутон на мишката се избира опция „New Query”. Аналогично базата данни може да се маркира с ляв бутон на мишката и да се избере „New Query”;
  4. В прозореца в дясно се пишат следните команди:
    • ALTER DATABASE db_name SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
    • DBCC CHECKDB ( 'db_name' , REPAIR_ALLOW_DATA_LOSS);
    • ALTER DATABASE db_name SET MULTI_USER;

като на мястото на db_name се замества името на базата за поправка. Всички заявки се изпълняват в прозореца чрез натискането на F5 или с избирането на бутон Execute на Microsoft SQL Server Management Studio. В зависимост от големината на базата и от вида на грешките, времето на заявката може да варира от няколко секунди до няколко часа;

  1. Когато изпълнението на заявките приключи, в Microsoft SQL Server Management Studio се извежда информация за базата данни. Ако съществуват редове в раздел Messages, които са оцветени в червено, това означава че заявката е намерила и коригирала проблеми в базата данни. В повечето случаи тези проблеми са отстранени. В раздел Messages е описано дали откритите грешки са поправени или не;
  2. В случай че не е ясно дали базата данни е поправена успешно, е възможно заявките да се стартират отново. При повторното изпълнение на заявките не трябва да има редове, оцветени в червено.

База в режим Suspected

Понякога самият сървър уведомява, че определена база е "съмнителна". В този случай базата се маркира като "Suspected" и трябва да се изпълнят поредица от команди.

  • За MSDE и Microsoft SQL Server 2000 се изпълняват:
    • USE master;
    • sp_resetstatus 'db_name' ;
    • sp_configure 'allow updates',1;
    • reconfigure with override;
    • UPDATE sysdatabases SET status = 32768 WHERE name = 'db_name' ;
    • DBCC CHECKDB ( 'db_name' ) ;
    • ALTER DATABASE db_name SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
    • DBCC CHECKDB ( 'db_name' , REPAIR_ALLOW_DATA_LOSS);
    • ALTER DATABASE db_name SET MULTI_USER;
    • sp_configure 'allow updates',0;
    • reconfigure with override;

като на мястото на db_name се замества името на проблемната база. При наличие на проблеми отново ще има маркирани в червено редове в раздел Messages. Заявките трябва да се изпълняват последователно, ред по ред, а не всички заедно;

  • За Microsoft SQL Server 2005, Microsoft SQL Server 2008
    • sp_resetstatus 'db_name';
    • ALTER DATABASE db_name SET EMERGENCY;
    • DBCC CHECKDB ( 'db_name' ) ;
    • ALTER DATABASE db_name SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
    • DBCC CHECKDB ( 'db_name' , REPAIR_ALLOW_DATA_LOSS);
    • ALTER DATABASE db_name SET MULTI_USER;

като на мястото на db_name се замества името на базата. При намерен проблем, в раздел Messages ще има маркирани редове в червен цвят. Всички заявки се изпълняват заедно.

Полезни връзки

Лични инструменти