PDA

نسخه کامل مشاهده نسخه کامل : سوال از پشتیبان گیری بانک اطلاعاتی



aliaghaaaaa
17-03-2012, 18:22
سلام.
من میخوام توسط دستور زیر از بانک اطلاعاتی برنامه ام یک کپی (پشتیبان) بگیرم.
اما اررور میده. می خواستم راهنماییم کنید.
ممنون.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

delphidark
17-03-2012, 23:01
دوست عزیز
تا زمانی که فایلهای دیتابیس در حالت Attach شده قرار دارند از هر گونه عملیات فایلینگ محافظت شده اند یعنی شما نمیتونید جا به جاشون کنید و یا حتی ازشون کپی تهیه کنید ... در نتیجه اول باید دیتابیس مورد نظرتون رو Deattach کنید

البته در کل کپی کردن فایلهای دیتابیس (mdf و ldf) به عنوان عملیات پشتیبانگیری خیلی اصولی نیست
در عوض بهتره از فرامین استاندارد SQL server برای پشتیبان گیری استفاده کنید

به عنوان مثال این کوئری قابل استفاده خواهد بود :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدموفق باشید .

szh_1367
17-03-2012, 23:06
سلام.
من میخوام توسط دستور زیر از بانک اطلاعاتی برنامه ام یک کپی (پشتیبان) بگیرم.
اما اررور میده. می خواستم راهنماییم کنید.
ممنون.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
من کار ندارم که کدت درسته یا نه اما وقتی یک تیبل رو به بانک اطلاعاتی sql اضافه میکنی خود sql تا زمانی که اون جدول رو De-attach نکنی اجازه کپی گرفتن رو به هیچ بنی بشری نمیدهد :31:

میتونی اول بانک اطلاعاتیت رو De-attach کنی بعد کپی بگیری

یا از جدولت بکاپ تهیه کنی . توصیه میشه که از راه دوم استفاده شود

پ.ن:پست ها همزمان شد :27:

aliaghaaaaa
19-03-2012, 19:52
سلام و ممنون از جواب هاتون.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
منظورتون اینه که این دستور رو به عنوان یه SqlCommand به برنامه ام پاس بدم؟
میشه یه sample برام بزارید؟
ممنون.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
میشه لطفا برام توضیح بدین چطور می تونم از جداول بکاپ بگیرم؟
ممنون.

_H2_
22-03-2012, 03:00
سلام
دوست عزیز دو تاپیک قدیمی زیر را مرور بفرمائید، شاید بیشتر کمکتان کند:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

aliaghaaaaa
22-03-2012, 14:17
سلام دوستان.
ممنون از جواباتون.
می خواستم خواهش کنم لطفا اگه میشه برای اینکه زودتر به نتیجه برسیم و جواب بگیریم اگه ممکنه یه برنامه برای مثال بزارید.
ممنون.

aliaghaaaaa
24-03-2012, 10:08
واااااااااااااااااااااااا اااایییییییییی.
انتظار خیلی سخته:31:
لطفا یکی یه مثال می نویسه؟
ممنون.:11:

szh_1367
24-03-2012, 12:28
وارد سایت حضرت گوگل شوید و backup and restore in c# رو سرچ کنید :31:

Payman_62
24-03-2012, 12:40
سلام.
دوستان که کاملا برات توضیح دادن. دیگه مثال از چی میخوای؟ یه خط دستور ساده sql رو میخوای اجرا کنی میگی مثال بذارید؟

اگه ارور برمیخوری ته دستور بعد filename پسوند bak رو به فایل اضافه کن. به این صورت:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

aliaghaaaaa
25-03-2012, 12:07
سلام و تشکر از جواب هاتون.
میشه کد restore کردن رو هم بگید؟ البته اگه دوباره عصبانی نمیشید.
ممنون.

_H2_
26-03-2012, 00:43
سلام

البته اگه دوباره عصبانی نمیشید
عصبانیت چی برادر! :31:
فقط مطلب سر این است که در این سطح، بجز چند خط کد بیان شده، چیز خاص دیگری ندارد، فقط Copy و Paste مطالب قبلی میشود.
مثلاً عرض میکنم، مطلب زیر تقریباً کپی پست 7 و 41 یکی از دو تاپیک معرفی شده است.
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


میشه کد restore کردن رو هم بگید؟
چشم...


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

موارد قابل تعمیم و توسعه بیشتر در همین سطح:

1) در خصوص مسیر فایل عملیاتی میتوان کد را اصلاح کرد که به روش پارامتری عملیات مورد نظر را انجام دهد که مزیت ان اطمینان از عدم مشکل در مسیر فایلهایی با کاراکترهای خاص است.

2) هر دو دستور فوق مستعد خطا در شرایط گوناگون هستند که حتماً در خود توابع ساده فوق و یا محل استفاده باید از دستورات Try و نمایش پیغام مناسب به کاربر استفاده شود.

3) احتمالاً دو SQL فوق restore را میتوان با هم ترکیب هم کرد ولی باز به نظرم ترکیب نشود و همینطوری که الآن نوشته شده، بمان بهتر است.

4) با کد restore بالا به علت اجباری بردن دستابیس در حالت تک کاربره، اگر عملیات restore باز هم به خطا بخورد احتمال دارد دیتابیس در حالت تک کاربره بماند که میتوان در زمان خطا مجدد با اجرای SQL مناسب در تابعی مجزا از تصحیح آن اطمینان حاصل کرد.

و...

شب خوش.

aliaghaaaaa
26-03-2012, 18:37
سلام.
از پاسخ خوب و کامل شما تشکر می کنم.
اگه به حایی برخوردم بازم مزاحم میشم.
ممنون.

aliaghaaaaa
30-03-2012, 14:24
من از دستور زیر برای پشتیبان گیری استفاده کردم:


BACKUP DATABASE [Ali.mdf] TO DISK = 'd:\\Ali_dbsf_backup.Bak'
ولی اررور زیر رو میده:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

_H2_
31-03-2012, 23:30
سلام
همانطورکه در مطالب بود، شما باید نام دیتابیس را استفاده کنید، نه نام فایل را !
اصولاً در دیتابیس های بزرگ مثل SQL Server وقتی دیتابیس شما ایجاد و attach میشود دیگر برای ارجاع و هرگونه تعاملی با ان باید از نام ان که در زمان attach داده بودید استفاده کنید.
یعنی شاید احتمال دارد کد زیر جواب دهد:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

پیشنهاد میکنم از کدنمونه پست قبلی استفاده کنید.

H A M A S
17-04-2013, 16:01
سلام
من قسمت مربوط به بک آپ سیستم رو کامل نوشتم اما فقط یه موردی هست که قبل از بک آپ نباید هیچ کانکشنی باز باشه.یعنی اگر کاربر به سیستم لاگین کنه(خواندن یوزر و pass از بانک) بعد بره یک راست backup بگیره سیستم خطا میده
تمام قسمت های مربوط به بانک اطلاعاتی برنامه با linq هست فقط بک آپ گیری با ado.net
برای رفع مشکل چکار باید کرد؟
ممنون


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اینم از خطا

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

_H2_
18-04-2013, 21:21
سلام
در خصوص بازیابی اطلاعات (Restore) باید فقط و فقط یک کاربری که در حال بازیابی است لاگین باشد ولی برای پشتیبان گیری (Backup) نیاز به خروج سایر کاربران نیست.
مشکل شما از جای دیگری است.
متن کامل خطا را اینجا بگذارید.
بعنوان نمونه دیتابیس شما Attach نشده که جریان را کمی متفاوت میکند ...

کد زیر را آزمایش کنید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشید.

H A M A S
20-04-2013, 08:22
ممنونم.مشکل بک آپ حل شد
توی همین فروم شما کد ریستور کردن رو قرار داده بودید. اون کد در حالت معمولی درسته ا در حالتی که کانکشن استرینگ مربوطه ماله دیتابیس اتچ شده است هم درسته اما بعد از بازیابی بانک که با موفقیت انجام شد
برنامه نمیتونه بره فرمهایی که با دیتابیس سروکار دارند رو باز کنه.خطای لاگین رو میده

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حتما باید برنامه دوباره اجرا بشه
اینم کد ریستور دیتابیس

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید