好的,我们来全面、深入地解析 Oracle 19c 数据库中的 V$BACKUP_DEVICE 动态性能视图。这个视图相对简单,但其背后的概念对于配置可靠的备份环境至关重要。
1. 视图作用
V$BACKUP_DEVICE 显示当前数据库中已配置和可用的备份设备类型的信息。它的核心作用是发现和确认RMAN(Recovery Manager)可以使用的备份目的地,而不是记录备份操作本身。
其主要功能包括:
- 设备发现: 列出 RMAN 可用的所有备份设备类型(如磁盘、磁带)。
- 能力确认: 确认特定设备类型的特定功能是否可用(例如,某些磁带驱动器可能不支持压缩)。
- 并行度配置: 显示每种设备类型支持的最大并行度(并发通道数)。
✅ 核心价值: 提供一个关于“能备份到哪里”的全局视图,是配置和验证RMAN备份环境的第一步。
2. 使用场景
- 初始环境检查: 在配置备份脚本前,确认数据库服务器支持的备份设备类型。
- 故障诊断: 当
ALLOCATE CHANNEL或CONFIGURE CHANNEL命令因设备类型不可用或配置错误而失败时,使用此视图进行诊断。 - 容量规划: 根据可用的设备类型(如磁带库的驱动器数量)来规划备份策略和并行度。
- 安装验证: 在安装或配置了新的备份软件(介质管理库,MML)后,验证 Oracle 是否能识别并正确使用磁带设备。
3. 字段详解 (Oracle 19c)
V$BACKUP_DEVICE 的字段结构非常简单,通常只有几行记录。
| 字段名 | 数据类型 | 描述 |
|---|---|---|
DEVICE_TYPE | VARCHAR2(17) | 关键:备份设备的类型。最主要的值有两个: 1. DISK:本地或网络附加存储(NAS/SAN)。2. SBT_TAPE:系统备份到磁带(System Backup to Tape),这是一个通用术语,指代任何第三方磁带备份解决方案。 |
NAME | VARCHAR2(1024) | 与设备类型关联的名称或描述。对于标准类型,此字段通常为 NULL。对于 SBT_TAPE,如果第三方介质管理库(MML)提供了自定义名称,可能会显示在这里。 |
PATH | VARCHAR2(1024) | 设备的路径或库名称。对于 DISK 设备,此字段通常为 NULL。对于配置复杂的 SBT_TAPE 环境,可能会显示特定的库或驱动器路径。 |
PARALLELISM | NUMBER | Oracle 支持该设备类型的最大并行度(通道数)。这是一个理论最大值,实际可用的并行度还受硬件限制(如物理磁带驱动器数量)。 对于 DISK,此值通常非常高(如 255)。对于 SBT_TAPE,此值通常由 MML 软件设置。 |
MEDIA_FAMILY | VARCHAR2(1024) | 介质家族(Media Family)的名称。主要用于磁带设备,由介质管理软件定义和管理。通常为 NULL。 |
REMOTE | VARCHAR2(5) | 指示设备是否是远程的。值:TRUE / FALSE。通常为 FALSE。 |
READ_RATE | NUMBER | 设备的读取速率。通常未使用,为 NULL。 |
WRITE_RATE | NUMBER | 设备的写入速率。通常未使用,为 NULL。 |
MAXOPENFILES | NUMBER | 设备支持的最大打开文件数。通常为 NULL。 |
CONFIGURE | VARCHAR2(10) | 指示设备是否可配置。通常为 TRUE。 |
📌 核心字段解读:
DEVICE_TYPE='SBT_TAPE'的出现并不保证磁带备份已配置好。它只表示 Oracle 数据库支持 SBT API,并且可能已经链接了 MML 库。真正的可用性取决于 MML 的安装和配置。PARALLELISM是一个软性限制。你可以配置比物理设备更多的通道,但这会导致通道等待设备,称为“通道争用”。
4. 相关视图与基表
关联视图
| 视图名称 | 描述 | 关系 |
|---|---|---|
V$RMAN_CONFIGURATION | 显示使用 CONFIGURE 命令设置的持久化RMAN配置。 | 可以查看已配置的通道参数(如 CONFIGURE CHANNEL DEVICE TYPE DISK/SBT_TAPE ...),这与 V$BACKUP_DEVICE 中显示的可用设备类型直接相关。 |
V$BACKUP_ASYNC_IO | 监控异步I/O操作。 | 当使用 DISK 或 SBT_TAPE 设备时,其性能信息可以在此视图中查看。 |
V$CHANNEL | 显示当前分配的通道信息(仅限内存中)。 | 显示的是当前运行的通道,而 V$BACKUP_DEVICE 显示的是潜在可用的设备能力。 |
底层基表
X$KRBDPT:动态性能表,存储可用的备份设备类型和它们的属性(内存结构)。V$BACKUP_DEVICE的数据主要来源于此。X$KRBMC:可能与介质管理配置相关的内部表。
⚠️ 警告: 这些
X$表是Oracle内部的、未文档化的结构,严禁直接查询。
5. 底层详细原理
数据生成机制
V$BACKUP_DEVICE 的内容不是动态变化的,而是在数据库实例启动时或相关模块加载时确定的。
- 内置设备 (
DISK):DISK设备是 Oracle 数据库的内置功能。只要数据库实例启动,该设备类型就会被注册到内存结构中,其PARALLELISM等属性由 Oracle 内核决定。 - 外部设备 (
SBT_TAPE):SBT_TAPE设备的检测过程更为复杂:- 链接时检查:在实例启动时,Oracle 会检查是否链接了介质管理库(
libobk.soon Linux/Unix,orasbt.dllon Windows)。 - API 交互:如果 MML 库存在,Oracle 会调用其中定义的函数(如
sbtinit)来初始化磁带支持,并获取设备的能力信息,如最大并行度 (PARALLELISM)。 - 结果注册:从 MML 获取的信息被填充到
X$KRBDPT表中,从而在V$BACKUP_DEVICE中可见。
- 链接时检查:在实例启动时,Oracle 会检查是否链接了介质管理库(
如果 SBT_TAPE 行没有出现,通常意味着:
a) 没有安装任何 MML 软件。
b) MML 软件已安装,但 Oracle 未能找到或链接其库文件(检查 $ORACLE_HOME/lib/libobk.so 的链接)。
c) MML 库初始化失败。
6. 关键知识点介绍
1. SBT_TAPE 与介质管理库 (MML)
SBT_TAPE不是一个具体的驱动程序,而是一个 API 接口规范。- Oracle 提供 API,而第三方备份软件供应商(如 Veritas NetBackup, IBM TSM, Oracle Zero Data Loss Recovery Appliance 等)提供实现该 API 的库文件(即 MML)。
- 必须将 Oracle 的
libobk.so符号链接指向备份软件提供的库文件,Oracle 才能使用该软件进行磁带备份。
2. 通道 (Channel) 与设备 (Device) 的关系
- 设备 (Device): 是一种能力或类型(如磁带、磁盘)。
V$BACKUP_DEVICE视图描述的是这种能力。 - 通道 (Channel): 是一个到设备的会话或连接。一个
DISK设备可以分配多个通道,每个通道写一个独立的备份片文件。 - 你可以分配超过
PARALLELISM限制的通道,但多余的通道将等待可用的设备槽位。
3. DISK 与 SBT_TAPE 的差异
| 特性 | DISK | SBT_TAPE |
|---|---|---|
| 管理方 | Oracle 内核直接管理 | 由第三方介质管理软件管理 |
| 配置 | 无需额外安装 | 必须安装并正确配置 MML |
| 性能 | 通常更快,延迟更低 | 受磁带驱动器速度和网络带宽限制 |
| 容量 | 受可用磁盘空间限制 | 理论上无限(可更换磁带) |
| 用途 | 快速操作、短期保留 | 长期归档、异地容灾 |
7. 常用查询 SQL
① 查看所有可用的备份设备类型(最基本查询)
SELECT device_type, name, parallelism, remote
FROM v$backup_device;
② 检查 SBT_TAPE 设备是否可用(诊断备份软件集成)
SELECT device_type, parallelism, path
FROM v$backup_device
WHERE device_type = 'SBT_TAPE';
- 如果这个查询有返回结果,说明 Oracle 识别到了磁带备份支持,但不能保证MML配置完全正确。
- 如果无返回结果,说明 MML 未安装或配置有误。
③ 结合配置信息,查看已配置的默认设备
-- 查看RMAN的默认设备配置
SELECT * FROM v$rman_configuration WHERE name LIKE '%DEVICE%';
-- 与备份设备视图关联查看
SELECT d.device_type, d.parallelism, c.value AS configured_format
FROM v$backup_device d
LEFT JOIN v$rman_configuration c ON d.device_type = CASE
WHEN c.name = 'DEVICE TYPE' THEN c.value
ELSE NULL
END
WHERE c.name IS NULL OR c.name = 'DEVICE TYPE';
④ 评估备份策略的并行度限制
-- 对比设备最大并行度和当前配置的通道数
SELECT d.device_type,
d.parallelism AS max_parallelism,
(SELECT COUNT(*) FROM v$rman_configuration
WHERE name = 'CHANNEL' AND value LIKE '%DEVICE TYPE ' || d.device_type || '%') AS configured_channels
FROM v$backup_device d;
总结
- 核心优势:
V$BACKUP_DEVICE是 RMAN 备份环境的“能力侦察兵”。它用最简单的形式回答了“我能用什么来备份?”这个首要问题。 - 最佳实践:
- 在配置任何备份脚本之前,先查询此视图。
- 如果计划使用磁带备份,确保
SBT_TAPE行出现,并与您的备份管理员一起验证 MML 的配置。 - 理解
PARALLELISM的含义,避免配置过多的通道导致资源争用。
- 关键注意:
- 这是一个静态视图,反映的是数据库启动时或模块加载时检测到的设备能力,不会实时变化。
SBT_TAPE的出现不等于磁带备份功能已就绪,它只表明 Oracle 找到了 MML 库并成功初始化。最终的测试需要通过ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE SBT_TAPE;等命令来验证。
欢迎关注我的公众号《IT小Chen》
1054

被折叠的 条评论
为什么被折叠?



