Lỗi version file sql server không attach được năm 2024

--Mình có 1 database, vì quá trình truy xuất và xử lý database này rất nhiều nên file log của nó ngày càng lớn. Thế là mình STOP SQL lại, sau đó xóa cái file log của database này đi rồi sau đó xóa luôn datbase này (tuy nhiên mình vẫn giữ lại file DATA của database này bằng cách copy ra). Sau đó mình tiến hành ATTACH lại database này thì bị báo lỗi...

Cái Error đó như sau: "Error 1813: Could not open new database 'Ten_database'. Create database is aborted. Device activation error. The phýical file name 'Duong_dan_file_log' may be incorrect."

Cái mình không hiểu ở đây là mình có tổng cộng 3 database, mình cũng đều xóa hết log file của các database này. Nhưng khi attach lại thì chỉ attach được 2 cái, cái còn lại thì báo lỗi như trên đó...

Mọi người ai biết về vấn đề này xin vui lòng chỉ mình nhé. Vì mình đang đi làm nên database này cũng rất là quan trọng. Vì CSDL rất lớn và có nhiều table nên vấn đề tạo lại rất mất thời gian...

Cho mình cảm ơn trước ........


Các cao thủ SQL làm ơn vào đây giúp mình với


Mình đã khắc phụ được vấn đề trên rùi, post lên cho các bạn tham khảo nhé .Sau 2 ngày lục lọi tung hết trên Google, mình đã giải quyết được cái trouble này.....

Giả sử tên DB của mình là HeThong và mình chỉ có 1 file data là HeThong_data.MDF (mất tiu file log rùi).

---Các bước thực hiện như sau :

B1: Các bạn tạo mới một database có tên giống với database mà chúng ta cần Attach vào đó. Ở đây tên DB sẽ là HeThong. Lúc này SQL sẽ tự tạo ra 2 file Data và file Log của DB mới

B2: Các bạn STOP SQL Server đí, sau đó các bạn copy file Data mà chúng ta không attach được override lên file Data mà SQL mới tạo ra cho DB mới. Sau đó các bạn xóa đi file Log mà SQL sinh ra cho database này.....

B3: Các bạn START SQL Server lên, lúc này khi vào Enterprise Manager chúng ta sẽ thấy database HeThong sẽ có màu xám xịt và status của nó hiện thời sẽ là Suspect Mode...Các bạn cứ yên tâm, ko có gì đâu.hi hi hi...

B4: Chúng ta vào Query Anylizer và gõ đoạn code sau và thực thi chúng. Đoạn code này cho phép chúng ta update các system catalog:

use master go sp_configure 'allow updates',1 reconfigure with override go

B5: Tiếp tục chúng ta sẽ thựe thi đoạn code tiếp theo: select * from sysdatabases where name='HeThong' khi thực thi xong đoạn code này, chúng ta hãy lấy giấy viết và ghi lại trường status của database này. VD ở đây status là 123456 đi nhé

Sau đó các bạn thực thi đoạn code này để chuyển Mode của datbase HeThong từ Suspect Mode trở thành Emergency Mode: update sysdatabases set status=32768 where name='HeThong'

B6: Chúng ta STOP SQL Sever và RESTART lại

B7: Chúng ta thực thi đaọn code tiếp theo để hệ thống tự động phát sinh lại file Log cho database này dbcc traceon (3604) dbcc rebuild_log('ten_database','Thu_Muc_Chua_Data_SQL\ tendatabase_log.LDF') go

B8: Thực thi đoạn code sau để reset lại status của database này sp_resetstatus HeThong go

B9: Thực thi đoạn code sau: use master go sp_configure 'allow_updates',0 reconfigure with override go

B10: Thực thi đoạn code sau để set lại status cho database HeThong sp_configure 'allow updates',1 reconfigure with override go update sysdatabases set status= gia_tri_status_ma_chung_ta_ghi_lai_luc_dau where name='HeThong' go sp_configure 'allow updates',0 reconfigure with override go

B11: Sau khi thực hiện đúng với những bước trên, các bạn vào lại Enterprise Manager và xem lại Status của database của mình. Lúc nà y chắc chắn database của các bạn sẽ đang trong trạng thái online. he he

Mình đã làm theo trên và thấy có kết quả nên post lên chia sẽ cùng mọi người . hi vọng là sẽ giúp ích cho những ai cũng bị gặp trouble này như mình..

Chúc mọi người thành công nhé !!!!!


Các cao thủ đầu có mủ không ai lại đi xóa file log như bạn cả. Thường thì họ sẽ backup transaction log, xong rồi backup database. Có thể kết hợp với thuộc tính AutoSrink để thu nhỏ data file và log file. Nhưng dù sao cũng chúc mừng bạn đã tìm ra được giải pháp.


Cái này là do mình lỡ tay mà bạn . Trước đây mình không biết mỗi database đều có chức năng Shrink database đâu . Hi hi. Bi giờ thì đã biết rùi và sẽ không bao giờ làm cái điều củ chuối như thế nữa. Kinh nghiệm xương máu !!!


minhtrico

20-02-2008, 15:26

Bạn Xicuk ơi. Tôi format ổ cứng nên mất CSDL. Tôi đã dùng phần mềm Recovemyfile tìm được một số file .mdf. Tôi có thể khôi phục lại CSDL từ những file này không? Tôi đã thử Attach nhưng không được. Bạn giúp tôi với.


brightlight

21-02-2008, 08:35

mình cũng gặp rắc rối khi attach db. số là bạn mình gửi cho database về âm nhạc (gồm 2 file mdf và ldf. nhưng khi attach thì báo lỗi : "Error 602 : could not find row in sysindexes for database ID 9, Object ID 1, index ID 1. Run DBCC CHECKTABLE on sysindexes" . bạn nào bít chỉ giùm mình với


Bạn Xicuk ơi. Tôi format ổ cứng nên mất CSDL. Tôi đã dùng phần mềm Recovemyfile tìm được một số file .mdf. Tôi có thể khôi phục lại CSDL từ những file này không? Tôi đã thử Attach nhưng không được. Bạn giúp tôi với.

Trường hợp của bạn cũng giống mình đó...bạn thử làm theo cách mình hướng dẫn xem..chắc chắn là sẽ được


minhtrico

22-02-2008, 12:50

Tôi đã làm theo bạn Xicuk và đã kết nối được 1 database chạy tốt, attach fil mdf thứ hai thì chỉ chạy được chế độ Emergency Mode.Tôi thử chạy lại các đoạn code của bạn cung cấp vì sợ có thể thao tác sai chỗ nào đó nhưng cũng chỉ được như vậy. Xin bạn hướng dẫn khắc phục tiếp. Cám ơn bạn nhiều


Trường hợp của bạn cũng giống mình đó...bạn thử làm theo cách mình hướng dẫn xem..chắc chắn là sẽ được

Khả năng thành công là 0.1 % vì xác suất file của bạn sau khi recovery chắc chắn sẽ bị sai byte, bit nào đó... Tuy nhiên cũng chúc bạn may mắn.


phuhoapro

16-09-2011, 14:13

cac bac oi...minh bi mat du lieu..chi con file .LDF.. gio lam sao lay lai dc file .MDf nhi>>>>bac nao biet chi giup voi


Trong MsSql, hai loại file LDF và MDF là độc lập, có chức năng riêng. Chỉ có LDF file thì chẳng có cách nào đọc hay tạo lại MDF file được (, ngược lại thì như trên đã nói rồi ). Mất file thì dùng những chương trình tìm - phục hồi file. Loại CT này khá nhiều trong Windows.

Mất bò mới lo làm chuồng! Việc backup rất quan trọng. Trong Sql thường có bài học mở đầu về nó.


bongbingo

08-10-2011, 20:19

Mình đã khắc phụ được vấn đề trên rùi, post lên cho các bạn tham khảo nhé .Sau 2 ngày lục lọi tung hết trên Google, mình đã giải quyết được cái trouble này.....

Giả sử tên DB của mình là HeThong và mình chỉ có 1 file data là HeThong_data.MDF (mất tiu file log rùi).

---Các bước thực hiện như sau :

B1: Các bạn tạo mới một database có tên giống với database mà chúng ta cần Attach vào đó. Ở đây tên DB sẽ là HeThong. Lúc này SQL sẽ tự tạo ra 2 file Data và file Log của DB mới

B2: Các bạn STOP SQL Server đí, sau đó các bạn copy file Data mà chúng ta không attach được override lên file Data mà SQL mới tạo ra cho DB mới. Sau đó các bạn xóa đi file Log mà SQL sinh ra cho database này.....

B3: Các bạn START SQL Server lên, lúc này khi vào Enterprise Manager chúng ta sẽ thấy database HeThong sẽ có màu xám xịt và status của nó hiện thời sẽ là Suspect Mode...Các bạn cứ yên tâm, ko có gì đâu.hi hi hi...

B4: Chúng ta vào Query Anylizer và gõ đoạn code sau và thực thi chúng. Đoạn code này cho phép chúng ta update các system catalog:

use master go sp_configure 'allow updates',1 reconfigure with override go

B5: Tiếp tục chúng ta sẽ thựe thi đoạn code tiếp theo: select * from sysdatabases where name='HeThong' khi thực thi xong đoạn code này, chúng ta hãy lấy giấy viết và ghi lại trường status của database này. VD ở đây status là 123456 đi nhé

Sau đó các bạn thực thi đoạn code này để chuyển Mode của datbase HeThong từ Suspect Mode trở thành Emergency Mode: update sysdatabases set status=32768 where name='HeThong'

B6: Chúng ta STOP SQL Sever và RESTART lại

B7: Chúng ta thực thi đaọn code tiếp theo để hệ thống tự động phát sinh lại file Log cho database này dbcc traceon (3604) dbcc rebuild_log('ten_database','Thu_Muc_Chua_Data_SQL\ tendatabase_log.LDF') go

B8: Thực thi đoạn code sau để reset lại status của database này sp_resetstatus HeThong go

B9: Thực thi đoạn code sau: use master go sp_configure 'allow_updates',0 reconfigure with override go

B10: Thực thi đoạn code sau để set lại status cho database HeThong sp_configure 'allow updates',1 reconfigure with override go update sysdatabases set status= gia_tri_status_ma_chung_ta_ghi_lai_luc_dau where name='HeThong' go sp_configure 'allow updates',0 reconfigure with override go

B11: Sau khi thực hiện đúng với những bước trên, các bạn vào lại Enterprise Manager và xem lại Status của database của mình. Lúc nà y chắc chắn database của các bạn sẽ đang trong trạng thái online. he he

Mình đã làm theo trên và thấy có kết quả nên post lên chia sẽ cùng mọi người . hi vọng là sẽ giúp ích cho những ai cũng bị gặp trouble này như mình..

Chúc mọi người thành công nhé !!!!!

Hoan hô bạn _ ở đây chủ thread đề ra cách phục hồi file log database và mình thấy bạn chia sẻ rất hay. Việc backup ai ko biết là quan trọng nhưng ở đây case ko đề cập mong các bạn ko đi quá xa hì hì


huyquang301181

19-08-2013, 10:05

Các cao thủ giúp mình với : Mình có file backup từ SQL 2008, giờ muốn restore trên SQL 2000 thì làm thế nào vậy? Mình đã sử dụng Script Wizard rùi nhưng vẫn ko đc. Rất mong nhận được sự giúp đỡ từ các mem. Thanks.


phongdzan

09-05-2014, 09:16

Thank thớt nhiều nhá ! mình đã làm được :D


cao_hung

10-05-2014, 22:19

Rất đề cao tinh thần chia sẻ của chủ topic. Cố gắng phát huy nhé


tranminhhoanghvt

03-01-2016, 16:26

Mình có 1 CSDL SQL Server 2008 Express, còn cả 2 file MDF và LDF. Giờ mình chuyển qua dùng SQL Server 2014 Express, Attach vào không được. Mình làm theo cách của xicuk đến hết Bước 3, cop nguyên 2 file vào thư mục Data trong thư mục cài SQL, mở SQL lên thì hiện Database bình thường thêm, sửa, xoá, tạo View đc nhưng không tạo được Diagram, có hiện thông báo sau (hơi dài) -- Database diagram support objects cannot be installed because this database does not have a valid owner. To continue, first use the Files page of the Database Properties dialog box or the ALTER AUTHORIZATION statement to set the database owner to a valid login, then add the database diagram support objects. -- Mình tiếp tục làm theo cách của xicuk đến cuôi Bước 5 thì đoạn code ko Excute đc, thông báo "Msg 259, Level 16, State 1, Line 1 Ad hoc updates to system catalogs are not allowed." -- Mong đc giúp đỡ. để mình tạo được Diagrams


zBackup.vn

01-05-2016, 17:50

Các cao thủ giúp mình với : Mình có file backup từ SQL 2008, giờ muốn restore trên SQL 2000 thì làm thế nào vậy? Mình đã sử dụng Script Wizard rùi nhưng vẫn ko đc. Rất mong nhận được sự giúp đỡ từ các mem. Thanks.

Không restore ngược được bạn nhé. File backup được tạo bởi SQL Server có version cao hơn không thể restore vào SQL Server có version thấp hơn. Bạn setup SQL Server 2008 và restore vào đi. Vì sao bắt buộc phải restore vào SQL Server 2000?

Sẽ có cách này hoặc cách kia để giải đc yêu cầu của bạn. Nếu cần hỗ trợ add Skype mình zbackup(dot).vn, anh em bên mình hỗ trợ cho. Lưu ý dấu . thay cho (dot) nhé. Mình chưa đủ bài post nên chưa post link được. Bạn thông cảm!

P/S: Câu hỏi lâu rồi chắc bạn ko cần hỗ trợ nữa; nhưng mình cứ reply để có khi các anh em khác gặp vấn đề tương tự.


zBackup.vn

01-05-2016, 18:06

Trong MsSql, hai loại file LDF và MDF là độc lập, có chức năng riêng. Chỉ có LDF file thì chẳng có cách nào đọc hay tạo lại MDF file được (, ngược lại thì như trên đã nói rồi ). Mất file thì dùng những chương trình tìm - phục hồi file. Loại CT này khá nhiều trong Windows.

Mất bò mới lo làm chuồng! Việc backup rất quan trọng. Trong Sql thường có bài học mở đầu về nó.

Chính xoác! Nói chung nếu vẫn còn Data file (.MDF) thì ko có gì quá lo lắng. Ko cách này thì cách kia cũng khắc phục được thôi. Chỉ lưu ý xíu là không có Log file (.LDF) thì phải chấp nhận mất một lượng dữ liệu chưa được ghi xuống Data file (thường ko nhiều).

Còn trường hợp chỉ có Log file mà không có Data file và cũng không có bản sao lưu Full database (và các bản sao lưu Diff/Log) kế tiếp thì chỉ có thua. Microsoft cũng bó tay.

P/S: Lưu ý là về backup thì phải có bản sao lưu Full database nhé các bạn. Nếu chỉ có bản sao lưu Differential database và Transaction log thì cũng ko làm gì đc. Vì mọi thao tác restore database phải bắt đầu từ bản sao lưu Full database (rồi sau đó mới đến Diff và Log nếu có).


Mình có 1 CSDL SQL Server 2008 Express, còn cả 2 file MDF và LDF. Giờ mình chuyển qua dùng SQL Server 2014 Express, Attach vào không được. Mình làm theo cách của xicuk đến hết Bước 3, cop nguyên 2 file vào thư mục Data trong thư mục cài SQL, mở SQL lên thì hiện Database bình thường thêm, sửa, xoá, tạo View đc nhưng không tạo được Diagram, có hiện thông báo sau (hơi dài) -- Database diagram support objects cannot be installed because this database does not have a valid owner. To continue, first use the Files page of the Database Properties dialog box or the ALTER AUTHORIZATION statement to set the database owner to a valid login, then add the database diagram support objects. -- Mình tiếp tục làm theo cách của xicuk đến cuôi Bước 5 thì đoạn code ko Excute đc, thông báo "Msg 259, Level 16, State 1, Line 1 Ad hoc updates to system catalogs are not allowed." -- Mong đc giúp đỡ. để mình tạo được Diagrams

Search theo từ khóa user-lac-me, sqlviet. Tui ko post link được


quocviet11

07-02-2017, 07:17

update sysdatabases set status=32768 where name='ng_efund' báo lỗi Msg 259, Level 16, State 1, Line 1 Ad hoc updates to system catalogs are not allowed. làm đến bước này thì stop lại giúp với. chỉ còn file MDF thôi


PhamPhuong246

07-02-2017, 07:57

Sợ nhất là khi ta lấy hết dũng cảm để nhắn tin cho một người, Để rồi trả lại là sự im lặng lạnh người hay câu nói vô tình: ” Đừng làm phiền tôi nữa”.