【Vertica】数据库的备份和恢复

Backing Up and Restoring the Database

HP Vertica支持一个综合的应用,vbr.pyPython script,它的功能包括:back up, restore, list backups,把数据库复制到其他集群。备份支持object-levelbackups,备份用户和表。对于全库,可以创建全量或者增量的备份。如果存在一个全量的备份,我们可以恢复全库,也可以恢复一个或者多个数据库对象。使用vbr.py备份集支持的保存位置:

A. 本地目录(the nodes in the cluster);

B. 集群外的一个或者多个主机;

C. A different HP Vertica cluster(可以有效复制数据库)

1 兼容性要求

you cannot restore a version 6.x backup toa version 7.x database;

HP Vertica does support restores within thesame major release.

Forexample you can restore a version 7.0 backup to a version 7.1 database

2 自动定期备份

将vbr.py的运行参数放到一个脚本文件中。利用linux的cron定时调度备份操作。

3 备份方式

Vbr.py支持3中备份方式:

a. Full backups

b. Object-level backups

c. Hard link local backups

我们可以通过用户自定义的描述名称来指示全库或者对象备份,比如FullDBSnap, Schema1Bak, Table1Bak

注:

recovery主要是处理数据一致性的问题–一个应用archivelog及redorestore单纯还原文件了

3.1 全库备份

一个全库的备份集包括:databasecatalog,用户模式,表和其他对象。备份集是数据库备份时刻的一个镜像或者快照。灾难恢复的时候,可以使用一个全量的备份集还原不完备或者损坏的数据。

​ 当一个全量备份集存在的时候,vbr.py在全量之后,创建一系列连续的快照,记录数据的变化。

​ Archives包含了一系列想通名称的备份集。

3.2 Object-Level备份

一个object-level备份,包含了一个或者多个表或者用户;当一个对象的备份存在的时候,我们可以恢复它的全部内容,但是不能指定恢复其中的一个特定的。

Note: HP Verticadoes not support object level backups on Hadoop Distributed File System

(HDFS) storage.

​ Object-Level备份支持如下基本的对象:

可选择对象 可以选择作为object-level备份一部分的对象,比如T1和T2表
依赖对象 由于依赖关系,必须作为备份集一部分的对象。比如,对一个包含外键的表创建备份集,则vbr.py因为表约束,自动包含主键的表。Projections也是依赖对象
Principal objects The objects on which both selected and dependent objects depend arecalled principal objects. For example, each table and projection has anowner, and each is a principal object.

3.3 本地备份的硬链接

一系列的hard file links来匹配数据文件。A hard link local backup是数据库catalog(登记目录)的备份。

4 什么时候备份数据库

升级版本之前:Before you upgrade HP Vertica to another release。

删除分区之前:Beforeyou drop a partition

加载大的数据卷之后:Afteryou load a large volume of data.

修改集群(添加删除更好节点)之后:Before and after you add, remove, or replace nodes in your databasecluster

还原集群之后:After recovering a cluster from a crash。

注:全库还原之后,集群也需要还原。所以更新集群配置之后,需要重新备份。

When you restore a full database backup, you mustrestore to a cluster that is identical

to the one on which you created the backup. For thisreason, always create a new full backup

after adding, removing, or replacing nodes.

5 配置备份主机

使用vbr.py的配置文件,指定集群中的哪个节点备份到哪个主机上面。对于备份主机的要求:

A. 有足够备份的磁盘空间。

B. 集群可以通过SSH访问备份主机。

C. 备份主机可以无密码SSH访问数据库的管理员用户。

D. 备份主机的python和rsync版本和HP Vertica installer安装的版本相同。

5.1 创建备份主机的配置文件

注:考虑到备份的性能,推荐集群中的每个node备份到一个单独的备份主机上。

for optimal network performance whencreating a backup, HP Vertica recommends having each node in the cluster use adedicated backup host。

对于全量备份和对象基本的备份,创建分开的配置文件不同的名称的配置文件,对于相同的节点,相同的备份主机和备份目录。针对一个备份目录,最后只存放一个database的备份集。

5.2 估算备份主机的磁盘需求

首先,需要考虑增量备份的磁盘的容量。如果使用多个archive,磁盘容量还好增加。

HP推荐每个备份主机的容量,是数据库使用空间的2倍(HP Vertica recommendsthat each backup host has space for at least twice the database footprint size)

​ 确认磁盘空间:

select sum(used_bytes) fromstorage_containers where node_name=‘v_mydb_node0001’;

或者

select node_name,sum(used_bytes) assize_in_bytes from v_monitor.storage_containers group

by node_name;

5.3 Log File估算日志文件的备份要求

HP推荐每个备份主机给vbr.pylog files分配1GB的空间;log file不会自动删除,有必要手段删除。

​ 执行命令vbr.py—setupconfig配置配置文件和参数的时候,有个参数tempDir指定vbr.py在备份主机写日志。默认位置是在每个主机的/tmp/vbr目录下面。日志文件描述了进程,吞吐,每个node发生的任何报错。

5.4 确定备份主机是可以访问的。

​ 在数据库节点和备份主机之间,防火墙需要允许ssh和rsync协议通过port 50000连接。备份主机的python和rsync版本和HP Vertica installer安装或支持的版本相同。

5.5 设置无密码SSH访问

【1】备份主机的访问账户,拥有写备份目录和日志目录(默认/tmp/)的权限。

​ 【2】相应的备份节点有用集群中任一节点的无密码ssh访问权限。

5.6 增加备份主机SSH协议最大的连接数的设置

多个数据库节点备份到一个备份主机的时候(N:1),SSH daemon(sshd)增加ssh连接数量的设置,默认每个host的ssh连接数是10;

  1. Log on as root to access the config file.2. Open the SSH configuration file (/etc/ssh/sshd_config) in a text editor.3. Locate the #MaxStartups parameter.4. Remove the comment character (#) and increase the value from the default of 10. 大于所有要连接主机的数量。5. Save the file.6. Reload the file using the following command:***sudo /etc/init.d/sshd reload***7. Exit from root.

6 配置本地备份主机的Hard Link

When specifyingthe backupHost parameter for your hard link local configuration files, use the databasehost names (or IP addresses) as known to Admintools, rather than the node names.Host names (or IP addresses) are what you used when setting up the cluster. Donot use localhost for the backupHost parameter.

6.1 列出hostname

​ *selectnode_name, host_name from node_resources;*

7 创建vbr.py配置文件

back up andrestore a full or object-level backup, or to copy a cluster,vbr.pyutility是通过配置文件来完成这些操作的。

注:Note: You must be logged on as dbadmin, not root, to create the vbr configuration file.

​ 创建配置文件命令:

#dbadmin用户执行。/opt/vertica/bin/vbr.py --setupconfig

例如:

[dbadmin@localhost ~]$ /opt/vertica/bin/vbr.py --setupconfigSnapshot name (backup_snapshot): fullbakBackup vertica configurations? (n) [y/n]: yNumber of restore points (1): 3Specify objects (no default):Vertica user name (dbadmin):Save password to avoid runtime prompt? (n) [y/n]: yPassword to save in vbr config file (no default):Node v_vmart_node0001Backup host name (no default): 127.0.0.1Backup directory (no default): /home/dbadmin/backupsConfig file name (fullbak1.ini):Change advanced settings? (n) [y/n]: nSaved vbr configuration to fullbak1.ini.

7.1 指定一个备份名称

Snapshot name (backup_snapshot):

不能空白。备份名称,不需要添加时间。

全库备份和对象备份的配置文件虽然不同,但是备份目录是相同的。

例如:

a full database backup, called fullbak.iniwould have these snapshotName and backupDir

parameter values:

snapshotName=fullbakbackupDir=/home/dbadmin/data/backups

The configuration file for the object-levelbackup, called objectbak.ini, would have these

parameter values:

snapshotName=objectbakbackupDir=/home/dbadmin/data/backups

7.2 备份Vertica Configuration File

一定要备份数据库的配置文件。配置文件vertica.conf保存在catalog的目录。

Enter y to include a copy of the vertica.conffile in the backup. The file is not saved by default:

Backup vertica configurations? (n) [y/n]:

The vertica.conf file containsconfiguration parameters you have changed. The file is stored in

the catalog directory. Press Enter toaccept the default, or n to omit the file explicitly.

7.3 保存多个还原点

Number of restore points (1):

指定还原点的数据量:默认为1。

7.4 选择Full or Object-Level Backups

Specify objects (no default):

输入表名的形式为:schema.objectname

输入多个表名或者schema名称,用逗号分开名称

输入的名称,在配置文件的Objects parameter中列出来。

7.5 输入User Name

输入谁会调用vbr.py的用户:

Vertica user name (dbadmin):

7.6 保存账号密码

vbr.py执行的时候ÿ

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值