Linux 创建 NFS 存储
第一阶段:在 NFS 服务端(存储节点)配置
假设 NFS 服务器的 IP 为 192.168.1.100,存储空间位于 /data/db2migrate。
1. 安装服务
yum install -y nfs-utils
# Ubuntu/Debian
apt-get install -y nfs-kernel-server
2. 创建目录并授权
注意: 目录权限必须允许源机和目标机的 DB2 实例用户(通常是 db2inst1)读写。最简单的方法是保持 UID 一致或先给 777 权限。
mkdir -p /data/db2migrate
chmod 777 /data/db2migrate
3. 配置共享规则
编辑 /etc/exports 文件,添加以下行(将网段替换为你的实际网段):
/data/db2migrate 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)
rw: 读写权限。sync: 资料同步写入内存与磁盘,保证数据安全性。no_root_squash: 允许客户端以 root 身份操作(方便挂载和调整权限)。
4. 启动服务
systemctl enable --now nfs-server
exportfs -arv # 使配置立即生效
第二阶段:在客户端(源物理机 & 目标集群)挂载
源机和目标机都需要执行以下操作。
1. 安装客户端工具
yum install -y nfs-utils # 或 apt-get install nfs-common
2. 创建挂载点
mkdir -p /mnt/db2_backup
chown db2inst1:db2iadm1 /mnt/db2_backup
3. 执行挂载(关键参数)
为了 DB2 大文件传输的稳定性,必须使用优化参数:
mount -t nfs -o rw,bg,hard,intr,rsize=32768,wsize=32768,tcp,nolock 192.168.1.100:/data/db2migrate /mnt/db2_backup
- hard/intr: 如果 NFS 掉线,进程会挂起直到恢复,而不是直接返回 I/O 错误(防止数据损坏)。
- rsize/wsize: 设置较大的读写块大小,提升大数据量迁移性能。
- nolock: 避免在导出过程中出现文件锁定冲突。
第三阶段:DB2 迁移操作流程
1. 在源机导出
切换到 DB2 实例用户:
su - db2inst1
cd /mnt/db2_backup
db2move <DBNAME> export
2. 在目标机加载
在目标机挂载好同一个 NFS 目录后,确认表空间和表定义已创建,然后执行:
su - db2inst1
cd /mnt/db2_backup
db2move <DBNAME> load
避坑指南总结(Tips)
| 检查项 | 建议 |
|---|---|
| 磁盘空间 | NFS 所在的分区务必准备 1.5TB 以上(全库 622GB + 膨胀空间)。 |
| 网络隔离 | 尽量使用私网/业务内网 IP 挂载,避免消耗公网带宽。 |
| 权限问题 | 如果 db2move 报错无法创建文件,检查 /mnt/db2_backup 的目录权限,确保 db2inst1 有 rwx 权限。 |
| 防火墙 | 确保 NFS 端口(2049, 111)在防火墙中已开启。 |