เพื่อให้แน่ใจว่าคุณสามารถกู้คืนข้อมูลได้ในกรณีที่ข้อมูลเสียหายหรือการลบโดยไม่ได้ตั้งใจ ให้สำรองข้อมูลฐานข้อมูลเป็นกิจกรรมการบำรุงรักษาตามปกติ โพสต์นี้สำรวจการสำรองและกู้คืนฐานข้อมูลVertica®
แนะนำตัว
Vertica ซึ่งเป็นระบบจัดการฐานข้อมูลเชิงวิเคราะห์ เป็นแพลตฟอร์มพื้นที่เก็บข้อมูลแบบเสาที่ออกแบบมาเพื่อจัดการข้อมูลปริมาณมาก ทำให้สามารถสืบค้นข้อมูลได้อย่างรวดเร็วในสถานการณ์ที่ใช้ทรัพยากรจำนวนมาก
Vertica มีข้อดีดังต่อไปนี้:
- ปรับปรุงประสิทธิภาพการสืบค้นมากกว่าระบบจัดการฐานข้อมูลเชิงสัมพันธ์แบบเดิม
- ให้ความพร้อมใช้งานสูง
- ให้ความสามารถในการปรับขนาดระดับเพตะไบต์บนเซิร์ฟเวอร์สินค้าโภคภัณฑ์ระดับองค์กร
กลไกการสำรองและกู้คืนฐานข้อมูลช่วยลดเวลาหยุดทำงานระหว่างการบำรุงรักษาและการกู้คืนจากความเสียหาย
สำรองและกู้คืนฐานข้อมูล
ด้วย Vertica คุณสามารถสร้างการสำรองข้อมูลด่วน สำเนาที่เพิ่มขึ้นโดยมีจุดคืนค่าจำนวนไม่ จำกัด และการสำรองข้อมูลของฐานข้อมูลทั้งหมดหรือชุดย่อย (สคีมา ตาราง และอื่นๆ) ของฐานข้อมูล มีระดับการสำรองข้อมูลต่อไปนี้:
- เต็มระดับ :ระดับนี้ช่วยให้แน่ใจว่าคุณสามารถสำรองและกู้คืนฐานข้อมูล Vertica ทั้งหมดได้
- ระดับที่เพิ่มขึ้น :ระดับนี้เป็นข้อมูลสำรองที่ตามมาซึ่งประกอบด้วยข้อมูลใหม่หรือข้อมูลที่เปลี่ยนแปลงเท่านั้น
- ระดับวัตถุ :ระดับนี้เป็นข้อมูลสำรองของวัตถุสำหรับการกู้คืน
Vertica มอบความยืดหยุ่นและระดับความละเอียดในการกู้คืนอ็อบเจ็กต์เฉพาะ (เช่น สคีมาและตาราง) จากการสำรองข้อมูลเต็มรูปแบบ
สแนปชอต
สแนปชอตฐานข้อมูลจับภาพที่สอดคล้องกันของออบเจ็กต์และข้อมูลทั้งหมดในฐานข้อมูล คุณสามารถเลือกชุดย่อยของออบเจ็กต์ฐานข้อมูลที่จะรวมไว้ในสแนปชอตระดับอ็อบเจ็กต์ ซึ่งประกอบด้วยข้อมูลที่เกี่ยวข้องในฐานข้อมูล ณ เวลาที่สแนปชอตและออบเจ็กต์อื่นๆ ในกราฟการขึ้นต่อกัน คุณสามารถตั้งชื่อสแนปชอตของคุณได้ตามต้องการ (เช่น snap, objectnap1, fullsnap เป็นต้น)
ตำแหน่งสำรอง
ตำแหน่งสำรองคือไดเร็กทอรีบนโฮสต์สำรองที่คุณบันทึกสแน็ปช็อตและไฟล์เก็บถาวรที่เกี่ยวข้อง เนื่องจากสแน็ปช็อตเข้ากันได้ คุณสามารถใช้สแน็ปช็อตออบเจ็กต์ใดก็ได้จากตำแหน่งสำรองเดียวกัน หลังจากที่คุณกู้คืนฐานข้อมูลจากสแน็ปช็อตของฐานข้อมูลแบบเต็ม สแนปชอตทั้งหมดในไฟล์แชร์ดาต้าตำแหน่งสำรองเดียวกันผ่านฮาร์ดลิงก์
การสำรองข้อมูลแบบฮาร์ดลิงก์
Vertica ให้สำเนาต้นทุนต่ำและประหยัดพื้นที่ (การสำรองข้อมูลในเครื่องแบบฮาร์ดลิงก์ ) ของการสำรองข้อมูลฐานข้อมูลในโครงสร้างพื้นฐานคลัสเตอร์ภายใน คุณสามารถดึงข้อมูลสำรองเหล่านี้ได้เร็วขึ้น เนื่องจากระบบไม่ได้คัดลอกข้อมูลผู้ใช้ไปยังสภาพแวดล้อมภายนอก Vertica คัดลอกเฉพาะข้อมูลแค็ตตาล็อกและเริ่มฮาร์ดลิงก์บน Linux® ภายในระบบไฟล์
แหล่งที่มาของรูปภาพ :https://www.vertica.com/wp-content/uploads/2016/04/sidestep1.png
ข้อมูลสำรองเหล่านี้ใช้บล็อกพื้นที่เก็บข้อมูลชุดเดียวกัน และข้อมูลสำรองแต่ละรายการจะติดตามสำเนา ณ เวลานั้น ระบบไม่ได้จัดเก็บเนื้อหาเดียวกันไว้หลายที่
ขั้นตอนการสำรองข้อมูลและการกู้คืน
ขั้นตอนการสำรองข้อมูลและการกู้คืนประกอบด้วยขั้นตอนต่อไปนี้:
- เลือกประเภทสแนปชอต เช่น การสำรองข้อมูลแบบเต็ม ส่วนเพิ่ม หรือระดับออบเจ็กต์
- สร้างไฟล์การกำหนดค่าโดยใช้เครื่องมือ Vertica Backup and Recovery
- เริ่มต้นตำแหน่งสำรองเพื่อจัดเก็บไฟล์สำรอง
- สำรองข้อมูลโดยใช้ไฟล์การกำหนดค่า
- ตรวจสอบข้อมูลสำรองในตำแหน่งสำรอง
- กู้คืนฐานข้อมูลหรืออ็อบเจ็กต์ฐานข้อมูลทั้งหมดบนคลัสเตอร์ Vertica ที่คล้ายกันหรือต่างกัน
แหล่งที่มาของรูปภาพ :https://www.vertica.com/kb/Copy-and-Restore-Data-from-a-Vertica-Cluster-to-a-Backup/Content/BestPractices/Copy-and-Restore-Data-from-a -Vertica-Cluster-to-a-Backup.htm
สร้างไฟล์การกำหนดค่า
vbr.py ยูทิลิตีสร้างไฟล์การกำหนดค่าที่มีข้อมูลที่ Verticare กำหนดให้สำรองและกู้คืนสแน็ปช็อตแบบเต็ม ที่เพิ่มขึ้น หรือระดับออบเจ็กต์ คุณไม่สามารถสำรองหรือกู้คืนฐานข้อมูลหรืออ็อบเจ็กต์โดยไม่มีไฟล์การกำหนดค่า และไม่มีไฟล์เริ่มต้น
คุณสามารถสร้างไฟล์คอนฟิกูเรชันสำรองได้มากเท่าที่คุณต้องการ (เช่น ไฟล์แบบเต็ม orincremental ออบเจ็กต์หรือไฟล์เฉพาะสคีมา หรือไฟล์เฉพาะตำแหน่ง)
ไฟล์การกำหนดค่าการสำรองข้อมูลแบบเต็ม
ขั้นตอนต่อไปนี้ช่วยในการสร้างไฟล์การกำหนดค่าเพื่อสำรองข้อมูลฐานข้อมูลทั้งหมด
$ vbr.py --setupconfig
Snapshot name (backup_snapshot): full_bkp_snap
Backup vertica configurations? (n) [y/n]: y
Number of restore points (1):
Specify objects (no default):
Vertica user name (dbadmin): dbadmin
Save password to avoid runtime prompt? (n) [y/n]: n
Node v_testdb_node0001
Backup host name (no default): v_testdb_node0001
Backup directory (no default): /vert_backup/backup
Node v_testdb_node0002
Backup host name (no default): v_testdb_node0002
Backup directory (no default): /vert_backup/backup
Node v_testdb_node0003
Backup host name (no default): v_testdb_node0003
Backup directory (no default): /vert_backup/backup
Config file name (full_bkp_snap.ini): /vert_backup/backup_conf/full_bkp_snap.ini
Change advanced settings? (n) [y/n]: n
Saved vbr configuration to /vert_backup/backup_conf/full_bkp_snap.ini.
ไฟล์การกำหนดค่าการสำรองข้อมูลเฉพาะออบเจ็กต์
ทำตามขั้นตอนต่อไปนี้เพื่อสร้างไฟล์การกำหนดค่าเฉพาะออบเจ็กต์:
-
แสดงรายการวัตถุในฐานข้อมูลและเลือกวัตถุที่จะใช้ ออบเจ็กต์ต่อไปนี้มีอยู่ในฐานข้อมูล Vertica ของเรา:
List of tables Schema | Name | Kind | Owner | Comment --------+-------+-------+---------+--------- public | tab1 | table | dbadmin | public | tab2 | table | dbadmin | public | tab3 | table | dbadmin | (3 rows)
-
เรียกใช้คำสั่งต่อไปนี้เพื่อสร้างไฟล์การกำหนดค่าเพื่อสำรองข้อมูลของ public.tab1 ตาราง:
$ vbr.py --setupconfig Snapshot name (backup_snapshot): tab1_bkp_snap Backup vertica configurations? (n) [y/n]: n Number of restore points (1): Specify objects (no default): public.tab1 Vertica user name (dbadmin): dbadmin Save password to avoid runtime prompt? (n) [y/n]: n Node v_testdb_node0001 Backup host name (no default): v_testdb_node0001 Backup directory (no default): /vert_backup/backup Node v_testdb_node0002 Backup host name (no default): v_testdb_node0002 Backup directory (no default): /vert_backup/backup Node v_testdb_node0003 Backup host name (no default): v_testdb_node0003 Backup directory (no default): /vert_backup/backup Config file name (tab1_bkp_snap.ini): /vert_backup/backup_conf/tab1_bkp_snap.ini Change advanced settings? (n) [y/n]: n Saved vbr configuration to /vert_backup/backup_conf/tab1_bkp_snap.ini.
-
เรียกใช้คำสั่งต่อไปนี้เพื่อแสดงรายการไฟล์การกำหนดค่าสำรองที่สร้างขึ้น:
$ cd /vert_backup/backup_conf/ $ ls -la total 20 drwxr-xr-x. 2 dbadmin dbadmin 4096 Jan 20 14:21 . -rw-rw-r--. 1 dbadmin dbadmin 488 Jan 20 14:21 tab1_bkp_snap.ini -rw-rw-r--. 1 dbadmin dbadmin 475 Jan 20 14:04 full_bkp_snap.ini
เริ่มต้นตำแหน่งสำรอง
ในการเริ่มต้นตำแหน่งสำรองสำหรับการสำรองข้อมูลแบบเต็มและระดับออบเจ็กต์บนคลัสเตอร์ต้นทาง ให้เรียกใช้ init
ต่อไปนี้ คำชี้แจง:
$ /opt/vertica/bin/vbr.py -t init --config-file full_bkp_snap.ini
$ /opt/vertica/bin/vbr.py -t init --config-file tab1_bkp_snap.ini
สำรองข้อมูล
ใช้ฐานข้อมูลแบบเต็มหรือการสำรองข้อมูลระดับออบเจ็กต์
สำรองข้อมูลฐานข้อมูลทั้งหมด
สำรองข้อมูลฐานข้อมูลทั้งหมดโดยใช้ไฟล์การกำหนดค่าที่สร้างไว้ก่อนหน้านี้full_bkp_snap.ini :
$ vbr.py --task backup --config-file full_bkp_snap.ini
Please input vertica password:
pparing...
Found Database port: 5433
Copying...
348900 out of 348900, 100%
All child processes terminated successfully.
Committing changes on all backup sites...
backup done!
การสำรองข้อมูลออบเจ็กต์เดี่ยว
ใช้ไฟล์การกำหนดค่า tab1_bkp_snap.ini เพื่อทำการสำรองข้อมูลระดับออบเจ็กต์:
$ vbr.py --task backup --config-file tab1_bkp_snap.ini
Please input vertica password:
pparing...
Found Database port: 5433
Copying...
78920 out of 78920, 100%
All child processes terminated successfully.
Committing changes on all backup sites...
backup done!
ตรวจสอบตำแหน่งสำรอง
เรียกใช้คำสั่งต่อไปนี้เพื่อตรวจสอบตำแหน่งสำรอง:
$ cd vert_backup/
$ ls -la
total 16
drwxr-xr-x. 4 dbadmin dbadmin 4096 Jan 20 13:40 .
dr-xr-xr-x. 28 root root 4096 Jan 20 13:53 ..
drwxr-xr-x. 5 dbadmin dbadmin 4096 Jan 20 15:22 backup
drwxr-xr-x. 2 dbadmin dbadmin 4096 Jan 20 15:29 backup_conf
$ cd backup/
$ ll
total 12
drwxrwxr-x. 8 dbadmin dbadmin 4096 Jan 20 15:29 v_testdb_node0001
drwxrwxr-x. 8 dbadmin dbadmin 4096 Jan 20 15:29 v_testdb_node0002
drwxrwxr-x. 8 dbadmin dbadmin 4096 Jan 20 15:29 v_testdb_node0003
$ cd v_testdb_node0001/
$ ll
total 12
drwx------. 3 dbadmin dbadmin 4096 Jan 20 15:29 tab1_bkp_snap
drwx------. 3 dbadmin dbadmin 4096 Jan 20 15:22 full_bkp_snap
กู้คืนข้อมูลสำรอง
คืนค่าการสำรองข้อมูลทั้งหมดหรือระดับออบเจ็กต์
กู้คืนจากการสำรองข้อมูลฐานข้อมูลเต็มรูปแบบ
หมายเหตุ :ฐานข้อมูลต้องหยุดทำงานเพื่อกู้คืนข้อมูลสำรองทั้งหมด
ใช้ขั้นตอนต่อไปนี้เพื่อดำเนินการกู้คืนฐานข้อมูลแบบเต็ม:
-
วางอ็อบเจ็กต์ทั้งหมดในฐานข้อมูลของคุณและกู้คืนด้วยข้อมูลสำรองที่สร้างขึ้นล่าสุด:
cluster=> dt List of tables Schema | Name | Kind | Owner | Comment --------+-------+-------+---------+--------- public | tab1 | table | dbadmin | public | tab2 | table | dbadmin | public | tab3 | table | dbadmin | (3 rows) cluster=> drop table tab1,tab2,tab3; DROP TABLE cluster=> dt No relations found.
-
เมื่อฐานข้อมูลไม่ทำงาน ให้กู้คืนฐานข้อมูลโดยใช้ข้อมูลสำรองแบบเต็ม:
$ vbr.py --task restore --config-file full_bkp_snap.ini Please input vertica password: Preparing... Found Database port: 5433 Copying... 248556 out of 248556, 100% All child processes terminated successfully. restore done!
-
เริ่มฐานข้อมูลและตรวจสอบว่าการกู้คืนวัตถุสำเร็จหรือไม่ ตัวอย่างต่อไปนี้แสดงว่าการคืนค่าสำเร็จ:
cluster=> dt List of tables Schema | Name | Kind | Owner | Comment --------+-------+-------+---------+--------- public | tab1 | table | dbadmin | public | tab2 | table | dbadmin | public | tab3 | table | dbadmin | (3 rows)
คืนค่าการสำรองข้อมูลระดับออบเจ็กต์
หมายเหตุ :ฐานข้อมูลต้องเปิดทำงานสำหรับการกู้คืนระดับอ็อบเจ็กต์
ในการกู้คืนอ็อบเจ็กต์ คุณต้องใช้การสำรองข้อมูลระดับอ็อบเจ็กต์ที่มีอยู่ รหัสต่อไปนี้ลดลง tab1 ในการเตรียมการบูรณะ:
cluster=> drop table tab1;
DROP TABLE
cluster=> dt
List of tables
Schema | Name | Kind | Owner | Comment
-------+-------+-------+---------+---------
public | tab2 | table | dbadmin |
public | tab3 | table | dbadmin |
(2 rows)
ทำตามขั้นตอนต่อไปนี้เพื่อกู้คืนอ็อบเจ็กต์จากการสำรองข้อมูลระดับอ็อบเจ็กต์:
-
คืนค่าวัตถุ:
$ vbr.py --task restore --config-file tab1_bkp_snap.ini Please input vertica password:xxxxxxxx Preparing... Found Database port: 5433 Copying... out of , 100% All child processes terminated successfully. Copying... 2970 out of 2970, 100% All child processes terminated successfully. restore done!
-
ตรวจสอบว่าการกู้คืนวัตถุสำเร็จหรือไม่ ตัวอย่างต่อไปนี้แสดงการกู้คืนที่ประสบความสำเร็จของ public.tab1 จากการสำรองข้อมูลระดับออบเจ็กต์:
$ vsql Password:xxxxxxx dbadmin=> dt List of tables Schema | Name | Kind | Owner | Comment --------+-------+-------+---------+--------- public | tab1 | table | dbadmin | public | tab2 | table | dbadmin | public | tab3 | table | dbadmin | (3 rows) dbadmin=> d tab1 ; List of Fields by Tables Schema | Table | Column | Type | Size | Default | Not Null | Primary Key | Foreign Key --------+-------+--------+--------------+------+---------+----------+-------------+------------- public | tab1 | col1 | numeric(3,) | 8 | | f | f |
บทสรุป
โพสต์นี้เน้นย้ำถึงตรรกะเบื้องหลังกระบวนการสำรองและกู้คืนฐานข้อมูล Vertica นอกจากนี้ยังมีขั้นตอนในการสำรองและกู้คืนฐานข้อมูล Vertica ในระดับต่างๆ เช่น แบบเต็ม ส่วนเพิ่ม และระดับวัตถุ
เรียนรู้เพิ่มเติมเกี่ยวกับฐานข้อมูล
ไปที่ www.rackspace.com และคลิก แชทขาย เพื่อเริ่มการสนทนา
ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม