本文主要提及使用exp,imp以及Oracle数据泵等工具如何进行数据迁移:
(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创建导出目录
select username from dba_users;先查看当前数据库拥有哪些用户
通过调用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)开始导入导出
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’;
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