跨机器恢复,以下是 详细的备份命令(使用onbar,支持智能大对象/存储管理器) 和 另一台机器的完整恢复步骤,严格遵循文档“onbar备份与恢复”“恢复到其他计算机”章节规范:
一、源机器:详细备份命令(含智能大对象支持)
前提准备(文档3.2、3.3.1)
- 切换至
gbasedbt用户(备份操作必需权限); - 确认存储管理器已配置(以GBase主存储管理器为例,已设置
BAR_BSALIB_PATH等参数); - 确保智能大对象专用
SBspace已存在且联机(解决之前的SBspace问题)。
步骤1:环境变量配置(文档3.3.1、5.3.2)
# 切换用户
su - gbasedbt
# 设置数据库环境变量(替换为实际安装路径)
export GBASEDBTDIR=/opt/GBASE/gbase
export PATH=$GBASEDBTDIR/bin:$PATH
# 指定智能大对象存储的SBspace(关键:避免之前的SBspace错误)
export DBSPACETEMP=blob_sbspace # 替换为实际SBspace名称
echo $DBSPACETEMP # 验证输出正确名称
# 验证存储管理器配置(GBase主存储管理器)
onpsm -D list # 确认DBSPOOL/LOGPOOL设备池正常
步骤2:0级完整备份(文档3.3.2)
备份所有数据库(含 iim_mail、flow_his_opnion 等含智能大对象的表),0级备份为完整快照:
# 0级完整备份(-L 0指定0级,-w表示整个系统备份,含所有存储空间和逻辑日志)
onbar -b -L 0 -w
# 验证备份结果(文档3.3.6)
onbar -v # 验证备份完整性
onpsm -O list # 查看备份对象是否存在
步骤3:逻辑日志备份(文档3.3.4)
确保事务一致性,备份所有已满的逻辑日志:
# 手动备份逻辑日志(-l指定日志备份)
onbar -b -l
# (可选)启用连续逻辑日志备份(自动备份填满的日志)
onbar -b -l -C
步骤4:备份关键配置文件(文档3.4.5)
跨机器恢复需传输这些文件,提前备份至本地目录(如 /backup/config):
# 创建配置备份目录
mkdir -p /backup/config
cp $GBASEDBTDIR/etc/onconfig /backup/config/
cp $GBASEDBTDIR/etc/sqlhosts /backup/config/
cp $GBASEDBTDIR/etc/ixbar.$SERVERNUM /backup/config/ # 紧急引导文件(SERVERNUM为源机器编号)
cp $GBASEDBTDIR/etc/oncfg_*.${SERVERNUM} /backup/config/ # 实例配置文件
备份验证(文档3.3.4、5.5)
# 查看备份列表
onbar -m # 查看最近备份活动
dbaccess 目标数据库名 - << EOF
select count(*) from "gbasedbt".iim_mail; # 确认备份前数据量
EOF
二、目标机器:跨机器恢复步骤(文档3.4.5、5.3)
前提条件(文档3.4.5核心要求)
- 目标机器与源机器兼容:相同硬件架构、操作系统、GBase 8s版本、存储管理器版本;
- 已传输源机器文件至目标机器:备份对象(存储管理器目录)、步骤4的配置文件、逻辑日志备份;
- 目标机器已安装相同存储管理器(如GBase主存储管理器)。
步骤1:目标机器环境配置(文档5.3.2、3.4.5)
# 1. 切换至gbasedbt用户
su - gbasedbt
# 2. 设置环境变量
export GBASEDBTDIR=/opt/GBASE/gbase # 目标机器实际安装路径
export PATH=$GBASEDBTDIR/bin:$PATH
export DBSPACETEMP=blob_sbspace # 与源机器一致的SBspace名称
# 3. 同步存储管理器配置(以GBase主存储管理器为例)
# 复制源机器存储管理器目录(如psm目录)
cp -r 源机器传输路径/backup/config/psm $GBASEDBTDIR/etc/
# 修改onconfig文件(文档3.4.5)
vi $GBASEDBTDIR/etc/onconfig
# 关键修改:
# - 更改SERVERNUM为目标机器编号(如源机器51→目标机器52)
# - 确认BAR_BSALIB_PATH指向目标机器存储管理器XBSA库(如$GBASEDBTDIR/lib/libbsapsm.so)
# - 确认PSM_CATALOG_PATH=$GBASEDBTDIR/etc/psm
# 4. 重命名关键配置文件(文档3.4.5)
# 紧急引导文件:源ixbar.51→目标ixbar.52(52为目标机器SERVERNUM)
mv $GBASEDBTDIR/etc/ixbar.51 $GBASEDBTDIR/etc/ixbar.52
# oncfg文件:源oncfg_src.51→目标oncfg_dst.52
mv $GBASEDBTDIR/etc/oncfg_src.51 $GBASEDBTDIR/etc/oncfg_dst.52
# 5. 验证存储管理器状态
onpsm -D list # 确认设备池正常,SBspace状态为Online
onstat -d | grep -i "SB" # 验证SBspace存在且联机
步骤2:物理恢复(文档3.4.3、3.4.5)
恢复存储空间数据(含智能大对象),避免日志自动回收:
# 物理恢复(-p仅物理恢复,-w对应源机器整个系统备份)
onbar -r -p -w
# 若仅恢复特定数据库(如standard_xt、maninnovation、teamgroup),指定数据库空间:
# onbar -r -p standard_xt_dbs maninnovation_dbs teamgroup_dbs blob_sbspace
# 验证物理恢复结果
onstat -d # 查看存储空间状态,Flags列显示“O”(联机)
步骤3:逻辑恢复(文档3.4.3、3.4.5)
恢复物理恢复后的事务,确保数据完整:
# 恢复所有逻辑日志(-l指定逻辑恢复)
onbar -r -l
# (可选)恢复到特定时间点(如源机器备份后的某个时间)
# onbar -r -l -t "2024-06-01 15:30:00" # 格式:YYYY-MM-DD HH:MM:SS
步骤4:配置文件最终同步(文档3.4.5)
# 修改sqlhosts文件,添加目标机器dbservername条目
vi $GBASEDBTDIR/etc/sqlhosts
# 添加内容(示例):
dst_server onipcshm target_host dst_server # target_host为目标机器主机名
# 同步存储管理器目录(文档5.3.2)
onsmsync # 同步sysutils数据库、紧急引导文件和存储管理器目录
恢复验证(文档3.4.3、5.5)
# 1. 查看数据库状态
onstat -m # 确认无恢复错误
# 2. 查询表数据(验证智能大对象和普通数据)
dbaccess 目标数据库名 - << EOF
# 验证含智能大对象的表
select id, length(content) as blob_size from "gbasedbt".iim_mail;
select count(*) from "gbasedbt".flow_his_opnion; # 应与源机器备份前行数一致
# 验证普通表
select count(*) from "gbasedbt".standard_xt.表名;
select count(*) from "gbasedbt".maninnovation.表名;
select count(*) from "gbasedbt".teamgroup.表名;
EOF
# 3. 查看智能大对象存储状态
onstat -g slo # 确认SBspace与智能大对象关联正常
三、关键文档依据与注意事项
- 备份依据:文档3.3“使用onbar备份”——0级备份为完整备份,逻辑日志备份确保事务不丢失;
- 跨机器恢复依据:文档3.4.5“恢复到其他计算机”——源/目标环境兼容、配置文件重命名、物理+逻辑恢复流程;
- 智能大对象处理:全程保持
DBSPACETEMP指向有效SBspace,避免之前的12053错误; - 存储管理器要求:文档3.2“配置存储管理器和onbar”——确保源/目标机器存储管理器参数一致(如池配置、XBSA库路径);
- 权限注意:所有操作必须以
gbasedbt用户执行,避免权限不足导致的备份/恢复失败。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




