解决金仓数据库KingbaseES V8R3 由于修改系统时间导致sys_rman备份故障的问题

news2024/11/15 6:28:56

案例说明:

此案例,为复现“current time may be rewound”错误。对于数据库环境,在使用前必须保证系统时间的正确性。如果数据库创建后,再将系统时间修改为创建数据库之前的时间,在运行过程中将有可能导致新老事务判断及事务一致性出现问题,比如Oracle数据库事务的scn是和当前的timestamp有关联的。

数据库版本:

test=# select version();
                                                         version                                                
----------------------------------------------------------------------------------------------------------
 Kingbase V008R003C002B0290 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46), 64-bit
(1 row)

1、当前系统时间

[kingbase@node1 bin]$ date
Fri May 13 10:23:31 CST 2022

2、初始化实例

[kingbase@node1 bin]$ ./initdb -U system -W 123456  --case-insensitive -D /data/kingbase/v8r3_290/data1
The files belonging to this database system will be owned by user "kingbase".
This user must also own the server process.

.......
Success. You can now start the database server using:

    ./sys_ctl -D /data/kingbase/v8r3_290/data1 -l logfile start

3、查看数据库创建时间

1)查看controlfile中systemID

[kingbase@node1 bin]$ ./sys_controldata -D /data/kingbase/v8r3_290/data1
sys_control version number:            830
Catalog version number:               201608131
Database system identifier:           7097041251382751474
Database cluster state:               shut down
sys_control last modified:             Fri 13 May 2022 10:24:52 AM CST
Latest checkpoint location:           0/1B231E8
Prior checkpoint location:            0/1AE2720
Latest checkpoint's REDO location:    0/1B231E8
Latest checkpoint's REDO WAL file:    000000010000000000000001
.......

2)查看数据库创建时间

[kingbase@node1 bin]$ ./ksql -U system -W 123456 test
ksql (V008R003C002B0290)
Type "help" for help.

test=# select to_timestamp(((7097041251382751474>>32) &(2^32 -1)::bigint));
    to_timestamp     
---------------------
 2022-05-13 02:24:42
(1 row)

4、修改数据库时间(修改后时间早于数据库创建时间)

[root@node1 ~]# date 051010102022
Tue May 10 10:10:00 CST 2022
[root@node1 ~]# date
Tue May 10 10:10:04 CST 2022

[kingbase@node1 bin]$ ./ksql -U system -W 123456 test
ksql (V008R003C002B0290)
Type "help" for help.

test=# select now();
              now              
-------------------------------
 2022-05-10 10:10:24.956613+08
(1 row)

5、执行sys_rman备份

1)sys_rman初始化

[kingbase@node1 bin]$ ./sys_rman init -h 127.0.0.1 -U system -p 54321 -d test -B /data/kingbase/v8r3_290/db_bk -D /data/kingbase/v8r3_290/data1
Password for user system: 

[kingbase@node1 bin]$ ls -lh /data/kingbase/v8r3_290/db_bk/
total 4.0K
drwx------ 2 kingbase kingbase  6 May 10 10:24 backups
-rw-rw-r-- 1 kingbase kingbase 41 May 10 10:24 sys_rman.conf
lrwxrwxrwx 1 kingbase kingbase 31 May 10 10:24 wal -> /data/kingbase/v8r3_290/archive

2)执行数据库全量备份

=== 出现“current time may be rewound”错误。===

[kingbase@node1 bin]$ ./sys_rman backup -b full -U system -d test -B /data/kingbase/v8r3_290/db_bk -D /data/kingbase/v8r3_290/data1
Password for user system: 
ERROR: current time may be rewound. Please retry with full backup mode.

6、解决方案

1)对数据库通过sys_dmp备份

[kingbase@node1 bin]$ date
Tue May 10 10:17:24 CST 2022

[kingbase@node1 bin]$ ./sys_dump -U system -W 123456 test -f ~/db.sql

2)重新初始化实例

[kingbase@node1 bin]$ ./initdb -U system -W 123456 --case-insensitive -D /data/kingbase/v8r3_290/data2
......
load security database ... ok
syncing data to disk ... ok

Success. You can now start the database server using:

    ./sys_ctl -D /data/kingbase/v8r3_290/data2 -l logfile start

3)配置归档并启动新实例

[kingbase@node1 data2]$ cat kingbase.conf |grep -i archive_
archive_mode = on               # enables archiving; off, on, or always
archive_command = 'test ! -f  /data/kingbase/v8r3_290/archive/%f && cp %p /data/kingbase/v8r3_290/archive/%f'    # command to use to archive a logfile segment
archive_dest = '/data/kingbase/v8r3_290/archive'                # set archive logfile dest absolute path
                                # ! waring: if set archive_dest,  ignore archive_command.
#archive_timeout = 0            # force a logfile segment switch after this

# 启动实例
[kingbase@node1 bin]$ ./sys_ctl -D /data/kingbase/v8r3_290/data2 start

4)将原库备份导入新实例

[kingbase@node1 bin]$ ./ksql -U system -W 123456 test < ~/db.sql
SET
SET
SET
SET
SET
   set_config    
-----------------
 "$USER", PUBLIC
(1 row)

SET
SET
SET
COMMENT
COPY 0
COPY 0

5)执行sys_rman备份

# sys_rman 初始化
[kingbase@node1 bin]$  ./sys_rman init -h 127.0.0.1 -U system -p 54321 -d test -B /data/kingbase/v8r3_290/db_bk -D /data/kingbase/v8r3_290/data2
Password for user system: 

# sys_rman执行全备
[kingbase@node1 bin]$ ./sys_rman backup -b full -U system -d test -B /data/kingbase/v8r3_290/db_bk -D /data/kingbase/v8r3_290/data2
Password for user system: 

INFO: validate: RBNB3P backup and archive log files by CRC

6)查看备份信息

[kingbase@node1 bin]$ ./sys_rman show -b full -U system -d test -B /data/kingbase/v8r3_290/db_bk 
==========================================================================================================
ID       Recovery time        Mode          Current/Parent TLI  Time            Data  start_lsn  stop_lsn Status  
==========================================================================================================
RBNB3P   2022-05-10 10:38:53  FULL           1 / 0              328s          69MB  0/2000028  0/2000130  OK 
[kingbase@node1 bin]$ ./sys_rman validate -b full -U system -d test -B /data/kingbase/v8r3_290/db_bk 
INFO: validate: RBNB3P backup and archive log files by CRC
INFO: backup validation completed successfully
[kingbase@node1 bin]$ ./sys_rman show -b full -U system -d test -B /data/kingbase/v8r3_290/db_bk 
==========================================================================================================
ID       Recovery time        Mode          Current/Parent TLI  Time            Data  start_lsn  stop_lsn Status  
==========================================================================================================
RBNB3P   2022-05-10 10:38:53  FULL           1 / 0              328s          69MB  0/2000028  0/2000130  OK 

=== 如上所示,sys_rman备份问题解决。====

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/108439.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Beego框架项目搭建步骤

1、执行 go env 指令&#xff0c;将输出当前 Go 开发包的环境变量状态。 GOARCH 表示目标处理器架构。 GOBIN 表示编译器和链接器的安装位置。 GOOS 表示目标操作系统。 GOPATH 表示当前工作目录。 GOROOT 表示 Go 开发包的安装目录。 2、安装beego 输入 go get github.com/as…

IB近三年的改革及未来发展趋势

【转自京领新国际】 据不完全统计&#xff0c;截至目前&#xff0c;IB课程已在全球160余个国家的5667所学校开设&#xff0c;其中&#xff0c;中国大陆有267所学校获得了IB认证。由于IB的教育理念非常适应创新性人才的培养需要&#xff0c;它也越来越被学校、家长和学生认可。那…

论文阅读 - On the efficacy of old features for the detection of new bots - CCF B

目录 摘要&#xff1a; 1.导言 2.文献综述 3 数据集 4.特征集 4.1 CAP_UNI Botometer分数 4.2.与帐户配置文件/时间线相关的功能 4.3.非官方Twitter账户发送的推文比例 4.4.实验装置 5. 实验结果 5.1. Celebrity-Botwiki 5.2. Verified-Botwiki 5.3. Verified-Vendo…

什么是APERAK?

APERAK(Application error and acknowledgement message)是由消息接收方发出的应用程序错误和确认信息。其目的是&#xff1a; a) 通知消息发送方他的消息已经被消息接收方收到&#xff0c;由于业务系统在处理过程中遇到错误&#xff0c;已被拒绝。 b) 向消息发送方确认消息已…

使用tushare数据画疫情感染人数地图

总是看到网上有各种各样的可以用地图来展示某一地区的情况&#xff0c;如GDP的增速、人口的变化等&#xff0c;于是就想想这个问题是否能用python来实现&#xff0c;经查阅资料发现&#xff0c;用python来画地图其实也并不难&#xff0c;做好数据和地图的关联就可以实现。 一、…

移动WEB开发之响应式布局--响应式开发

响应式开发原理 就是使用媒体查询针对不同宽度的设备进行布局和样式的设置&#xff0c;从而适配不同设备的目的。 响应式布局容器 响应式需要一个父级做为布局容器&#xff0c;来配合子级元素来实现变化效果。 原理就是在不同屏幕下&#xff0c;通过媒体查询来改变这个布局…

洞察市场需求,深耕大健康赛道,缤跃酒店打造一站式运动酒店品牌

近期&#xff0c;人民数据研究院发布《2022全民跑步运动健康报告》&#xff0c;报告中显示参与跑步人群的年龄跨度随着社会对跑步运动不断攀升的热情而增加。现代生活节奏加快、竞争压力大使得部分中青年通过运动寻求解压&#xff0c;2022年18-40岁的跑者开始成为中坚力量&…

一文搞懂测试左移和测试右移的 Why-How-What

1080306 6.35 KB 软件测试技术应当贯穿整个软件开发生命周期、对软件产品&#xff08;包括阶段性产品&#xff09;进行验证和确认的活动过程&#xff0c;其核心目标是尽快尽早地发现软件产品中所存在的各种问题 bug—— 与用户需求、预先定义的不一致性。 然而&#xff0c;传统…

ElasticSearch——刷盘原理流程

ElasticSearch——刷盘原理流程刷盘原理流程名词和操作解释相关设置刷盘原理流程 整个过程会分成几步&#xff1a; 数据会同时写入buffer缓冲区和translog日志文件buffer缓冲区满了或者到时间了&#xff08;默认1s&#xff09;&#xff0c;就会将其中的数据转换成新的segment并…

【JavaEE】Java 线程的几种状态

目录 一、线程状态的种类及含义 二、线程状态间的切换条件 &#xff08;1&#xff09;使用isAlive()判断线程的存活状态 &#xff08;2&#xff09;关于BLOCKED、WAITING、TIMED_WAITING状态之间的转换 1.TIMED_WAITING 2.WAITING 3.BLOCKED 4.jconsole.exe的使用方式…

当 chatGPT 被职场 PUA ,笑麻了!

大家最近是不是被 chatGPT 刷屏了&#xff1f;简单来说&#xff0c;chatGPT 是一个智能聊天引擎。 那 chatGPT 和小爱同学、 siri 有什么区别呢&#xff1f; 如果体验过的朋友&#xff0c;能感受到区别还是很大&#xff0c;chatGPT 的智能表现过于优秀&#xff0c;远远超过了这…

【C++】STL-string模拟实现

文章目录驼峰法命名面试题&#xff1a;写一个简洁版的stringstring成员变量构造函数析构函数拷贝构造函数获取C形式的字符串 c_str赋值重载 operator简易版代码:string的改造 ->支持增删查改接口总览string成员变量构造函数交换拷贝构造赋值重载operator析构函数返回元素个数…

Python图像识别实战(四):搭建卷积神经网络进行图像二分类(附源码和实现效果)

前面我介绍了可视化的一些方法以及机器学习在预测方面的应用&#xff0c;分为分类问题&#xff08;预测值是离散型&#xff09;和回归问题&#xff08;预测值是连续型&#xff09;&#xff08;具体见之前的文章&#xff09;。 从本期开始&#xff0c;我将做一个关于图像识别的…

大疆A3飞控使用|飞控配置

大疆A3飞控使用|飞控配置大疆A3飞控介绍总体特性飞行特性外围设备保护功能SDK拓展拓展功能A3 飞控使用配置连接飞机基本设置机架安装遥控器电调动力配置感度电池控制参数调试基础感度动力带宽高级感度灵敏度控制器性能参数大疆A3飞控介绍 全新A3系列飞控系统结合安全可靠和精准…

【虹科案例】用于超高磁场的虹科 digitizerNETBOX——高采样率和完全同步采样

应用背景 国际 MegaGauss 科学实验室是东京大学固态物理研究所 (ISSP) 的一部分。实验室的目的是研究固态材料&#xff08;如半导体、磁性材料、金属、绝缘体、超导材料&#xff09;在超高磁场下的物理特性&#xff0c;这些领域还包括研究新材料并控制其阶段和功能。实验室脉冲…

百度工程师带你体验引擎中的nodejs

作者 | 糖果candy 导读 如果你是一个前端程序员&#xff0c;你不懂得像PHP、Python或Ruby等动态编程语言&#xff0c;然后你想创建自己的服务&#xff0c;那么Node.js是一个非常好的选择。 Node.js 是运行在服务端的 JavaScript&#xff0c;如果你熟悉Javascript&#xff0c;那…

【Kotlin 协程】Flow 异步流 ③ ( 冷流 | 流被收集时运行 | 流的连续性 )

文章目录一、冷流 ( 流被收集时运行 )二、流的连续性一、冷流 ( 流被收集时运行 ) Flow 异步流 的 构建器函数 flow 函数 中的 代码 , 在 调用 Flow#collect 函数 时 , 也就是在 Flow 异步流 收集元素时 , 才会 执行 flow 构建器 中的代码 ; 这种机制的异步流 称为 冷流 ; 代…

移动WEB开发之响应式布局--Bootstrap栅格系统

栅格系统简介 栅格系统英文为“grid systems”,也有人翻译为“网格系统”&#xff0c;它是指将页面布局划分为等宽的列&#xff0c;然后通过列数 的定义来模块化页面布局。 Bootstrap 提供了一套响应式、移动设备优先的流式栅格系统&#xff0c;随着屏幕或视口&#xff08;vi…

spring-statemachine状态机梳理

目录 一、基本回顾 1、为什么要用状态机 2、什么是状态机 3、状态机可归纳为4个要素 4、对应Spring StateMachine的核心步骤 5、简单例子 添加maven依赖 定义状态枚举和事件枚举 完成状态机的配置 简单测试一下 添加Listener 监听器,当状态变更时&#xff0c;触发方…

1. SpringMVC概述与入门

1. SpringMVC简介 SpringMVC是一种基于Java实现MVC模型的轻量级Web框架优点 使用简单&#xff0c;开发便捷&#xff08;相比于Servlet&#xff09;灵活性强 2. 入门案例 2.1 实现步骤分析 1 创建web工程&#xff08;Maven结构&#xff09; 2 设置tomcat服务器&#xff0c;加…