标签搜索

Oracle导出数据库

wehg489
2025-07-25 / 0 评论 / 1 阅读 / 正在检测是否收录...

🔧 一、操作流程(11.2.0.1.0 适配)
‌创建逻辑目录‌

sql
Copy Code
-- 物理路径需提前创建(如 D:\oracle_backup)
CREATE OR REPLACE DIRECTORY expnc_dir AS 'D:\oracle_backup';
GRANT READ, WRITE ON DIRECTORY expnc_dir TO 目标用户(如 system);
⚠️ 物理目录必须真实存在,否则报错 ORA-39002‌3。

‌全库导出命令‌

bash
Copy Code
expdp system/密码@SERVICE_NAME

 DIRECTORY=expnc_dir 
 DUMPFILE=full_11g.dmp 
 LOGFILE=expdp_11g.log 
 FULL=Y 
 COMPRESSION=ALL

‌关键参数说明‌:

FULL=Y:导出全库数据
COMPRESSION=ALL:压缩减少文件体积‌1
VERSION=10.2.0(可选):需兼容低版本时添加(如迁移到 10g)‌4
‌按用户导出‌

bash
Copy Code
expdp system/密码@SERVICE_NAME

 SCHEMAS=scott,hr 
 DUMPFILE=user_schemas.dmp 
 DIRECTORY=expnc_dir

⚠️ 二、版本注意事项
‌字符集强制检查‌
导出前需验证字符集一致性:

sql
Copy Code
SELECT USERENV('LANGUAGE') FROM DUAL; -- 结果需与目标库一致
不一致会导致导入乱码或失败‌3。

‌跨版本兼容性‌

导出高版本(11g)导入低版本(如 10g)时:
‌必须添加 VERSION=10.2.0‌,否则目标库无法识别元数据‌4。
同版本或向高版本迁移则无需指定。
‌Windows 路径格式‌
目录路径需用双反斜杠或正斜杠:

sql
Copy Code
CREATE DIRECTORY win_dir AS 'C:\oracle_backup'; -- 或 'C:/oracle_backup'
‌2

💡 三、常见问题解决
‌报错 ORA-39070: 无法打开日志文件‌
检查目录权限:

sql
Copy Code
GRANT READ, WRITE ON DIRECTORY expnc_dir TO EXPORT_USER; -- 重新授权
‌3

‌导出文件过大‌
启用多文件分割:

bash
Copy Code
DUMPFILE=exp_%U.dmp FILESIZE=2G -- 分割为 2GB/文件
‌1

‌仅导出元数据(表结构)‌

bash
Copy Code
CONTENT=METADATA_ONLY -- 不包含实际数据
‌1

📌 总结建议
‌场景‌ ‌关键参数‌
全库备份 FULL=Y + COMPRESSION=ALL
向低版本迁移(如 10g) ‌必加 VERSION=10.2.0‌
仅备份表结构 CONTENT=METADATA_ONLY
大库分割存储 DUMPFILE=exp_%U.dmp FILESIZE=2G
备份完成后,使用 impdp 导入时需确保目标库已创建同名目录对象及表空间‌

0

评论

博主关闭了当前页面的评论
歌曲封面
0:00