Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách tốt nhất để sao chép cơ sở dữ liệu (SQL Server 2008)

Cách dễ nhất thực sự là một kịch bản.

Chạy điều này trên sản xuất:

USE MASTER;

BACKUP DATABASE [MyDatabase]
TO DISK = 'C:\temp\MyDatabase1.bak' -- some writeable folder. 
WITH COPY_ONLY

Một lệnh này tạo một bản sao lưu hoàn chỉnh của cơ sở dữ liệu vào một tệp duy nhất mà không ảnh hưởng đến tính khả dụng của sản xuất hoặc lịch sao lưu, v.v.

Để khôi phục, chỉ cần chạy điều này trên máy chủ phát triển hoặc SQL Server thử nghiệm của bạn:

USE MASTER;

RESTORE DATABASE [MyDatabase]
FROM DISK = 'C:\temp\MyDatabase1.bak'
WITH
MOVE 'MyDatabase'   TO 'C:\Sql\MyDatabase.mdf', -- or wherever these live on target
MOVE 'MyDatabase_log'   TO 'C:\Sql\MyDatabase_log.ldf',
REPLACE, RECOVERY

Sau đó, lưu các tập lệnh này trên mỗi máy chủ. Tiện lợi bằng một cú nhấp chuột.

Chỉnh sửa:
nếu bạn gặp lỗi khi khôi phục mà các tên lôgic không khớp, bạn có thể nhận được chúng như sau:

RESTORE FILELISTONLY
FROM disk = 'C:\temp\MyDatabaseName1.bak'

Nếu bạn sử dụng thông tin đăng nhập SQL Server (không phải xác thực cửa sổ), bạn có thể chạy điều này sau mỗi lần khôi phục (trên máy dev / test):

use MyDatabaseName;
sp_change_users_login 'Auto_Fix', 'userloginname', null, 'userpassword';


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tuyên bố đã chấm dứt. Đệ quy tối đa 100 đã hết trước khi hoàn thành câu lệnh

  2. Làm cách nào để loại bỏ các hàng trùng lặp?

  3. LEFT () so với SET TEXTSIZE trong SQL Server:Sự khác biệt là gì?

  4. Các truy vấn được thực thi lần cuối cho một cơ sở dữ liệu cụ thể

  5. Làm cách nào để lấy địa chỉ IP máy khách từ chính SQL Server 2008?