Computer >> Máy Tính >  >> Lập trình >> Cơ sở dữ liệu

Sao lưu và khôi phục cơ sở dữ liệu Vertica

Để đảm bảo rằng bạn có thể khôi phục dữ liệu trong trường hợp dữ liệu bị hỏng hoặc ngẫu nhiên, hãy thực hiện sao lưu cơ sở dữ liệu thành một hoạt động bảo trì định kỳ. Bài đăng này khám phá việc sao lưu và khôi phục cơ sở dữ liệu của Vertica®.

Giới thiệu

Vertica, một hệ thống quản lý cơ sở dữ liệu phân tích, là một nền tảng lưu trữ dạng cột được thiết kế để xử lý khối lượng lớn dữ liệu, cho phép thực hiện truy vấn nhanh trong các tình huống sử dụng nhiều tài nguyên theo truyền thống.

Vertica cung cấp những ưu điểm sau:

  • Cải thiện hiệu suất truy vấn so với các hệ thống quản lý cơ sở dữ liệu quan hệ cơ sở dữ liệu truyền thống.
  • Cung cấp tính khả dụng cao.
  • Cung cấp khả năng mở rộng petabyte trên các máy chủ hàng hóa của doanh nghiệp.

Cơ chế sao lưu và phục hồi cơ sở dữ liệu giúp giảm thời gian chết trong quá trình bảo trì và khôi phục sau thảm họa.

Sao lưu và khôi phục cơ sở dữ liệu

Với Vertica, bạn có thể tạo các bản sao lưu nóng, các bản sao tăng dần với số lượng điểm khôi phục vô hạn và các bản sao lưu của toàn bộ cơ sở dữ liệu hoặc một tập hợp con (lược đồ, bảng, v.v.) của cơ sở dữ liệu. Các mức sao lưu sau có sẵn:

  • Cấp đầy đủ :Cấp độ này đảm bảo rằng bạn có thể sao lưu và khôi phục toàn bộ cơ sở dữ liệu Vertica.
  • Mức tăng dần :Mức này là bản sao lưu tiếp theo chỉ bao gồm dữ liệu mới hoặc dữ liệu đã thay đổi.
  • Cấp độ đối tượng :Mức này là bản sao lưu của một đối tượng để khôi phục.

Vertica cung cấp tính linh hoạt và mức độ chi tiết để khôi phục các đối tượng cụ thể (chẳng hạn như lược đồ và bảng) từ một bản sao lưu đầy đủ.

Ảnh chụp nhanh

Ảnh chụp nhanh cơ sở dữ liệu ghi lại hình ảnh nhất quán của tất cả các đối tượng và dữ liệu trong cơ sở dữ liệu. Bạn có thể chọn một tập hợp con các đối tượng cơ sở dữ liệu để đưa vào ảnh chụp nhanh cấp đối tượng, chứa dữ liệu được liên kết trong cơ sở dữ liệu tại thời điểm ảnh chụp nhanh và các đối tượng khác trong biểu đồ phụ thuộc. Bạn có thể đặt tên cho ảnh chụp nhanh của mình theo ý muốn (ví dụ:snap, objectsnap1, fullsnap, v.v.).

Vị trí dự phòng

Vị trí sao lưu là thư mục trên máy chủ lưu trữ sao lưu nơi bạn lưu ảnh chụp nhanh và lưu trữ liên quan của chúng. Vì các ảnh chụp nhanh tương thích, bạn có thể sử dụng nhiều ảnh chụp nhanh đối tượng từ cùng một vị trí sao lưu sau khi bạn khôi phục cơ sở dữ liệu từ ảnh chụp nhanh cơ sở dữ liệu đầy đủ. Tất cả ảnh chụp nhanh trong cùng một vị trí sao lưu các tệp dữ liệu được chia sẻ thông qua các liên kết cứng.

Vertica cung cấp các bản sao tiết kiệm không gian và chi phí thấp ( bản sao lưu cục bộ liên kết cứng ) của các bản sao lưu cơ sở dữ liệu trong cơ sở hạ tầng cụm cục bộ. Bạn có thể truy xuất các bản sao lưu này nhanh hơn vì hệ thống không sao chép dữ liệu người dùng sang môi trường sao lưu bên ngoài. Vertica chỉ sao chép dữ liệu danh mục và khởi tạo các liên kết cứng dựa trênLinux® trong hệ thống tệp.

Sao lưu và khôi phục cơ sở dữ liệu Vertica

Nguồn hình ảnh :https://www.vertica.com/wp-content/uploads/2016/04/sidestep1.png

Các bản sao lưu này chia sẻ cùng một bộ khối lưu trữ và mỗi bản sao lưu sẽ theo dõi bản sao tại điểm của chúng. Hệ thống không lưu trữ cùng một nội dung ở nhiều vị trí.

Quy trình sao lưu và khôi phục

Quy trình sao lưu và khôi phục bao gồm các bước sau:

  1. Chọn loại ảnh chụp nhanh, chẳng hạn như sao lưu toàn bộ, tăng dần hoặc cấp đối tượng.
  2. Tạo tệp cấu hình bằng cách sử dụng công cụ Sao lưu và phục hồi của Vertica.
  3. Khởi tạo vị trí sao lưu để lưu trữ các tệp sao lưu.
  4. Sao lưu bằng tệp cấu hình.
  5. Xác minh các bản sao lưu ở vị trí sao lưu.
  6. Khôi phục cơ sở dữ liệu đầy đủ hoặc các đối tượng cơ sở dữ liệu trên các cụm Vertica tương tự hoặc khác nhau.
Sao lưu và khôi phục cơ sở dữ liệu Vertica

Nguồn hình ảnh :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

Tạo tệp cấu hình

vbr.py tiện ích tạo tệp cấu hình với thông tin Verticare yêu cầu sao lưu và khôi phục ảnh chụp nhanh toàn bộ, tăng dần hoặc cấp đối tượng. Bạn không thể sao lưu hoặc khôi phục cơ sở dữ liệu hoặc đối tượng mà không có tệp cấu hình và không tồn tại tệp mặc định.

Bạn có thể tạo bao nhiêu tệp cấu hình sao lưu nếu bạn cần (chẳng hạn như tệp orincremental đầy đủ, đối tượng hoặc lược đồ cụ thể hoặc theo vị trí cụ thể).

Tệp cấu hình sao lưu đầy đủ

Các bước sau giúp tạo tệp cấu hình để thực hiện sao lưu cơ sở dữ liệu đầy đủ.

$ 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.
Tệp cấu hình sao lưu dành riêng cho đối tượng

Thực hiện các bước sau để tạo tệp cấu hình đối tượng cụ thể:

  1. Liệt kê các đối tượng trong cơ sở dữ liệu và chọn đối tượng nào sẽ sử dụng. Các đối tượng sau đây có trong cơ sở dữ liệu Vertica của chúng tôi:

              List of tables
      Schema | Name  | Kind  |  Owner  | Comment
     --------+-------+-------+---------+---------
      public | tab1  | table | dbadmin |
      public | tab2  | table | dbadmin |
      public | tab3  | table | dbadmin |
      (3 rows)
    
  2. Chạy lệnh sau để tạo tệp cấu hình để sao lưu public.tab1 bảng:

     $ 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.
    
  3. Chạy các lệnh sau để liệt kê các tệp cấu hình sao lưu đã tạo:

     $ 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
    

Khởi tạo vị trí sao lưu

Để khởi tạo các vị trí sao lưu cho các bản sao lưu cấp đối tượng và đầy đủ trên cụm nguồn, hãy chạy init sau tuyên bố:

$ /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

Sao lưu

Lấy một cơ sở dữ liệu đầy đủ hoặc một bản sao lưu cấp đối tượng.

Sao lưu toàn bộ cơ sở dữ liệu

Sao lưu toàn bộ cơ sở dữ liệu bằng cách sử dụng tệp cấu hình đã tạo trước đó, 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!
Sao lưu một đối tượng

Sử dụng tệp cấu hình, tab1_bkp_snap.ini , để thực hiện một bản sao lưu cấp đối tượng:

$ 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!

Xác minh vị trí sao lưu

Chạy các lệnh sau để xác minh vị trí sao lưu:

$ 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

Khôi phục bản sao lưu

Khôi phục bản sao lưu toàn bộ hoặc cấp đối tượng.

Khôi phục từ bản sao lưu toàn cơ sở dữ liệu

Lưu ý :Cơ sở dữ liệu phải ngừng hoạt động để khôi phục bản sao lưu đầy đủ.

Sử dụng các bước sau để thực hiện khôi phục toàn bộ cơ sở dữ liệu:

  1. Thả tất cả các đối tượng vào cơ sở dữ liệu của bạn và khôi phục chúng bằng bản sao lưu được tạo gần đây:

     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.
    
  2. Khi cơ sở dữ liệu ngừng hoạt động, hãy khôi phục cơ sở dữ liệu bằng cách sử dụng bản sao lưu đầy đủ:

     $ 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!
    
  3. Khởi động cơ sở dữ liệu và kiểm tra xem việc khôi phục đối tượng có thành công hay không. Ví dụ sau đây cho thấy rằng việc khôi phục đã thành công:

     cluster=> dt
                    List of tables
      Schema | Name  | Kind  |  Owner  | Comment
     --------+-------+-------+---------+---------
      public | tab1  | table | dbadmin |
      public | tab2  | table | dbadmin |
      public | tab3  | table | dbadmin |
     (3 rows)
    
Khôi phục bản sao lưu cấp đối tượng

Lưu ý :Cơ sở dữ liệu phải được thiết lập và đang chạy để khôi phục mức đối tượng.

Để khôi phục một đối tượng, bạn cần sử dụng bản sao lưu cấp đối tượng hiện có. Mã tiếp theo giảm xuống tab1 để chuẩn bị cho việc khôi phục:

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)

Thực hiện các bước sau để khôi phục một đối tượng từ bản sao lưu cấp đối tượng:

  1. Khôi phục đối tượng:

     $ 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!
    
  2. Kiểm tra xem việc khôi phục đối tượng có thành công hay không. Ví dụ sau cho thấy khôi phục thành công public.tab1 từ bản sao lưu cấp đối tượng:

     $ 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           |
    

Kết luận

Bài đăng này nêu bật logic đằng sau quy trình sao lưu và phục hồi cơ sở dữ liệu Vertica. Nó cũng cung cấp các bước để sao lưu và khôi phục cơ sở dữ liệu Vertica ở các cấp độ khác nhau, chẳng hạn như cấp độ đầy đủ, cấp độ tăng dần và cấp độ đối tượng.

Tìm hiểu thêm về Cơ sở dữ liệu.

Truy cập www.rackspace.com và nhấp vào Trò chuyện bán hàng để bắt đầu một cuộc trò chuyện.

Sử dụng tab Phản hồi để đưa ra bất kỳ nhận xét hoặc đặt câu hỏi nào.