<p>本文主要提及使用exp,imp以及Oracle数据泵等工具如何进行数据迁移:</p>
讯享网
(1)数据泵
(2)外部表:external table
(3)数据加载工具:sqlloader可以将非ORACLE数据库的数据加载到ORACLE数据库中
(4)数据库备份工具:rman,recover manager恢复管理器
(1)exp:逻辑导出工具
(2)imp:逻辑导入工具
(1)expdp:数据泵逻辑导出工具export data pump
(2)impdp:数据泵逻辑导入工具import data pump
(1)全库导出
(2)导出用户
(3)导出表空间
(4)导出表(数据泵)
mkdir -p /home/oracle/backup/exp创建导出目录
exp system/oracle file=all.dmp log=all_exp.log full=y
select username from dba_users;先查看当前数据库拥有哪些用户
(1)单用户hr导出
单用户hr导入,在目标库中进行,导入库中需要提前创建用户hr,并赋予相应权限
(2)多用户导出
多用户导入
(1)单表导出
导入
(2)多表导出,导入
通过调用dbms_datapump系统包来完成导入导出操作
(1)在操作系统中创建目录
mkdir -p /home/oracle/backup/dir
(2)在数据库中创建目录对象,指向上一步创建的目录
create directory dbpump_dir as ‘/home/oracle/backup/dir’;
(3)给相应用户读写权限,用到什么用户就赋予它读写权限
grant read,write on directory dbpump_dir to system;
(4)开始导入导出
创建pfile.txt
PARALLEL=1
CLUSTER=NO
COMPRESSION=ALL
DUMPFILE=EXPORT_exp.DMP
DIRECTORY=DBPUMP_DIR
LOGFILE=EXPORT.LOG
TABLES=
(
HR.EMPLOYEES,HR.DEPARTMENTS
)
QUERY=
(
“EMPLOYEES:WHERE DEPARTMENT_ID > 10”,
“DEPARTMENTS:WHERE DEPARTMENT_NAME LIKE ‘%IT%’”
)
导入同样需要在目标库建立数据库目录对象
create directory dbpump_dir as ‘/home/oracle/backup/dir1’;
pfile_user.txt
PARALLEL=1
CLUSTER=NO
COMPRESSION=ALL
DUMPFILE=EXPORT_USER.DMP
DIRECTORY=DBPUMP_DIR
LOGFILE=EXPORT_USER.LOG
SCHEMAS=U2,U1
pfile_tbs.txt
PARALLEL=1
CLUSTER=NO
COMPRESSION=ALL
DUMPFILE=EXPORT_TBS.DMP
DIRECTORY=DBPUMP_DIR
LOGFILE=EXPORT_TBS.LOG
TABLESPACES=TBS1,TBS2,TBS3
(1)要把目标库的表空间创建好
(2)把表空间所属对象创建好
(3)赋予相应对象权限
ORACLE外部表用来存取数据库以外的文本文件(test file)或ORACLE专属格式文件。因此,建立外部表时不会产生段,区,块等数据结构,只有与表相关的定义放在数据字典中,外部表,就是存储在数据库外的表,当存取时才能从ORACLE专属格式文件中取得数据,外部表仅供查询,不能对外部表的内容修改。
create table ext_emp_query
(first_name,last_name,department_name)
organization external
(type oracle_datapump
default directory tab_dir
location('emp1.exp','emp2.exp','emp3.exp')
)
parallel
as
select e.first_name,e.last_name,d.department_name
from employees e,departments d
where e.department_id=d.department_id and
d.department_name in ('Marketing','Purchaing')
create table hr.ext_tab2
(id number,name varchar2(20))
organization external
(type oracle_loader
default directory tab_dir
location
(tab_dir:‘ext_tab1’,
tab_dir:‘ext_tab2’)
);
创建完成后需要自己到指定目录创建文件,如果文件提前存在,那么将无法查询到文件内容
1

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/168466.html