Oracle导出与导入数据脚本详解:.dmp文件操作关键

需积分: 32 11 下载量 48 浏览量 更新于2024-09-18 收藏 15KB TXT 举报
Oracle数据库管理中,导出和导入数据是常见的操作,尤其是在需要备份、迁移或者分享数据库结构和数据时。本文将详细介绍如何通过Oracle工具(如exp和imp)来创建和使用导出脚本文件.dmp,以便在不同场景下进行数据库的管理和维护。 首先,我们来看"Oracle导出脚本文件"部分。在命令行中,使用`exp` (export) 命令可以将数据库中的对象(如表、索引、视图等)导出到一个.dmp文件中。例如: ``` exp scott/tigerbuffer=32768 file=d:\scott.dmptables=(emp,dept,bonus) log=d:\czrk.log ``` 在这个例子中,`exp scott/tiger` 指定了用户名和口令(scott和tiger),`buffer=32768` 设置了缓冲区大小以优化传输效率,`file=d:\scott.dmptables=(emp,dept,bonus)` 指定输出文件名(d:\scott.dmp)和要导出的表名(emp, dept, bonus)。`log` 参数用于记录日志文件的位置。`tables` 关键字用于指定导出的表,而`full` 选项表示是否导出表的数据(默认为结构,即DDL,数据导出需额外指定`FULL`)。 接下来是`EXPhelp` 部分,它可能是对`exp`命令的帮助信息,强调了正确的参数格式和可能的错误处理,比如`exp help` 可以查看详细的帮助信息,以及设置`EXPSCOTT/TIGERGRANTS=Y` 表示导出用户权限(GRANTS=Y)。 导出过程中,需要注意`TABLES` 选项中的`T1: P1, T1: P2`,这表示使用别名(T1)映射实际表名(P1, P2)。同时,如果用户ID没有指定,可能会导致错误,因为每个命令都需要明确指定导出的用户。 对于`imp` (import) 命令,它用于从.dmp文件导入数据。同样,有一个示例: ``` imp scott/tiger, ... ignore=Y tables=(EMP,DEPT) full=N ... ``` 这里的`imp scott/tiger` 与`exp` 的格式相同,`ignore=Y` 表示忽略导入过程中可能存在的不匹配(例如,表已存在但数据不一致时)。`full=N` 表示只导入表结构,而不包含数据。`tables` 关键字同样用于指定要导入的表。 在执行`imp`命令时,同样需要指定`FROMUSER`(源用户)、`TOUSER`(目标用户)以及`file`(.dmp文件路径)等参数。`SHOW` 选项用于控制导入时的反馈级别,而`IGNORE` 则控制是否允许忽略某些问题。 总结来说,Oracle导出脚本文件.dmp是数据库管理员必备的技能,它涉及到了数据库对象的完整复制,包括结构、数据和权限。在使用过程中,理解并正确配置`exp` 和 `imp` 命令的参数至关重要,确保数据迁移或备份操作的准确性和完整性。同时,注意权限管理,避免未经授权的操作。
2020-05-19 上传
1、提供了oracle数据库备份脚本,导出dmp文件 2、定时任务由操作系统提供的支持,在操作系统中设置定时任务,由操作系统定期执行脚本 3、补充。压缩包脚本有点问题,不能删除旧的备份文件。需要自动删除历史备份文件请用最新脚本: @echo off @echo ================================================ @echo windows环境下Oracle数据库的自动备份脚本 @echo 说明:启动备份时,需要配置以下变量 @echo 1、BACKUP_DIR 指定要备份到哪个目录 @echo 2、ORACLE_USERNAME 指定备份所用的Oracle用户名 @echo 3、ORACLE_PASSWORD 指定备份所用的Oracle密码 @echo 4、ORACLE_DB 指定备份所用的Oracle连接名 @echo 5、BACK_OPTION 备份选项,可以为空,可以为full=y,可以为owner=a用户,b用户 等等.... @echo 6、RAR_CMD 指定RAR命令行压缩工具所在目录 @echo ================================================ rem 以下变量需要根据实际情况配置 set BACKUP_DIR=D:\tools\oracle_bak\backup230 set ORACLE_USERNAME=PLATADMIN set ORACLE_PASSWORD=123456 set ORACLE_DB=ORCL set BACK_OPTION=owner=PLATADMIN set RAR_CMD="D:/Program Files/WinRAR/Rar.exe" rem for /f "tokens=1,2" %%a in ('date/t') do set TODAY=%%a rem set BACK_NAME=%ORACLE_DB%_%TODAY%(%time:~0,2%时%time:~3,2%分)_ set BACK_NAME=%Date:~0,4%%Date:~5,2%%Date:~8,2%%Time:~0,2%%Time:~3,2%%Time:~6,2% set BACK_FULL_NAME=%BACKUP_DIR%/%BACK_NAME% rem 开始备份 exp %ORACLE_USERNAME%/%ORACLE_PASSWORD%@%ORACLE_DB% %BACK_OPTION% file="%BACK_FULL_NAME%.dmp" log="%BACK_FULL_NAME%exp.log" rem 压缩并删除原有文件 %RAR_CMD% a -df "%BACK_FULL_NAME%back.rar" "%BACK_FULL_NAME%.dmp" "%BACK_FULL_NAME%exp.log" rem 删除15天前的备份文件 forfiles /p %BACKUP_DIR% /s /m *.rar /d -15 /c "cmd /c del @file"