Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

Mastering IBM DB2 Database Administration: แนวทางปฏิบัติที่ดีที่สุดและพื้นฐานสำคัญ

ภาพรวม IBM DB2

IBM DB2 เป็น Relational Database ของ IBM รองรับ Linux, UNIX, Windows (LUW) มีหลาย Editions: Community Edition (ฟรีสำหรับ Developers ตลอดชีวิต), Standard และ Enterprise Edition (ต้อง License)

บทความนี้รวบรวมงาน Administration สำคัญของ DB2 สำหรับการดูแลรักษาฐานข้อมูลประจำวัน

1) ตรวจสอบ License Details

$ 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) ความสัมพันธ์ DB2 Server, Instance, Database (Non-partitioned)

  • DB2 Server: Database Binary Installation Directory (DB2COPYn) ใช้สำหรับ Upgrade, Migrate แยก Environment สำหรับ Multiple Databases/Instances ติดตั้งหลาย Copies บน Server เดียวได้
  • DB2 Instance: ประกอบด้วย Processes, Threads, Memory Areas จัดการและเชื่อมต่อ Multiple Databases กำหนดค่าผ่าน DBM CFG
  • DB2 Database: Logical Storage Groups, Tablespaces, Objects, Transaction Logs, Buffer Pools

3) DB2 Operating System Groups

Windows: Default Instance = DB2, Linux: Default Instance = DB2INST1 แต่ละ Instance กำหนด Port 独特ได้ มี OS Groups 4 ประเภทสำหรับ Security:

  • SYSADM - Database Administrators (All Privileges)
  • SYSCTRL - System Control
  • SYSMAINT - System Maintenance
  • SYSMON - System Monitor
  • DBADM - Database Administration (Top-level Grant สำหรับ Database เฉพาะ)

4) Database Parameter Configurations (3 ระดับ)

i) Global Level (DB2 Server Configuration)

# View settings
db2set -all

# List changeable parameters
db2set -lr

# Update settings
db2set parameter=newvalue
# Example: db2set db2comm=tcpip

# ต้อง Restart Instances: db2stop และ db2start

ii) Instance Level (Database Manager Configuration)

# View settings
db2 get dbm cfg

# Update settings
db2 update dbm cfg using parameter_name new-value
# Example: db2 update dbm cfg using NUM_DB 5

iii) Database Level

# View settings
db2 get db cfg for database-name

# Update settings
db2 update db cfg for database-name using parameter new-value
# Example: db2 update db cfg for sample using AUTO_REORG ON

5) Create, Change, Modify, Drop: DB2 Installations, Instance, Database

Multiple DB2 Copies

DB2 Version 9+ รองรับ Multiple Copies บน Server เดียว (DB2COPY1 v9, DB2COPY2 v10, DB2COPY3 v11) ประโยชน์: รัน Applications เวอร์ชันต่างกัน, ทดสอบก่อน Upgrade Production, แยกกิจกรรมตาม Version

Switch DB2 Installation Copy

$ db2swtch -l
DB2COPY1 C:\IBM\SQLLIB (Default)

$ db2swtch -db2 -d DB2COPY1
Switching successful. Current default DB2 copy is DB2COPY1.

$ dasupdt  # Change DB Admin Server to current copy

Maintain DB2 Instance

# Stop/Start Instance
db2stop [force]
db2start

# Start in Admin Mode (DBA only)
db2start admin mode [user  | group ]

# QUIESCE DATABASE - เข้าถึงได้เฉพาะ SYSADM, SYSMAINT, DBADM, SYSCTRL
# QUIESCE INSTANCE instance-name - ทุก Databases ใน Instance เข้าถึงได้เฉพาะ SYSADM, SYSMAINT, SYSCTRL

# กลับสู่ Normal Mode
UNQUIESCE DATABASE
UNQUIESCE INSTANCE instance-name

Create Database

3 Workload Categories: Simple (OLTP), Complex (OLAP), Mixed (OLTP+OLAP)

CREATE DATABASE testdb1  -- options: encrypt ฯลฯ

# Examples:
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, Create Tablespace, List Tablespaces

Default Tablespaces & Bufferpools

  • SYSCATSPACE: System Catalogue
  • TEMPSPACE1: Temporary Tablespace สำหรับ Sorting
  • USERSPACE1: Default สำหรับ Non-default Objects

Default Buffer Pool: IBMDEFAULTBP

Create Tablespace

-- ตัวอย่างสร้าง Tablespace
CREATE TABLESPACE MYTBLS1 ...

สร้าง Objects (Tables, Indexes, Views) บน Tablespace ใหม่ได้

List Tablespaces

db2 list tablespaces [show details]

7) Listener Configurations

ตั้งค่า DB2COMM Parameter ที่ Instance Level เปลี่ยน Port เป็น 60000:

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

9) Archive Configuration

ตั้งค่า Logging: Circular Logging (Default) หรือ Archive Logging

Circular Logging: logarchmeth1 และ logarchmeth2 = OFF

Archive Logging: ตั้งค่าอย่างน้อยหนึ่งตัวไม่เป็น OFF

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

# หรือใช้ IBM Data Studio, UPDATE DATABASE CONFIGURATION, db2CfgSet API

# หลีกเลี่ยง Redo Log Generation
CREATE TABLE/INDEX ... NOT LOGGED INITIALLY

สรุป

DB2 Administration ครอบคลุมกิจกรรมหลายด้าน บทความนี้ครอบคลุมบางส่วน SQL Operations ตรงมาตรฐาน ANSI ฟีเจอร์เพิ่มเติม: Clustered Database, High Availability, Partitioning, Replication, Materialized Views รักษาความปลอดภัยเหมือน RDBMS ชั้นนำ ราคาเหมาะสม และ Connectivity กับเทคโนโลยีเกือบทุกอย่าง ทำให้ DB2 เป็นตัวเลือกน่าสนใจในตลาด Global