oracle数据泵

exp和imp:

exp导出:

exp username/password file=/home/oracle/oracle_bak/V31_202010.dmp owner=V31

只导出表结构:

exp username/password file=/home/oracle/oracle_bak/V31_202010.dmp owner=username rows=n  compress=n
  • rows=n 代表不导出数据只导出表结构, compress=n 压缩到表的初始大小

imp导入:
1.创建表空间:

create tablespace 表空间名字 datafile '/u01/app/oracle/oradata/odsdb/planning0530.dbf' size 200M reuse autoextend on next 1m maxsize unlimited;

2.创建用户指定默认表空间:

create user username identified by 123456 default tablespace 表空间名字;

3.给新建用户授权:(若提示权限不足,执行:grant all privileges to username; )

grant create session,create table,create view,create sequence,unlimited tablespace to username;

4.导入数据:

imp username/password full=y file=/home/oracle/20201027.dmp

imp system/password@dbserver full=y file=xxx.dmp buffer=100000000 feedback=10000  ignore=y

expdp和impdp:

expdp导出:
1、创建dmp导出目录

create directory 目录名 as '目录路径'
--例:create directory expdp_dmp as 'D:/expdp_dmp'

2、查看当前创建的所有dmp导出目录 (验证看是否创建成功)

select * from dba_directories
--例:select * from dba_directories

3、为创建的目录赋权限

grant read,write on directory 目录名 to 需要赋值的用户名
--例:grant read,write on directory expdp_dmp to aaa;

4、导出
expdp 用户名/密码@数据库实例名 directory=导出目录 dumpfile=导出的文件名.dmp logfile=导出的日志名.log

1)按用户导
expdp username/password@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=data;
2)并行进程导
expdp username/password@orcl directory=data dumpfile=scott3.dmp parallel=40 job_name=scott3
3)按表名导
expdp username/password@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=data;
4)按查询条件导
expdp username/password@orcl directory=data dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';
5)按表空间导
expdp username/password DIRECTORY=data DUMPFILE=tablespace.dmp TABLESPACES=temp,example;
6)导整个数据库
expdp username/password DIRECTORY=data DUMPFILE=full.dmp FULL=y;
  • USERNAME/PASSWORD:用户/密码(*)
  • DUMPFILE:导出后的文件名(*)
  • DIRECTORY:导出文件存放位置(位于服务器端)(*)
  • CONTENT:导出文件中包含的内容(默认为:ALL,可选DATA_ONLY/METADATA_ONLY)
  • FILESIZE:指定导出文件大小(单位为bytes).
  • JOB_NAME:此次导出进程使用的名称,方便跟踪查询(可选)
  • LOGFILE:日志文件名(默认为:export.log)
  • INCLUDE:导出时包含指定的类型
  • EXCLUDE:导出时排除的数据类型(例:EXCLUDE=TABLE:EMP)
  • FULL:全库导出时使用(同EXP的FULL,默认为N)
  • SCHEMAS:导出某一个SCHEMA下的所有数据
  • TABLES:按表导出(这里的方法和EXP一样)
  • TABLESPACE:指定一个表空间导出.
  • QUERY:按表导出时,使用条件语句限定导出范围(同exp中的QUERY)
  • CONTENT=METADATA_ONLY:只导出表结构
  • PARALLEL:多进程导

impdp导入表
$ sqlplus / as sysdba
1.查询数据库中表空间对应的数据文件路径

SQL> select file_name,tablespace_name from dba_data_files;  

2.创建表空间,+DATA是表空间数据文件的路径,RAC集群使用。如果是单实例需要写入具体的表空间数据文件路径,(例如:/u01/app/oracle/oradata/odsdb/数据文件名字.dbf)

SQL> create tablespace 表空间名字 datafile ‘+DATA’ size 31g autoextend  on next 50m;  

3.创建导入的数据库用户并指定默认的数据库表空间,双引号中的是密码,需要根据实际情况来设置复杂密码

SQL> create user username identified by “password”  default tablespace 表空间名字;  

4.导入数据
1)导到指定用户下

impdp username/password DIRECTORY=data DUMPFILE=expdp.dmp SCHEMAS=scott;

2)改变表的owner

impdp username/password DIRECTORY=data DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;

3)导入表空间

impdp username/password DIRECTORY=data DUMPFILE=tablespace.dmp TABLESPACES=example;

4)导入数据库

impdb username/password DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;

5)追加数据

impdp username/password DIRECTORY=data DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION

若表已存在,覆盖导入:table_exists_action=replace
导出与导入用户不同:remap_schema=导出用户:导入用户
导入时若为rac集群:cluster=N

linux定时备份脚本:

#!/bin/bash
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1;  export ORACLE_HOME
PATH=$ORACLE_HOME/bin:/usr/local/bin:/usr/ccs/bin:$PATH:/usr/sbin
export PATH
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/product/jlib ; export CLASSPATH
expdp username/password@orcl schemas=DAMA directory=EXP_EVERYDAY dumpfile=DAMA_$(date +%Y%m%d).dmp logfile=DAMA_$(date +%Y%m%d).log
cd /home/oracle/databak
find ./ -type f -mtime +3 -exec rm {} \;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值