oracle——expdp与impdp备份使用方法

一、引言


        原来oracle备份一直跟mysql一样导出sql语句,最近发现有新方法,尝试了下,跟住时代潮流。其实oracle的备份方法挺多的:

        Oracle备份分成物理备份与逻辑备份。
        物理备份: 把实际物理文件从一处拷贝到另一处(可能是原样拷贝,也可能经过压缩), 操作系统备份,使用RMAN的备份,冷备份,热备份。
        逻辑备份: 利用SQL从数据库中提取数据,并将其保存到文件中,这些数据可以在以后需求时重新导入数据库,或者导入其他数据库。Oracle提供EXP, IMP, EXPDP, IMPDP工具。



二、使用方法


1、创建逻辑目录

该命令不会在操作系统创建真正的目录,最好以system等管理员创建。
create or replace directory dump as 'd:\test\dump';
默认DATA_PUMP_DIR,所在目录C:\app\Administrator\admin\orcl\dpdump\


2、查看管理理员目录

同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错
select * from dba_directories;


3、给scott用户赋予在指定目录的操作权限,最好以system等管理员赋予。

grant read,write on directory dump to jgs;

4、导出数据

1)按用户导
expdp scott/tiger@orcl schemas=scott dumpfile=scott.dmp;
2)并行进程parallel
expdp scott/tiger@orcl directory=DATA_PUMP_DIR dumpfile=scott3.dmp parallel=40 job_name=scott3
3)按表名导
expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=DATA_PUMP_DIR;
4)按查询条件导
expdp scott/tiger@orcl directory=DATA_PUMP_DIR dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';
5)按表空间导
expdp system/manager DIRECTORY=DATA_PUMP_DIR DUMPFILE=tablespace.dmp TABLESPACES=temp,example;
6)导整个数据库
expdp system/admin@orcl dumpfile=full.dmp full=y;

有时候导出会出错,说找到不到日志之类的,这个时候在最后面加上cluster=n,如下:

expdp\"/ as sysdba\" directory=dumpdir dumpfile=user1.dmp schemas=jgs cluster=n;

5、还原数据

1)导到指定用户下
impdp system/admin@orcl DUMPFILE=scott.dmp REMAP_SCHEMA=scott:scott2;  (加上一直出错?DIRECTORY=DATA_PUMP_DIR)

对于后面的scott2,系统中可以有也可以没有,如果没有系统会自动建立这个用户。

2)改变表的owner
impdp system/manager DIRECTORY=DATA_PUMP_DIR DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;
3)导入表空间
impdp system/manager DIRECTORY=DATA_PUMP_DIR DUMPFILE=tablespace.dmp TABLESPACES=example;
4)导入数据库
impdb system/manager DIRECTORY=DATA_PUMP_DIR DUMPFILE=full.dmp FULL=y;
5)追加数据
impdp system/manager DIRECTORY=DATA_PUMP_DIR DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION=append;


导入到普通数据库
impdp  jgs/123 directory=dump dumpfile=xxx.dmp REMAP_SCHEMA=xxx:xxx3 full=y;

导入到系统数据库

impdp \"/ as sysdba\" directory=dump dumpfile=xxx.dmp REMAP_SCHEMA=xxx:xxx2 full=y;


自己常用的就是用户导入,下面几句:

//准备

 create or replace directory dump as 'C:\app\xcy\oradata';

 grant read,write on directory dump to sde;

//导出,第一句不行用第二句
 
expdp sde/123@xcy schemas=sde dumpfile=sde.dmp directory=dump;

expdp sde/123@xcy schemas=sde dumpfile=sde.dmp directory=dump cluster=n;
//导入

impdp sde/123@orcl directory=dump dumpfile=sde.dmp remap_schema=sde:sde



三、总结


  • 数据库备份方法种类;

  • expdp、impdp备份方法步骤;


  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
expdpimpdpOracle 数据库中用来导出和导入数据的工具。 expdpOracle 数据库中用来导出数据的工具,它可以将数据库中的表、索引、视图、存储过程等数据导出到一个文件中。expdp 命令的语法如下: ``` expdp username/password@connect_string DIRECTORY=directory_name DUMPFILE=dump_file_name SCHEMAS=schema_name [TABLES=table_name [,table_name ...]] ``` 其中,`username/password@connect_string` 是连接字符串;`DIRECTORY` 指定导出文件的路径;`DUMPFILE` 指定导出文件的文件名;`SCHEMAS` 指定需要导出的数据库用户,可以导出多个用户;`TABLES` 可选参数,指定需要导出的表名。 impdpOracle 数据库中用来导入数据的工具,它可以将 expdp 导出的数据文件导入到数据库中。impdp 命令的语法如下: ``` impdp username/password@connect_string DIRECTORY=directory_name DUMPFILE=dump_file_name SCHEMAS=schema_name [TABLES=table_name [,table_name ...]] ``` 其中,`username/password@connect_string` 是连接字符串;`DIRECTORY` 指定导入文件的路径;`DUMPFILE` 指定导入文件的文件名;`SCHEMAS` 指定需要导入的数据库用户,可以导入多个用户;`TABLES` 可选参数,指定需要导入的表名。 需要注意的是,在使用 expdpimpdp 工具时,需要先创建一个目录(DIRECTORY),并授权给数据库用户使用。授权的命令如下: ``` CREATE DIRECTORY directory_name AS 'directory_path'; GRANT READ, WRITE ON DIRECTORY directory_name TO user_name; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值