یک دستور UPDATE را طوری اجرا کنید که با استفاده از هدر NO_WRITE_TO_BINLOG تغییرات در binary log ثبت نشود.
1.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:10 0.0
برای حل این پرسش میتوانید پیش از دستور DML از کامنت-هدر /*NO_WRITE_TO_BINLOG*/ استفاده کنید، مثلاً: /*NO_WRITE_TO_BINLOG*/ UPDATE table_name SET ...؛ راهحل جایگزین تنظیم موقت متغیر سِشن sql_log_bin = 0 با SET SESSION sql_log_bin = 0 است که معمولاً به دسترسی SUPER نیاز دارد و در بعضی نسخهها داخل روالها مجاز نیست. نکات عملی: این روش برای کارهای مدیریتی و نگهداری مناسب است اما میتواند باعث ناهماهنگی replication شود، پس ابتدا در محیط تست امتحان کنید و مطمئن شوید اجازههای لازم را دارید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
استفاده از /*NO_WRITE_TO_BINLOG*/ یا SET SESSION sql_log_bin = 0 میتواند مانع ثبت تغییرات در binary log شود. این کار ممکن است منجر به ناسازگاری در رپلیکیشن شود و دیتاها در سرورهای فرزند بهروزرسانی نشوند، پس فقط در محیط تست و با مجوزهای لازم استفاده شود. پیش از استفاده، اطمینان یابید که نسخه MySQL و سیاستهای رپلیکیشن اجازه میدهد و این تغییرات در روالهای تولید مجاز نیستند یا میتواند سبب مشکل شود. بهتر است برای نگهداری از تراکنشهای امن استفاده کنید یا تغییرات را با برنامهریزی زمانبندی انجام دهید تا همواره دادهها همسو باشند.
گزارش