Linux 创建 NFS 存储
这篇文章记录在 Linux 环境中快速搭建 NFS 共享目录,并用于 DB2 数据迁移的做法。示例里假设 NFS 服务器地址为 192.168.1.100,共享目录为 /data/db2migrate。
服务端配置
先在存储节点上把共享目录准备好。
1. 安装服务
yum install -y nfs-utils
# Ubuntu/Debian
apt-get install -y nfs-kernel-server2. 创建目录并授权
如果这块共享目录后面要被 DB2 实例用户直接读写,最稳妥的做法是保证源端和目标端的实例用户 UID 一致。临时迁移环境里,也可以先通过宽松权限把流程跑通。
mkdir -p /data/db2migrate
chmod 777 /data/db2migrate3. 配置共享规则
编辑 /etc/exports 文件,添加以下行,并把网段替换为实际环境:
/data/db2migrate 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)这里几个常用参数分别表示:
rw:允许读写sync:同步写入,安全性更高no_root_squash:允许客户端 root 保持 root 身份no_subtree_check:减少子目录检查带来的额外限制
4. 启动服务
systemctl enable --now nfs-server
exportfs -arv客户端挂载
源服务器和目标服务器都需要挂载同一份 NFS 目录,这样迁移文件才能在两边共享。
1. 安装客户端工具
yum install -y nfs-utils # 或 apt-get install nfs-common2. 创建挂载点
mkdir -p /mnt/db2_backup
chown db2inst1:db2iadm1 /mnt/db2_backup3. 执行挂载
考虑到 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:增大读写块大小,适合大文件传输tcp:比 UDP 更稳nolock:减少迁移过程中因锁机制带来的干扰
DB2 迁移流程
1. 在源机导出
在源端切换到 DB2 实例用户后执行导出:
su - db2inst1
cd /mnt/db2_backup
db2move <DBNAME> export2. 在目标机加载
目标端挂载好同一目录后,确认目标库的表结构和表空间已准备完成,再执行:
su - db2inst1
cd /mnt/db2_backup
db2move <DBNAME> load注意事项
做这类迁移时,最常见的问题一般集中在下面几项:
- 磁盘空间要提前预留充足,避免导出到一半被打满。
- 尽量走内网或专用网络,不要占用公网带宽。
- 如果
db2move没法创建文件,优先检查挂载目录权限和 UID 映射。 - 如果客户端挂载失败,记得检查 NFS 相关端口和防火墙放行情况。
总结
这篇文章的核心思路其实很简单:在服务端准备一块稳定的共享目录,让源端和目标端都挂载到同一路径,再把 db2move 的导出和导入都落到这块共享存储上。真正决定是否顺利的,通常不是命令本身,而是权限、网络和空间是否提前准备到位。