dorna1985
چهارشنبه 20 شهریور 1387, 21:04 عصر
سلام
اساتید محترم،با مشکل sqlی مواجه شدم که بصورت کامل شرح میدهم و امیدوارم بخوانید و راهنمایی کنید
به دلیل قطع برق Db distribution سرور که مربوط به replication هاست suspectشده و من به کمک تاپیک هایی که در سایت وجود داشت توانستم dbرو به حالت(read only/offline/emergency mode) تبدیل کنم و خوستم با استفاده از کد زیر log file رو بازسازی کنه و درنتیجه Db به وضعیت عادی رسید ه و Replicationها ادامه پیدا کنه ولی خطاهای زیر ظاهر شد.
DBCC TRACEON (3604)
DBCC REBUILD_LOG(yourdatabasename,'c:\yourdatabasename_ log.ldf')
خطا:
The database could not be exclusively locked to perform the operation.
Declare @DB sysname;set @DB = 'DBName';-- Put the database in emergency modeEXEC('ALTER DATABASE [' + @DB + '] SET EMERGENCY');--Set single user modeexec sp_dboption @DB, 'single user', 'TRUE';-- Repair databaseDBCC checkdb (@DB, repair_allow_data_loss);-- Turn off single user modeexec sp_dboption @DB, 'single user', 'FALSE';
خطا:
Server: Msg 102, Level 15, State 6, Line 1
Incorrect syntax near 'EMERGENCY'.
Server: Msg 5070, Level 16, State 2, Line 1
Database state cannot be changed while other users are using the database 'distribution'
Server: Msg 5069, Level 16, State 1, Line 1
ALTER DATABASE statement failed.
sp_dboption command failed.
Server: Msg 7919, Level 16, State 2, Line 8
Repair statement not processed. Database needs to be in single user mode.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
؟؟؟؟آیا میشه این خطا ها را از بین برد و db زنده شه و احتیاج به ایجاد و کپی تمام object ها نباشه؟
در مرحله بعد خواستم جداول وview, spها رو کپی کنم که دو تا از جدول ها که حجم db(حدود 7 gig) را گرفته با استفاده از دستور select into کپی نمی شه و time outمی ده (حجم به حدی بالاست که حتی نتیجه count(*) هم نشون داده نمیشه) ، در ضمن امکان export هم وجود نداره
؟؟؟آیا راهی برای کپی کامل این دو جدول وجود داره((mrepl_commands, mrepl_errors؟
ایجاد مجدد این replication ها خیلی سخت و زمانبره ، شما راه حلی برای این دو سوال دارین؟
ممنون
اساتید محترم،با مشکل sqlی مواجه شدم که بصورت کامل شرح میدهم و امیدوارم بخوانید و راهنمایی کنید
به دلیل قطع برق Db distribution سرور که مربوط به replication هاست suspectشده و من به کمک تاپیک هایی که در سایت وجود داشت توانستم dbرو به حالت(read only/offline/emergency mode) تبدیل کنم و خوستم با استفاده از کد زیر log file رو بازسازی کنه و درنتیجه Db به وضعیت عادی رسید ه و Replicationها ادامه پیدا کنه ولی خطاهای زیر ظاهر شد.
DBCC TRACEON (3604)
DBCC REBUILD_LOG(yourdatabasename,'c:\yourdatabasename_ log.ldf')
خطا:
The database could not be exclusively locked to perform the operation.
Declare @DB sysname;set @DB = 'DBName';-- Put the database in emergency modeEXEC('ALTER DATABASE [' + @DB + '] SET EMERGENCY');--Set single user modeexec sp_dboption @DB, 'single user', 'TRUE';-- Repair databaseDBCC checkdb (@DB, repair_allow_data_loss);-- Turn off single user modeexec sp_dboption @DB, 'single user', 'FALSE';
خطا:
Server: Msg 102, Level 15, State 6, Line 1
Incorrect syntax near 'EMERGENCY'.
Server: Msg 5070, Level 16, State 2, Line 1
Database state cannot be changed while other users are using the database 'distribution'
Server: Msg 5069, Level 16, State 1, Line 1
ALTER DATABASE statement failed.
sp_dboption command failed.
Server: Msg 7919, Level 16, State 2, Line 8
Repair statement not processed. Database needs to be in single user mode.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
؟؟؟؟آیا میشه این خطا ها را از بین برد و db زنده شه و احتیاج به ایجاد و کپی تمام object ها نباشه؟
در مرحله بعد خواستم جداول وview, spها رو کپی کنم که دو تا از جدول ها که حجم db(حدود 7 gig) را گرفته با استفاده از دستور select into کپی نمی شه و time outمی ده (حجم به حدی بالاست که حتی نتیجه count(*) هم نشون داده نمیشه) ، در ضمن امکان export هم وجود نداره
؟؟؟آیا راهی برای کپی کامل این دو جدول وجود داره((mrepl_commands, mrepl_errors؟
ایجاد مجدد این replication ها خیلی سخت و زمانبره ، شما راه حلی برای این دو سوال دارین؟
ممنون