Backing up TFS 2010

While using TFS 2010 as the only repository of source code and project management repository for a company with more than 10 developer, it is very important to handle backup/restore plans as accurate as possible. As I needed to backup such a TFS server correctly, I have compiled a check list for myself that I’d like to share it with all.

1. DVD of softwares must be kept at a separate reachable place. Including  Windows Server 2008 R2, SQL Server 2008, TFS 2010, SharePoint and any original/modified template process like Scrum for Team System version 3’s x64 template process.

2. Know of any good online/offline documentation for backup/restore: Backing up and Restoring Your Deployment. Some good key points of this document are:
-Databases to backup: TFS_Configuration, TFS_Warehouse, TFS_CollectionName (all collections), TFS_Analysis (if any), ReportServer, ReportServerTempDB, WSS_Config (if any), WSS_Content (if any), WSS_AdminContent (if any)
-TFS_Configuration database must be last database to backup and first database to restore.

3. Backup the Reporting Services Encryption Key using “Reposrting Services Configuration Manager”.  It’s a tiny file. This file must be protected with a password. Don’t forget to write down the password for future use. Alternatively you can use a simple password like 123 so you never forget it.

4. Use this guidline for: Restore Data to the Same Location and use this for Restore a Single Server Deployment to New Hardware.

5. You can always use a virtual machine to test you backups.

سوختن هارد و سرور مجازی

درست یک روز بعد از این که چند نوسان برق در منزل مشاهده شد، هارد کامپیوترم جان به جان‌آفرین تسلیم کرد. حالا من مونده بودم و اطلاعاتی که از بین رفته بود و زجر نصب مجدد ویندوز، ویژوال استودیو، SQL Server، SVN، Jira و بقیه‌ی خورده ریزهای دیگر. البته مصیبت وارده از ناحیه اطلاعات از بین رفته و خرید مجدد هارد دیسک را هم فراموش نکنید. از آنجا که فعلاً از یک هارد موقتی استفاده می‌کنم و باید بعداً دوباره تمامی مراحل نصب را برای هارد جدید  هم تکرار کنم، باید دنبال راهی می‌گشتم تا زمان نصب مجدد را کاهش دهم. بعد از کلی دو دو تا چهار تا کردن تصمیم گرفتم از VM Ware برای ایجاد یک سرور مجازی استفاده کنم.

روشی که انجام دادم این است: نصب یک نسخه از ویندوز XP به صورت Virtual. از ویندوزهای جدیدتر استفاده نمی‌کنم چون ویندوز XP سریع‌تر نصب می‌شود و جای کمتری می‌گیرد. بلافاصله بعد از نصب، VM مربوطه را روی DVD می‌ریزم. چون ممکن است دفعات بعد هم به یک ویندوز تازه نیاز پیدا کنم. در این مرحله یک اشتباه کوچک انجام دادم و آن هم محدود کردن فضای مورد استفاده Virtual Machine به ۲۰ گیگ بود. چون فکر می‌کردم VM Ware کل آن فضا را در همان ابتدای کار اختصاص می‌دهد. البته بهتر است شما این فضا را خیلی بیشتر در نظر بگیرید چون اولاً نیازی به داشتن آن مقدار فضای خالی در همان لحظه وجود ندارد، ثانیاً بعد از ایجاد Virtual Machine دیگر نمی‌توان این فضا را تغییر داد. در مورد بقیه تنظیمات مثل شبکه، درایورها و بقیه نگران چیزی نباشید چون خود VM Ware پیش‌فرض‌های خوبی دارد و معمولاً مشکل خاصی در رابطه با شبکه وجود ندارد.

بعد از نصب ویندوز، باقی موارد مورد نیاز از جمله SQL Server را نصب می‌کنم. فقط باید دقت شود که به خاطر کوچک نگه داشتن حجم Virtual Machine هیچ اطلاعات اضافی مثل دیتابیس‌ها یا سورس کد را به Virtual Machine اضافه نکنید. بعد از این که همه چیز را خوب تست کردم کل Virtual Machine را روی DVD رایت می‌کنم. کپی یک نسخه از VM Ware و کلیه passwordها از جمله رمز ویندوز و SQL Server هم فراموش نشود. تا اینجا حجم Virtual Machine حدود ۴ گیگ شده که به راحتی می‌توان آن را روی یک DVD نگه داشت.

حالا دیگر می‌توانم با خیال راحت از این Virtual Machine به عنوان سرور استفاده کنم. از این به بعد هر وقت که هاردم بسوزد یا ویندوزم ایراد پیدا کند فقط مراحل نصب ویندوز و ویژوال استودیو را انجام خواهم داد، چون یک سرور را به صورت Virtual دارم. هم به صورت خام و بدون اطلاعات در DVD و هم به صورت عملیاتی. خوبی این روش این است که اولاً می‌توانم سرور را روی یک هارد مطمئن نگه‌داری کرده، در ویندوزهای مختلف آن را با استفاده از VM Ware اجرا کرده و با آن کار کنم، درست همانطور که از یک سرور واقعی در محل کار استفاده می‌شود. ثانیاً اگر دوباره فاجعه‌ای مثل سوختن هارد دیسک اتفاق بیفتد، با فرض داشتن backup اطلاعات، کافی است یک نسخه از سرور مجازی را که قبلاً روی DVD رایت کرده بودیم را روی هارد جدید کپی کرده، اطلاعات سورس، دیتابیس و… را restore تا کار در مدت زمان کمتری شروع شود.

امیدوارم هیچ وقت از این طور فجایع برای شما اتفاق نیفتد چون داغ از دستن دادن هارد خیلی سخت است!

به روز رسانی: مطابق نظرات دوستان که در بخش کامنت‌ها قابل مشاهده است، محدودیت حجم هارد مجازی را می‌توان به نحوی پشت سر گذاشت.