اشتراکها
SQL Server Corruption Recovery - When All Else Fails
تکنیکهایی برای برگرداندن اطلاعات از فایلهای SQL Server که خسارت دیده اند و خراب شده اند و از بخت بد، فایل Backup یا موجود نیست و یا روشهای معمول برگرداندن اطلاعات درست کار نمیکنند.
در این تمرین بانک اطلاعاتی نمونه AdventureWorksLT2008R2 بکار گرفته شده است.
در این تکنیک از کلاس RawDatabase که در پروژه منبع باز OrcaMDF که یک پارسر (Parser) تحت زبان #C برای خواندن فایلهای mdf. بانک اطلاعاتی SQL Server بدون Attach کردن یا اجرای SQL Server میباشد استفاده شده است.
حتی اگر تمام امیدتان را برای برگرداندن اطلاعات از دست داده اید ، هنوز هم گزینه های وجود دارد . ابزار OrcaMDF یا راه حلهای دیگر ممکن است به دلیل یک فاجعه به صورت یک ابزار ارزشمند درآمده باشد. البته این یک جایگزین خوب برای برگرداندن اطلاعات نیست.
تکنیکهایی برای برگرداندن اطلاعات از فایلهای SQL Server که خسارت دیده اند و خراب شده اند و از بخت بد، فایل Backup یا موجود نیست و یا روشهای معمول برگرداندن اطلاعات درست کار نمیکنند.
در این تمرین بانک اطلاعاتی نمونه AdventureWorksLT2008R2 بکار گرفته شده است.
در این تکنیک از کلاس RawDatabase که در پروژه منبع باز OrcaMDF که یک پارسر (Parser) تحت زبان #C برای خواندن فایلهای mdf. بانک اطلاعاتی SQL Server بدون Attach کردن یا اجرای SQL Server میباشد استفاده شده است.
حتی اگر تمام امیدتان را برای برگرداندن اطلاعات از دست داده اید ، هنوز هم گزینه های وجود دارد . ابزار OrcaMDF یا راه حلهای دیگر ممکن است به دلیل یک فاجعه به صورت یک ابزار ارزشمند درآمده باشد. البته این یک جایگزین خوب برای برگرداندن اطلاعات نیست.
SubSonic یکی دیگر از ORM های تهیه شده برای دات نت فریم ورک است که توسط یکی از اعضای مایکروسافت هدایت میشود. این پروژه سورس باز و رایگان است.
گردآوری جالبی است؛ قابل توجه دوستانی که با php و سرورهای لینوکسی کار میکنند.
همانطور که مطلع هستید نگارش نهایی SP1 مربوط به SQL Server 2008 مدتی است که ارائه شده است و یکی از قابلیتهای آن Slipstreaming نصب آن است (من ترجمهاش میکنم "نصب ممزوج"). منظور از آن هم این است که تمام پچهای قبلی را میشود با نصاب ابتدایی یکی کرد. (بنابراین نصب ممزوج معادل بدی نیست، "دایر کردن فرو رفتنی" هم به فرهنگستان پیشنهاد میشود :) )
برای مثال در SQL server 2005 شما مجبور هستید که ابتدا نگارش RTM آنرا نصب کنید و بعد آخرین سرویس پک ارائه شده را، اما در حالت پشتیبانی از نصب ممزوج، میشود فایلهای سرویس پک را مستقیما بر روی فایلهای نصاب اولیه بازنویسی کرد و به این صورت با نصب آن، به یکباره SQL Server 2008 SP1 را خواهید داشت و دیگر نیازی به reboot های مکرر و توقف و راه اندازی سرویسهای گوناگون ویندوز نیست (این مساله در یک سرور حائز اهمیت است).
اشتراکها
کتابخانه bootstrap-slider
Bootstrap-slider Demo
Other platforms:
- Ruby on Rails
- knockout.js (@cosminstefanxp, #81)
- AngularJS
- EmberJS (@ksnyde)
- NuGet (@ChrisMissal)
- MeteorJS
- Maven
پروژه ویراستار را از Ruby به سی شارپ تبدیل کردم. سورس نهایی کامل، فایلهای باینری، به همراه unit tests و راهنمای کتابخانه، از آدرس زیر قابل دریافت هستند:
خلاصه کارهایی را که انجام میدهد:
نظرات اشتراکها
دوراهی انتخاب NHibernate و Entityframework
ما یک نرم افزار تقریبا بزرگ داریم که قبلا تحت ویندوز نوشته شده.حالا میخواهیم تحت وب هم ایجاد کنیم(c#).دیتابیس sql2005 است دیتابیس هم قرار نیست که تغییر کند چند تا سوال داشتم چون نمیدونم از orm استفاده کنم یا sql queries !
در صورتی کوئریهای پیچیده داشته باشیم باز هم میشود از orm استفاده کرد؟
سرعت واکشی اطلاعات به چه صورت است؟یعنی به ازای هر select به دیتابیس connectin میزند؟
نظرات مطالب
امکان مفهوم بخشیدن به رشتهها در NET 7.
یک نکتهی تکمیلی: امکان مشخص کردن نوع زبان مورد استفاده، توسط StringSyntaxAttribute در Rider
اگر از Rider استفاده میکنید، آخرین نگارش آن، امکان ذکر تمام زبانهای پشتیبانی شدهی توسط Rider را به عنوان پارامتر ویژگی StringSyntax دارد (مانند Regular expressions, JavaScript, HTML, CSS, JSON, XML, SQL) که نمونهای از آنرا در مثال فوق با ذکر #C ملاحظه میکنید. پیشتر یک چنین قابلیتی تنها با استفاده از LanguageInjectionAttribute آن میسر بود.
ارتقاء به EF Core 3.0
در EF Core 3.0، لاگ خروجی SQL تولیدی، از سطح Info به سطح Debug تغییر کردهاست تا نویز سطح Info کاهش پیدا کند. اگر میخواهید به همان حالت قبلی برگردید، از تنظیم زیر استفاده کنید:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder .UseSqlServer(connectionString) .ConfigureWarnings(c => c.Log((RelationalEventId.CommandExecuting, LogLevel.Info)));