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

SQL Server Tính khả dụng cao:Thêm đĩa mới vào phiên bản cụm chuyển đổi dự phòng hiện có

Trong bài viết trước của tôi, tôi đã giải thích quy trình từng bước cài đặt một nút trong Phiên bản cụm chuyển đổi dự phòng SQL Server hiện có. Cùng với đó, tôi cũng đã trình diễn chuyển đổi dự phòng thủ công và chuyển đổi dự phòng tự động.

Trong bài viết này, tôi sẽ trình bày quy trình thêm đĩa vào cụm chuyển đổi dự phòng và sau đó di chuyển cơ sở dữ liệu hiện có sang ổ đĩa mới.

Đầu tiên, để thêm đĩa trong cụm, chúng ta phải thực hiện các bước sau:
1. Tạo một đĩa ảo iSCSI mới.
2. Kết nối với đĩa ảo iSCSI mới bằng trình khởi tạo iSCSI từ các nút cụm chuyển đổi dự phòng.
3. Thêm đĩa mới vào bộ lưu trữ cụm chuyển đổi dự phòng hiện có.
4. Di chuyển tệp cơ sở dữ liệu mẫu sang đĩa mới.
Trước tiên, hãy để tôi giới thiệu ngắn gọn về thiết lập demo. Tôi đã tạo bốn máy ảo trên máy tính của mình. Đây là chi tiết:

Máy ảo Tên Máy chủ lưu trữ Địa chỉ IP Mục đích
Bộ điều khiển miền DC.Local 192.168.1.110 Máy ảo này sẽ được sử dụng làm bộ điều khiển miền.
SAN SAN.DC.Local 192.168.1.111 Máy ảo này sẽ được sử dụng như một SAN ảo. Tôi đã tạo hai đĩa ảo iSCSI mà tôi sẽ kết nối từ các nút cụm chuyển đổi dự phòng bằng trình khởi tạo iSCSI.
Nút SQL chính SQL01.DC.Local 192.168.1.112 Trên máy ảo này, chúng tôi sẽ cài đặt phiên bản cụm chuyển đổi dự phòng.
Nút SQL phụ SQL02.DC.Local 192.168.1.113 Trên máy ảo này, chúng tôi sẽ cài đặt nút phụ của phiên bản cụm chuyển đổi dự phòng.

Trên SAN.DC.Local , Tôi đã tạo ba ổ iSCSI. Chi tiết như sau:

tên ổ iSCSI Mục đích
Sql-data Trên ổ đĩa này, chúng tôi đang lưu trữ các tệp cơ sở dữ liệu của cơ sở dữ liệu người dùng và tệp TempDB.
Sql-log Trên ổ đĩa này, chúng tôi đang lưu trữ các tệp nhật ký của cơ sở dữ liệu người dùng.
túc số Ổ đĩa này được sử dụng làm túc số.

Sau đây là ảnh chụp màn hình cấu hình của chúng tôi:

Tạo đĩa iSCSI

Như tôi đã đề cập ở trên, trước tiên chúng ta nên tạo một ổ đĩa ảo iSCSI. Trong trường hợp này, tôi sẽ sử dụng PowerShell để tạo và định cấu hình các đĩa ảo iSCSI có kích thước cố định. Kích thước của đĩa ảo là 8 GB. Để tạo ổ iSCSI mới, hãy thực hiện lệnh sau.

New-IscsiVirtualDisk –Path F:\new-sql-data\new-sql-data.vhdx –SizeBytes (8GB) –UseFixed

Để xác minh rằng đĩa iSCSI được tạo thành công, hãy mở S sai lầm M anager và nhấp vào đĩa ảo iSCSI trên ngăn bên trái. Xem hình ảnh sau:

Bây giờ chúng ta phải tạo một mục tiêu iSCSI. Máy chủ từ xa có thể kết nối với đĩa ảo bằng cách sử dụng tên đích. Ở đây, tôi sẽ tạo một mục tiêu có tên là new-sql-data . Để tạo mục tiêu iSCSI có tên là “ new-sql-data ”Và gán nó cho SQL02.dc.Local SQL02.dc.Local , thực hiện lệnh sau.

New-IscsiServerTarget -TargetName "new-sql-data" -InitiatorIds @("IQN:iqn.1991-05.com.microsoft:sql01.dc.local", "IQN:iqn.1991-05.com.microsoft:sql02.dc.local")

Khi mục tiêu iSCSI được tạo, chúng ta phải gán đĩa ảo của mình cho mục tiêu iSCSI. Để làm điều đó, hãy thực hiện truy vấn sau:

Add-IscsiVirtualDiskTargetMapping -TargetName new-sql-data –Path "F:\new-sql-data\new-sql-data.vhdx"

Sau khi ánh xạ mục tiêu hoàn tất thành công, hãy làm mới ngăn đĩa ảo iSCSI trong Trình quản lý máy chủ. Xem hình ảnh sau:

Kết nối với đĩa ảo iSCSI mới bằng trình khởi tạo iSCSI từ các nút cụm chuyển đổi dự phòng

Bây giờ, hãy kết nối với ổ đĩa này từ SQL01.dc.local bằng cách sử dụng RDP.

Để kết nối với đĩa ảo iSCSI bằng trình khởi tạo iSCSI, hãy mở trình khởi tạo iSCSI và nhấp vào Làm mới nút để khám phá mục tiêu. Bây giờ bạn có thể chọn tên mục tiêu thích hợp từ “ Mục tiêu đã phát hiện " hộp văn bản. Chọn mục tiêu thích hợp và nhấp vào C onnect . Xem hình ảnh sau:

Sau khi chúng tôi được kết nối với đĩa ảo, bạn có thể thấy đĩa trong D isk M anager phần dưới C omputer M anagement . Để sử dụng đĩa trong cụm, chúng ta phải thực hiện các tác vụ sau:

  • Mang đĩa trực tuyến. Để làm điều đó, hãy nhấp chuột phải vào D isk 4 và chọn Trực tuyến . Xem hình ảnh sau:

  • Sau khi đĩa trực tuyến, hãy khởi chạy đĩa. Để làm điều đó, hãy nhấp chuột phải vào Đĩa 4 và chọn Khởi tạo đĩa . Xem hình ảnh sau:

  • Khi đĩa được khởi tạo, hãy nhấp chuột phải vào Đĩa 4 và chọn Tập đơn giản mới để tạo một phân vùng. Xem hình ảnh sau:

Tương tự, chúng ta phải kết nối ổ đĩa ảo từ SQL02.dc.local nút. Để làm điều đó, hãy kết nối SQL02.dc.local sử dụng RDP, mở trình khởi tạo iSCSI và nhấp vào nút Làm mới nút để khám phá mục tiêu. Bây giờ bạn có thể chọn tên mục tiêu thích hợp từ Mục tiêu đã phát hiện hộp văn bản. Chọn mục tiêu thích hợp và nhấp vào C onnect . Xem hình ảnh sau:

Thêm đĩa mới vào bộ nhớ cụm chuyển đổi dự phòng hiện có.

Để thêm đĩa này vào bộ lưu trữ cụm, hãy kết nối với SQL01.Dc.Local sử dụng RDP, mở F ốm đau C ánh kim M anager , kết nối với SQLCluster.DC.Local , chọn D isks từ chảo bên trái và nhấp vào A đĩa dd . Hộp thoại “Thêm đĩa vào cụm” sẽ được mở. Trong hộp thoại này, đĩa cụm mới sẽ được hiển thị. Xem hình ảnh sau:

Sau khi đĩa mới được thêm vào, bạn có thể thấy nó trong menu đĩa của Trình quản lý cụm chuyển đổi dự phòng. Xem hình ảnh sau:

Di chuyển tệp cơ sở dữ liệu mẫu sang đĩa mới.

Sau khi đĩa được thêm vào, hãy di chuyển tệp cơ sở dữ liệu mẫu sang ổ đĩa mới. Tôi đã tạo một cơ sở dữ liệu có tên là de modatabase trên SQL01.dc.local . Chúng tôi muốn di chuyển tệp dữ liệu của nó sang đĩa mới. Để làm điều đó, hãy kết nối với PowerShell và sau đó kết nối với phiên bản SQL Server bằng cách sử dụng ‘ SQLCmd Lệnh '.

Khi bạn đã kết nối với phiên bản, hãy thực thi lệnh sau để tách cơ sở dữ liệu.

exec sp_detach_db [demodatabase]
go

Sau khi cơ sở dữ liệu được tách ra, hãy sao chép tệp dữ liệu từ ổ F (ổ cũ) sang ổ E (ổ mới) và thực hiện lệnh sau để đính kèm cơ sở dữ liệu.

CREATE DATABASE demodatabase
    ON (FILENAME = 'E:\SQLData\demodatabase.mdf'),   
    (FILENAME = 'F:\SQLLog\demodatabase_log.ldf')   
    FOR ATTACH; 
GO

Khi thực hiện lệnh trên, bạn sẽ nhận được lỗi sau:

Msg 5184, Level 16, State 2, Server SQLCLUST, Line 1
Cannot use file 'E:\SQLData\demodatabase.mdf' for clustered server. Only formatted files on which the cluster resource of the server has a dependency can be used. Either the disk resource containing the file is not present in the cluster group or the cluster resource of the Sql Server does not have a dependency on it.

Lỗi này xảy ra do chúng tôi không thêm đĩa mới vào nhóm tài nguyên cụm và Sự phụ thuộc VÀ của vai trò MSSQLSERVER. Xem hình ảnh sau:

Để khắc phục lỗi này, chúng ta phải thêm đĩa mới vào vai trò MSSQLSERVER. Để làm điều đó, hãy mở Trình quản lý cụm chuyển đổi dự phòng, nhấp vào Chọn vai trò, nhấp chuột phải vào Máy chủ SQL ( MSSQLSERVER ) và chọn Thêm bộ nhớ . Xem hình ảnh sau:

Thêm bộ nhớ hộp thoại sẽ được mở. Từ danh sách bộ nhớ có sẵn, hãy chọn đĩa mà chúng tôi đã tạo. Xem hình ảnh sau:

Khi chúng tôi thêm bộ nhớ, chúng tôi có thể xác minh nó từ tab tài nguyên của vai trò MSSQLSERVER. Xem hình ảnh sau:

Sau khi đĩa được thêm vào, chúng tôi cũng cần thêm nó vào SQL Server AND phụ thuộc . Để làm điều đó, hãy nhấp chuột phải vào SQL Server trong danh sách tài nguyên trong MSSQLSERVER vai trò và chọn P roperties . Trong P roperties hộp thoại, đi tới Phụ thuộc và chọn Cluster Disk 4 từ hộp thả xuống trong Tài nguyên cột.

Sau khi tài nguyên đĩa được thêm, hãy thử đính kèm cơ sở dữ liệu bằng lệnh sau:

CREATE DATABASE demodatabase
    ON (FILENAME = 'E:\SQLData\demodatabase.mdf'),   
    (FILENAME = 'F:\SQLLog\demodatabase_log.ldf')   
    FOR ATTACH; 
GO

Lệnh sẽ được thực hiện thành công. Để xác minh rằng tệp đã được sao chép vào vị trí thích hợp, hãy thực hiện truy vấn sau trong PowerShell.

select db_name(database_id) as [database name], physical_name from sys.master_files where db_name(database_id) ='demodatabase'

Sau đây là kết quả:

Database Name		physical_name
------------ 		---------------------------------
demodatabase		E:\SQLData\demodatabase.mdf
demodatabase		F:\SQLLog\demodatabase_log.ldf

Như bạn có thể thấy, tệp cơ sở dữ liệu đã được chuyển sang ổ đĩa mới.

Tóm tắt

Trong bài viết này, tôi đã giải thích quy trình từng bước thêm đĩa vào phiên bản cụm chuyển đổi dự phòng SQL Server hiện có. Trong bài viết tiếp theo, tôi sẽ giải thích cách di chuyển cơ sở dữ liệu hệ thống sang một đĩa phân cụm mới.

Hãy theo dõi!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server SELECT trong đó bất kỳ cột nào chứa 'x'

  2. Các loại con trỏ máy chủ SQL - Chỉ chuyển tiếp con trỏ động | Hướng dẫn sử dụng SQL Server / TSQL

  3. Có thể chạy nhiều câu lệnh DDL bên trong một giao dịch (trong SQL Server) không?

  4. Tìm một giá trị ở bất kỳ đâu trong cơ sở dữ liệu

  5. Thực thi Truy vấn động với go in sql