本文内容来自 YashanDB 官网,原文内容请见: 重装新库及元数据和数据导出导入指导 - YashanDB
开始本文操作之前默认已经部署有 3mn3cn3-3dn 的 yashan 分布式数据库,并且已经配置好环境变量,开始操作之前请先停止所有业务。
从旧库导出数据
创建目录
$ cd ~
$ mkdir -p /data/yashan/save_data # 创建空目录用于保存导出的数据
导出数据
$ yasboot sql yashan -n 2-1 -u sys -p Cod-2022 --sql count (*) from dba_tables where DATABASE_MAINTAINED != 'Y'" # 查询用户建表数量,记录用于向新库导数后检查
$ yasboot sql yashan -n 2-1 -u sys -p Cod-2022 --sql count (*) from dba_objects where DATABASE_MAINTAINED != 'Y'" # 查询用户建对象数量,记录用于向新库导数后检查

$ yasboot sql yashan -u sys -p Cod-2022 -n 2-1 --sql "select count (*) from ZTK_GH.DWS_FW_APPEAL_PSYCHOLOGICAL_LIST" # 查询演示用表的数据行数,记录用于向新库导数后检查

导出数据需要使用 exp 工具导出所有对象的元数据和以 csv 文件的形式导出所有表数据,需要手动填写每张表的信息,比较繁琐,附件提供了示例脚本 auto_export_and_import_all_objects_and_data.py 用来自动导出数据
$ python3 auto_export_and_import_all_objects_and_data.py --export-data -d /data/yashan/save_data yashan -p Cod-2022 -a 192.168.8.44:1688 # 根据帮助信息,填写 --export-data 参数启动导出数据模式,并填写保存数据路径、集群名、sys 用户密码和 cn 节点地址信息

停止旧库
$ yasboot monit yashan
$ yasboot yashan yashan 需要替换成实际使用的集群名
$ yasboot yasom yashan hosts.toml hosts.toml 是旧库建库时使用的 hosts.toml 文件
$ yasboot yasagent yashan hosts.toml -f
安装新库
可参考 “智工一主一备安装部署文档” 进行安装,需要注意集群名和安装目录需要与旧库不同,避免冲突
导入数据
$ python3 auto_export_and_import_all_objects_and_data.py --load-data -d /data/yashan/save_data yashan -p Cod-2022 -a 192.168.8.44:1688 # 根据帮助信息,填写 --load-data 参数启动导入数据模式,并填写保存数据路径、集群名、sys 用户密码和 cn 节点地址信息

导入元数据时会有警告,第一条警告是不支持指定 system 表空间给 sys 用户(sys 用户原本的默认表空间就是 system),后面的警告是给数据库自建用户重复授权,对数据库无影响,最后导入成功
$ yasboot sql yashan -n 2-1 -u sys -p Cod-2022 --sql count (*) from dba_tables where DATABASE_MAINTAINED != 'Y'" # 查询导入的表数量
$ yasboot sql yashan -n 2-1 -u sys -p Cod-2022 --sql count (*) from dba_objects where DATABASE_MAINTAINED != 'Y'" # 查询导入的对象数量

$ yasboot sql yashan -u sys -p Cod-2022 -n 2-1 --sql "select count (*) from ZTK_GH.DWS_FW_APPEAL_PSYCHOLOGICAL_LIST" # 与旧库数据一致

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3070160/ ,如需转载,请注明出处,否则将追究法律责任。