Vị trí của tệp mdf của cơ sở dữ liệu


19

Tôi có một cơ sở dữ liệu Project. Vấn đề của tôi là nơi tôi có thể tìm thấy .mdf_log.ldfcơ sở dữ liệu của mình để tôi có thể chuyển cơ sở dữ liệu của mình cho người dùng khác. Tôi đang sử dụng Microsoft SQL Server 2008 Management Studio

Cơ sở dữ liệu f thuộc tính

Của tôi Ssms.exeđược lưu trữ trong đường dẫn này

C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe

Câu trả lời:


22

Có một số cách để xác định vị trí của tệp mdf SQL Server và (các) tệp nhật ký được liên kết.

  1. Mở Enterprise Manager, nhấp chuột phải vào cơ sở dữ liệu bạn quan tâm và chọn thuộc tính. Chọn phần Tệp và cuộn qua các cột PathFileName.

  2. Mở một cửa sổ truy vấn và chạy truy vấn có liên quan bên dưới và xem Physical_Namecột.

SQL 2005 trở lên:

SELECT * FROM sys.database_files

SQL 2000:

SELECT * FROM dbo.sysfiles
  1. Mở một cửa sổ truy vấn và chạy sp_helpfilevà xem FileNamecột.

Tất nhiên, vì các tệp này được SQL Server sử dụng, bạn không nên cố gắng sao chép các tệp vào một vị trí khác.

Phương pháp tốt nhất là thực hiện sao lưu từ bên trong Trình quản lý doanh nghiệp bằng cách nhấp chuột phải vào cơ sở dữ liệu bạn quan tâm và chọn Nhiệm vụ -> Sao lưu.

Ngoài ra, bạn có thể tách cơ sở dữ liệu của mình, sao chép các tệp và sau đó đính kèm.

Một lựa chọn thứ ba một khi bạn có một bản sao của cơ sở dữ liệu đang chạy ở nơi khác, là để thiết lập vận chuyển hoặc sao chép nhật ký.


1
Điều này không tạo ra thông tin về TempDB, model hoặc msdb.
Slogmeister Extraordinaire

14

SQL 2005 trở đi: Truy vấn sau đây sẽ cung cấp cho bạn danh sách tất cả các cơ sở dữ liệu và các tệp được liên kết:

SELECT sd.NAME
,smf.NAME
,smf.type_desc
,(CAST(smf.size AS FLOAT) * 8096) AS SizeBytes
,(CAST(smf.size AS FLOAT) * 8096) / (1024) AS SizeKB
,(CAST(smf.size AS FLOAT) * 8096) / (1024 * 1024) AS SizeMB
,(CAST(smf.size AS FLOAT) * 8096) / (1024 * 1024 * 1024) AS SizeGB
,smf.physical_name
,sd.log_reuse_wait_desc
,sd.recovery_model_desc
,*
FROM sys.databases sd
INNER JOIN sys.master_files smf ON sd.database_id = smf.database_id
WHERE
smf.type_desc IN (
    'ROWS'
    ,'LOG'
    )
ORDER BY SizeGB DESC

1
Tôi sẽ xóa mệnh đề WHERE để đảm bảo bạn nhận được tất cả các tệp được liên kết với cơ sở dữ liệu.
Slogmeister Extraordinaire

14

Bạn đã vào đúng hộp thoại, nhưng tab sai Mở tab Tệp , đường dẫn được hiển thị cho tất cả các tệp cơ sở dữ liệu nhập mô tả hình ảnh ở đây


2

Cách tốt nhất và dễ dàng để tìm (.mdf & .ldf)tệp, kích thước và tốc độ tăng trưởng, v.v. chi tiết của cơ sở dữ liệu cụ thể thông qua bên dưới đề cập đến Truy vấn TSQL.

exec sp_helpdb @dbname='Databasename';
Go

-2

Đường dẫn cho .mdf và .ldf sẽ là

Ổ đĩa gốc (nơi Os được cài đặt) ->

Các tệp chương trình (cho các ứng dụng 64 bit) hoặc các tệp chương trình (x86) cho 32 nhưng các ứng dụng->

Máy chủ Microsoft SQL->

MSSQL11.SQL2012->

MSSQL->

DỮ LIỆU


MSSQL11.SQL2012 Đây là dành cho người dùng đã sử dụng SQL 2012 ...

Vì vậy, bạn có thể dễ dàng nhận ra tên thư mục nào cho mình khi bạn đang sử dụng SQL 2008 trong thư mục "Microsoft SQL Serve" trong đường dẫn đã đề cập


2
Điều này là hoàn toàn chính xác - cho các cài đặt nhỏ. Đối với bất kỳ cài đặt thực nào, ai đó sẽ lên kế hoạch bố trí đĩa và có thể đã xác định các vị trí thay thế trên db tạo hoặc thậm chí là mặc định. Bạn thậm chí có thể thay đổi điều đó trong khi thiết lập. Tôi có thể nói trong bất kỳ môi trường không tầm thường nào, mọi người KHÔNG đổ dữ liệu và tệp nhật ký vào ổ C (có tệp chương trình sống).
TomTom
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.