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

Phương pháp tự động hóa Azure

Trong năm qua, tôi đã trình bày nhiều phiên về Cơ sở dữ liệu Azure SQL cũng như là tác giả của nhiều bài báo và blog. Tôi thường được hỏi liệu bảo trì cơ sở dữ liệu có còn là một yếu tố quan trọng khi sử dụng Cơ sở dữ liệu Azure SQL hay không. Có - các tác vụ như duy trì chỉ mục, cập nhật thống kê và kiểm tra tính nhất quán vẫn rất quan trọng và DBA phải lên lịch cho những tác vụ này. Sự nhầm lẫn bắt nguồn từ Cơ sở dữ liệu Azure SQL là một Nền tảng như một Dịch vụ và Microsoft chịu trách nhiệm về cơ sở hạ tầng cũng như xử lý các bản sao lưu. Mặc dù một số khía cạnh của tham nhũng vật lý có thể được tính đến, nhưng tham nhũng logic trong cơ sở dữ liệu thì không. Vì lý do đó, tôi vẫn khuyên khách hàng nên chạy DBCC CHECKDB để đảm bảo chúng được bảo vệ đầy đủ.

Vấn đề nảy sinh với bất kỳ DBA mới nào làm việc với Cơ sở dữ liệu SQL Azure là không có Tác nhân SQL Server được tích hợp sẵn như chúng ta đã quen với Phiên bản SQL Server Standard và Enterprise.

Để lên lịch các công việc bảo trì dựa trên Cơ sở dữ liệu Azure SQL, bạn có một số tùy chọn:

  • Máy chủ được liên kết
  • Kế hoạch Bảo trì Cơ sở dữ liệu
  • Powershell
  • Dịch vụ Azure
  • Công việc linh hoạt

Các bản trình diễn sau giả sử bạn đã định cấu hình tài khoản đăng nhập, quy tắc tường lửa và các cài đặt bảo mật khác để truy cập từ xa Cơ sở dữ liệu Azure SQL của bạn.

Máy chủ được liên kết

Kết nối với Cơ sở dữ liệu Azure SQL bằng máy chủ được liên kết là một cách tiếp cận rất phổ biến vì hầu hết các DBA đã quen thuộc với việc tạo và quản lý các máy chủ được liên kết. Hai cách phổ biến nhất mà tôi thấy máy khách sử dụng máy chủ được liên kết là sử dụng Máy khách gốc SQL Server hoặc Nhà cung cấp Microsoft OLE DB cho Trình điều khiển ODBC làm nhà cung cấp. Nếu bạn sử dụng máy khách gốc, bạn sẽ phải cung cấp tên máy chủ làm nguồn dữ liệu; tuy nhiên nếu sử dụng trình điều khiển ODBC, thì bạn sẽ cần lấy chuỗi kết nối và sử dụng chuỗi đó làm chuỗi nhà cung cấp. Cả hai giá trị này đều có thể được tìm thấy trong Azure Portal cho cơ sở dữ liệu của bạn. Khi bạn nhấp vào cơ sở dữ liệu của mình, bạn sẽ thấy tên máy chủ và một tùy chọn để hiển thị các chuỗi kết nối cơ sở dữ liệu. Tên máy chủ này, sqlperformance.database.windows.net là tên mà tôi sẽ sử dụng cho nguồn dữ liệu Máy khách gốc SQL Server.

Khi bạn nhấp vào “Hiển thị chuỗi kết nối cơ sở dữ liệu”, bạn hiện có các tùy chọn cho ADO.NET, JDBC, ODBC và PHP. Để xem chuỗi kết nối cho ODBC, hãy nhấp vào tab ODBC.

Tiếp theo, bạn sẽ cần tạo máy chủ được liên kết trong SSMS. Trong “Đối tượng máy chủ”, nhấp chuột phải vào “Máy chủ được liên kết”, chọn “Máy chủ được liên kết mới” và nhập thông tin cần thiết tùy thuộc vào lựa chọn nhà cung cấp nguồn dữ liệu của bạn.

Tiếp theo, nhấp vào “Bảo mật” và xác định tùy chọn của bạn. Thông thường, tôi thấy tùy chọn “Được thực hiện bằng ngữ cảnh bảo mật này” với thông tin đăng nhập từ xa và mật khẩu được cung cấp.

Khi bạn đã xác định tất cả những điều này, hãy nhấp vào OK. Bây giờ, bạn có thể nhấp chuột phải vào máy chủ được liên kết mới của mình và kiểm tra kết nối.

Giờ đây, bạn có thể tham chiếu máy chủ được liên kết để gọi bất kỳ quy trình được lưu trữ nào, chẳng hạn như Ola Hallengren’s Index Optimize và DatabaseIntegrityCheck trực tiếp dựa trên Cơ sở dữ liệu SQL Azure trong bước công việc SQL Agent.

Kế hoạch Bảo trì Cơ sở dữ liệu

Nếu bạn dự định sử dụng kế hoạch bảo trì cơ sở dữ liệu để bảo trì, thì quá trình này sẽ dễ dàng hơn một chút. Để bắt đầu, chỉ cần tạo kế hoạch bảo trì của bạn theo cách thủ công hoặc sử dụng trình hướng dẫn. Nếu bạn đang sử dụng trình hướng dẫn, sau khi tạo kế hoạch bảo trì, bạn có thể chỉnh sửa kế hoạch, sau đó thêm kết nối Azure. Sau đó, bạn thay đổi từng tác vụ để sử dụng kết nối mới. Màn hình kết nối của bạn sẽ trông giống như sau:

Giờ đây, bạn có thể lên lịch các kế hoạch bảo trì cơ sở dữ liệu của mình để chạy trong thời gian bảo trì.

PowerShell

PowerShell là một tùy chọn tuyệt vời để làm việc với tác vụ có thể lặp lại và việc sử dụng PowerShell với Cơ sở dữ liệu Azure SQL là điều dễ hiểu. Bạn có thể sử dụng hàm Invoke-SqlCmd để truy vấn hoặc thực thi các câu lệnh dựa trên cơ sở dữ liệu của mình.

Cách tiếp cận phổ biến là sử dụng một tập lệnh tương tự như:

  $params = @{
   'Database' = 'YourDatabase'
   'ServerInstance' = 'instance.database.windows.net'
   'Username' = 'UserName'
   'Password' = 'ComplexP@$$word'
   'Query' = 'Your Query Here'
  }
  Invoke-Sqlcmd @params

Đối với truy vấn của mình, bạn có thể sử dụng kiểm tra tính nhất quán và tối ưu hóa chỉ mục của Ola Hallengren hoặc bất kỳ tập lệnh tùy chỉnh nào mà bạn đang sử dụng. Sau đó, bạn sẽ cần lên lịch các tập lệnh PowerShell của mình bằng bất kỳ công cụ lập lịch nào bạn sử dụng cho tổ chức của mình.

Dịch vụ Azure

Được tích hợp vào nền tảng Azure là Azure Automation và để bắt đầu, bạn phải tạo một tài khoản tự động hóa. Bạn sẽ cần cung cấp tên cho tài khoản, chọn đăng ký, nhóm tài nguyên, vị trí của mình và xác định xem bạn có muốn tạo tài khoản Azure Run As hay không.

Sau khi tạo tài khoản, bạn có thể bắt đầu tạo sách chạy. Bạn có thể làm bất cứ điều gì với sổ chạy bộ. Có rất nhiều sách đang chạy hiện có mà bạn có thể duyệt qua và sửa đổi để sử dụng cho riêng mình, bao gồm cấp phép, giám sát, quản lý vòng đời và hơn thế nữa.

Bạn có thể tạo sách chạy ngoại tuyến hoặc sử dụng Cổng Azure và chúng được tạo bằng PowerShell. Trong ví dụ này, chúng tôi sẽ sử dụng lại mã từ bản demo PowerShell và cũng chứng minh cách chúng tôi có thể sử dụng bộ lập lịch Azure Service tích hợp để chạy mã PowerShell hiện có của chúng tôi và không phải dựa vào bộ lập lịch tại chỗ, bộ lập lịch tác vụ hoặc Azure VM để lên lịch công việc.

Bắt đầu bằng cách nhấp vào Sách chạy

Tiếp theo, nhấp vào “Thêm sách chạy”

Nhấp vào “Tạo sổ tay mới”

Cung cấp tên và loại sổ chạy, tôi đã chọn PowerShell cho bản trình diễn của mình.

Sau đó, bạn đang ở trong màn hình chỉnh sửa cho cuốn sách mới của mình. Đây là nơi bạn có thể định cấu hình các chi tiết và xây dựng sổ lưu hành của mình. Đối với bản trình diễn này, tôi chỉ đang chạy một tập lệnh PowerShell để gọi một thủ tục được lưu trữ dựa trên cơ sở dữ liệu. Khi bạn đã hoàn thành tất cả mã của mình, bạn có thể xuất bản và lưu sổ chạy bộ của mình.

Từ đây, bạn có thể khởi động sổ chạy và xác thực mọi thứ hoạt động tương ứng, cũng như lập lịch chạy sổ chạy vào những thời điểm cụ thể. Hãy bước qua quá trình này bằng cách nhấp vào “Lên lịch”

Chúng tôi sẽ cần nhấp vào “Liên kết lịch trình với sổ đăng ký của bạn” và vì chúng tôi chưa tạo bất kỳ lịch biểu nào trước đây, chúng tôi sẽ cần xác định lịch biểu mới bằng cách nhấp vào “Tạo lịch biểu mới”.

Giống như chúng ta làm trong SQL Server Agent, cung cấp tên lịch biểu, mô tả nếu bạn muốn, khi nào bắt đầu và tần suất nó sẽ chạy. Tôi đặt điều này xảy ra hàng ngày lúc 2 giờ sáng.

Bây giờ tôi có một cuốn sách chạy đã xuất bản, được lên lịch chạy mỗi đêm lúc 2 giờ sáng để thực hiện bảo trì chỉ mục trên một trong các cơ sở dữ liệu của tôi.

Công việc linh hoạt

Elastic Jobs hiện vẫn đang trong giai đoạn xem trước, vì vậy tôi sẽ không đi sâu vào chi tiết do khả năng cao là màn hình và chức năng sẽ thay đổi.

Sử dụng Công việc linh hoạt yêu cầu bạn phải xác định nhóm cơ sở dữ liệu đàn hồi và chỉ định ít nhất một cơ sở dữ liệu cho nhóm để thực hiện các công việc. Khi bạn đã tạo nhóm đàn hồi và thêm cơ sở dữ liệu, sau đó bạn có thể nhấp vào tạo công việc.

Đặt tên mô tả cho công việc của bạn và cung cấp tên người dùng và mật khẩu để kết nối với cơ sở dữ liệu cũng như tập lệnh bạn muốn chạy. Nhấp vào lưu và bây giờ bạn có một công việc linh hoạt.

Sau đó, bạn có thể chọn chạy công việc, xem tập lệnh hoặc hủy công việc nếu nó đang chạy.

Mặc dù có một số việc bạn có thể làm thông qua Cổng Azure với các công việc linh hoạt, nhưng sức mạnh thực sự và các tùy chọn cấu hình vẫn có sẵn thông qua API PowerShell. Để lên lịch công việc, bạn phải sử dụng lệnh ghép ngắn New-AzureSQLJobSchedule. Bạn có thể tìm thêm thông tin chi tiết về các tính năng bổ sung và cách sắp xếp công việc tại đây:

  • Tạo và quản lý các công việc linh hoạt trong Cơ sở dữ liệu SQL bằng PowerShell

Nhìn chung, tôi thích tính năng công việc đàn hồi và hy vọng rằng khi nó được cung cấp phổ biến, nhiều chức năng hơn sẽ được tích hợp vào Azure Portal mà không cần phải quản lý nó bằng PowerShell. Tôi thích rằng bạn có thể chạy T-SQL trực tiếp mà không cần phải chạy nó trong PowerShell và cách nó có thể chạy trên tất cả các cơ sở dữ liệu trong nhóm.

Tóm tắt

Khi nói đến Cơ sở dữ liệu Azure SQL, vâng, bạn vẫn phải chịu trách nhiệm bảo trì một số cơ sở dữ liệu của mình. Bạn có nhiều phương pháp lập lịch công việc và tùy thuộc vào nhu cầu và quy mô môi trường của bạn, một số tùy chọn nhất định sẽ tạo ra các giải pháp tốt hơn. Máy chủ được liên kết và kế hoạch bảo trì cơ sở dữ liệu là các phương pháp nhanh chóng và dễ dàng nếu bạn có máy ảo Azure tại chỗ hoặc máy chủ SQL đã được định cấu hình và triển khai Azure nhỏ. PowerShell luôn là một lựa chọn tốt, bạn chỉ cần tìm giải pháp để lập lịch chạy các tập lệnh. Tự động hóa Azure là một giải pháp rất mạnh mẽ cho phép bạn tạo sổ chạy để hoàn thành mọi việc và dễ dàng lên lịch cho sổ chạy và các công việc linh hoạt là một giải pháp dựa trên Azure tuyệt vời khác nếu bạn có các nhiệm vụ cần chạy với một nhóm cơ sở dữ liệu trong một nhóm đàn hồ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. Lỗi khi gửi gói QUERY

  2. Gấu trúc:Cách đọc và ghi tệp

  3. ODBC 4.0

  4. Kết hợp trong Transact-SQL

  5. Câu lệnh SQL INSERT INTO