نمایش نتایج 1 تا 14 از 14

نام تاپیک: KILL USER یا ALTER DATABSE ؟

  1. #1

    KILL USER یا ALTER DATABSE ؟

    سلام
    من تاپیک های زیادی را در مورد بک آپ گیری و restore کردن دیتابیس مطالعه کردم .در این تاپیک ها گفته شده بود که برای حل مشکل database in use از kill user استفاده کنیم.همچنین دوستان توصیه کرده بودن که دستور alter database مشکل را حل میکند.من موندم که اخرش از کدوم دستور استفاده کنم .همچنین در نحوه استفاده از اونها هم مشکل دارم.کد restore من به صورت زیر است.
    ایا alter databse را درست استفاده کرده ام؟
    اگر قرار باشد از kill user استفاه کنم به چه شکل باید اون را به کار برد؟

    Dim con AsNew SqlConnection("Data Source=FERESHTE-BDE62C\SQLEXPRESS;Initial Catalog=master;Integrated Security=True")
    Dim cmdselect1 As SqlCommand
    cmdselect1 =
    New System.Data.SqlClient.SqlCommand("ALTER DATABASE fff SET SINGLE_USER with ROLLBACK IMMEDIATE", con)
    con.Open()
    cmdselect1.ExecuteNonQuery()
    con.Close()
    Dim cmdselect As SqlCommand
    cmdselect =
    New System.Data.SqlClient.SqlCommand("RESTORE DATABASE [fff] FROM DISK = '" & TextBox1.Text & "' with replace ", con)
    Dim da AsNew SqlDataAdapter(cmdselect)
    con.Open()
    cmdselect.ExecuteNonQuery()
    con.Close()


    ایا درسته که در conection string از دیتابیس master استفاده کنیم؟


  2. #2
    این sp رو یکبار من توی سرچ هام پیدا کردم که user های دیگه رو که به دیتابیس شما وصل هستند kill می کنه.

    http://www.aspdeveloper.net/tiki-pri...hp?articleId=6


    USE MASTER
    IF EXISTS (SELECT name FROM sysobjects
    WHERE name = 'USP_GETEXCLUSIVE ' AND type = 'P')
    DROP PROCEDURE USP_ GETEXCLUSIVE
    GO

    --create stored procedure
    CREATE PROCEDURE USP_GETEXCLUSIVE @dbname varchar(100) AS
    SET NOCOUNT ON
    SET QUOTED_IDENTIFIER OFF

    --declares our variables
    DECLARE @KILL_ID int
    DECLARE @QUERY VARCHAR(320)

    DECLARE GETEXCLUSIVE_CURSOR CURSOR FOR

    --get all SPIDs from SYSOBJECTS table which match our database
    SELECT A.SPID FROM SYSPROCESSES A JOIN
    SYSDATABASES B ON A.DBID=B.DBID WHERE B.NAME=@DBNAME

    OPEN GETEXCLUSIVE_CURSOR
    FETCH NEXT FROM GETEXCLUSIVE_CURSOR INTO @KILL_ID

    WHILE(@@FETCH_STATUS =0)
    BEGIN

    --form drop trigger query
    SET @QUERY = "KILL "+ CONVERT(VARCHAR,@KILL_ID)

    EXEC (@QUERY)
    FETCH NEXT FROM GETEXCLUSIVE_CURSOR INTO @KILL_ID
    END

    CLOSE GETEXCLUSIVE_CURSOR
    DEALLOCATE GETEXCLUSIVE_CURSOR

  3. #3
    سلام استاد این ALTER DATABASE چی میشود؟از این SP ای که شما فرمودید بهتر است استفاده کرد یا از دستور ALTER DATABASE؟

  4. #4
    در این حالتی که توی کد شما دیدم و می خواهید از Alter database استفاده کنید عملا کاری که می کنید اینه که دیتابیس رو single user می کنید و بعد باهاش کار می کنید . این در واقع فرقی با حالتی که شما یوزر ها رو kill کنید نداره چون در هر دو حالت عملا ارتباط بقیه یوزر ها با بانک قطع میشه. پس فرقی نمی کنه از چه روشی استفاده کنید. البته من خودم به شخصه روش kill user رو استفاده می کنم. چون وقتی که شما قرار هست دیتابیس رو restore کنید اصولا وصل بودن کاربر توی اون لحظه به دیتابیس معنا نداره.

  5. #5
    از همه سریعتر و کم هزینه تر این هست ک دیتابیس رو Offline کنین قبل از Restore:


    ALTER DATABASE Northwind
    SET OFFLINE WITH ROLLBACK IMMEDIATE

  6. #6
    سلامبا تشکر از راهنمایهای دوستان چند تا سوال داشتم.ایا لازم نیست که بعد از restore کردن دیتابیس را از حالت offline خارج کنیم؟وقتی این برنامه روی سرور اجرا میشود و دیتابیس داره restore میشود. و یه کاربر میخواهد از همین دیتابیس استفاده کند حالت offline بودن دیتابیس چهطوری بهش تذکر داده میشود ؟ایا پیغام خطایی نمایش داده میشود؟در ضمن این کد restore کردن بر روی سرور به مجوز خاصی احتیاج دارد و یا همان مجوزهای پیش فرض کافیه.ممنون

  7. #7
    - بعد از Restore دیتابیس Online خواهد بود.
    - برای مجوزها، به راهنمای دستور RESTORE DATABASE در Books Online (اواسط صفحه مربوطه) مراجعه کنید

  8. #8
    کاربر تازه وارد آواتار JaVaD_1900
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    تبریز
    پست
    52

    نقل قول: KILL USER یا ALTER DATABSE ؟

    من با روش ALTER DATABASE پايگاه دادم رو Restore مي كنم ولي اين Error رو مي ده ؟
    ممنون مي شوم اگه راهنمايي كنيد ؟

  9. #9

    نقل قول: KILL USER یا ALTER DATABSE ؟

    دوست عزیزم قبل از اون عملیات، دیتابیس خودتون رو عوض کنین، مثلا USE MASTER انجام بدین

  10. #10
    کاربر تازه وارد آواتار JaVaD_1900
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    تبریز
    پست
    52

    نقل قول: KILL USER یا ALTER DATABSE ؟

    نقل قول نوشته شده توسط AminSobati مشاهده تاپیک
    دوست عزیزم قبل از اون عملیات، دیتابیس خودتون رو عوض کنین، مثلا USE MASTER انجام بدین
    ببخشيد،منظورتون اين است كه يك Connection ديگر براي يك DB ديگر را Open و Close كنم ؟
    مي شه يكم بيشتر توضيح بدين ؟!!؟

  11. #11

    نقل قول: KILL USER یا ALTER DATABSE ؟

    نه دوست عزیزم،
    از همون Connection ابتدا دستور USER MASTER رو اجرا کنین بعد Restore انجام بدین

  12. #12
    کاربر تازه وارد آواتار JaVaD_1900
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    تبریز
    پست
    52

    نقل قول: KILL USER یا ALTER DATABSE ؟

    ممنون ميشم اگه نحوه استفاده از USER MASTER رو در SqlCommand برام بنويسيد سايت رو جستجو كردم ولي پيدا نكردم ...

  13. #13
    کاربر دائمی آواتار mom alone
    تاریخ عضویت
    فروردین 1384
    محل زندگی
    ایران
    سن
    40
    پست
    196

    نقل قول: KILL USER یا ALTER DATABSE ؟

    نازت شم بعد یه سیمی کالن تو کانکشن اینو بنویس دیگه
    USER MASTER ;RESTORE DATABASE Test FROM DISK='c:\\dbBackup.bak'
    ok?
    البته اگه دیتا بیس خودت در حال استفاده است یا پیغام in use رو داد
    از کلک offline استفاده کن

  14. #14
    کاربر تازه وارد آواتار JaVaD_1900
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    تبریز
    پست
    52

    نقل قول: KILL USER یا ALTER DATABSE ؟

    واي خداي من،، چي شد !!!
    اين رو ببينيد،واسه خاطر يك Restore ساده ...

    اين هم نتيجه كار ... ديگه نمي دونم چيكار كنم ؟؟
    من از ALTER DATABASE استفاده كردمكه مشكل Database in use رو نداشته باشم !!!
    در بالا هم اول CMD ALTER رو اجرا مي كنم بعد Restore رو ...
    حالا اين كلك Offline چي هست ؟؟

تاپیک های مشابه

  1. سرعت پایین کریستال در هنگام خواندن عکس از databse
    نوشته شده توسط moh_mas در بخش گزارش سازی با Crystal Report
    پاسخ: 2
    آخرین پست: سه شنبه 10 مهر 1386, 13:15 عصر
  2. مشکل با databse در upload
    نوشته شده توسط secureid در بخش ASP.NET Web Forms
    پاسخ: 6
    آخرین پست: چهارشنبه 02 خرداد 1386, 16:11 عصر
  3. وصل کردن phpبهdatabse
    نوشته شده توسط neda_barnamenevis در بخش PHP
    پاسخ: 4
    آخرین پست: یک شنبه 02 اردیبهشت 1386, 19:02 عصر
  4. Kill User/Port On RAS
    نوشته شده توسط alikarimi در بخش شبکه و Networking‌
    پاسخ: 6
    آخرین پست: دوشنبه 28 شهریور 1384, 20:44 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •