我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何理解配置数据库高可用性中的SEGMENT镜像

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何理解配置数据库高可用性中的SEGMENT镜像

本篇文章为大家展示了如何理解配置数据库高可用性中的SEGMENT镜像,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

        前面介绍过了GREENPLUM数据库的备份和恢复。这部分主要介绍GREENPLUM的高可用性配置。GREENPLUM的高可用性是通过master和segment的镜像来实现的。这种镜像是基于服务器级别的镜像。因此,不仅可以提供存储级别的保护,还可以防止其它PC服务器硬件的损坏。
        segment级别的镜像是通过把primary segment对应的mirror segment放置到不同的物理主机实现的。正常情况下,只有primary segment的instance处于工作状态,所有primary segment上的变化通过文件块的复制技术拷贝到mirror segment。因此,存放mirror segment的主机上只有复制用的进程,而不存在mirror segment instance。一旦primary segment出现故障,mirror segment的复制进程停止,并启动instance,保证数据库的操作继续。
如何理解配置数据库高可用性中的SEGMENT镜像
         segment的故障检测是通过后台进程ftsprobe实现的,并可以进行自动容错,不需要DBA进行干预。ftsprobe的检测间隔是通过global服务参数gp_fts_probe_interval进行定义的,默认值是1分钟,通常这个参数的设置应该与参数gp_segment_connect_timeout保持一致。一旦ftsprobe进程发现primary segment出现故障,它会在数据字典中标记该segment已经停止。只有管理员对其进行恢复后,才会改变状态。
    如果系统没有进行segment级别的镜像,当出现segment故障后,整个系统都将脱机,直到恢复故障segment后,才可以重新启动。
    启用segment镜像,既可以在初始化系统时进行,也可以为存在的系统添加mirror。
    如果在初始化系统是要求添加镜像,需要在初始化配置文件中添加如下参数
    MIRROR_PORT_BASE  指定第一个mirror segment的端口号,其它mirror segment在此基础上加1,它的设置范围是1到65535,但是设置时要注意不能与primary segment冲突。
    REPLICATION_PORT_BASE 指定第一个primary segment用于数据复制的端口号,其它primary segment以此为基础,每次加1,计算复制用端口号。它的设置也不要与primary segment冲突。取值范围1到65535
    MIRROR_REPLICATION_PORT_BASE   指定第一个mirror segment用于数据复制的端口号,其它mirror segment以此为基础,每次加1,计算复制用端口号。它的设置也不要与mirror segment冲突。取值范围1到65535
    MIRROR_DATA_DIRECTORY 指定了mirror segment的数据目录,声明的目录数量必须与primary segment的目录数量一致,而且要保证进行初始化操作的os用户对这些目录有读写权限。
    然后调用gpinitsystem进行初始化,默认是使阵列中的主机相互存放对方的镜像。如果主机的数量多于segment的数量,可以使用-S选项,指定使用哪些主机作为镜像用。
    如果原有系统没有镜像,我们也可以向存在的系统添加镜像。首先要获取添加镜像的构造文件。这个文件可以自己编辑,也可以通过gpaddmirrors自动生成,然后在此基础上根据需要进行修改。比如自动生成添加mirror的构造文件
    $ gpaddmirrors -o filename
文本编辑器打开该构造文件,可以看到其格式如下
mirror[content]=content:hostname:address:port:mir_replication_port:pri_replication_port:datadir_location
默认配置是原有的主机间互为镜像,我们也可以添加新的主机作为镜像使用,从而减少镜像对性能的影响。
    在得到mirror构造文件后,可以掉用命令启用镜像。
    $ gpaddmirrors -i mirror_config_file
这时系统会根据配置文件设置,复制镜像,并对镜像进行同步,提供保护。需要注意的是,在添加镜像前应该先备份数据库,防止镜像添加失败(比如网路配置问题,内核参数设置不正确可能导致添加镜像失败)。因为GREENPLUM目前只能添加镜像,不能删除镜像。如果添加镜像失败会导致系统处于不正常状态。
    由于mirror segment可以自动failover,因此当primary segment出现故障时,管理员可能无法及时察觉。所以一方面管理员应该对系统定期检查,另外一方面如果系统性能大幅下降(理论上,如果采用互为镜像方式,当一个主机出现故障时,整个系统性能下降一半)管理员也应该进行系统检查,判断是否有segment已经down掉了。
     检查是否有segment down掉,可以在master上执行gpstate,如果看到类似这样的内容[WARN]:-Total primary segment failures (at master) = 1 <<<<<<,说明有primary segment down掉了。进一步检查故障segment,可以用SQL SELECT * FROM gp_segment_configuration WHERE status='d';获取细节信息,请注意故障段的主机,端口号,首选身份,以及目录这样的信息,可以在troubleshooting的过程中提供帮助。还可以通过gpstate -c看到primary与mirror之间的映射关系。
     此外,DBA还应该检查master和segment上的日志,通过$ gplogfilter -t可以获取WARNING, ERROR, FATAL 或者PANIC级别的日志信息帮助进行troubleshooting。
    一般来说,造成segment故障的原因主要就是三大类,一类是segment主机由于硬件问题或者网络问题无法访问,一类是segment的相关进程出现故障,比如被kill掉了。还有就是存储问题,比如控制器故障等等。在这些问题被解决之后,系统不会自动恢复故障segment,必须由DBA手工进行恢复。这需要在master上调用命令$ gprecoverseg 进行。它从故障之后产生的变化开始捕获,整个操作会在后台进行。所以需要DBA调用命令gpstate -m判断恢复操作完成的进度情况。
    如果原始主机无法恢复,并且启用mirror,用命令$ gprecoverseg -i recover_config_file,指定新的主机进行恢复。配置文件的格式如下
failed_host_address:port:datadir 
 recovery_host_address:recovery_host_name:port:replication_port:fselocation
    当然替代主机需要事先装好greenplum的软件。另外,3.x版本中的参数gp_fault_action已经废弃掉了。gprecoverseg在4.x版本中可以联机执行。

注:如果segment出现故障,已经执行的操作会中断,需要重新提交操作

上述内容就是如何理解配置数据库高可用性中的SEGMENT镜像,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何理解配置数据库高可用性中的SEGMENT镜像

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何理解配置数据库高可用性中的SEGMENT镜像

本篇文章为大家展示了如何理解配置数据库高可用性中的SEGMENT镜像,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 前面介绍过了GREENPLUM数据库的备份和恢复。这部分主要介绍GR
2023-06-06

描述如何配置SQL Server的数据库镜像

要配置SQL Server的数据库镜像,您可以按照以下步骤操作:在每个要参与数据库镜像的SQL Server实例上启用数据库镜像功能。在主数据库服务器上创建一个数据库镜像端点,该端点用于与镜像数据库服务器之间的通信。在主数据库服务器上创建一
描述如何配置SQL Server的数据库镜像
2024-06-04

如何在MySQL数据库中实现MHA高可用配置

本篇文章给大家分享的是有关如何在MySQL数据库中实现MHA高可用配置,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、MHA介绍(一)、什么是MHAMHA(MasterHig
2023-06-06

如何在MySQL中实现数据库复制和高可用性

要在MySQL中实现数据库复制和高可用性,可以采用以下方法:MySQL复制:MySQL提供了内置的复制功能,可以使用主从复制或主主复制来实现数据库复制。主从复制是将数据从一个MySQL服务器(主服务器)复制到另一个MySQL服务器(从服务器
如何在MySQL中实现数据库复制和高可用性
2024-03-06

如何在Oracle数据库中实施容灾和高可用性解决方案

在Oracle数据库中实施容灾和高可用性解决方案通常使用以下方法:数据库备份和恢复:定期备份数据库,并确保备份数据可恢复。可以使用Oracle的RMAN工具来管理数据库备份和恢复。数据库复制:使用Oracle的数据复制功能来将数据库数据复制
如何在Oracle数据库中实施容灾和高可用性解决方案
2024-03-02

阿里云数据库代理服务——实现高可用性和高性能的数据库连接解决方案

阿里云数据库代理服务是一种用于实现数据库高可用性和高性能的解决方案。它通过在客户端和数据库之间建立一个代理服务器,将客户端请求转发到后端数据库,并处理请求并返回结果给客户端。本文将详细介绍阿里云数据库代理服务的功能、优势以及应用场景。详细说明:功能介绍阿里云数据库代理服务(DatabaseProxyService
阿里云数据库代理服务——实现高可用性和高性能的数据库连接解决方案
2024-01-17

如何在MySQL中设计一个高可用的会计系统表结构以确保数据的可靠性和可用性?

如何在MySQL中设计一个高可用的会计系统表结构以确保数据的可靠性和可用性?在设计一个高可用的会计系统表结构时,我们需要考虑数据的可靠性和可用性。下面将介绍一些在MySQL中设计高可用的会计系统表结构的方法,并提供相应的代码示例。使用事务事
如何在MySQL中设计一个高可用的会计系统表结构以确保数据的可靠性和可用性?
2023-10-31

C++技术中的大数据处理:如何使用内存数据库优化大数据性能?

在大数据处理中,采用内存数据库(如 aerospike)可以提升 c++++ 应用程序的性能,因为它将数据存储在计算机内存中,消除了磁盘 i/o 瓶颈,显著提高了数据访问速度。实战案例表明,使用内存数据库的查询速度比使用硬盘数据库快几个数量
C++技术中的大数据处理:如何使用内存数据库优化大数据性能?
2024-05-12

云服务器如何配置access数据库文件夹中的文件权限管理

执行以下命令来创建一个名为mydatabase的access数据库文件夹,并赋予其访问权限:grepusername10,15,authorJohnDoe,password@10001执行以下命令来删除一个名为mydatabase的access数据库文件夹,并释放其占用的磁盘空间:grepusername10,15,authorJohnDoe,password@10001通过以上命令,云服务器可以为访问权限管理提供更多的灵活性和控制。
2023-10-27

如何使用Python中的数据分析库和可视化工具对大规模数据进行处理和展示

如何使用Python中的数据分析库和可视化工具对大规模数据进行处理和展示,需要具体代码示例数据分析和可视化是现代科学和商业决策的关键工具。Python是一种功能强大且易于使用的编程语言,具有丰富的数据分析库和可视化工具,如NumPy、Pan
2023-10-22

Java中的JDBC是如何连接和操作数据库的?(请解释Java数据库连接(JDBC)的工作原理及其用法。)

JDBC工作原理:加载JDBC驱动程序,建立与数据库连接,创建SQL语句,执行SQL语句,处理结果或更新,关闭连接。JDBC用法:导入JDBC包,注册驱动程序,建立连接,创建SQL语句,执行语句,处理结果/更新,关闭连接。示例:连接MySQL数据库并查询数据:导入JDBC包,建立连接,创建SQL语句,执行并处理结果。优势:数据库独立性,标准化接口,广泛使用,易于使用。
Java中的JDBC是如何连接和操作数据库的?(请解释Java数据库连接(JDBC)的工作原理及其用法。)
2024-04-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录