GaussDB数据dump实现完全同步
问题背景:搭建服务后端容灾集群,服务正常时容灾DB需要从业务DB完全同步数据,服务异常时,容灾DB停止抽取数据,自动从探针采集业务数据。
解决方案:常用的有两种思路,一是从服务后端定时每天拉取业务DB数据,并批量写入插入到容灾DB;二是从数据库节点开发定时脚本,dump数据并同步import到容灾DB,这里dump方案适合用于完全同步,简单粗暴,但特别有效。
单表同步步骤:
log INFO "${TIME_STAMP}: START SYNC table ${TABLE}."
dropTable ${TABLE}
dumpTable ${TABLE}
importTable ${TABLE}
log INFO "${TIME_STAMP}: END SYNC table ${TABLE}."
drop表
gsql -U ${DBUSER} -W ${DBPASSWD} -h ${REMOTE_HOSTNAME} -p ${REMOTE_PORT} -c "drop table if exists ${TABLE_NAME}"
dump表
gs_dump ${DBNAME} -t ${TABLE_NAME} -f ${DUMP_NAME}.sql -U ${DBUSER} -W ${DBPASSWD} -h ${LOCAL_HOSTBAME} -p ${LOCAL_PORT}
import表
gsql -U ${DBUSER} -W ${DBPASSWD} -h ${REMOTE_HOSTNAME} -p ${REMOTE_PORT} < ${DUMP_NAME}.sql
配置crontab定时任务
30 10 * * * dbadmin /bin/sh /opt/dbadmin/cronDump/cronSync.sh
观察定时执行情况,没有日志,查看crond进程正常
service crond status
查看cron日志
(dbadmin) PAM ERROR (Authentication token expired)
(dbadmin) FAILED to authorize user with PAM (Authentication token expired)
在网上搜索,提示是用户dbadmin PAM过期,重置用户密码后,定时执行正常。
调试cron定时任务过程中,还出现 环境变量无法识别,导致数据库dump命令不识别,查看环境变量文件,指定gaussdb 相关库路径:
增加环境变量:
source /home/dbadmin/.bashrc
最后,同步数据日志
补充 环境变量文件
文件名称 |
环境变量 |
生效时间 |
/etc/profile |
系统为每个用户单独设定 |
用户第一次登录 |
/etc/bashrc |
每个运行bash shell的用户 |
Shell打开 |
~/.bash_profile |
系统为用户设定shell信息,交互式 login方式进入bash |
用户登录时,执行一次 |
~/.bashrc |
系统为用户设定shell信息,交互式 non_login方式进入 |
用户登录或打开新shell |
~/.bash_logout |
系统为用户设定shell信息 |
退出系统(shell) |
GaussDB数据dump实现完全同步的更多相关文章
- 【转载】SQL Server - 使用 Merge 语句实现表数据之间的对比同步
原文地址:SQL Server - 使用 Merge 语句实现表数据之间的对比同步 表数据之间的同步有很多种实现方式,比如删除然后重新 INSERT,或者写一些其它的分支条件判断再加以 INSERT ...
- Atitit.Gui控件and面板----db数据库区----- .数据库比较同步工具 vOa
Atitit.Gui控件and面板----db数据库区----- .数据库比较同步工具 vOa 1. 咨微海信数据库应用 工具 1 2. 数据库比较工具 StarInix SQL Compare ...
- 真正的原生JS数据双向绑定(实时同步)
真正的原生JS数据双向绑定(实时同步) 接触过vue之后我感觉数据双向绑定实在是太好用了,然后就想着到底是什么原理,今天在简书上看到了一位老师的文章 js实现数据双向绑定 然后写出了我自己的代码 wi ...
- 转:SQL Server - 使用 Merge 语句实现表数据之间的对比同步
表数据之间的同步有很多种实现方式,比如删除然后重新 INSERT,或者写一些其它的分支条件判断再加以 INSERT 或者 UPDATE 等.包括在 SSIS Package 中也可以通过 Lookup ...
- SQL Server - 使用 Merge 语句实现表数据之间的对比同步
表数据之间的同步有很多种实现方式,比如删除然后重新 INSERT,或者写一些其它的分支条件判断再加以 INSERT 或者 UPDATE 等.包括在 SSIS Package 中也可以通过 Lookup ...
- Oracle通过PLSQL进行数据表之间的同步
昨天被要求拉取第三方oracle中的一个表数据,起初以为要导出表数据,然后再自己库中建个相同的表,然后导入数据,查过资料之后oracle可以通过dblink的方式同步表数据. 1.首先利用PLSQL工 ...
- ArcGIS API for JavaScript 4.2学习笔记[9] 同一种视图不同数据(Map)同步
本例子核心:对MapView对象的map属性值进行替换即可达到更改地图数据的效果. 这个例子用的不是Map对象了,而是用的发布在服务器上的专题地图(WebMap)来加载到MapView上进行显示. 在 ...
- goldengate 12.3 实现mysql数据及DDL实时同步
以下环境在mysql 5.7上完成. set mysql_home=mysql安装路径 set path=%mysql_home%\bin;%path% 首先要准备mysql的启动,可参考:http: ...
- java多线程处理导入数据拆分List集合 同步处理插入数据
原文:https://www.2cto.com/kf/201612/581174.html import org.apache.log4j.Logger; import org.apache.poi. ...
随机推荐
- Java Break 与 Continue
章节 Java 基础 Java 简介 Java 环境搭建 Java 基本语法 Java 注释 Java 变量 Java 数据类型 Java 字符串 Java 类型转换 Java 运算符 Java 字符 ...
- redis改配置
命令行: 暂时生效,适合于做测试,或者线上马上服务修改,重启失效 CONFIG set stop-writes-on-bgsave-error no OK CONFIG get stop-writes ...
- 八十六、SAP中ALV的事件查看
一.事务代码SE37,点击运行 二.再点击执行 三.我们可以看到有17个事件,点击17前面的表格图标 四.来到详细的事件中 五.我们回到SE37,点击显示 六.查看参数,为一个内表 七.我们点击SLI ...
- 三十七、SAP中文本资源的存放
一.我们看看之前的代码内容 二.菜单转到->文本元素 三.在文本符号中写入需要替换的内容 四.修改一下代码,可以用text-001来等效替换 五.效果如下
- 第二十一篇 关联管理器(RelatedManager)
关联管理器(RelatedManager) lass RelatedManager "关联管理器"是在一对多或者多对多的关联上下文中使用的管理器.它存在于下面两种情况: Forei ...
- elasticsearch下载与安装
目录 安装之前 下载 安装 测试 安装之前 必须注意的是:安装路径不允许有中文及空格和非法字符,尤其是中文 下载 打开elasticsearch官网.选择免费试用. 选择对应产品与版本(选择6.5.4 ...
- RobotFramwork中实现oracle数据库的连接(终于解决cx_oracle问题)
RobotFramework连接数据库有java实现,也有python实现的,现在研究的python实现的,java还没尝试.有兴趣的参考后面的转载文章. 步骤(也转载了别人的文章,因为写的比 ...
- 新版本vue-cli3.x 无法热更新问题【转载】
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_38644883/articl ...
- UVA - 12186 Another Crisis(工人的请愿书)(树形dp)
题意:某公司有1个老板和n(n<=105)个员工组成树状结构,除了老板之外每个员工都有唯一的直属上司.老板的编号为0,员工编号为1~n.无下属的员工(叶子)打算签署一项请愿书递给老板,但不能跨级 ...
- python scipy库
三.假定正态分布,求解1倍标准差和0.5倍标准差的概率? 二.求解多元线性或非线性方程组解 一.求解3元一次方程 1.学习资料 https://github.com/lijin-THU/notes- ...