Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Cơ Sở Dữ Liệu

Quản Trị Cơ Sở Dữ Liệu IBM DB2: Best Practices & Essentials

Giới thiệu IBM DB2

IBM DB2 là một Cơ sở dữ liệu quan hệ (Relational Database) được phát triển và sở hữu bởi IBM. DB2 database có sẵn cho nhiều nền tảng bao gồm Linux, UNIX và Windows (LUW). DB2 có sẵn dưới dạng phần mềm database với nhiều mô hình hoặc ấn bản (editions).

Một ấn bản DB2 gọi là Community Edition có sẵn miễn phí cho Developers trọn đời, các ấn bản khác là Standard và Enterprise Edition yêu cầu giấy phép. Trong blog này, tôi chia sẻ một số tác vụ liên quan đến quản trị cơ sở dữ liệu IBM DB2. Hy vọng bạn thấy hữu ích cho các hoạt động thường xuyên để bảo trì database.

  1. Tìm chi tiết License (Giấy phép)
  2. Mối quan hệ DB2 Server, Instance, Database
  3. Nhóm hệ điều hành (OS Groups) DB2
  4. Cấu hình tham số Database: i) Global Level ii) Instance Level iii) Database Level
  5. Tạo, thay đổi, sửa đổi, xóa với DB2 Installations, clients, instance, database
  6. Default Tablespaces, Tạo Tablespace, Liệt kê Tablespaces
  7. Cấu hình Listener
  8. Cấu hình Archive (Lưu trữ)

1) Tìm chi tiết License: Để kiểm tra chi tiết giấy phép sản phẩm, vui lòng sử dụng các lệnh sau.

$>db2licm -l
Product name: "DB2 Community Edition"
License type: "Community"
Expiry date: "Permanent"
Product identifier: "db2dec"
Version information: "11.5"
Max amount of memory (GB): "16"
Max number of cores: "4"
Features: IBM DB2 Performance Management Offering: "Not licensed"

2) Mối quan hệ DB2 Server, Instance, Database (Non-partitioned)

Vui lòng kiểm tra hình 1 bên dưới. Như được mô tả trong hình 1, một Db2 Server là thư mục cài đặt binary database, có thể được định nghĩa bằng các tên như DB2COPYn. Server này có thể được dùng cho upgrade, migrate và tách biệt môi trường duy nhất cho nhiều database và instance trên server. Bạn có thể tạo nhiều cài đặt DB server trên một server đơn lẻ. DB2 Server cũng có thể được cài đặt trên nhiều node của cluster như các partition với cùng vị trí. DB2 server có thể được bảo trì bằng các tham số trong file cấu hình (được mô tả là Global CFG). DBA có thể tạo chính sách để tune/tự động hóa nhiều DB2 instance bằng cách tạo môi trường chịu trách nhiệm quản lý tài nguyên hệ thống và các database có thể được quản lý với cùng một tập tham số trên tất cả database và instance. DB2 instance có thể được chia thành các phần bao gồm tập hợp processes, threads, và vùng bộ nhớ, để bảo trì và kết nối nhiều database trong nó. Một instance có thể được cấu hình bằng file cấu hình gọi là (mô tả DBM CFG), và chính sách có thể được tạo cho phân bổ tài nguyên. Port có thể được định nghĩa cho kết nối theo yêu cầu ứng dụng. DB2 database là tập hợp nhiều logical storage groups, tablespaces, objects trong tablespaces, transaction logs (mô tả TX LOGS), và buffer pools. Sơ đồ sau minh họa mối quan hệ giữa Db2 server, các instance của nó và các database liên kết.

Hình 1: Sơ đồ mô tả mối quan hệ DB2 Server, Instance, Database và nội dung

3) Nhóm hệ điều hành (OS Groups) DB2

Trên Windows, tên instance mặc định là DB2, và trên Linux là DB2INST1. Mỗi instance có thể được cấu hình với một port duy nhất cho kết nối. Nhiều instance có thể tồn tại trên cùng một server. Cài đặt DB2 có thể được cấu hình với 4 loại OS Groups cho an toàn và bảo mật dữ liệu từ các vai trò sử dụng, với SYSADM là Database Administrators với tất cả đặc quyền, nhóm SYSMON để quản trị nhiều database của database manager instance, và DBADM là cấp cấp phép cao nhất dành riêng cho Database cụ thể.

  • SYSADM
  • SYSCTRL
  • SYSMAINT
  • SYSMON
  • DBADM

4) Cấu hình tham số Database (Database Parameter Configurations)

Theo hình 1, bạn có thể cấu hình IBM DB2 ở 3 cấp độ, cấp cao nhất gọi là cấu hình DB2 server, cấp 2 gọi là cấu hình Database Manager, và cấp 3 ở cấp độ database.

i) Tham số Global (Global parameter):

  • Xem cài đặt: db2set -all
  • Liệt kê tất cả tham số có thể thay đổi: db2set -lr
  • Cập nhật cài đặt: db2set parameter=newvalue
  • Ví dụ: db2set db2comm=tcpip

Sau khi thay đổi, bạn cần khởi động lại tất cả instance bằng db2stop và db2start.

ii) Cấp độ Instance (Instance Level):

  • Xem cài đặt: db2 get dbm cfg
  • Cập nhật cài đặt: db2 update dbm cfg using parameter_name new-value
  • Ví dụ: db2 update dbm cfg using NUM_DB 5

iii) Cấp độ Database (Database Level):

  • Xem cài đặt: db2 get db cfg for database-name
  • Cập nhật cài đặt: db2 update db cfg for database-name using parameter new-value
  • Ví dụ: db2 update db cfg for sample using AUTO_REORG ON

5) Tạo, thay đổi, sửa đổi, xóa với DB2 Installations, Instance, Database

Một DB2 server bao gồm chủ yếu một Db2 copy (bản sao) đề cập đến một hoặc nhiều cài đặt sản phẩm Db2 database tại một vị trí cụ thể trên cùng một server. Mỗi bản sao phiên bản DB2 có thể ở cùng hoặc khác mức độ code. Với DB2 Version 9 và mới hơn, bạn có thể cài đặt và chạy nhiều Db2 copies trên cùng một server như DB2COPY1 của DB2 version 9, DB2COPY2 của version 10 … DB2COPY3 của version 11, v.v.

Lợi thế của nhiều DB2 Copies:

  • i) Ứng dụng với các phiên bản Db2 database khác nhau trên cùng server.
  • ii) Khả năng test trên cùng máy tính trước khi chuyển database production sang phiên bản sau của sản phẩm Db2 database.
  • iii) Khả năng chia hoạt động trên các phiên bản DB2 riêng biệt.

Cách chuyển sang bản sao cài đặt DB2 nếu có nhiều DB2COPY:

$>db2swtch -l
DB2COPY1 C: \ IBM\ SQLLIB (Default DB2 and IBM Database Client Interface Copy)
$>db2swtch -db2 -d DB2COPY1
Switching is successful. The current default DB2 copy is DB2COPY1.
$>dasupdt (Change DB admin Server to current copy. 
SQL22266N The DB2 Administration Server is already installed under the current DB2 Copy.

Cách bảo trì DB2 Instance:

Để tạo/liệt kê/xóa instance và đặt/xem tên instance hiện tại trong cài đặt hiện tại của DB2CPOPY1, bạn có thể chạy các lệnh sau:

Để dừng và khởi động instance hiện tại, sử dụng các lệnh sau, lưu ý tham số start_stop_time ảnh hưởng hành vi start/stop database:

$>Db2stop [ force ]
$>Db2start

Các cách khác có sẵn trên máy Windows, để bạn có thể dùng services cho start/stop/automatic start behaviour cho instances.

Để Khởi động database instance cho mục đích quản trị Database, bạn có thể dùng các lệnh: $>db2start admin mode [ user <username> | group <groupname> ] HOẶC $>QUIESCE DATABASE Bằng lệnh trên Database chỉ truy cập được bởi user có đặc quyền SYSADM, SYSMAINT, DBADM, hoặc SYSCTRL. $>QUIESCE INSTANCE instance-name Sử dụng lệnh trên, tất cả database dưới instance đã cho sẽ chỉ truy cập được bởi user có đặc quyền SYSADM, SYSMAINT hoặc SYSCTRL.

Cú pháp đầy đủ của lệnh QUIESCE:

Sau khi hoạt động quản trị Database hoàn tất, bạn có thể chuyển database từ chế độ chỉ DBA sang chế độ có sẵn cho tất cả bằng các lệnh:

UNQUIESCE DATABASE – Remove database from Quiesce mode
UNQUIESCE INSTANCE instance-name – Remove instance and all databases of instance from Quiesce mode

Cách Tạo Database: DB2 Database có thể được tạo cho nhiều loại ứng dụng, 3 loại workload:

  • Simple (Online Transaction Processing - OLTP)
  • Complex (Online Analytical Processing - OLAP)
  • Mixed (Kết hợp OLTP và OLAP)

Cú pháp: CREATE database testdb1 (options ví dụ: encrypt, vui lòng kiểm tra hướng dẫn IBM DB2 cụ thể cho cú pháp đầy đủ.) ;

Ví dụ: db2 create db emp_utf autoconfigure using workload_type simple apply db only

db2 create db emp_utf using codeset utf-8 territory lets us collate using system

db2 drop db emp_utf

6) Default Tablespaces, Tạo Tablespace, Liệt kê Tablespaces

Default Tablespace và bufferpools trên DB2 Database:

DB2 database đi kèm với 3 default tablespaces, bạn có thể tạo nhiều tablespaces theo yêu cầu ứng dụng ngoài default tablespaces:

  • SYSCATSPACE – Tablespace này chứa chi tiết system catalogue liên quan.
  • TEMPSPACE1 – Temporary tablespace này được dùng cho các hoạt động hướng bộ nhớ như SORTING (sắp xếp).
  • USERSPACE1 – Tablespace này là mặc định cho các đối tượng database không mặc định.

DB2 Database cũng chứa một default buffer pool, với tên IBMDEFAULTBP.

Tạo Tablespace trên DB2 database:

Ví dụ tạo tablespace: (cú pháp chi tiết)

Bạn có thể Tạo đối tượng như Tables, index, views v.v. trên tablespace mới tạo, ví dụ, hãy tạo một bảng tên B trên tablespace MYTBLS1.

Liệt kê Tablespaces:

Bạn có thể dùng lệnh dưới, và dùng options để tìm thông tin chi tiết:

db2 list tablespaces [show details]

7) Cấu hình Listener (Listener Configurations)

Bạn có thể thiết lập chi tiết kết nối database bằng cách đặt tham số DB2COMM ở cấp độ instance. Hãy thay đổi cài đặt listener hiện tại để dùng port 60000 cho kết nối. Sau khi port thay đổi, bạn sẽ cần khởi động lại database services để các kết nối mới bắt đầu lắng nghe trên port đã thay đổi. Lệnh như sau:

$>db2set -i db2inst1 DB2COMM=tcpip
$>db2 update dbm cfg using SVCENAME 60000
$>db2stop
$>db2start

9) Cấu hình Archive (Archive configuration)

Để cấu hình tùy chọn logging database bằng lệnh UPDATE DATABASE CONFIGURATION trên command line processor:

Chỉ định bạn muốn dùng circular logging hay archive logging. Nếu muốn dùng circular logging, tham số cấu hình database logarchmeth1 và logarchmeth2 phải đặt thành OFF. Cài đặt này là mặc định. Để dùng archive logging, bạn phải đặt ít nhất một trong các tham số này thành giá trị khác OFF. Ví dụ, nếu muốn dùng archive logging và lưu archived logs lên disk, chạy lệnh:

db2 update db configuration for mydb using logarchmeth1 disk:/u/dbuser/archived_logs

HOẶC

Bạn cũng có thể cấu hình tùy chọn logging database bằng IBM® Data Studio, lệnh UPDATE DATABASE CONFIGURATION HOẶC db2CfgSet API

Để tránh tạo redo log, bạn có thể dùng tùy chọn NOT LOGGED INITIALLY với lệnh CREATE TABLE/INDEX.

Kết luận

Vì các tác vụ Quản trị Database liên quan đến nhiều hoạt động, và một vài quy trình tôi đã cố gắng khám phá trong blog này, tôi chắc chắn bạn có thể muốn có trải nghiệm thực tế (hands-on) với IBM DB2 Database vì nhiều tính năng được cung cấp bởi database. Hầu hết các thao tác SQL đều tuân theo SQL Standards do American National Standards Institute (ANSI) định nghĩa. Các tính năng bổ sung như clustered database, high availability, partitioning, replication, materialized views trong khi duy trì tất cả các giao thức an toàn tương tự các RDBMS phổ biến khác như Oracle, PostgreSQL, và giá cả sản phẩm, và khả năng kết nối với hầu như tất cả công nghệ khiến DB2 trở thành lựa chọn độc đáo của các nhà phát triển trên thị trường database toàn cầu.

Hãy để các chuyên gia của chúng tôi hướng dẫn bạn trong hành trình database.

Sử dụng tab Feedback để đưa ra nhận xét hoặc đặt câu hỏi. Bạn cũng có thể bắt đầu cuộc trò chuyện với chúng tôi.