oracle运维系列3:impdp导入数据库
背景
在前文导出数据文件的基础上,本文介绍如何将数据库文件导入至数据库。
操作步骤:
以下将详细介绍使用impdp导入schema=ZAVIER的全部数据的步骤。
- 数据准备
将数据文件*.impdp拷贝至系统某个目录,并确保oracle用户对其拥有权限(如修改文件/目录属主为oracle:oinstall)。本文将其放置于:/home/oracle目录
- 创建导入路径
首先登录数据库,在创建impdp能够识别的导入路径。如下:
[[email protected] ~]<20181119 16:48:41>$ sqlplus / as sysdba;
[email protected]> create directory IMP_ZAVIER as '/home/oracle';
Directory created.
[email protected]> select * from dba_directories where DIRECTORY_NAME = 'EXP_ZAVIER';
- 创建导入用户
impdp导入需要使用一个用户USER导入,因而,可以修改system用户的密码执行导入。如下:
[email protected]> alter user system identified by 123456;
User altered.
- 退出sqlplus,执行导入
说明:
- directory选项指定刚才创建的导入目录名;
- dumpfile指定导入文件,与impdp类似,导入也使用并行parallel参数;
- logfile指定导入日志文件;
- parallel指定并行导出jobs数。
- 其他相关参数还有:COMPRESSION(是否采用压缩)、ENCRYPTION(是否加密)、SCHEMAS(指定导出schema默认为登录schema)等;
可能遇到的问题
- 表空间不存在,如下:
出现此问题的原因可能是执行导入的数据库中不存在导出dmp文件对应用户(schems)的表空间,因而,需要先创建表空间。
1. 查看所有表空间文件及其数据文件:
SQL>select tablespace_name,file_id,file_name from dba_data_files;
2. 创建表空间
数据空间
SQL>CREATE TABLESPACE CMBASOC1DATA LOGGING DATAFILE '/u01/oradata/orcl/cmbasoc1_data.dbf' SIZE 10G AUTOEXTEND ON NEXT 500M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO;
索引空间:
SQL>CREATE TABLESPACE CMBASOC1INDEX LOGGING DATAFILE '/u01/oradata/orcl/cmbasoc1_index.dbf' SIZE 10G AUTOEXTEND ON NEXT 500M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO;
总结
- 由于导入的ZAVIER方案(schema)数据量非常小,仅有3个table(T1、T2、KNN_DATA),因而导入耗时少。生产上若schema包含的数据多,导出可能很长时间,具体取决与数据量大小、处理器性能、是否采用压缩等;
- impdp & expdp是oracle官方提供的一对数据库逻辑备份工具,有关其详细用法请使用impdp –help命令;
- impdp & expdp的日志文件是检查是否成功导入/导出的第一手资料,执行中请认真分析日志文件。
参考推荐
《oracle学生指南1-D50102CN11_SG1》
《Oracle性能诊断艺术》