PDA

View Full Version : ذخیره آخرین تغییرات در یک فایل



m_reza
یک شنبه 01 آذر 1383, 23:01 عصر
سلام
من می خواهم آخرین تغییراتی را که در یک database می دهم را در یک فایل ذخیره کرده و فقط تغییرات را در یک پایگاه داده دیگر با همان ساختار Restore کنم. (دقیقا کاری که Replication انجام می دهد، با این تفاوت که تغییرات در یک فایل ذخیره شده و در جای دیگر استفاده شود(شبیه حالت FTP کردن در Replication (البته اگه اشتباه نکنم :wink: ) ))
بنا به دلایلی هم نمی خواهم از Replication استفاده کنم.
ضمنا پستهای قبلی آقای ثباتی را در زمینه Transaction و log shipping خواندم چراکه فکر می کردم با این دو مشکلم حل شود ولی ظاهرا اینطور نیست.

لطفا راهنمایی فرمایید

AminSobati
دوشنبه 02 آذر 1383, 21:34 عصر
دوست عزیزم،
ذخیره کردن تغییرات روی فایل بصورت دستی، کار مشکل و پر از اشتباهی هست. ضمنا شما رد پای Transactionها رو هم ندارین. بهترین جایی که خود SQL Server تمام این اطلاعات رو ذخیره میکنه، Log File هستش. شما میتونین دفعه اول Complete Backup رو به مقصد ببرین، در دفعات بعدی فقط از Log یک Backup تهیه کنین و در مقصد Restore کنین. به این ترتیب بدون کوچکترین کاستی، فقط تغییرات منتقل میشه.
موفق باشید

m_reza
چهارشنبه 04 آذر 1383, 22:03 عصر
ضمن تشکر از راهنمایی استاد گرامی ،

طبق فرمایشات شما این روش از کل پایگاه داده Backup می گیرد یعنی اگر فقط چند رکورد را به یکی از جداول اضافه کنیم با عمل Differential Backup ( حالت transaction log فعال نیست :گیج: ) از تمامی تغییرات اشیا مثل جداول و نماها و ... Backup گرفته می شود و حجم فایل باز زیاد است. (تغییراتی که در جدول دادیم در حد چند کیلوبایت اما فایل Backup گرفته شده در حد چند صد کیلو بایت می باشد). من می خواهم فقط از آن تغییرات Backup گرفته شود و یا به عبارت بهتر چطور می توان فقط از جداول Backup گرفت ؟

ضمنا اگر ممکن است بفرمایید که چرا حالت Transaction Log در Backup گیری غیر فعال است و چگونه می توان آن را فعال کرد؟
:thnx:

AminSobati
پنج شنبه 05 آذر 1383, 12:33 عصر
دوست عزیزم،
برای فعال کردن Log Backup باید در Options مربوط به دیتابیس، از Full Recovery Model استفاده کنین. بعد یک Complete Backup انجام بدین و در ادامه، اگر از لوگ Backup بگیرین، در حقیقت فقط از تغییرات Backup گرفتین.
جداول فقط یکی از اعضای دیتابیس هستن که SQL Server برای حفظ یکپارچگی جداول با سایر اعضای دیتابیس، هر تغییری رو در Log ذخیره میکنه که طبیعتا در Backup منظور میشن.
موفق باشید

m_reza
پنج شنبه 05 آذر 1383, 23:10 عصر
طبق توضیحات شما از لوگ Backup گرفته و حجم فایل بسیار کاهش یافت (زیر 100KB ) و دقیقا همانطور که اشاره کردید از تغییرات Backup گرفت . :D

از پاسخ شما بسیار بسیار ممنونم :موفق:

AminSobati
جمعه 06 آذر 1383, 00:51 صبح
:) فقط در مورد Restore کردنش یادتون باشه هر Log Backup به Backupهای قبل از خودش نیاز داره. پس اونها رو آرشیو کنین