Kingbase 时间线timelines是什么?
基于时间点的恢复(point-in-time recovery,PITR),是指进行数据库恢复的时候,可以恢复到之前的一个时间点,该时间点后面的操作好像没有发生,也称为不完全恢复。
系统的日志逻辑是随着时间连续增长的,很容易标识日志记录的先后顺序,但是使用 PITR 技术把数据库恢复到指定时间点后,系统继续运行时,产生的日志与原来系统中时间点Tc 之后的日志已经不是线性关系了,为了区分这两段日志,数 据库引入了时间线(timeline)的概念。
时间线标识了数据库运行的时间轴,数据库系统总是在一个时间线上运行,如果执行了PITR,数据库系统恢复后会生成新的时间线并在新的时间线上运行,日志会在新的时间线上生成。
WAL 日志文件名000000100000000001中前8位0000001表示的是数据库的时间线。数据库初始化后,默认时间线是1,随着数据库系统的运行,新时间线会 在以下两种情况下产生:
1)PITR 恢复后执行了promote 操作 select sys_wal_replay_resume()。
2)备节点升为主节点。
每次创建一个新的时间线, 数据库都会在目录/XXX/data/sys_wal/下创建一个时间线历史文件,文件名后缀为.history, 里面的内容是由原时间线 history文件的内容和追加一条当前时间线切换记录组成。假设数据库恢复启动后,切换到新的时间线ID 为2,那么文件名就是00000002.history, 该文件记录了当前时间线是在什么时间、从哪个时间线由于什么原因分出来的,时间线history 文件可能含有多行记录。
执行下面的ksql 命令和SQL 语句可以查看当前的时间线:
查看时间线 查询时间线
$ ksql -d test -U system -c "select timeline_id from sys_control_checkpoint();"
timeline_id
-------------
2
(1 row)
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作