备份数据库中存储的 BLOB(Binary Large Object) 对象,本质上就是保证二进制数据在备份和恢复过程中不丢失、不被损坏。下面按常见数据库和通用方法给你一个清晰指南。
INSERT 文本容易乱码或截断✅ 推荐方式:
expdp user/pass DIRECTORY=dp_dir DUMPFILE=blob.dmp SCHEMAS=your_schema
或
RMAN backup database;
❌ 不推荐:
spool 到文本UTL_FILE✅ 推荐方式:
mysqldump -u user -p dbname > backup.sql
MySQL 的
mysqldump会自动以十六进制方式安全导出 BLOB
物理备份(更安全):
xtrabackup --backup --target-dir=/backup
✅ 推荐方式:
pg_dump dbname > backup.sql
Large Object 专用:
pg_dump -F c dbname > backup.dump
恢复:
pg_restore -d dbname backup.dump
✅ 推荐方式:
BACKUP DATABASE dbname TO DISK = 'D:\backup.bak'
或:
MySQL 示例
SELECT blob_column
INTO DUMPFILE '/tmp/file.pdf'
FROM table
WHERE id = 1;
Oracle
DBMS_LOB.FILEOPEN / DBMS_LOB.LOADFROMFILE
mongodump❌ 只备份表结构
❌ 用文本编辑器打开 BLOB 文件
❌ 网络传输不校验 MD5
❌ 从不恢复测试
如果你能告诉我:
我可以直接给你最合适的备份命令和方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。