You have multiple accounts
Choose the account you want to sign in with.

Tóm tắt

Bản cập nhật này giới thiệu một lệnh quản lý mới DBCC CLONEDATABASE (Transact-SQL) trong SQL Server 2017 trên Windows, gói dịch vụ 4 cho SQL Server 2012,Microsoft SQL Server 2014 Service pack 2SQL Server 2016 SP1. Lệnh này tạo cơ sở dữ liệu mới có chứa lược đồ của tất cả các đối tượng và thống kê từ cơ sở dữ liệu nguồn được chỉ định. 

Lưu ý Trong môi trường SQL Server 2014, bạn phải cài đặt bản Cập Nhật tích lũy 3 cho SQL server 2014 SP2 để có khả năng sao chép các đối tượng clone Filestream, FileTable và ngôn ngữ phổ biến (CLR) và clone với các tùy chọn NO_STATISTICS bằng cách sử dụng DBCC.

Giới thiệu về các gói dịch vụ dành cho SQL Server

 

Các gói dịch vụ được tích lũy. Mỗi gói dịch vụ mới chứa tất cả bản vá trong các gói dịch vụ trước đó cùng với mọi bản vá mới. Đề xuất của chúng tôi là áp dụng gói dịch vụ mới nhất và bản Cập Nhật tích lũy mới nhất cho gói dịch vụ đó. Bạn không cần phải cài đặt gói dịch vụ trước đó trước khi cài đặt gói dịch vụ mới nhất. Sử dụng bảng 1 trong bài viết sau để tìm hiểu thêm thông tin về gói dịch vụ mới nhất và bản Cập Nhật tích lũy mới nhất.

Làm thế nào để xác định phiên bản, phiên bản và mức Cập Nhật của SQL Server và các thành phần của nó

Giới thiệu về DBCC CLONEDATABASE

Dịch vụ hỗ trợ khách hàng của Microsoft có thể yêu cầu bạn tạo một bản sao của cơ sở dữ liệu bằng cách dùng DBCC CLONEDATABASE để điều tra sự cố hiệu suất liên quan đến trình tối ưu truy vấn.Lưu ý Cơ sở dữ liệu mới được tạo ra từ DBCC CLONEDATABASE không được hỗ trợ để sử dụng như một cơ sở dữ liệu sản xuất và chủ yếu được dự định để khắc phục sự cố và mục đích chẩn đoán. Chúng tôi khuyên bạn nên tách cơ sở dữ liệu được nhân bản sau khi tạo cơ sở dữ liệu. Các nhân bản của cơ sở dữ liệu nguồn được thực hiện theo các thao tác sau đây:

  • Tạo một cơ sở dữ liệu đích mới sử dụng cùng một bố trí tệp như nguồn nhưng có kích cỡ tệp mặc định là cơ sở dữ liệu mô hình.

  • Tạo một bản chụp nội bộ của cơ sở dữ liệu nguồn.

  • Sao chép siêu dữ liệu hệ thống từ nguồn đến cơ sở dữ liệu đích.

  • Sao chép tất cả lược đồ cho tất cả các đối tượng từ nguồn đến cơ sở dữ liệu đích.

  • Sao chép số liệu thống kê cho tất cả các chỉ mục từ nguồn đến cơ sở dữ liệu đích.

Syntax

DBCC CLONEDATABASE (source_database_name, target_database_name)[WITH [NO_STATISTICS][,NO_QUERYSTORE]] 

Cứ

  • source_database_nameĐối số này là tên của cơ sở dữ liệu có lược đồ và thống kê cần được sao chép.

  • target_database_nameĐối số này là tên của cơ sở dữ liệu mà lược đồ và thống kê từ cơ sở dữ liệu nguồn sẽ được sao chép. Cơ sở dữ liệu này sẽ được tạo bởi DBCC CLONEDATABASE và chưa có sẵn.

  • NO_STATISTICSĐối số này xác định nếu thống kê bảng/chỉ mục cần được loại trừ trong bản sao. Nếu tùy chọn này không được xác định, thì số liệu thống kê bảng/chỉ mục được tự động đưa vào. Tùy chọn này sẵn có bắt đầu với SQL Server 2014 SP2 CU3 và SQL Server 2016 Service Pack 1.

  • NO_QUERYSTOREĐối số này xác định nếu cửa hàng truy vấn cần được loại trừ trong bản sao. Nếu tùy chọn này không được xác định, dữ liệu truy vấn lưu trữ được sao chép vào clone nếu nó được bật trong cơ sở dữ liệu nguồn. Tùy chọn này sẵn có bắt đầu với SQL Server 2016 Service Pack 1.

Khi nào nên sử dụng DBCC CLONEDATABASE?

DBCC CLONEDATABASE nên được dùng để tạo sơ đồ và thống kê chỉ bản sao của một cơ sở dữ liệu sản xuất để điều tra các vấn đề về hiệu suất truy vấn. Hãy lưu ý về các hạn chế sau và các đối tượng được hỗ trợ:

  • VềTính tổng hợp sau đây được thực hiện bởi DBCC CLONEDATABASE. Lệnh không thành công nếu bất kỳ tính tổng hợp nào không thành công.

    • Cơ sở dữ liệu nguồn phải là cơ sở dữ liệu người dùng. Cloning của cơ sở dữ liệu hệ thống (bản cái, mô hình, msdb, tempdb, cơ sở dữ liệu phân phối, v.v.) không được phép.

    • Cơ sở dữ liệu nguồn phải trực tuyến hoặc có thể đọc được.

    • Cơ sở dữ liệu sử dụng cùng tên với cơ sở dữ liệu clone đã không tồn tại.

    • Lệnh không có trong giao dịch người dùng.

    Nếu tất cả các tính tổng hợp được thành công, DBCC CLONEDATABASE sẽ chạy các thao tác sau đây:

    • Tạo tệp dữ liệu chính và tệp nhật ký

    • Thêm biểu dữ liệu phụ

    • Thêm tệp phụ

    Lưu ý Tất cả các tệp trong cơ sở dữ liệu đích sẽ thừa kế các thiết đặt kích cỡ và tăng trưởng từ cơ sở dữ liệu mô hình. Quy ước tên tệp: tên tệp cho cơ sở dữ liệu đích sẽ theo dõi quy trình số source_file_name _underscore_random . Nếu tên tệp đã tạo đã tồn tại trong thư mục đích, DBCC CLONEDATABASE sẽ không thành công.

  • Ảnh chụp nhanh cơ sở dữ liệu nội bộtrongDBCC CLONEDATABASE sử dụng bản chụp cơ sở dữ liệu nội bộ của cơ sở dữ liệu nguồn cho tính nhất quán giao dịch là cần thiết để thực hiện bản sao. Điều này sẽ ngăn chặn và đồng thời các vấn đề khi các lệnh này được thực thi. Nếu không thể tạo được ảnh chụp, DBCC CLONEDATABASE sẽ không thành công. Khóa cấp độ cơ sở dữ liệu được tổ chức trong các bước sau đây của quy trình sao chép:

    • Xác thực cơ sở dữ liệu nguồn

    • Có S Lock cho cơ sở dữ liệu nguồn

    • Tạo ảnh chụp nhanh của cơ sở dữ liệu nguồn

    • Tạo cơ sở dữ liệu clone (đây là cơ sở dữ liệu có sản phẩm nào được kế thừa từ mô hình)

    • Tải X Lock cho cơ sở dữ liệu clone

    • Sao chép siêu dữ liệu vào cơ sở dữ liệu clone

    • Phát hành tất cả các khóa DB

    Ngay sau khi lệnh đã chạy xong, bản chụp nội bộ được giảm đi. Các tùy chọn đáng tin cậy và DB_CHAINING được tắt trên cơ sở dữ liệu được nhân bản.

Các đối tượng được hỗ trợ

Chỉ sơ đồ đối tượng sau đây sẽ được nhân bản trong cơ sở dữ liệu đích. Các đối tượng được mã hóa có được nhân bản nhưng không được hỗ trợ trong bản sao trong bản phát hành SQL Server này. Bất kỳ đối tượng nào không được liệt kê trong phần sau đây không được hỗ trợ trong bản ghi:

  • VAI TRÒ ỨNG DỤNG

  • NHÓM SẴN SÀNG

  • CHỈ MỤC COLUMNSTORE

  • CPC

  • CDC

  • Thay đổi theo dõi (SQL Server 2016 SP2 CU10, SQL Server 2017 CU17, SQL Server 2019 CU1 và các phiên bản mới hơn)

  • CLR (bắt đầu từ SQL Server 2014 SP2 CU3, SQL Server 2016 Service Pack 1 và các phiên bản mới hơn)

  • THUỘC TÍNH CƠ SỞ DỮ LIỆU

  • MẶC định

  • TỆP VÀ NHÓM FILETIN

  • Văn bản đầy đủ (bắt đầu từ SQL Server 2016 SP1 CU2)

  • CHỨC

  • THUẬN

  • TRUY

  • HÀM PARTITION

  • SƠ ĐỒ PHÂN VÙNG

  • GIẢI Ghi chú Quy trình T-SQL được hỗ trợ trong tất cả các bản phát hành bắt đầu từ SQL Server 2014 SP2. Các thủ tục CLR được hỗ trợ bắt đầu từ SQL Server 2014 SP2 CU3. Thủ tục biên soạn nguyên được hỗ trợ bắt đầu từ SQL Server 2016 SP1.

  • CỬA hàng truy vấn (chỉ trong SQL Server 2016 Service Pack 1 và các phiên bản mới nhất) Ghi chú Cửa hàng truy vấn chỉ được sao chép nếu nó được bật trên cơ sở dữ liệu nguồn. Để sao chép các thống kê thời gian chạy mới nhất như một phần của cửa hàng truy vấn, hãy thực thi sp_query_store_flush_db để làm sạch các số liệu thống kê thời gian chạy đến cửa hàng truy vấn trước khi thực hiện DBCC CLONEDATABASE.

  • NHẬP

  • CAI

  • LƯỢC đồ

  • HÓA

  • CHỈ MỤC KHÔNG GIAN

  • DỮ

  • TỪ đồng nghĩa

  • BẢNG

  • BẢNG tối ưu hóa bộ nhớ (chỉ trong SQL Server 2016 SP1 và các phiên bản mới hơn).

  • CÁC đối tượng FILESTREAM và FILETABLE (bắt đầu từ SQL Server 2014 SP2 CU3, SQL Server 2016 SP1 và các phiên bản mới hơn).

  • KÍCH hoạt

  • KIỂU

  • DB ĐÃ NÂNG CẤP

  • NGƯỜI dùng

  • QUAN

  • CHỈ MỤC XML

  • BỘ SƯU TẬP SƠ ĐỒ XML

 

Quyền

Bạn phải có tư cách thành viên trong vai trò máy chủ cố định sysadmin .

Các hạn chế và cân nhắc

DBCC CLONEDATABASE không hỗ trợ việc tạo ra một bản sao nếu có bất kỳ đối tượng người dùng nào (bảng, chỉ mục, thư mục, vai trò, v.v.) được tạo trong cơ sở dữ liệu mô hình. Nếu đối tượng người dùng đang trình bày trong cơ sở dữ liệu mô hình, các clone cơ sở dữ liệu không thành công với thông báo lỗi sau đây:

Msg 2601, mức 14, trạng thái 1, dòng 1không thể chèn hàng khóa trùng lặp trong <bảng hệ thống> với tên chỉ mục chỉ mục duy nhất ' '. Giá trị phím trùng lặp là <giá trị then chốt>   

Để biết thông tin liên quan đến bảo mật dữ liệu trên cơ sở dữ liệu được nhân bản, hãy xem blog sau:hiểu bảo mật dữ liệu trong cơ sở dữliệu được nhân bản.

Nếu bạn có chỉ mục lưu trữ cột, hãy xem blog sau:cân nhắc khi bạn điều chỉnh các truy vấn với các chỉ mục columnstore trên cơ sở dữ liệu cloneđể cập nhật thống kê chỉ mục columnstore trước khi bạn chạy lệnh DBCC clonedatabase .

Thông báo Nhật ký lỗi

Các thông báo sau đây được ghi nhật ký lỗi trong quá trình Cloning:

<dấu thời gian> cơ sở dữ liệu spid53 cloning cho ' sourcedb ' đã bắt đầu với mục tiêu là ' sourcedb_clone ' . <dấu thời gian> spid53 bắt đầu lên cơ sở dữ liệu ' sourcedb_clone '. <dấu thời gian > spid53 tùy chọn thiết đặt cơ sở dữ liệu đáng tin cậy để tắt cho cơ sở dữ liệu ' sourcedb_clone '. <dấu thời Timestampgian> spid53 thiết đặt tùy chọn cơ sở dữ liệu DB_CHAINING "". Một cơ sở dữ liệu được nhân bản chỉ được sử dụng cho các mục đích chẩn đoán và không được hỗ trợ để sử dụng trong môi trường sản xuất . <dấu thời gian> cơ sở dữ liệu spid53 cloning cho ' sourcedb ' đã hoàn tất. Cơ sở dữ liệu được nhân bản là ' sourcedb_clone '.

Thuộc tính cơ sở dữ liệu

Isclone thuộc tính cơ sở dữ liệu mới được thêm vào. Databasepropertyex (' dbname ', ' IsClone ') sẽ trả về 1 nếu cơ sở dữ liệu được tạo bằng DBCC clonedatabase.

Chiếc

  1. Tạo một bản sao của cơ sở dữ liệu AdventureWorks bao gồm lược đồ, thống kê và cửa hàng truy vấn (SQL Server 2016 SP1 và các phiên bản mới hơn)

    Transact-SQL -- Generate the clone of AdventureWorks database.    DBCC CLONEDATABASE (AdventureWorks, AdventureWorks_Clone);    GO 
  2. Tạo một bản sao chỉ trong sơ đồ của cơ sở dữ liệu AdventureWorks trong SQL Server 2014 mà không có thống kê (SQL Server 2014 SP2 CU3 và các phiên bản mới hơn)

    DBCC CLONEDATABASE (AdventureWorks, AdventureWorks_Clone) WITH NO_STATISTICS
  3. Tạo một bản sao chỉ trong sơ đồ của cơ sở dữ liệu AdventureWorks mà không có thống kê và cửa hàng truy vấn (SQL Server 2016 SP1 và các phiên bản mới hơn)

    DBCC CLONEDATABASE (AdventureWorks, AdventureWorks_Clone) WITH NO_STATISTICS,NO_QUERYSTORE

Tham khảo

Tìm hiểu về thuật ngữ mà Microsoft sử dụng để mô tả các bản cập nhật phần mềm.

Bạn cần thêm trợ giúp?

Phát triển các kỹ năng của bạn
Khám phá nội dung đào tạo
Sở hữu tính năng mới đầu tiên
Tham gia Microsoft dùng nội bộ

Thông tin này có hữu ích không?

Bạn hài lòng đến đâu với chất lượng dịch thuật?
Điều gì ảnh hưởng đến trải nghiệm của bạn?

Cảm ơn phản hồi của bạn!

×