ស្តារអំពើពុករលួយ SQL Server មូលដ្ឋានទិន្នន័យ MDF

ពេល​អ្នក SQL Server មូលដ្ឋានទិន្នន័យ MDF ខូច អ្នកអាចប្រើវិធីសាស្រ្តខាងក្រោមដើម្បីសង្គ្រោះទិន្នន័យនៅក្នុងវា ដើម្បីកាត់បន្ថយការបាត់បង់៖

ចំណាំ៖ មុននឹងអនុវត្តប្រតិបត្តិការសង្គ្រោះទិន្នន័យ សូមបម្រុងទុកឯកសារមូលដ្ឋានទិន្នន័យ MDF & NDF ដែលខូចរបស់អ្នកជាមុនសិន។

  1. ដំបូងអ្នកអាចសាកល្បងបាន។ SQL Server ពាក្យបញ្ជាដែលភ្ជាប់មកជាមួយ DBCC ពិនិត្យ ដើម្បីសង្គ្រោះមូលដ្ឋានទិន្នន័យរបស់អ្នក។ ដោយសន្មត់ថាឯកសារមូលដ្ឋានទិន្នន័យខូចគឺ 'MyDatabase.mdf' បន្ទាប់មកអ្នកអាចធ្វើដូចខាងក្រោមដើម្បីសង្គ្រោះទិន្នន័យនៅក្នុងវា៖
    1. Restart SQL Server.
    2. កុំអនុវត្តប្រតិបត្តិការណាមួយ។
    3. In SQL Server Management Studio ប្រតិបត្តិសេចក្តីថ្លែងការ SQL ខាងក្រោម៖
      ប្រើ master declare @databasename varchar(255) set @databasename='MyDatabase.mdf' exec sp_dboption @databasename, N'single', N'true' -- កំណត់មូលដ្ឋានទិន្នន័យទិសដៅទៅជាទម្រង់អ្នកប្រើប្រាស់តែមួយ dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS ) dbcc checkdb(@databasename,REPAIR_REBUILD) exec sp_dboption @databasename, N'single', N'false' -- កំណត់មូលដ្ឋានទិន្នន័យទិសដៅត្រឡប់ទៅរបៀបអ្នកប្រើប្រាស់ច្រើន
      

      សេចក្តី​ថ្លែងការណ៍

      dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
      

      អាចបណ្តាលឱ្យបាត់បង់ទិន្នន័យមួយចំនួននៅក្នុងមូលដ្ឋានទិន្នន័យរបស់អ្នក នៅពេលដំណើរការជួសជុល។

      ខណៈពេលដែលសេចក្តីថ្លែងការណ៍

      dbcc checkdb(@databasename,REPAIR_REBUILD)
      

      នឹងមិនបណ្តាលឱ្យបាត់បង់ទិន្នន័យណាមួយក្នុងអំឡុងពេលប្រតិបត្តិការជួសជុលនោះទេ ប៉ុន្តែវាប្រើប្រាស់ពេលវេលាច្រើនជាង។

      ដូច្នេះ ប្រសិនបើអ្នកមិនបន្ទាន់ទេ ដំបូងអ្នកអាចព្យាយាមអនុវត្តសេចក្តីថ្លែងការណ៍ dbcc checkdb ទីពីរតែប៉ុណ្ណោះ ប្រសិនបើសេចក្តីថ្លែងការណ៍នោះមិនអាចជួយក្នុងការសង្គ្រោះមូលដ្ឋានទិន្នន័យបានទេ នោះអ្នកអាចអនុវត្តពាក្យបញ្ជា dbcc checkdb ទីមួយ និងទីពីរ។

      បន្ទាប់ពីប្រតិបត្តិការជួសជុលអ្នកអាចហៅទូរស័ព្ទ

      dbcc checkdb('MyDatabase.mdf')
      

      ម្តងទៀតដើម្បីមើលថាតើមូលដ្ឋានទិន្នន័យត្រូវបានជួសជុលឬអត់។

      ព័ត៌មានបន្ថែមអំពីពាក្យបញ្ជា dbcc checkdb អាចរកបាននៅ https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15

  2. ប្រសិនបើបន្ទាប់ពីប្រើវិធីទី 1 dbcc checkdb នៅតែរាយការណ៍កំហុសនៅក្នុងតារាងមួយចំនួន អ្នកអាចសាកល្បង SQL Server ពាក្យបញ្ជាដែលភ្ជាប់មកជាមួយ DBCC CHECKTABLE ដើម្បីសង្គ្រោះតារាងទាំងនេះនៅក្នុងមូលដ្ឋានទិន្នន័យរបស់អ្នក។ សន្មត់ថាឯកសារមូលដ្ឋានទិន្នន័យខូចគឺ 'MyDatabase.mdf' ហើយតារាងដែលអ្នកចង់ជួសជុលគឺ 'MyTable' បន្ទាប់មកអ្នកអាចធ្វើដូចខាងក្រោមដើម្បីជួសជុលវា៖
    1. Restart SQL Server.
    2. កុំអនុវត្តប្រតិបត្តិការណាមួយ។
    3. In SQL Server Management Studio ប្រតិបត្តិសេចក្តីថ្លែងការ SQL ខាងក្រោម៖
      ប្រើ MyDatabase.mdf ប្រកាស @dbname varchar(255) កំណត់ @dbname='MyDatabase.mdf' exec sp_dboption @dbname,'single user','true' dbcc checktable('MyTable',REPAIR_ALLOW_DATA_LOSS) d'MyDatabase_LOSS) db'MyTable't checktable' ) exec sp_dboption @dbname, 'អ្នកប្រើប្រាស់តែមួយ', 'false'
      

      សេចក្តី​ថ្លែងការណ៍

      dbcc checktable('MyTable',REPAIR_ALLOW_DATA_LOSS)
      

      អាចបណ្តាលឱ្យបាត់បង់ទិន្នន័យមួយចំនួននៅក្នុងតារាងរបស់អ្នក នៅពេលដំណើរការជួសជុល។

      ខណៈពេលដែលសេចក្តីថ្លែងការណ៍

      dbcc checktable('MyTable',REPAIR_REBUILD)
      

      នឹងមិនបណ្តាលឱ្យបាត់បង់ទិន្នន័យណាមួយក្នុងអំឡុងពេលប្រតិបត្តិការជួសជុលនោះទេ ប៉ុន្តែវាប្រើប្រាស់ពេលវេលាច្រើនជាង។

      ដូច្នេះ ប្រសិនបើអ្នកមិនបន្ទាន់ទេ ដំបូងអ្នកអាចព្យាយាមអនុវត្តសេចក្តីថ្លែងការណ៍ត្រួតពិនិត្យ dbcc ទីពីរតែប៉ុណ្ណោះ ប្រសិនបើសេចក្តីថ្លែងការណ៍នោះមិនអាចជួយក្នុងការសង្គ្រោះមូលដ្ឋានទិន្នន័យបានទេ នោះអ្នកអាចអនុវត្តពាក្យបញ្ជា dbcc checktable ទីមួយ និងទីពីរ។

      បន្ទាប់ពីអ្នកបញ្ចប់ប្រតិបត្តិការជួសជុលសម្រាប់តុដែលខូចទាំងអស់នោះ អ្នកអាចទូរស័ព្ទទៅ

      dbcc checkdb('MyDatabase.mdf')
      

      ម្តងទៀតដើម្បីមើលថាតើតារាងក្នុងមូលដ្ឋានទិន្នន័យត្រូវបានជួសជុលឬអត់។

    ព័ត៌មានលម្អិតបន្ថែមអំពីពាក្យបញ្ជា dbcc checktable អាចរកបាននៅ https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checktable-transact-sql?view=sql-server-ver15

  3. ប្រសិនបើវិធីសាស្រ្ត 1 និង 2 នៅតែមិនអាចជួសជុលមូលដ្ឋានទិន្នន័យខូច ឬតារាង ឬប្រសិនបើវិធីសាស្ត្រទាំងនេះមិនអាចសង្គ្រោះទិន្នន័យដែលអ្នកចង់បាន នោះអ្នកអាចប្រើ DataNumen SQL Recovery ដើម្បីសង្គ្រោះទិន្នន័យពីមូលដ្ឋានទិន្នន័យ MDF របស់អ្នក។