返回首页

gbase数据、南大通用产品文档:GBase8s恢复期间更换磁盘

更新日期:2024年09月11日

您可以在恢复期间通过重命名块来更换磁盘。 在使用 ON-Bar 进行冷恢复期间,通过
指定新块路径和偏移量来重命名块。如果需要将存储空间恢复到与完成备份的磁盘不同的
磁盘上,该选项很有帮助。可以重命名任意类型的块,包括关键块和镜像块。
旧块必须包含在上一个 0 级备份中。
以下准则适用于新块:

新块不需要存在。可以以后安装新块并对包含它的存储空间执行热恢复。如果指
定不存在的块,ON-Bar 将重命名信息记录在块保留页中,但不恢复数据。已重命
名(但未恢复)的块处于脱机状态,在 onstat -d 命令的输出中由 N 标志指示。

新块必须有正确的许可权。

新块必须包含在上一个 0 级备份中。

新块路径名不能与现有块相同,且偏移量不能重叠。
提示: 如果使用块名称的符号链接,可能不需要重命名块;而只需编辑符号名称定义即可。
要在恢复期间重命名块:

GBase 8s 备份与恢复指南
南大通用数据技术股份有限公司 - 71 -

1. 关闭数据库服务器。
2.
使用 -rename 选项和块信息选项来运行 onbar -r 命令。
如果要对主根块或镜像根块进行重命名,那么 ON-Bar 将更新 ROOTPATH 和
ROOTOFFSET 或者 MIRRORPATH 和 MIRROROFFSET 配置参数的值。旧版
本的 onconfig 文件将另存为 $ONCONFIG.localtime。
3.
执行 0 级归档,以便您可以恢复重命名的块。
示例
下表列出在本部分的示例中使用的两个块的示例值。
元素
第一个块的值
第二个块的值
旧路径
/chunk1
/chunk2
旧偏移量 0
10000
新路径
/chunk1N
/chunk2N
新偏移量 20000
0
示例 1:通过在命令中提供块信息来重命名块
以下命令将块 chunk1 重命名为 chunk1N,将块 chunk2 重命名为 chunk2N:
onbar -r -rename -p /chunk1 -o 0 -n /chunk1N -o 20000
-rename -p /chunk2 -o 10000 -n /chunk2N -o 0
示例 2:通过在文件中提供块信息来重命名块
假设您有一个名为 listfile 的文件,其中包含以下内容:
/chunk1 0 /chunk1N 20000
/chunk2 10000 /chunk2N 0
以下命令将块 chunk1 重命名为 chunk1N,将块 chunk2 重命名为 chunk2N:
onbar -r -rename -f listfile
将块重命名到不存在的设备上
要将块重命名到不存在的设备,请指定新的路径名,但在安装该物理设备之后再恢复存储
空间。该选项在您需要重命名块时很有用,便于您在安装新设备前执行冷恢复。当新块设
备就绪后,您可以在它上面执行存储空间的热恢复。
可以在同一个重命名操作中将重命名块与现有设备结合在一起,以及将重命名块与不存在
的设备结合在一起。本示例显示如何将单个块重命名到不存在的设备名上。
下表列出本示例中使用的块的示例值。

GBase 8s 备份与恢复指南
南大通用数据技术股份有限公司 - 72 -

存储空间
旧块的路径
旧偏移

新块的路径 新偏移量
sbspace1
/chunk3
0
/chunk3N
0
要将块重命名到不存在的设备上:
1.
使用以下命令重命名块:onbar -r -rename -p /chunk3 -o 0 -n /chunk3N -o 0
2.
当您看到以下提示时,请输入 y 以继续:
块 /chunk3N 不存在。如果继续,那么对包含该块
的数据库空间的恢复操作稍后可能会失败。
在不创建该块的情况下,是否继续?(y/n)
块 /chunk3 被重命名为 /chunk3N,但数据还未恢复到 /chunk3N。
3.
执行 0 级归档。
4.
为 /chunk3N 添加物理设备。
5.
使用 onbar -r sbspace1 命令来执行 sbspace1 的热恢复。
6.
执行 0 级归档。

视图将包含本节点中每个数据库的统计信息。
名称
类型
描述
datid
oid
数据库的OID。
datname
name
此数据库的名称。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
974
名称
类型
描述
numbackend
s
integer
当前连接到该数据库的后端数。
这是在返回一个反
映目前状态值的视图中唯一的列;
自上次重置所有
其他列返回累积值。
xact_commit
bigint
此数据库中已经提交的事务数。
xact_rollbac
k
bigint
此数据库中已经回滚的事务数。
blks_read
bigint
在这个数据库中读取的磁盘块的数量。
blks_hit
bigint
高速缓存中已经发现的磁盘块的次数,
这样读取是
不必要的(这只包括PostgreSQL 缓冲区高速缓存,
没有操作系统的文件系统缓存)。
tup_returned
bigint
通过数据库查询返回的行数。
tup_fetched
bigint
通过数据库查询抓取的行数。
tup_inserted
bigint
通过数据库查询插入的行数。
tup_updated
bigint
通过数据库查询更新的行数。
tup_deleted
bigint
通过数据库查询删除的行数。
conflicts
bigint
由于数据库恢复冲突取消的查询数量
(只在备用服
务器发生的冲突)。请参见STAT_DATABASE_C
ONFLICTS 获取更多信息。
temp_files
bigint
通过数据库查询创建的临时文件数量。
计算所有临
时文件,不论为什么创建临时文件(比如排序或者
哈希),而且不管log_temp_files 设置。
temp_bytes
bigint
通过数据库查询写入临时文件的数据总量。
计算所
有临时文件,不论为什么创建临时文件,而且不管
log_temp_files 设置。
deadlocks
bigint
在该数据库中检索的死锁数。
blk_read_tim
e
double precision
通过数据库后端读取数据文件块花费的时间,
以毫
秒计算。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
975
名称
类型
描述
blk_write_ti
me
double precision
通过数据库后端写入数据文件块花费的时间,
以毫
秒计算。
stats_reset
timestamp with time
zone
重置当前状态统计的时间。

可以监视和修改数据库日志记录方式。
本节中的主题提供了有关以下内容的信息:
• 了解数据库日志记录方式

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 275 -
• 使用 ondblog 修改数据库日志记录方式
• 使用 ontape 修改数据库日志记录方式
• 使用 ON-Monitor 修改数据库日志记录方式
• 监视事务日志记录
作为数据库服务器管理员,您可以如下所示更改数据库的日志记录方式:
• 将事务日志记录从已缓冲更改为未缓冲。
• 将事务日志记录从未缓冲更改为已缓冲。
• 使数据库符合 ANSI 标准。
• 向数据库添加事务日志记录(已缓冲或未缓冲)。
• 结束数据库的事务日志记录。
有关数据库日志记录方式、何时使用事务日志记录以及何时缓冲事务日志记录的信息,请
参阅日志记录。要查明数据库的当前日志记录方式,请参阅监视数据库的日志记录方式。
有关使用 SQL 管理 API 命令(而不是一些 ondblog 和 ontape 命令)的信息,请参阅
使用 SQL 管理 API 执行远程管理和《GBase 8s 管理员参考》。