View Full Version : پشتیبان گیری از بانک SQL بدون استفاده از کوئری
sohrab o
پنج شنبه 21 مرداد 1389, 00:37 صبح
چطوری میتونم از بانک sql از تو برنامه پشتیبان بگیرم
اینو هم بگم از دستورا تsql نمی خوام استفاده کنم چون روی سرور پشتیبان می گیره؟
SilverGold
شنبه 23 مرداد 1389, 00:43 صبح
دوست عزیز باید از کانال خود اس کیو ال عبور کنی چون اس کیو ال باید نظارت داشته باشه
sohrab o
شنبه 23 مرداد 1389, 00:51 صبح
پس با دستورات sql چطور می تونم پشتیبان بگیرم اما نه روی سرور روی کلاینت می خوام پشتیبان کپی بشه
mds_boy
پنج شنبه 11 شهریور 1389, 22:58 عصر
دوسته عزیز من این کار رو با وینرر انجام دادم، قبل از این که ازش کپی پشتیبان بگیری باید باکت رو استوپ کنی بعد فراینده کپی و بعد هم دوباره بانکت رو استارت کنی از داخله برنامت.
اگه وقت شد و اون تیکه برنامه رو پیدا کنم از سیستم برات زمیمه میفرستم.
وینرر یک فایله اگزه داره که میتونی از اون تو برنامت استفاده کنی، 2 خط بیشتر نیست، برات پیداش میکنم.
mds_boy
پنج شنبه 11 شهریور 1389, 23:19 عصر
اول از همه تو ای پی آی میگردی گزینه وین اگزکت را پیدا میکنی و بعد از آوردن کدش کد پایین رو برات مینویسه :
Private Declare Function WinExec Lib "kernel32" (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Long
بعدش یادت باشه فکر کنم باید یه فایله کتابخونه ای رو هم باید استفاده کنی که من یادم رفته :اشتباه: .
قبل از هر کاری باید اس کیو ال سرور رو استوپ کنی خودت که میدونی بانکت در حاله استفاده شدنه و هیچ برنامه ای نمیتونه از روش کپی بگیره، به جر استوپ بشه. که با دستوره پایین میتونی این کار رو انجام بدی :
StopSql = "Net stop mssqlserver "
WinExec StopSql, 0
کدی برای پشتیبانگیری :
txtbackup.Text = App.Path & "\DataBase" & "\" & Modules.Shamsi & "_" & Format(Time, "HH" & "-" & "MM" & "-" & "SS") & ".rar"
بعد از عمل کپی شما میتونید دوباره با دستوره پایین اس کیو ال سرور رو استارت کنید :
StartSql = "Net start mssqlserver "
WinExec StartSql, 0
البته من ماجول هم استفاده کردم داخلش شما و خودش نامه فایله پشتیبان رو با تاریخ و ساعت پر میکنه !
سپس برای بازیابی نیز میتوانید همان دستوره قبل با یک تفاوت کوچک بانکتان را بازیابی کنید کد :
CompressDataBase = (App.Path & "\rar" & " e " & InputBackup & " " & (App.Path & "\DataBase"))
البته قبل از دستور بانک رو غیر فعال و بعدش فعال کنید که بالا نوشتم چشوریه.
و اگر دستورات کار نکرد، شما بعد از کده پشتیبانگیری که نوشتم یک دستور فور قرار دهید تا مدتی سیستم معلق باشد چرا که دستورات سریع اجرا میشوند ولی عمل به آن کند، یعنی پس از 4 ثانیه تقریبا بانکتان استوپ و بعد از بکار بردن دستور اجرای دوباره نیز 4 ثانیه ای طول میکشد تا بانک شروع به کار کند، لذا بعد و قبل از دستورات اصلی دستوره فوری با عددی متعادل فرضا 100000 و یا بیشتر را وارد کنید، اگر سیستم هنگ کرد دستور کنترل برک هم که میدونید حتما با آن از مخمسه بیرون بپرید.
یا حق موفق باشید.
خسته شدم خدایی :چشمک: .
فایله ضمیمه را کناره برنامتان قرار دهید.
HjSoft
جمعه 12 شهریور 1389, 14:57 عصر
پس با دستورات sql چطور می تونم پشتیبان بگیرم اما نه روی سرور روی کلاینت می خوام پشتیبان کپی بشه
قبلا یک کد توی سایت دیدم با خود sql ، که روی خود سرور در مسیر که تعیین میکردید پشتیبان می گرفت . راه های دیگه هم هست که غیر اصولیه مثل این که stop کنید یا detach کنید بعد کپی بگیرید . که اصلا اصوی نیست و موقع برگشت هم با مشکل رو برو میشید .
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.