绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
Oracle数据导出导入
2020-07-07 17:21:43

Oracle数据库管理,常见的操作之一就是数据导出导入。

我在DBA入门时,已经是开始用Oracle10,那会主要用imp 和 exp 导入导出(数据,表结构以及元数据等),后来oracle 11g就开始用impdp 以及expdp,效率更高,同时也兼容imp和exp。具体参数使用,请在oracle 服务器上,在oracle 用户下,运行命令 impdp -help 查看使用说明(同理expdp -help查看expdp说明)。

在expdp之前,我们需要创建数据库及Table Space(参考导出源数据库table space)。


以下举几个栗子:

  1. 导出导入数据库的一个schema(user)

(1)首先需要export 字符集,防止数据库导出导入过程中出现乱码,具体export字符集命令如下:NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1; export NLS_LANG

说明:

AMERICAN_AMERICA.WE8ISO8859P1 可通过sql【 select * from nls_database_parameters where PARAMETER in ('NLS_CHARACTERSET','NLS_LANGUAGE','NLSTERRITORY');】查询具体值,后续章节为大家详细介绍oracle字符集。

ARAMETER VALUE
------------------------------ ----------------------------------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CHARACTERSET WE8ISO8859P1

NLS_LANG =NLSLANGUAGE值_NLS_TERRITORY值.NLS_CHARACTERSET值得组合。

(2)其次export ORACLE_SID,命令行如下:

export ORACLE_SID=abcdb

说明:ORACLE_SID 是数据库名字,instance name,稍后介绍ORACLE名字细节。可以通过以下两个方法查找instance name,方法一: ps -ef|grep smon

方法二:cat /etc/oratab

(3)以system用户创建导入导出文件夹,并授权给相应的用户

mkdir -p /u01/dp

[oracle@ora3 dp]$ sqlplus system/password

SQL> create directory dp as '/u01/dp';

SQL> select * from dba_directories;

SQL> grant read,write on directory dp to testuser;

(4)导出一个schema的数据,表结构及元数据

expdp system/password schemas=testuser dumpfile=test.dmp logfile=exp_test.log DIRECTORY=dp;

(5)导入数据,命令如下。

impdp system/password directory=dp dumpfile=test.dmp logfile=imp_test.log REMAP_SCHEMA=test:test2

在同一个数据库下,将test schema 导入test2下。如果导入新的数据库,需要建库,建user,授权,并导入。


2.其他导出数据方式简介:

1)导整个数据库

expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y;

2)并行进程parallel

expdp scott/tiger@orcl directory=dpdata1 dumpfile=scott3.dmp parallel=40 job_name=scott3

3)按表名导

expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dpdata1;

4)按查询条件导

expdp scott/tiger@orcl directory=dpdata1 dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';

5)按表空间导

expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=temp,example;

分享好友

分享这个小栈给你的朋友们,一起进步吧。

Oracle数据库技术集
创建时间:2020-05-15 15:15:11
菜鸟教程
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 栈栈
    专家
戳我,来吐槽~