1. 首页 > IT综合教程 > 正文

it教程FG188-NBU备份恢复操作

1. 恢复操作概述

恢复操作是NBU备份系统的重要功能,用于在数据丢失或损坏时恢复数据。恢复操作的成功与否直接关系到业务的连续性和数据的安全性。更多学习教程www.fgedu.net.cn

# 查看NBU恢复相关命令
# /usr/openv/netbackup/bin/admincmd/bprestore -help
Usage: bprestore [-B] [-c client] [-C client] [-d date] [-D date] [-e date] [-E date] [-f file]
[-F] [-g file] [-h] [-H] [-i] [-k “keyword phrase”] [-L logfile]
[-l] [-M master_server] [-m] [-n] [-p policy] [-P] [-r] [-R file]
[-s date] [-S date] [-t type] [-T] [-w] [-X] [-z] file …

Options:
-B Restore to different client
-c client Client that performed the backup
-C client Client to restore to
-d date End date for backup selection (default: today)
-D date End date for version selection (default: today)
-e date End time for backup selection (default: now)
-E date End time for version selection (default: now)
-f file File list
-F Force restore
-g file File list with alternate paths
-h Help
-H No histogram
-i Interactive
-k “keyword phrase” Keyword phrase
-L logfile Log file
-l List only
-M master Master server
-m Restore multiple streams
-n No restore, list what would be restored
-p policy Policy name
-P Preview restore
-r Redirect restore
-R file Redirect file
-s date Start date for backup selection (default: 1/1/1970)
-S date Start date for version selection (default: 1/1/1970)
-t type File type
-T Restore only files changed after the backup
-w Wait for restore to complete
-X Cross mount points
-z Compress data

2. 恢复类型

NBU支持多种恢复类型,适用于不同的恢复场景和数据类型。学习交流加群风哥微信: itpux-com

2.1 文件级恢复

用于恢复单个文件或目录,是最常用的恢复类型。

2.2 数据库恢复

专门用于恢复数据库,如Oracle、SQL Server等。

2.3 系统级恢复

用于恢复整个系统,包括操作系统和应用程序。

2.4 虚拟机恢复

专门用于恢复虚拟机,如VMware、Hyper-V等。

# 查看可用的恢复类型
# /usr/openv/netbackup/bin/admincmd/bplist -help | grep -i type
-t type File type (default: 0)
0 = UNIX files
1 = NetWare files
2 = MS-DOS files
4 = Oracle
6 = DB2
7 = Informix
8 = Sybase
9 = NDMP
10 = FlashBackup
11 = MS-Windows files
12 = OS/2 files
13 = SAP
14 = Lotus Notes
15 = MS Exchange
16 = MySQL
17 = PostgreSQL
18 = VMware
19 = Hyper-V
20 = SQL Server
21 = SharePoint
22 = Cloud

3. 恢复前准备

在执行恢复操作前,需要进行充分的准备工作,确保恢复过程顺利进行。

3.1 确认备份可用性

# 列出客户端的备份内容
# /usr/openv/netbackup/bin/admincmd/bplist -C client1 -t 0 -l /data
-rw-r–r– 1 root root 1024 Apr 2 20:00 /data/file1.txt
-rw-r–r– 1 root root 2048 Apr 2 20:00 /data/file2.txt
-rw-r–r– 1 root root 3072 Apr 2 20:00 /data/file3.txt

# 查看备份详细信息
# /usr/openv/netbackup/bin/admincmd/bpbackupinfo -backupid client1_1234567890

Backup ID: client1_1234567890
Policy: FULL_BACKUP
Schedule: Full
Client: client1
Start Time: 04/02/2026 20:00:00
End Time: 04/02/2026 20:30:00
Files Backed Up: 1000
Bytes Backed Up: 1024000000
Status: Successful

3.2 准备恢复目标

# 检查恢复目标目录
# ls -la /restore

total 16
drwxr-xr-x 2 root root 4096 Apr 2 10:00 .
drwxr-xr-x 20 root root 4096 Apr 2 09:00 ..

# 创建恢复目录
# mkdir -p /restore/data

# 设置目录权限
# chmod 775 /restore/data

# 验证目录权限
# ls -la /restore/
total 20
drwxr-xr-x 3 root root 4096 Apr 2 10:05 .
drwxr-xr-x 20 root root 4096 Apr 2 09:00 ..
drwxrwxr-x 2 root root 4096 Apr 2 10:05 data

3.3 检查NBU服务状态

# 检查NBU服务状态
# /usr/openv/netbackup/bin/bp.kill_all
# /usr/openv/netbackup/bin/bp.start_all

Starting NetBackup services:

Starting bprd… started.
Starting bpcd… started.
Starting nbfsd… started.
Starting vnetd… started.
Starting bpjava-msvc… started.

# 验证服务状态
# /usr/openv/netbackup/bin/bpps

NB Processes
———–
root 12345 1 0 10:00 ? 00:00:00 /usr/openv/netbackup/bin/bprd
root 12346 1 0 10:00 ? 00:00:00 /usr/openv/netbackup/bin/bpcd
root 12347 1 0 10:00 ? 00:00:00 /usr/openv/netbackup/bin/nbfsd
root 12348 1 0 10:00 ? 00:00:00 /usr/openv/netbackup/bin/vnetd
root 12349 1 0 10:00 ? 00:00:00 /usr/openv/netbackup/bin/bpjava-msvc

4. 文件级恢复

文件级恢复是最常用的恢复操作,用于恢复单个文件或目录。

4.1 单个文件恢复

# 恢复单个文件
# /usr/openv/netbackup/bin/admincmd/bprestore -C client1 -c client1 -w /data/file1.txt

Restore started
Job ID is 12345

# 查看恢复作业状态
# /usr/openv/netbackup/bin/admincmd/bpjobs -jobid 12345

Job ID Type State Status Client Policy Schedule
——- ———- ——– ————— ————– ————— —————
12345 Restore Done Successful client1 FULL_BACKUP Full

# 验证恢复结果
# ls -la /data/file1.txt
-rw-r–r– 1 root root 1024 Apr 2 20:00 /data/file1.txt

4.2 目录恢复

# 恢复整个目录
# /usr/openv/netbackup/bin/admincmd/bprestore -C client1 -c client1 -w /data

Restore started
Job ID is 12346

# 查看恢复作业状态
# /usr/openv/netbackup/bin/admincmd/bpjobs -jobid 12346

Job ID Type State Status Client Policy Schedule
——- ———- ——– ————— ————– ————— —————
12346 Restore Done Successful client1 FULL_BACKUP Full

# 验证恢复结果
# ls -la /data/
total 24
drwxr-xr-x 2 root root 4096 Apr 2 20:00 .
drwxr-xr-x 20 root root 4096 Apr 2 09:00 ..
-rw-r–r– 1 root root 1024 Apr 2 20:00 file1.txt
-rw-r–r– 1 root root 2048 Apr 2 20:00 file2.txt
-rw-r–r– 1 root root 3072 Apr 2 20:00 file3.txt

4.3 重定向恢复

# 创建重定向文件
# vi /tmp/redirect.txt
/data/file1.txt /restore/data/file1.txt
/data/file2.txt /restore/data/file2.txt

# 执行重定向恢复
# /usr/openv/netbackup/bin/admincmd/bprestore -C client1 -c client1 -w -R /tmp/redirect.txt /data/file1.txt /data/file2.txt

Restore started
Job ID is 12347

# 验证恢复结果
# ls -la /restore/data/
total 16
drwxrwxr-x 2 root root 4096 Apr 2 10:10 .
drwxr-xr-x 3 root root 4096 Apr 2 10:05 ..
-rw-r–r– 1 root root 1024 Apr 2 20:00 file1.txt
-rw-r–r– 1 root root 2048 Apr 2 20:00 file2.txt

4.4 从特定备份恢复

# 查看备份历史
# /usr/openv/netbackup/bin/admincmd/bpimagelist -client client1 -policy FULL_BACKUP

IMAGE client1 1234567890 FULL_BACKUP Full 0 1024000000 04/02/2026 20:00:00 04/02/2026 20:30:00
IMAGE client1 1234567891 FULL_BACKUP Full 0 1024000000 03/26/2026 20:00:00 03/26/2026 20:30:00
IMAGE client1 1234567892 FULL_BACKUP Full 0 1024000000 03/19/2026 20:00:00 03/19/2026 20:30:00

# 从特定备份恢复
# /usr/openv/netbackup/bin/admincmd/bprestore -C client1 -c client1 -w -s 03/26/2026 -e 03/26/2026 /data/file1.txt

Restore started
Job ID is 12348

# 验证恢复结果
# ls -la /data/file1.txt
-rw-r–r– 1 root root 1024 Mar 26 20:00 /data/file1.txt

5. 数据库恢复

数据库恢复是专门用于恢复数据库的操作,需要使用特定的恢复命令和工具。

5.1 Oracle数据库恢复

# 使用RMAN恢复Oracle数据库
# su – oracle
$ rman target /

RMAN> run {
> allocate channel ch1 type ‘SBT_TAPE’;
> set channel ch1 device type ‘SBT_TAPE’ parms ‘SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64,ENV=(NB_ORA_CLIENT=dbserver1,NB_ORA_POLICY=ORACLE_BACKUP,NB_ORA_SCHED=Full)’;
> restore database;
> recover database;
> release channel ch1;
> }

Starting restore at 04/02/2026 11:00:00
using channel ORA_DISK_1
using channel ORA_SBT_TAPE_1

channel ORA_SBT_TAPE_1: starting datafile backup set restore
channel ORA_SBT_TAPE_1: specifying datafile(s) to restore from backup set
channel ORA_SBT_TAPE_1: restoring datafile 00001 to /oracle/oradata/ORCL/system01.dbf
channel ORA_SBT_TAPE_1: restoring datafile 00002 to /oracle/oradata/ORCL/sysaux01.dbf
channel ORA_SBT_TAPE_1: restoring datafile 00003 to /oracle/oradata/ORCL/undotbs01.dbf
channel ORA_SBT_TAPE_1: restoring datafile 00004 to /oracle/oradata/ORCL/users01.dbf
channel ORA_SBT_TAPE_1: restore complete, elapsed time: 00:15:30

Starting recover at 04/02/2026 11:15:30
using channel ORA_DISK_1
using channel ORA_SBT_TAPE_1

media recovery complete, elapsed time: 00:05:20

Finished recover at 04/02/2026 11:20:50

5.2 SQL Server数据库恢复

# 使用SQL Server Management Studio恢复数据库
# 或者使用T-SQL命令

RESTORE DATABASE [TestDB]
FROM DISK = N’\\nbu-server\backup\TestDB.bak’
WITH FILE = 1,
NOUNLOAD,
STATS = 5,
RECOVERY
GO

— 验证恢复结果
SELECT name, state_desc FROM sys.databases WHERE name = ‘TestDB’;

name state_desc
——————
TestDB ONLINE

6. 系统级恢复

系统级恢复用于恢复整个操作系统和应用程序,通常用于灾难恢复场景。

6.1 使用NetBackup Bare Metal Restore (BMR)

# 启动BMR恢复向导
# /usr/openv/netbackup/bin/bmrconfig -wizard

# 查看BMR客户端
# /usr/openv/netbackup/bin/admincmd/bmrc -listclients

Client Name: client1
Client OS: Linux
Client Type: BMR Client
Status: Ready

# 创建BMR恢复作业
# /usr/openv/netbackup/bin/admincmd/bmrc -createjob -client client1 -restoretype complete

Job ID: 12349

# 查看BMR恢复作业状态
# /usr/openv/netbackup/bin/admincmd/bmrc -queryjob -jobid 12349

Job ID: 12349
Status: Running
Progress: 50%

6.2 系统恢复验证

# 系统恢复完成后,启动系统
# 验证系统状态
# systemctl status

● client1
State: running
Jobs: 0 queued
Failed: 0 units
Since: Sat 2026-04-02 12:00:00 CST; 10min ago
CGroup: /
├─1 /usr/lib/systemd/systemd –switched-root –system –deserialize 22
├─user.slice
│ └─user-0.slice
│ └─session-1.scope
│ ├─1234 /usr/bin/login — root
│ └─1235 -bash
└─system.slice
├─sshd.service
│ └─1236 /usr/sbin/sshd -D
├─network.service
│ └─1237 /usr/sbin/networkd
└─netbackup.service
└─1238 /usr/openv/netbackup/bin/bpcd

# 验证关键服务
# systemctl status netbackup

● netbackup.service – NetBackup Client
Loaded: loaded (/etc/systemd/system/netbackup.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2026-04-02 12:00:00 CST; 10min ago
Main PID: 1238 (bpcd)
CGroup: /system.slice/netbackup.service
└─1238 /usr/openv/netbackup/bin/bpcd

7. 恢复验证

恢复操作完成后,需要进行验证,确保数据恢复成功且完整。

7.1 文件恢复验证

# 验证文件存在性
# ls -la /data/
total 24
drwxr-xr-x 2 root root 4096 Apr 2 20:00 .
drwxr-xr-x 20 root root 4096 Apr 2 09:00 ..
-rw-r–r– 1 root root 1024 Apr 2 20:00 file1.txt
-rw-r–r– 1 root root 2048 Apr 2 20:00 file2.txt
-rw-r–r– 1 root root 3072 Apr 2 20:00 file3.txt

# 验证文件内容
# cat /data/file1.txt
This is a test file for backup and restore.

# 验证文件大小
# du -h /data/*
1.0K /data/file1.txt
2.0K /data/file2.txt
3.0K /data/file3.txt

7.2 数据库恢复验证

# 连接数据库
# sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 – Production on Sat Apr 2 12:10:00 2026
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle. All rights reserved.

Connected to:
Oracle Database 19c Enterprise Edition Release 19.3.0.0.0 – Production
Version 19.3.0.0.0

# 验证数据库状态
SQL> SELECT status FROM v$instance;

STATUS
————
OPEN

# 验证数据完整性
SQL> SELECT COUNT(*) FROM employees;

COUNT(*)
———-
1000

7.3 恢复作业日志分析

# 查看恢复作业日志
# /usr/openv/netbackup/bin/admincmd/bpjobinfo -jobid 12345 -details

Job ID: 12345
Job Type: Restore
State: Done
Status: Successful
Client: client1
Policy: FULL_BACKUP
Schedule: Full
Start Time: 04/02/2026 10:00:00
End Time: 04/02/2026 10:05:00
Files Restored: 1
Bytes Restored: 1024
Status Code: 0

# 查看详细恢复日志
# cat /usr/openv/netbackup/logs/user_ops/dbext/log.12345
10:00:00 – Info bprestore (pid=12345) Restore started
10:00:01 – Info bprestore (pid=12345) Reading backup information from media
10:00:05 – Info bprestore (pid=12345) Restoring file /data/file1.txt
10:05:00 – Info bprestore (pid=12345) Restore done

8. 恢复最佳实践

遵循以下最佳实践,可以确保恢复操作的成功和高效。更多学习教程公众号风哥教程itpux_com

8.1 恢复前准备

  • 确认备份的可用性和完整性
  • 准备好恢复目标环境
  • 制定详细的恢复计划
  • 通知相关人员,确保恢复过程中不会受到干扰

8.2 恢复操作

  • 选择合适的恢复类型和方法
  • 使用最新的备份进行恢复
  • 在非生产环境中测试恢复流程
  • 记录恢复过程中的每一步操作

8.3 恢复后验证

  • 验证恢复的数据完整性
  • 验证应用程序的正常运行
  • 检查系统日志,确认没有错误
  • 更新恢复文档,记录恢复过程和结果

8.4 恢复测试

  • 定期进行恢复测试,确保备份的可恢复性
  • 测试不同类型的恢复场景
  • 记录测试结果,分析改进空间
  • 根据测试结果调整备份策略

8.5 灾难恢复演练

  • 定期进行灾难恢复演练,模拟真实的灾难场景
  • 测试完整的恢复流程,包括系统、数据库和应用程序
  • 评估恢复时间,确保在RTO(恢复时间目标)内完成
  • 根据演练结果,优化灾难恢复计划
# 执行恢复测试
# /usr/openv/netbackup/bin/admincmd/bprestore -C test-client -c client1 -w -n /data

Restore preview started
Job ID is 12350

# 查看恢复预览结果
# /usr/openv/netbackup/bin/admincmd/bpjobinfo -jobid 12350 -details

Job ID: 12350
Job Type: Restore
State: Done
Status: Successful
Client: test-client
Policy: FULL_BACKUP
Schedule: Full
Start Time: 04/02/2026 13:00:00
End Time: 04/02/2026 13:02:00
Files to Restore: 3
Bytes to Restore: 6144
Status Code: 0

生产环境风哥建议:建立完善的恢复流程文档,包括详细的恢复步骤和应急响应计划。定期进行恢复测试,确保在真正需要时能够快速、准确地完成恢复操作。

风哥风哥提示:恢复操作是备份系统的最终目标,确保数据能够在需要时成功恢复是备份系统的核心价值。建议建立恢复操作的标准流程,并定期进行培训和演练,提高团队的恢复能力。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息