需求:公司搭建的报表库环境数据来自于生产环境oracle数据,因此需要使用kettle将oracle数据每天定时导入到报表数据库中(本文不讨论如何用kettle导数据,不赘述),若要导数据我们需要一套完善的生产oracle数据库的表结构。同时环境搭建以及oracle数据库都在linux环境下部署,因此,需要在linux环境下使用数据泵技术将数据完成导入导出
以上为需求概述
具体实现(即:操作步骤):
su - root --切换root用户(由于不知道oracle用户的密码使用root来登录oracle用户)
su - oracle --在root用户下切换oracle数据库
ps -ef|grep smon ---查看数据库实例
export ORACLE_SID=实例名 ----oracle实例
sqlplus sys/manager as sysdba; ----登录数据库用户数据库连接
select * from dba_directories -----查看数据库虚拟目录(导出数据存放的位置)
Grant read,write on directory 虚拟目录名 to 数据库用户名;------为用户赋予读写的权限
Grant imp_full_database,exp_full_database to 数据库用户名;-----为用户赋予导入导出的权限
-----------从用户导出的两种形式
expdp 用户名/数据库名 schemas=用户名 dumpfile=dmp文件名.dmp directory=虚拟目录名 logfile=日志名.log
expdp 数据库名 directory=虚拟目录名 dumpfile=dmp文件名.dmp logfile=日志.log schemas=用户名
----------从用户导入的两种形式
impdp 用户名/密码 directory=虚拟目录名 dumpfile=dmp文件名.dmp logfile=日志名.log schemas=用户名
impdp 数据库名 directory=虚拟路径名 dumpfile=导入文件名.dmp logfile=日志名.log remap_schema=导出源数据库用户名:导入源数据库用户名;
以上为数据泵导入导出数据的大概步骤,可能步骤太过粗糙,以后再做完善吧,也希望大家可以提出好的改进建议,共同学习