1. 恢复操作概述
恢复操作是NBU备份系统的重要功能,用于在数据丢失或损坏时恢复数据。恢复操作的成功与否直接关系到业务的连续性和数据的安全性。更多学习教程www.fgedu.net.cn
# /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服务状态
# /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数据库恢复
# 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数据库恢复
# 或者使用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)
# /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
