17人参与 • 2025-10-22 • Oracle
在 oracle 中,schema(模式)与用户(user)一一对应,一个用户默认对应一个 schema,用于存储表、视图、索引等数据库对象。例如scott用户对应的scottschema,包含该用户创建的所有对象。
sys、system、mdsys等,用于支撑数据库运行,无需手动备份。iuap_、yondif_前缀的 schema,是备份的核心对象。oracle 推荐使用data pump(数据泵) 工具进行 schema 备份,相比传统exp/imp,其速度更快、功能更强大,支持按 schema、表、用户等维度灵活导出。核心命令为:
expdp:导出(备份)数据impdp:导入(恢复)数据data pump 需通过逻辑目录映射操作系统路径,步骤如下:
-- 以sysdba身份登录 sqlplus / as sysdba -- 创建逻辑目录(示例:映射到/u01/backup) create or replace directory backup_dir as '/u01/backup'; -- 授予导出用户读写权限(如system用户) grant read, write on directory backup_dir to system;
命令格式:
expdp 用户名/密码@服务名 schemas=目标schema directory=逻辑目录 dumpfile=备份文件名.dmp logfile=日志名.log
示例(备份iuap_yms_data):
expdp system/ufgov1234@ufgovdb1 schemas=iuap_yms_data directory=backup_dir dumpfile=iuap_yms_data.dmp logfile=iuap_yms_data_exp.log
通过schemas参数指定多个 schema(逗号分隔):
expdp system/ufgov1234@ufgovdb1 schemas=iuap_yms_data,iuap_ipaas,yondif_ams_db directory=backup_dir dumpfile=multi_schemas.dmp logfile=multi_schemas_exp.log compression=all # 启用压缩(11g及以上支持)
当备份文件过大时,使用%u自动拆分(如超过 4gb):
expdp system/ufgov1234@ufgovdb1 schemas=业务schema列表 directory=backup_dir dumpfile=all_schemas_%u.dmp # 生成all_schemas_01.dmp、02.dmp等 logfile=all_schemas_exp.log parallel=4 # 并行导出,加快速度
备份前需了解 schema 占用空间,以便规划存储。查询所有 schema 大小(单位:gb):
select u.username as schema_name, round(nvl(sum(s.bytes)/(1024*1024*1024), 0), 2) as size_in_gb from dba_users u left join dba_segments s on u.username = s.owner group by u.username order by size_in_gb desc;
impdp system/ufgov1234@ufgovdb1 directory=backup_dir dumpfile=multi_schemas.dmp logfile=multi_schemas_imp.log
通过dumpfile参数列出所有文件(逗号分隔):
impdp system/ufgov1234@ufgovdb1 directory=backup_dir dumpfile=schema1.dmp,schema2.dmp,schema3.dmp logfile=import_multi.log parallel=3 # 并行度与文件数匹配
remap_schema:映射源 schema 到目标 schema(如remap_schema=old:new)table_exists_action:处理已存在对象(replace覆盖、append追加)skip_unusable_indexes:跳过不可用索引,加速导入(skip_unusable_indexes=y)部分系统 schema(如sys、system、mdsys)禁止直接导出,需从备份列表中排除,仅保留业务 schema(如iuap_、yondif_系列)。
%u自动拆分,或filesize指定单文件大小(如filesize=10g)。exp_full_database角色,导入需imp_full_database角色。grant read, write on directory 目录名 to 用户)。compression=all),拆分大文件,避免单个文件超过 10gb。successfully completed标识。通过本文的方法,可高效完成 oracle schema 的备份与恢复,确保数据安全性与可恢复性。
以上就是oracle数据库schema备份与导入导出的全攻略的详细内容,更多关于oracle schema备份与导入导出的资料请关注代码网其它相关文章!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论