用 Bytebase 实现可回滚的数据库数据变更
在修改数据库的数据时,建议先备份即将修改的数据,以便在需要时能够恢复。Bytebase 提供了「数据回滚」的功能来帮助实现这一功能。本教程将为你演示这一过程。
准备
-
请确保已安装 Docker,如果本地没有重要的现有 Bytebase 数据,可以通过 rm -rf ~/.bytebase/data 从头开始。
-
这是企业版的功能,您可以通过添加小助手申请(见文末二维码)。
过程
第一步 - 启动 Bytebase 并升级至企业计划
- 复制并粘贴命令,通过 Docker 启动 Bytebase。
docker run --rm --init \ --name bytebase --publish 8080:8080 --pull always \ --volume ~/.bytebase/data:/var/opt/bytebase \ bytebase/bytebase:2.21.0 (这里的 2.21.0 可以替换成最新版本)
-
注册第一个账户,它将自动获得工作区管理员角色。
-
点击右上角的设置齿轮图标,然后点击工作区 > 订阅上传许可。
-
单击铅笔图标,选择要启用企业功能的实例,然后单击确认。这里是将许可分配给了实例,为对应实例开启企业版功能。
第二步 - 准备 schema bbdataarchive
Bytebase 将备份数据存储在专们的位置。对于 Postgres,它存储在变更的数据库的 bbdataarchive schema 下。
-
进入 Sample Project,单击左边栏的数据库 > 数据库,选择 hr_test,然后单击编辑 schema。
-
在 schema 编辑器中,单击...,然后单击创建 schema。填写名称 bbdataarchive,然后单击创建。
- 可以看到绿字的 bbdataarchive,单击预览。创建工单并等待它自动发布,完成。现在 bbdataarchive schema 已创建。
第三步 - 变更数据并回滚
- 变更前,进入 SQL 编辑器,选择 hr_test,然后双击 employee,就会看到当前数据。我们将尝试变更 Georgi 这个名字。
-
再次进入 Sample Project 里的数据库 > 数据库,选择 hr_test,然后单击变更数据。
-
打开右侧的事先备份,在字段中输入 SQL,然后单击创建。
UPDATE employee SET first_name = 'Adela' WHERE emp_no = 10001;
- 工单创建并发布后,你可以看到有一个活动显示数据已备份到先前创建的 bbdataarchive schema 下的一个新表中。
-
再次访问数据库 > 数据库,然后单击 hr_test。
-
在数据库页面,选择 bbdataarchive schema,就可以看到备份表。
- 需要进一步验证的话,可以请进入 SQL 编辑器。选择 hr_test 中的 employee 表,输入以下 SQL 脚本并点击运行,就会看到数据已更改。
SELECT * FROM "public". "employee" ORDER BY emp_no LIMIT 50
- 选择 bbdataarchive 这个 schema,双击下面的表。你将在查询结果中看到备份数据。
需要特别注意的
如果你要使用 MySQL/SQL Server/Oracle,就不是创建 bbdataarchive schema ,而要创建 bbdataarchive 数据库来存储备份数据。更多详情请查看文档。https://www.bytebase.com/docs/change-database/rollback-data-changes/
💡 更多资讯,请关注 Bytebase 公号:Bytebase

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Crowdstrike 更新导致全球 Windows 大面积蓝屏死机
外媒报道称,许多 Windows 用户在最近的 CrowdStrike 更新后遇到了蓝屏死机 (BSOD) 错误。 该问题似乎很普遍,影响运行不同 CrowdStrike 版本的机器。在社交媒体上,全球不同地区的用户纷纷在抱怨这个突如其来的蓝屏死机错误。 CrowdStrike 已承认该问题,目前正在调查原因。CrowdStrike 发言人在论坛消息中表示:“我们意识到一个普遍存在的问题,导致 Windows 计算机出现 BSOD 错误。” 有人提供了针对此次蓝屏错误的临时解决方案:将c:\windows\system32\drivers\crowstrike 目录下的"crowstrike"文件夹重命名为其他名称。
- 下一篇
独家揭秘丨GreatSQL 没开Binlog时多线程插入数据性能劣化之谜
一、问题发现 在一次数据迁移中,用到了INSERT INTO t1 SELECT * FROM t2这样的 SQL 用来搬迁大表,为了提高插入效率关闭了Binlog,考虑用多线程来插入提高速度。表的类型信息和插入效率如下所示。 测试环境: Linux node-76-11 4.19.90-17.ky10.aarch64,128核CPU,512G内存。 GreatSQL参数配置如下(为降低 I/O 因素影响,关闭 Binlog): #**********************Performance********************* #******connect max_connections=10000 max_connect_errors=1000000 open_files_limit=65535 back_log=1500 table_definition_cache=10000 thread_stack=256K thread_cache_size=3000 #******session sort_buffer_size=4M join_buffer_size=4M r...
相关文章
文章评论
共有0条评论来说两句吧...