一、 数据库的导出(expdp)

1.

创建默认导出目录

SQL>create directory [dirname] as ‘[dirpath]’;

2.

赋予指定用户在此目录的读写权限

SQL>GRANT READ, WRITE ON DIRECTORY [dirname] to [dbuser];

3.

使用expdp导出数据库

① 导出完整schema

> expdp [username/passwd]

DUMPFILE=[dmpname].dmp DIRECTORY=[DIRECTORY_NAME]

SCHEMAS=[schema_name]

② 导出除表以外的部分数据对象

可通过exclude参数排除无需导出的数据对象,如:

>expdp

[username/passwd] DUMPFILE=[dmpname].dmp DIRECTORY=[DIRECTORY_NAME]

logfile=[logname.log] exclude=[object_type]:”in

(‘name_clause’,’ name_clause’,…)”, [object_type],…

example:

>expdp

scott/tiger directory=dump_dir dumpfile=exc1.dmp logfile=exc1.log

exclude=table:\”in \(\‘EMP\’,\’DEPT\’\)\”,view

其中单引号中的内容必须用大写才能生效

其他数据对象以此类推

③ 导出若干张表和若干张数据对象

>expdp

[username/passwd] DUMPFILE=[dmpname].dmp DIRECTORY=[DIRECTORY_NAME] logfile=[logname.log]

include=[object_type]:”in (‘name_clause’,’name_clause’,…)”,[object_type],…

example:

>expdp scott/tiger directory=dump_dir dumpfile=exc1.dmp logfile=exc1.log include=table:\ “in (\‘EMP\’,\’DEPT\’\)\”,view:\”in \(\‘V\_EMP\’\)\”,procedure

二、将导出的文件通过SCP传到需要导入的服务器上

example:

>scp *

oracle@192.168.1.52:/data/dpdump

三、 将dmp文件导入到指定库中

1.

创建默认导出目录

SQL>create directory [dirname] as ‘[dirpath]’;

2.

赋予指定用户在此目录的读写权限

SQL>GRANT READ,

WRITE ON DIRECTORY [dirname] to [dbuser];

3.

使用impdp工具导入

① 导入完整schema

用DBA权限登陆,指定schema进行全库导入

>impdp [dba_user/passwd] directory=[DIRECTORY_NAME]dumpfile=[dumpfile_name].dmp

logfile=[logfile_name].log schemas=[schema_name]

如果想要更新已经存在的表则可以进行如下操作

> impdp [dba_user/passwd]

directory=[DIRECTORY_NAME]dumpfile=[dumpfile_name].dmp logfile=[logfile_name].log

schemas=[schema_name] table_exists_action=replace[truncate/append/skip]

② 导入除表以外的部分数据对象

>impdp [dba_user/passwd]

directory=[DIRECTORY_NAME]dumpfile=[dumpfile_name].dmp logfile=[logfile_name].log

schemas=[schema_name] exclude=table, [object_type]:”in (‘name_clause’),(‘name_clause’),…”,…

example:

>impdp system/oracle directory= dump_dir

dumpfile=fulldb.dmp logfile=full_imp.log schemas=scott exclude =table,view:\”in

\(\‘V\_BONUS\’\)\”

③ 导入若干张表和若张数据对象

>impdp [dba_user/passwd]

directory=[DIRECTORY_NAME]dumpfile=[dumpfile_name].dmp logfile=[logfile_name].log

schemas=[schema_name] include=[object_type]:”in (‘name_clause’),(‘name_clause’),…”,

[object_type]:”in (‘name_clause’),(‘name_clause’),…”,…

example:

> impdp system/oracle directory=dump_dir

dumpfile=fulldb.dmp logfile=full_imp.log schemas=scott include=table:\"in

\(\'EMP\',\'DEPT\'\)\",view:\"in \(\'V\_EMP\',\'V\_DEPT\'\)\"

四、注意事项

1.如果导出的是指定模式下所有的数据对像,则想获得指定的数据对象时需在impdp中进行参数指定。

2.如果导出的是指定模式下的指定的数据对象,则impdp时无需指定可选参数。

补充:

1. 仅导出数据库结构

impdp system/oracle directory=dump_dir dumpfile=fulldb.dmp logfile=full_imp.log schemas=scott content=metadata_only

Logo

一站式 AI 云服务平台

更多推荐