数据泵方式导入导出:expdp/impdp

数据泵方式导入导出:expdp/impdp

本项目是要从核心数据库(下文中用A库表示,AIX系统,数据库版本:11.2.0.4)导出数据库,并将其导入到生产库(下文中用B库表示。Linux操作系统,数据库版本:11.2.0.4)。

A库导出

1. 选择导出磁盘

导出数据库时,优先选择空间最大的路径,以防止文件过大,中断操作,致使导出失败。

[oracle@01 ~]$ df -h

2. 用root用户在相应磁盘中创建系统目录

2-1切换root用户

[oracle@01 ~]$ su - root

root's Password:

扫描二维码关注公众号,回复: 2237051 查看本文章

2-2进入选定的路径下(ogg)

[root@01 /]#cd /ogg

[root@01 /ogg]#ls -l

total 136

drwxr-xr-x    3 oracle   oinstall       4096 Apr 21 2014  app

drwx------    2 root     system        65536 Apr 21 2014  lost+found

2-3创建目录

[root@01 /ogg]#mkdir xkc_dump

[root@01 /ogg]#ls -l

total 144

drwxr-xr-x    3 oracle   oinstall       4096 Apr 21 2014  app

drwx------    2 root     system        65536 Apr 21 2014  lost+found

drwxr-xr-x    2 root     system         4096 Jun 29 20:22 xkc_dump

root用户创建目录,避免了创建目录时出现权限不足的情况,但是此时,创建出来的目录是root的权限,我们需要给他oracle权限

[root@01 /ogg]#chown oracle:oinstall xkc_dump/

3. 在数据库中创建目录

3-1切回oracle用户,进入数据库

[root@cardb01 /ogg]#logout    --注销当前用户,返回上个用户

[oracle@cardb01 ~]$sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Fri Jun 29 20:22:38 2018

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

Data Mining and Real Application Testing options

3-2查询数据库默认目录DATA_PUMP_DIR

这一步的操作是为了避免目录一样,造成冲突

sys@COREDB>select * from dba_directories;

3-3创建导出目录

sys@COREDB>create directory XKCDUMP as '/ogg/xkc_dump';

Directory created.

4. 创建导出用户,并授予相应权限

4-1创建用户dp

sys@COREDB>create user dp identified by dp account unlock;

User created.

4-2授予dp用户dba权限

sys@COREDB>grant dba to dp;

Grant succeeded.

4-3授予dp用户对XKCDUMP目录的读写权限

sys@COREDB>grant read,write on directory XKCDUMP to dp;

Grant succeeded.

5.对导出的数据量进行预估

5-1退出数据库

sys@COREDB>quit

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

Data Mining and Real Application Testing options

5-2对导出表进行预估

[oracle@cardb01 ~]$expdp dp/dp directory=XKCDUMP estimate_only=y tables=carctrl.CTRL_PERSON_APPLY

estimate_only=y 这个参数,代表数据量预估,

值为Y时,表示只对数据量预估,不会执行导出操作

值为N(默认)时,表示直接执行导出操作

导出表、用户、全库,数据量预估都一样,加上这个参数就行

Total estimation using BLOCKS method: 960 MB

Job "DP"."SYS_EXPORT_TABLE_01" successfully completed at Fri Jun 29 20:27:33 2018 elapsed 0 00:00:04

可以看出,导出的数据量为960MB,此时要注意,这个大小和导出的实际大小略有出入,但是出入不大

6.导出操作

6-1导出表

[oracle@cardb01 ~]$expdp dp/dp directory=XKCDUMP dumpfile=carctrl_CTRL_PERSON_APPLY.dmp tables=carctrl.CTRL_PERSON_APPLY

数据量预估为960MB,实际导出大小为783.3 MB 2147183 rows

6-2导出用户

[oracle@cardb01 ~]$ expdp dp/dp directory=XKCDUMP dumpfile=HZCARBIDexpdp.dmp schemas=HZCARBID;

6-3导出全库

[oracle@cardb01 ~]$ expdp dp/dp directory=JJ_DUMP estimate_only=y full=y logfile=export.log

7. 检查导出目录下是否有导出文件

[oracle@cardb01 ~]$cd /ogg/xkc_dump/

[oracle@cardb01 /ogg/xkc_dump]$ls -l

8. 将导出文件传到B库所在的服务器

[oracle@cardb01 /ogg/xkc_dump]$ scp CARCTRL_HISTORY_PERSON_POOLING.dmp 192.168.104.11:/home/oracle/xkc_dump

[email protected]'s password:

B库的前期准备工作和A库相同,需要选择磁盘、创建系统目录、创建数据库目录、创建数据泵用户dp、给dp用户授权,做完这些之后,才能执行操作8

9. B库导入数据

9-1导入表

[oracle@devdb01 xkc_dump]$ impdp dp/dp directory=XKCDUMP dumpfile=CARCTRL_HISTORY_PERSON_POOLING.dmp tables=CARCTRL.HISTORY_PERSON_POOLING table_exists_action=truncate logfile=import.log

9-2导入用户

导入用户之前,要检查B库里边有没有相应用户的表空间,如果没有需自己手动创建

[oracle@devdb01 xkc_dump]$ impdp dp/dp directory=XKCDUMP dumpfile=HZCARBIDexpdp.dmp schemas=HZCARBID;

9-3导出全库

[oracle@devdb01 xkc_dump]$ impdp dp/dp directory=XKCDUMP dumpfile=JJEXPDP.dmp full=y;

猜你喜欢

转载自blog.csdn.net/jp122623/article/details/80912098