KingbaseES数据库部署及双机热备配置

  1. Dataguard双机热备部署

注:配置期间使用数据库的属主用户进行操作

1.1 数据一致性准备

(1)修改数据库的配置文件参数:(2阶段初始化的数据库实例)

创建在归档日志存放目录(需要根据机器的存储空间进行创建,空间大于100GB):

mkdir
 /datas_local/archive
vim
 /DBDATA/data/kingbase.conf
打开归档:
log_archive_start
 = on
log_archive_dest = '/datas_local/archive'       --目录根据操作系统服务器存储设置

备机只读设置:

hot_standby=on
wal_level='hot_standby'

使用kingbase用户操作

1、将从机指定数据目录下的(/DBDATA)data目录删除;
2、将主机指定数据目录下的(/DBDATA)data目录打包压缩:tar –czvf data.tbz data
3、将主机指定数据目录下的(/home/kingbase/KingbaseES)的data.tbz复制到从机指定路径下(/DBDATA)。
主机IP:10.150.73.182  从机IP:10.150.73.187
4、 在从机上指定目录(/DBDATA)解压数据文件data.tbz,生成本地数据目录:tar
 -xzvf data.tbz;
(2) 增加ifconfig文件的SUID和SGID,使普通用户运行ifconfig时暂时具备root权限。
chmod u+s /sbin/ifconfig
chmod g+s /sbin/ifconfig

1.2 Dataguard配置文件准备

1、先配置主机,再配置从机;

将/home/kingbase/KingbaseES/bin/template/standby.conf分别拷贝到主备数据库安装目录的config下,并进行修改;
A机外网IP:10.150.73.182
A机私网IP:10.10.10.1
B机外网IP:10.150.73.187
B机私网IP:10.10.10.2
浮动ip:10.150.73.189

主机OS配置:

Dataguard和kingbase运行在普通用户模式下,普通用户没有设置和删除IP的权限,IP浮动过程中,需要设置和删除IP,因此,如果需要浮动IP功能,需要增加普通用户设置和删除IP的权限。方法示例:

增加ifconfig文件的SUID和SGID,使普通用户运行ifconfig时暂时具备root权限,使用root用户执行:

chmod u+s /sbin/ifconfig
chmod g+s /sbin/ifconfig

注:IP地址随环境准备配置

  1. 主机

[standby]
managed                        =  false
is_debug                       =  false
log_timestamp                  =  true
local_server_port              =  54322
remote_server_ip               =  10.10.10.2
remote_server_port             = 
 54322
log_dir                        =
 '/home/kingbase/KingbaseES/log'
standby_log                    =
 "standby-%w.log"
server_mode                    = 'primary'
kingbase_fault_num             = 
 0
enable_float_ip                =  true
floatip_readonly_addcmd       
 = '/sbin/ifconfig
 eth0:0 10.150.73.188/24'
floatip_readonly_delcmd       
 = '/sbin/ifconfig
 eth0:0 down'
floatip_readwrite_addcmd      
 = '/sbin/ifconfig
 eth0:0 10.150.73.189/24' 
floatip_readwrite_delcmd      
 = '/sbin/ifconfig
 eth0:0 down'
[kingbase]
managed                        =  false
lifecheck_interval             = 
 2
kingbase_log                   =
 "kingbase-%w.log"
bin_dir                        =
 '/home/kingbase/KingbaseES/bin'
data_dir                       = '/DBDATA/data'
log_archive_dest               = '/datas_local/archive'
primary_conninfo               = 'host=10.10.10.2 port=54321'
parallel_recover_threads       = 
 1
local_kingbase_cmdport         = 
 54323
protection_mode               
 =  maxprotection      --同步模式(maxperformance异步模式)
send_taillog                   =  true
retrytimes                     =  0
[network]
managed                        =  true
startlevel                     =  99
stoplevel                      =  0
checkalive                     = 'touch
 /DBDATA/kingbase/kingbase.txt && ping -c 1 -w 1 10.150.73.190
 1>/dev/null 2>/dev/null'
checkinterval                  =  5
checkfails                     =  3
hotstandby                     =  false
startcmd                       = ""
stopcmd                        = ""
needswitch                     =  true
retrytimes                     =  0
retrycmd                       = ""
[klogminer]
managed                        =  false
startlevel                     =  99
stoplevel                      =  0
checkalive                     = "kdb_logminerd
 status"
checkinterval                  =  3
checkfails                     =  1
hotstandby                     =  false
startcmd                       = "kdb_logminerd
 start $MODE$"
stopcmd                        = "kdb_logminerd
 stop $PID$"
needswitch                     =  true
retrytimes                     =  0
retrycmd                       = "kdb_logminerd
 restart $FAILEDTIMES$"
  1. 备机

[standby]
managed                        =  false
is_debug                       =  false
log_timestamp                  =  true
local_server_port              =  54322
remote_server_ip               =  10.10.10.1
remote_server_port             = 
 54322
log_dir                        =
 '/home/kingbase/KingbaseES/log'
standby_log                    =
 "standby-%w.log"
server_mode                    = 'standby'
kingbase_fault_num             = 
 0
enable_float_ip                =  true
floatip_readonly_addcmd       
 = '/sbin/ifconfig
 eth0:0 10.150.73.188/24'
floatip_readonly_delcmd       
 = '/sbin/ifconfig
 eth0:0 down'
floatip_readwrite_addcmd      
 = '/sbin/ifconfig
 eth0:0 10.150.73.189/24' 
floatip_readwrite_delcmd      
 = '/sbin/ifconfig
 eth0:0 down'
[kingbase]
managed                        =  false
lifecheck_interval             = 
 2
kingbase_log                   =
 "kingbase-%w.log"
bin_dir                        =
 '/home/kingbase/KingbaseES/bin'
data_dir                       = '/DBDATA/data'
log_archive_dest               = '/datas_local/archive'
primary_conninfo               = 'host=10.10.10.1 port=54321'
parallel_recover_threads       = 
 1
local_kingbase_cmdport         = 
 54323
protection_mode                =  maxprotection
send_taillog                   =  true
retrytimes                     =  0
[network]
managed                        =  true
startlevel                     =  99
stoplevel                      =  0
checkalive                     = ' touch
 /DBDATA/kingbase/kingbase.txt && ping -c 1 -w 1 10.150.73.190
 1>/dev/null 2>/dev/null '
checkinterval                  =  5
checkfails                     =  3
hotstandby                     =  false
startcmd                       = ""
stopcmd                        = ""
needswitch                     =  true
retrytimes                     =  0
retrycmd                       = ""
[klogminer]
managed                        =  false
startlevel                     =  99
stoplevel                      =  0
checkalive                     = "kdb_logminerd
 status"
checkinterval                  =  3
checkfails                     =  1
hotstandby                     =  false
startcmd                       = "kdb_logminerd
 start $MODE$"
stopcmd                        = "kdb_logminerd
 stop $PID$"
needswitch                     =  true
retrytimes                     =  0
retrycmd                       = "kdb_logminerd
 restart $FAILEDTIMES$"

Dataguard双机集群启动

上述配置工作完成之后,首次启动standby服务,需要先启动主机standby控制器,然后再启动从机standby控制器;

使用kingbase用户进入目录/home/kingbase/KingbaseES/bin设置双机管理用户名\密码:

./standby –UKLS –WKLS            ——主备机都需要进行设置
使用root用户将/home/kingbase/KingbaseES/bin/standby7d文件拷贝到主备机的/etc/init.d文件夹下;
先启动主机:
使用root用户:/etc/init.d/standby7d start
启动备机:/etc/init.d/standby7d start
 
istandby登陆:
./istandby
 –UKLS –WKLS
查看standby状态:get all status
停止控制器监听:stop listener
切换主从状态:swich over
如果配置正确,主从机网络正常。启动主从机standby后,主从机自动识别各自模式状态:主机为primary,从机为standby,通过客户端连接主机数据库,可以连接成功正常访问,
客户端连接从机数据库,不能正常访问,提示“处于standby模式的数据库系统不能接受连接”。
  1. Dataguard观察器

观察器配置部署(主备机都需要配置并启动)

cd /home/kingbase/KingbaseES/config
vim 
 observer.conf
 
[observer]
server_ip_1 =
 '10.150.73.182'                  ----外网的IP地址
server_ip_2 = '10.150.73.187'
server_port_1 = 54322
server_port_2 = 54322
server_timeout = 10
network_timeout = 10
log_directory =
 '/home/kingbase/KingbaseES/observer.log'
query_interval = 1
 
TCP = 54324
启动观察器:
./observer &

本文出自 “岁伏” 博客,请务必保留此出处http://suifu.blog.51cto.com/9167728/1618572

KingbaseES的standby搭建的更多相关文章

  1. Oracle DataGuard 物理Standby 搭建(上)

    物理standby database 环境搭建 Arch asysnc Oracle Dataguard host IP Oracle_sid DB_unique_name FAL_server FA ...

  2. DataGuard相同SID物理Standby搭建

    Oracle Data Guard 是针对企业数据库的最有效和最全面的数据可用性.数据保护和灾难恢复解决方案.它提供管理.监视和自动化软件基础架构来创建和维护一个或多个同步备用数据库,从而保护数据不受 ...

  3. Oracle DataGuard 物理Standby 搭建(下)

    主备库切换 Switchover 一般SWITCHOVER切换都是计划中的切换,特点是在切换后,不会丢失任何的数据,而且这个过程是可逆的,整个DATA GUARD环境不会被破坏,原来DATA GUAR ...

  4. KingbaseES的HA搭建

    1.配置资源前准备: 安装好数据库并保持两台机器用户ID及组ID一致,组ID和用户ID在/etc/passwd查看,如不保持一致,可能导致切机时阵列的属主改变,导致数据库无法启动. 建议用法,现在两台 ...

  5. postgresql 异步流复制hot standby搭建

    先说说环境,主从库版本都是9.5,主库在CentOS物理机上,从库在Ubuntu虚拟机上 一.主库上的操作: 1.添加同步访问规则: host   replication     dbuser     ...

  6. Logical standby database 搭建(配置)

    说明 Logical standby 数据库是通过Physical standby数据库转换的.本Logical standby是通过之前创建的Physical standby转换的. Physica ...

  7. PostgreSQL Hot Standby的搭建

    一. 简介:          PG在9.*版本后热备提供了新的一个功能,那就是Stream Replication的读写分离,是PG高可用性的一个典型应用.这个功能在oracle中叫active d ...

  8. 模拟生产搭建Standby RAC实验环境(11.2.0.4 DG)

    模拟生产搭建Standby RAC实验环境(11.2.0.4 DG) 环境:RHEL 6.5 + Oracle 11.2.0.4 GI.DB 1.需求背景介绍 2.准备工作 3.主库配置 4.备库配置 ...

  9. vault 集群搭建(active standby 模式)

        参考架构图: consul server cluster 搭建 consul 基本配置格式 { "server": true, "node_name": ...

随机推荐

  1. docker 镜像仓库 Harbor 部署 以及 跨数据复制

    docker 镜像仓库 Harbor 部署 跨数据复制 Harbor 是 Vmwar 公司开源的 企业级的 Docker Registry 管理项目 它主要 提供 Dcoker Registry 管理 ...

  2. 使用PowerDesigner画ER图详细教程

    转:http://www.360doc.com/content/11/0624/15/2617151_129276457.shtml 一.概念数据模型概述数据模型是现实世界中数据特征的抽象.数据模型应 ...

  3. 想要学习Linux技术,先好好的读一本Linux书籍吧

    忘记你在使用windows时的使用习惯和使用思维.学习Linux,一定要适应Linux的命令行界面,因为命令行才是Linux的真正魅力所在,而X-window或着说桌面环境也只是运行在命令行模式下的一 ...

  4. Codeforces#371 Div2

    这是一场非常需要总结的比赛,交了3题,最后终测的时候3题全部没过,一下掉到了绿名,2333 Problem A 题意:给定区间[l1,r1],[l2,r2],然后给定一个整数k,求区间当中相交的元素, ...

  5. uvc摄像头代码解析1

    一.FAQ 1.判断自己的摄像头是否支持uvc标准 输入lsusb //列出usb设备 [cpp]   Bus 001 Device 001: ID 1d6b:0002 Linux Foundatio ...

  6. POJ 2686 Traveling by Stagecoach

    状压DP dp[s][p]用了哪几张票,到哪个节点的最小费用. 注意:G++ %.3lf输出会WA,但C++能过:改成%.3f,C++,G++都能AC #include<cstdio> # ...

  7. 滚动时div的背景图片随之滚动

    在浏览一些网站时发现有一种效果是当滚动时看到某一DIV的背景也会随之滚动,如下: 当滚动时内容位置保持不变,但是内容后面的背景却在随着滚动.随之我通过审查元素看到了其是通过background-pos ...

  8. MySQL的mysql_insert_id和LAST_INSERT_ID

    摘要:mysql_insert_id和LAST_INSERT_ID二者作用一样,均是返回最后插入值的ID 值 1 mysql_insert_id 一.PHP获取MYSQL新插入数据的ID  mysql ...

  9. Scala中function的理解

    在函数式语言中,函数是和value一样地位的一等公民,他可以作为变量,或者作为参数传递给另一个函数 ##作为变量 val f=(x:Int)=>x+1 为啥可以这样写? 由于scala是OOP, ...

  10. java XML转JSON格式

    标签: XML转Json json 2014-05-20 20:55 6568人阅读 评论(6) 收藏 举报  分类: [J2SE基础](20)  代码如下所示,从这个例子中发现了代码库的重要性,如果 ...