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

การบริหารฐานข้อมูล IBM DB2

IBM DB2 เป็นฐานข้อมูลเชิงสัมพันธ์ที่พัฒนาและเป็นเจ้าของโดย IBM ฐานข้อมูล DB2 พร้อมใช้งานสำหรับหลายแพลตฟอร์ม รวมถึง Linux, UNIX และ Windows (LUW) DB2 พร้อมใช้งานเป็นซอฟต์แวร์ฐานข้อมูลที่มีหลายรุ่นหรือหลายรุ่น

หนึ่งในรุ่น DB2 ที่รู้จักกันในชื่อ Community Edition มีให้ใช้งานฟรีสำหรับนักพัฒนาซอฟต์แวร์ตลอดอายุการใช้งาน ส่วนรุ่นอื่นๆ คือ Standard และ Enterprise Edition ที่มีข้อกำหนดสิทธิ์การใช้งาน ในบล็อกนี้ ฉันกำลังแบ่งปันงานบางอย่างที่เกี่ยวข้องกับการดูแลฐานข้อมูล IBM DB2 หวังว่าคุณจะพบว่ามีประโยชน์สำหรับกิจกรรมปกติในการดูแลฐานข้อมูล

  1. ค้นหารายละเอียดใบอนุญาต
  2. เซิร์ฟเวอร์ DB2 อินสแตนซ์ ความสัมพันธ์ฐานข้อมูล
  3. กลุ่มระบบปฏิบัติการ DB2
  4. การกำหนดค่าพารามิเตอร์ฐานข้อมูลsi) Global Levelii) Instance Leveliii) ระดับฐานข้อมูล
  5. สร้าง เปลี่ยนแปลง แก้ไข วางด้วยการติดตั้ง DB2, ไคลเอ็นต์ , อินสแตนซ์, ฐานข้อมูล
  6. Tablespaces เริ่มต้น, Create Tablespace , List Tablespaces
  7. การกำหนดค่าตัวฟัง
  8. การกำหนดค่าที่เก็บถาวร

1) ค้นหารายละเอียดใบอนุญาต:หากต้องการตรวจสอบรายละเอียดใบอนุญาตผลิตภัณฑ์ของคุณ โปรดใช้คำสั่งด้านล่าง

$>db2licm -l

ชื่อผลิตภัณฑ์:“DB2 Community Edition”

ประเภทใบอนุญาต:“ชุมชน”

วันหมดอายุ:“ถาวร”

ตัวระบุผลิตภัณฑ์:“db2dec”

ข้อมูลเวอร์ชัน:“11.5”

จำนวนหน่วยความจำสูงสุด (GB):“16”

จำนวนคอร์สูงสุด:“4”

คุณลักษณะ:ข้อเสนอการจัดการประสิทธิภาพ IBM DB2:“ไม่ได้รับอนุญาต”

2) เซิร์ฟเวอร์ DB2 อินสแตนซ์ ความสัมพันธ์ของฐานข้อมูล (ไม่ได้แบ่งพาร์ติชัน)

โปรดตรวจสอบรูปที่ 1 ด้านล่าง ดังที่แสดงในรูปที่ 1 Db2 Server เป็นไดเร็กทอรีการติดตั้งไบนารีของฐานข้อมูล ซึ่งสามารถกำหนดได้ด้วยชื่อ เช่น DB2COPYn เซิร์ฟเวอร์นี้สามารถใช้สำหรับการอัพเกรด โยกย้าย และสามารถแยกสภาพแวดล้อมได้โดยไม่ซ้ำกันสำหรับฐานข้อมูลและอินสแตนซ์หลายตัวบนเซิร์ฟเวอร์ คุณสามารถสร้างการติดตั้งเซิร์ฟเวอร์ DB หลายรายการบนเซิร์ฟเวอร์เดียว DB2 Server สามารถติดตั้งบนหลายโหนดของคลัสเตอร์เป็นพาร์ติชันที่มีตำแหน่งเดียวกันได้ เซิร์ฟเวอร์ DB2 สามารถรักษาไว้ได้โดยใช้พารามิเตอร์ในไฟล์คอนฟิกูเรชัน (แสดงเป็น Global CFG) DBA สามารถสร้างนโยบายเพื่อปรับแต่ง/ทำให้อินสแตนซ์ DB2 หลายรายการเป็นอัตโนมัติโดยการสร้างสภาพแวดล้อมที่รับผิดชอบในการจัดการทรัพยากรระบบและฐานข้อมูลที่สามารถจัดการได้ด้วยชุดพารามิเตอร์เดียวกันในฐานข้อมูลและอินสแตนซ์ทั้งหมด อินสแตนซ์ DB2 สามารถแบ่งออกเป็นส่วนต่างๆ ที่มีชุดของกระบวนการ , เธรด และพื้นที่หน่วยความจำ สำหรับการบำรุงรักษาและเชื่อมต่อกับหลายฐานข้อมูลในนั้น อินสแตนซ์สามารถกำหนดค่าได้โดยใช้ไฟล์การกำหนดค่าที่เรียกว่า (อธิบาย DBM CFG) และสามารถสร้างนโยบายสำหรับการจัดสรรทรัพยากรได้ สามารถกำหนดพอร์ตสำหรับการเชื่อมต่อตามความต้องการของแอปพลิเคชัน ฐานข้อมูล DB2 ถูกตั้งค่าของกลุ่มการจัดเก็บข้อมูลแบบลอจิคัลหลายกลุ่ม พื้นที่ตาราง อ็อบเจ็กต์ในพื้นที่ตาราง บันทึกธุรกรรม (แสดง TX LOGS) และบัฟเฟอร์พูล ไดอะแกรมต่อไปนี้แสดงความสัมพันธ์ระหว่างเซิร์ฟเวอร์ Db2 อินสแตนซ์ และฐานข้อมูลที่เกี่ยวข้อง

รูปที่ 1:ไดอะแกรมแสดง DB2 Server อินสแตนซ์ ความสัมพันธ์ของฐานข้อมูลและเนื้อหา

3) กลุ่มระบบปฏิบัติการ DB2

บน Windows ชื่ออินสแตนซ์ดีฟอลต์คือ DB2 และใน Linux จะใช้ DB2INST1 แต่ละอินสแตนซ์สามารถกำหนดค่าด้วยพอร์ตเฉพาะสำหรับการเชื่อมต่อกับมัน สามารถมีอินสแตนซ์ได้หลายตัวบนเซิร์ฟเวอร์เดียวกัน การติดตั้ง DB2 สามารถกำหนดค่าด้วย OS Groups 4 ประเภทเพื่อความปลอดภัยและความปลอดภัยของข้อมูลจากบทบาทที่เกี่ยวข้องกับการใช้งาน โดยมี SYSADM เป็นผู้ดูแลฐานข้อมูลที่มีสิทธิ์ทั้งหมด กลุ่ม SYSMON เพื่อจัดการฐานข้อมูลหลายตัวของอินสแตนซ์ตัวจัดการฐานข้อมูล และ DBADM เป็นเงินช่วยเหลือระดับบนสุดสำหรับฐานข้อมูลโดยเฉพาะ

• SYSADM

• SYSCTRL

• ระบบ

• ซิมมอน

• DBADM

4) การกำหนดค่าพารามิเตอร์ฐานข้อมูล

ตามรูปที่ 1 คุณสามารถกำหนดค่า IBM DB2 ได้ 3 ระดับ ระดับบนสุดเรียกว่าการกำหนดค่าเซิร์ฟเวอร์ DB2 ระดับที่ 2 เรียกว่าการกำหนดค่าตัวจัดการฐานข้อมูล และระดับที่ 3 ที่การกำหนดค่าระดับฐานข้อมูล

i) สำหรับพารามิเตอร์ส่วนกลาง:

วิธีดูการตั้งค่า:db2set -all

ในการแสดงรายการพารามิเตอร์ที่เปลี่ยนแปลงได้ทั้งหมด: db2set -lr

ในการอัปเดตการตั้งค่า:db2set parameter=newvalue

เช่น db2set db2comm=tcpip

เมื่อเปลี่ยนแล้ว คุณจะต้องรีสตาร์ทอินสแตนซ์ทั้งหมดโดย db2stop และ db2start

ii) ระดับอินสแตนซ์ :

ในการดูการตั้งค่า:db2 get dbm cfg

ในการอัปเดตการตั้งค่า:db2 อัปเดต dbm cfg โดยใช้ parameter_name new-valueEg:db2 update dbm cfg using NUM_DB 5

iii) ระดับฐานข้อมูล:

ในการดูการตั้งค่า:db2 รับ db cfg สำหรับชื่อฐานข้อมูล

ในการอัปเดตการตั้งค่า:db2 update db cfg for database-name using parameter new-value

เช่น:db2 update db cfg for sample using AUTO_REORG ON

5) สร้าง เปลี่ยนแปลง แก้ไข วางด้วยการติดตั้ง DB2 อินสแตนซ์ ฐานข้อมูล

เซิร์ฟเวอร์ DB2 ประกอบด้วยสำเนา Db2 เป็นหลัก อ้างอิงถึงการติดตั้งผลิตภัณฑ์ฐานข้อมูล Db2 อย่างน้อยหนึ่งรายการในตำแหน่งเฉพาะบนเซิร์ฟเวอร์เดียวกัน สำเนา Db2 Version แต่ละชุดสามารถอยู่ที่ระดับโค้ดเดียวกันหรือต่างกัน ด้วย DB2 เวอร์ชัน 9 และใหม่กว่า คุณสามารถติดตั้งและรัน Db2 หลายชุดบนเซิร์ฟเวอร์เดียวกัน เช่น DB2COPY1 ของ DB2 เวอร์ชัน 9, DB2COPY2 ของเวอร์ชัน 10 … DB2COPY3 เวอร์ชัน 11 เป็นต้น

ข้อดีของสำเนา DB2 หลายชุด:

i) แอปพลิเคชันที่มีเวอร์ชันฐานข้อมูล Db2 ต่างกันบนเซิร์ฟเวอร์เดียวกัน

ii) ความสามารถในการทดสอบบนคอมพิวเตอร์เครื่องเดียวกันก่อนที่จะย้ายฐานข้อมูลที่ใช้งานจริงไปยังเวอร์ชันหลังของผลิตภัณฑ์ฐานข้อมูล Db2

iii) ความสามารถในการแบ่งกิจกรรมของคุณในเวอร์ชัน DB2 แยกกัน

วิธีการเปลี่ยนเป็นสำเนาการติดตั้ง DB2 ในกรณีที่มี DB2COPY หลายตัว:

$>db2swtch -l

DB2COPY1 C:\ IBM\ SQLLIB (คัดลอก DB2 และ IBM Database Client Interface ดีฟอลต์)

$>db2swtch -db2 -d DB2COPY1

การสลับทำได้สำเร็จ สำเนา DB2 ดีฟอลต์ปัจจุบันคือ DB2COPY1

$>dasupdt (Change DB admin Server to current copy.

SQL22266N DB2 Administration Server ได้รับการติดตั้งภายใต้ DB2 Copy ปัจจุบัน

วิธีการรักษาอินสแตนซ์ DB2:

ในการสร้าง/แสดงรายการ/วางอินสแตนซ์ และตั้งค่า/ดูชื่ออินสแตนซ์ปัจจุบันในการติดตั้ง DB2CPOPY1 ปัจจุบัน คุณสามารถเรียกใช้คำสั่งด้านล่าง:

หากต้องการหยุดและเริ่มอินสแตนซ์ปัจจุบัน ให้ใช้คำสั่งด้านล่าง โปรดทราบว่าพารามิเตอร์ start_stop_time ส่งผลต่อพฤติกรรมการหยุดการทำงานของฐานข้อมูล :

$>Db2stop [ force ]

$>Db2start

มีวิธีอื่นในเครื่อง Windows เพื่อให้คุณใช้บริการสำหรับการเริ่ม/หยุด/การเริ่มต้นอัตโนมัติสำหรับอินสแตนซ์ได้

ในการเริ่มอินสแตนซ์ฐานข้อมูลสำหรับวัตถุประสงค์ของการดูแลฐานข้อมูลเท่านั้น คุณสามารถใช้คำสั่งด้านล่าง:$>db2start admin mode [ user <username> | group <groupname> ]

หรือ

$>QUIESCE DATABASE โดยคำสั่งข้างต้น ฐานข้อมูลสามารถเข้าถึงได้เฉพาะผู้ใช้ที่มีสิทธิ์ของ SYSADM, SYSMAINT, DBADM หรือ SYSCTRL.$>QUIESCE INSTANCE instance-name

เมื่อใช้คำสั่งข้างต้น ฐานข้อมูลทั้งหมดภายใต้อินสแตนซ์ที่กำหนดจะสามารถเข้าถึงได้เฉพาะผู้ใช้ที่มีสิทธิ์ของ SYSADM, SYSMAINT หรือ SYSCTRL

ไวยากรณ์แบบเต็มของคำสั่ง QUIESCE:

เมื่อกิจกรรมการดูแลฐานข้อมูลเสร็จสิ้น คุณสามารถแปลงฐานข้อมูลจากโหมด DBA เท่านั้นเป็นโหมดพร้อมใช้งานทั้งหมดได้โดยใช้คำสั่งด้านล่าง:

UNQUIESCE DATABASE – Remove database from Quisece mode

UNQUIESCE INSTANCE instance-name – Remove instance and all databases of instance from Quisece mode

วิธีสร้างฐานข้อมูล: ฐานข้อมูล DB2 สามารถสร้างได้สำหรับแอปพลิเคชันหลายประเภท มี 3 หมวดหมู่ภาระงาน:

  • ง่าย (การประมวลผลธุรกรรมออนไลน์)
  • ซับซ้อน (การประมวลผลเชิงวิเคราะห์ออนไลน์)
  • ผสม (ประเภทผสมของ OLTP และ OLAP)

ไวยากรณ์:CREATE database testdb1 ( ตัวเลือกเช่น:เข้ารหัส โปรดตรวจสอบคำแนะนำเฉพาะของ ibm db2 สำหรับไวยากรณ์แบบเต็ม);

เช่น: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) พื้นที่ตารางเริ่มต้น สร้าง Tablespace แสดงรายการ Tablespaces

Tablespace ดีฟอลต์และบัฟเฟอร์พูลบน DB2 Database:

ฐานข้อมูล DB2 มาพร้อมกับพื้นที่ตารางดีฟอลต์ 3 แบบ คุณสามารถสร้างพื้นที่ตารางได้หลายแบบตามความต้องการของแอปพลิเคชันของคุณ นอกเหนือจากพื้นที่ตารางดีฟอลต์:

• SYSCATSPACE – พื้นที่ตารางนี้มีรายละเอียดที่เกี่ยวข้องกับแคตตาล็อกระบบ

• TEMPSPACE1 – tablespace ชั่วคราวนี้ใช้สำหรับการดำเนินการที่เน้นหน่วยความจำ เช่น SORTING

• USERSPACE1 – tablespace นี้เป็นค่าเริ่มต้นสำหรับอ็อบเจ็กต์ฐานข้อมูลที่ไม่ใช่ค่าเริ่มต้น

ฐานข้อมูล DB2 ยังมีบัฟเฟอร์พูลดีฟอลต์หนึ่งรายการ ด้วยชื่อ IBMDEFAULTBP

สร้าง Tablespace บนฐานข้อมูล DB2:

ตัวอย่างการสร้างพื้นที่ตาราง:

คุณสามารถสร้างวัตถุ เช่น ตาราง ดัชนี มุมมอง ฯลฯ บน tablespace ที่สร้างขึ้นใหม่ ตัวอย่างเช่น ให้สร้างตารางหนึ่งชื่อ B บน MYTBLS1 tablespace:

แสดงรายการ Tablespace:

คุณสามารถใช้คำสั่งด้านล่าง และใช้ตัวเลือกเพื่อค้นหาข้อมูลโดยละเอียด

db2 list tablespaces [show details]

7) การกำหนดค่า Listener

คุณสามารถตั้งค่ารายละเอียดการเชื่อมต่อฐานข้อมูลโดยการตั้งค่าพารามิเตอร์ DB2COMM ที่ระดับอินสแตนซ์ มาเปลี่ยนการตั้งค่า Listener ปัจจุบันเพื่อใช้พอร์ต 60000 สำหรับการเชื่อมต่อ เมื่อพอร์ตมีการเปลี่ยนแปลง คุณจะต้องเริ่มบริการฐานข้อมูลใหม่สำหรับการเชื่อมต่อใหม่ เริ่มฟังบนพอร์ตที่เปลี่ยนแปลง คำสั่งมีดังนี้:

$>db2set -i db2inst1 DB2COMM=tcpip

$>db2 update dbm cfg using SVCENAME 60000

$>db2stop

$>db2start

9) การกำหนดค่าที่เก็บถาวร

ในการกำหนดค่าตัวเลือกการบันทึกฐานข้อมูลโดยใช้คำสั่ง UPDATE DATABASE CONFIGURATION บนตัวประมวลผลบรรทัดคำสั่ง:

ระบุว่าคุณต้องการใช้การบันทึกแบบวงกลมหรือการบันทึกแบบถาวร หากคุณต้องการใช้การบันทึกแบบวงกลม logarchmeth1 และ **logarchmeth2 ต้องตั้งค่าพารามิเตอร์การกำหนดค่าฐานข้อมูลเป็นปิด การตั้งค่านี้เป็นค่าเริ่มต้น ในการใช้การบันทึกการเก็บถาวร คุณต้องตั้งค่าพารามิเตอร์คอนฟิกูเรชันฐานข้อมูลเหล่านี้อย่างน้อยหนึ่งค่าเป็นค่าอื่นที่ไม่ใช่ OFF ตัวอย่างเช่น หากคุณต้องการใช้การบันทึกที่เก็บถาวรและต้องการบันทึกบันทึกที่เก็บถาวรไปยังดิสก์ ให้ใช้คำสั่งต่อไปนี้:

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

หรือ

คุณยังสามารถกำหนดคอนฟิกตัวเลือกการบันทึกฐานข้อมูลโดยใช้ IBM® Data Studio UPDATE DATABASE CONFIGURATION คำสั่ง

หรือ

db2CfgSet API

เพื่อหลีกเลี่ยงการสร้างบันทึกซ้ำ คุณสามารถใช้ตัวเลือกที่ไม่ได้บันทึกในขั้นต้นด้วยคำสั่ง CREATE TABLE/INDEX

บทสรุป

เนื่องจากงานการดูแลฐานข้อมูลเกี่ยวข้องกับกิจกรรมหลายอย่าง และกระบวนการบางอย่างที่ฉันพยายามจะสำรวจในบล็อกนี้ ฉันแน่ใจว่าคุณอาจต้องการใช้ฐานข้อมูล IBM DB2 จริงสำหรับคุณลักษณะต่างๆ ที่ฐานข้อมูลนำเสนอ การดำเนินการ SQL ส่วนใหญ่เป็นไปตามมาตรฐาน SQL ที่กำหนดโดย American National Standards Institute (ANSI) คุณสมบัติพิเศษ เช่น ฐานข้อมูลแบบคลัสเตอร์ ความพร้อมใช้งานสูง การแบ่งพาร์ติชัน การจำลอง มุมมองที่เป็นรูปธรรม ในขณะที่ยังคงรักษาโปรโตคอลความปลอดภัยทั้งหมดไว้เหมือนกับ RDBMS ยอดนิยมอื่นๆ เช่น Oracle , PostgreSQL และการกำหนดราคาของผลิตภัณฑ์ และการเชื่อมต่อกับเทคโนโลยีเกือบทั้งหมดทำให้ DB2 เป็นตัวเลือกที่โดดเด่นสำหรับนักพัฒนาทั่วโลก ตลาดฐานข้อมูล

ให้ผู้เชี่ยวชาญของเราแนะนำคุณในการเดินทางฐานข้อมูลของคุณ

ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม คุณสามารถเริ่มการสนทนากับเราได้เช่นกัน