লেনদেনের লগ সঙ্কোচিত হবে না, ডিবি মনে করে এটির পুনরাবৃত্তি করছে


13

আমি একটি এসকিউএল সার্ভার ২০০৮ আর 2 এক্সপ্রেস ডাটাবেস পেয়েছি ক্যাসপারস্কি সুরক্ষা কেন্দ্রটি চালাচ্ছি এবং কোন পরিস্থিতিতে ইনস্টলটি ঘটেছে তা সম্পর্কে আমার কোনও ধারণা নেই, তবে ডাটাবেসটি মনে হয় যে এটি পুনরায় তৈরি করা হচ্ছে এবং লেনদেনের লগ থেকে কোনও স্থান মুক্ত করবে না। উদাহরণ:

USE master;

SELECT 
    name, log_reuse_wait, log_reuse_wait_desc, is_cdc_enabled 
FROM 
    sys.databases 
WHERE 
    name = 'KAV';

SELECT DATABASEPROPERTYEX('KAV', 'IsPublished');

আয়:

name | log_reuse_wait | log_reuse_wait_desc | is_cdc_enabled
-----|----------------|---------------------|---------------
KAV  | 6              | REPLICATION         | 0 
DATABASEPROPERTYEX('KAV', 'IsPublished')
----------------------------------------
0 [not published]

এছাড়াও Replicationএসএসএমএসে বিভাগে তালিকাভুক্ত কিছুই নেই ।

এখনও পর্যন্ত আমি গুগল ফলাফল থেকে একত্রে কয়েকটি বিবৃতি চেষ্টা করেছি:

USE KAV;
EXEC sp_repldone null, null, 0,0,1;
EXEC sp_removedbreplication KAV;

তবে এই ডিবিটির পুনরায় প্রতিলিপি তৈরি করা হচ্ছে ভেবে থামাতে আমার কোনও ভাগ্য হয়নি had

সম্পূর্ণ sys.databasesতথ্য:

+-----------------------------------+------------------------------------------------------------+
| name                              | KAV                                                        |
| database_id                       | 5                                                          |
| source_database_id                | NULL                                                       |
| owner_sid                         | 0x0105000000000005150000004EB006B0C3554AB049CEA01BE8030000 |
| create_date                       | 2013-07-04 10:31:28.947                                    |
| compatibility_level               | 90                                                         |
| collation_name                    | Latin1_General_CI_AS                                       |
| user_access                       | 0                                                          |
| user_access_desc                  | MULTI_USER                                                 |
| is_read_only                      | 0                                                          |
| is_auto_close_on                  | 0                                                          |
| is_auto_shrink_on                 | 0                                                          |
| state state_desc                  | ONLINE                                                     |
| is_in_standby                     | 0                                                          |
| is_cleanly_shutdown               | 0                                                          |
| is_supplemental_logging_enabled   | 0                                                          |
| snapshot_isolation_state          | 1                                                          |
| snapshot_isolation_state_desc     | ON                                                         |
| is_read_committed_snapshot_on     | 1                                                          |
| recovery_model                    | 1                                                          |
| recovery_model_desc               | FULL                                                       |
| page_verify_option                | 2                                                          |
| page_verify_option_desc           | CHECKSUM                                                   |
| is_auto_create_stats_on           | 1                                                          |
| is_auto_update_stats_on           | 1                                                          |
| is_auto_update_stats_async_on     | 0                                                          |
| is_ansi_null_default_on           | 1                                                          |
| is_ansi_nulls_on                  | 1                                                          |
| is_ansi_padding_on                | 1                                                          |
| is_ansi_warnings_on               | 1                                                          |
| is_arithabort_on                  | 1                                                          |
| is_concat_null_yields_null_on     | 1                                                          |
| is_numeric_roundabort_on          | 0                                                          |
| is_quoted_identifier_on           | 1                                                          |
| is_recursive_triggers_on          | 0                                                          |
| is_cursor_close_on_commit_on      | 0                                                          |
| is_local_cursor_default           | 1                                                          |
| is_fulltext_enabled               | 1                                                          |
| is_trustworthy_on                 | 0                                                          |
| is_db_chaining_on                 | 0                                                          |
| is_parameterization_forced        | 0                                                          |
| is_master_key_encrypted_by_server | 0                                                          |
| is_published                      | 0                                                          |
| is_subscribed                     | 0                                                          |
| is_merge_published                | 0                                                          |
| is_distributor                    | 0                                                          |
| is_sync_with_backup               | 0                                                          |
| service_broker_guid               | 19C05AF5-8686-4C27-BF7E-93E240DA953B                       |
| is_broker_enabled                 | 0                                                          |
| log_reuse_wait                    | 6                                                          |
| log_reuse_wait_desc               | REPLICATION                                                |
| is_date_correlation_on            | 0                                                          |
| is_cdc_enabled                    | 0                                                          |
| is_encrypted                      | 0                                                          |
| is_honor_broker_priority_on       | 0                                                          |
+-----------------------------------+------------------------------------------------------------+

এছাড়াও:

DBCC OPENTRAN;
No active open transactions.

DBCC SQLPERF(LOGSPACE);
KAV 171066  99.55339    0

EXEC sp_replcounters;
KAV 0   0   0   0x00000000000000000000  0x00000000000000000000

আমি স্রেফ পুরো ডেটা এবং লগ ব্যাকআপ করেছি।

আমি খুব সামান্য পরিস্থিতি নিয়ে কয়েকটি পোস্ট জুড়ে চলেছি , এবং প্রদত্ত সমাধানটি ছিল প্রতিলিপি প্রকাশনা এবং বিতরণ সেটআপ এবং তারপরে এটি আবার সরানো। তবে এটি এক্সপ্রেস সংস্করণ হচ্ছে, এই বিকল্পগুলি আমার কাছে উপস্থিত হয় না।

আমরা মূলত একটি লিনাক্সের দোকান এবং এটি আমাদের কাছে পাওয়া একমাত্র এসকিউএল সার্ভার উদাহরণ। অন্য সমস্ত যদি সত্যিকারের লাইসেন্স পেতে ব্যর্থ হয় তবে তা আমাদের একমাত্র উপায় হতে পারে: অ-এক্সপ্রেস উদাহরণটিতে ব্যাকআপ পুনরুদ্ধার করতে এবং একটি প্রকাশনা সরিয়ে সেটআপ করার চেষ্টা করার পরে অবশেষে এক্সপ্রেসে পুনরুদ্ধার করুন।

উত্তর:


5

একটি প্রকাশিত ডাটাবেস পুনরুদ্ধার জন্য সমাধান

আমরা অনুরূপ সমস্যার মুখোমুখি হয়েছি: একটি প্রকাশিত ডাটাবেস সার্ভার 1 এ সঞ্চিত আছে। প্রতিদিন এই ডাটাবেসটি ব্যাকআপ হয়ে সার্ভার 2 এ পুনরুদ্ধার করা হবে।

  • আমরা প্রায়শই ত্রুটির বার্তা পেয়েছি:

    REPLICATION এর কারণে পূর্ণ LOG

  • log_reuse_wait_descসেট করা ছিল REPLICATION
  • প্রতিলিপি সরানো যায়নি, কারণ এই ডাটাবেসটি সার্ভার 2 এ প্রকাশিত হয়নি।

সমাধান

ডাটাবেস পুনরুদ্ধার করার পরে প্রকাশনার সক্ষম এবং এটি অপসারণ:

USE MyDatabase
GO
-- 1.) enable publication for MyDatabase
EXEC sp_replicationdboption 
  @dbname = 'MyDatabase', 
  @optname = N'publish', 
  @value = N'true';
GO
-- 2.) remove publication from database. Use the PUBLICATION-name (not database name)
sp_removedbreplication 'Publ_MyDatabase','both'

-- 3.) disable publication for MyDatabase
EXEC sp_replicationdboption 
  @dbname = 'MyDatabase', 
  @optname = N'publish', 
  @value = N'false';
GO

-- Verify: log_reuse_wait_desc should have changed from REPLICATION to NOTHING
SELECT name, log_reuse_wait_desc, * FROM sys.databases WHERE name = 'MyDatabase'

1

এই ডাটাবেসে ডাউনটাইম গ্রহণযোগ্য? এটি সম্ভবত একটি অনুলিপি করা ডাটাবেস থেকে পুনরুদ্ধার করা হয়েছিল বা এটি সম্ভবত এমন কোনও গ্রাহক ছিল যা ভুলভাবে অপসারণ করা হয়েছিল, যদিও এটি অসম্ভব। আপনি এক্সপ্রেস থেকে কোনও স্ট্যান্ডার্ড বা উচ্চতর সংস্করণে পুনরুদ্ধার করে আবার প্রতিলিপি সেটআপ করে এটিকে সরানোর চেষ্টা করতে পারেন। তারপরে আপনি স্ট্যান্ডার্ড থেকে ব্যাকআপ নিতে পারেন এবং এক্সপ্রেসে পুনরুদ্ধার করতে পারেন। উচ্চ সংস্করণে থাকাকালীন আপনি যতক্ষণ না ডাটাবেসটিতে কোনও বৈশিষ্ট্য সক্ষম করবেন না, ডাউনগ্রেডিংয়ে কোনও সমস্যা হবে না। আপনি স্থিতিটি সরিয়ে ফেলবেন এবং ডাউনটাইম হ্রাস করার জন্য এটি সমস্ত স্ক্রিপ্ট করে দেবে তা নিশ্চিত করার জন্য আপনি প্রকৃত আউটেজের আগেই এটি পরীক্ষা করতে পারেন। আপনার যদি অন্য কোনও সার্ভার না থাকে তবে আপনি ব্যবহার করতে পারবেন, মূল্যায়ন কপিটি ধরে ফেলুন এবং আপনার স্থানীয় মেশিনে ইনস্টল করুন, কোনও ভিএম, এটি যদি গ্রহণযোগ্য হয় তবে মূল মেশিন, বা আপনি যে কোনও জায়গায় খুঁজে পেতে পারেন।


ডাউনটাইম ডেটাবেসগুলির সাথে একটি গুরুত্বপূর্ণ সমস্যা নয় কারণ এটি আমাদের এভির জন্য কেবলমাত্র কেন্দ্রীয় আপডেট / লাইসেন্সিং সার্ভার চালাচ্ছে। [এছাড়াও আমি লক্ষ্য করার আগে এটি কয়েক দিনের জন্য বন্ধ ছিল] তবে, আমি মন্তব্যগুলিতে যেমন উল্লেখ করেছি, আমরা মূলত একটি লিনাক্সের দোকান এবং এটি আমাদের একমাত্র এমএসএসকিউএল উদাহরণ। এছাড়াও ব্যাকআপটি 180 গিগাবাইট + তাই এটি বাহ্যিক সরবরাহকারীর কাছে পাঠানো কোনও বিকল্প নয়।
সম্মিচ

আপনি একই বাক্সে অন্য একটি ইনস্টল ইনস্টল করতে পারেন এবং সেই ডাটাবেসের ব্যাকআপ পুনরুদ্ধার করতে পারবেন, স্থান অনুমতি দিচ্ছেন। বিকল্পভাবে, আপনি ব্যাকআপ নিতে পারেন এবং তারপরে এক্সপ্রেস থেকে ডেটাবেসকে আলাদা করতে পারেন এবং মূল্যায়ন কপির সাথে সংযুক্ত করে কোনও প্রকাশন সেটআপ / মুছে ফেলার চেষ্টা করতে পারেন। সবচেয়ে খারাপ ক্ষেত্রে, আপনি মূলটি স্ক্রুটি এনে ফেলতে হবে এবং ব্যাকআপটি পুনরুদ্ধার করতে হবে। সেরা ক্ষেত্রে, এটি কাজ করে, আপনি মূল্যায়ণ থেকে বিচ্ছিন্ন হয়ে এক্সপ্রেশনটি পুনরায় সংলাপ করুন এবং তারপরে মূল্যায়ন আনইনস্টল করুন।
আপনার_কমেন্ট_এই_নি_ফুনি

1

আপনি ডাটাবেস প্রকাশ না করার জন্য সেট করার চেষ্টা করেছেন?

use master
exec sp_replicationdboption @dbname = N'<DATABASENAME>', @optname = N'publish', @value = N'false'
GO

এবং তারপরে লগটিকে ব্যাক আপ করে দেখি কী হয়?

সম্পাদনা 1: নিম্নলিখিত টি-স্কোয়েল কী ফিরে আসে?

-- Run on publisher database for Pub, subscriber information

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;

SELECT  sa.name AS ArticleName,
        sp.name AS PublicationName,
        d.datasource AS Distributor,
        s.dest_db AS Destination_DB,
        srv.srvname AS SubscriptionServer
FROM    dbo.syspublications sp  
LEFT JOIN
        dbo.sysarticles sa 
        on sp.pubid = sa.pubid 
LEFT JOIN
        dbo.syssubscriptions s 
        on sa.artid = s.artid 
LEFT JOIN
        master.dbo.sysservers srv 
        on s.srvid = srv.srvid 
OUTER APPLY 
        (
        SELECT  datasource
        FROM    master.dbo.sysservers
        WHERE   srvstatus & 8 <> 0
        ) d

1

আমি সঠিক একই সমস্যা ছিল। এসকিউএল এক্সপ্রেস ডিবি কখনও কোনও প্রতিরূপের অংশ ছিল না। অতীতে এটি কিছু ডিবিসিসি চেকডিব কমান্ড দিয়ে মেরামত করা হয়েছিল। এবং কিছু সময় আমরা এটি আবিষ্কার করেছিলাম

SELECT name, log_reuse_wait_desc 
FROM sys.databases 

"REPLICATION" কারণ হিসাবে এবং লগ ফাইলে বৃদ্ধি হিসাবে দেখিয়েছে।

আমরা এই tsql ব্যবহার করে প্রতিলিপি সরিয়েছি:

declare @db as varchar(100) = 'dbname'

exec sp_removedbreplication @db

এটি সমাধান করেছে এবং আমরা লগ সঙ্কুচিত করতে পারি।


0

আমি নিম্নলিখিত চেষ্টা করবে:

USE <database_name_here>
GO
EXEC sp_repldone 
    @xactid = NULL, @xact_segno = NULL, @numtrans = 0, @time = 0, @reset = 1

যার পরে আপনি আরও নীচের পোস্টে প্রস্তাবিত হিসাবে ডাটাবেসে একটি পৃথক টেবিলের জন্য একটি প্রতিলিপি যোগ করতে এবং অনুলিপি অপসারণ করতে চেষ্টা করতে পারেন।

আমাদের এক সময় একটি ডাটাবেস ছিল যা এসকিউএল সার্ভারে বিতরণ এবং প্রতিলিপি সেটআপ না করা সত্ত্বেও প্রতিলিপি মোডে স্যুইচ করে।

আমি আমার ইস্যুটির জন্য আমি যে মূল স্ক্রিপ্টটি ব্যবহার করেছি তা খুঁজে পেলাম না, তাই আমি একটি অনুসন্ধান চালিয়েছি এবং এমএসডিএন-তে এই এন্ট্রিটি পেরিয়ে এসেছি:

log_reuse_wait_desc = প্রতিলিপি, লেনদেনের লগ বাড়ানো বন্ধ করবে না

এই সমস্যাটির জন্য কিছু অপ্রয়োজনীয় মূল কারণ রয়েছে এবং এটি সারা বিশ্ব জুড়ে ঘটে।

ভাল শিকার!


-1

আপনি যদি অন্য সব কিছু চেষ্টা করে থাকেন তবে সম্ভবত এটি সম্ভব হবে (এটি নিশ্চিত করার আগে আপনার কাছে একটি ভাল ব্যাকআপ রয়েছে!) ডাটাবেস আলাদা করতে, লগ ফাইলটির নাম পরিবর্তন করুন (যাতে এসকিউএল সার্ভার এটি সন্ধান করতে পারে না) এবং তারপরে ডাটাবেসটি পুনরায় সংযুক্ত করুন। আমি বিশ্বাস করি এটি এসকিউএল সার্ভারকে একটি নতুন লগ ফাইল তৈরি করতে বাধ্য করবে। এটি ভেবেও থেমে যাবে যে ডাটাবেসটি প্রতিলিপি করা হয়েছে আমার কোনও ধারণা নেই তবে এটি কমপক্ষে সম্ভব বলে মনে হচ্ছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.