expdp(导出数据)
基本语法:expdp "'/ as sysdba'" DIRECTORY=EXPDP SCHEMAS=用户名 DUMPFILE=my20240528%U.DMP CLUSTER=NO LOGFILE=my_20240528EXPDP.LOG

详细解释:

  • expdp: Oracle数据泵导出工具,用于导出数据库对象和数据。
  • "'/ as sysdba'": 使用sysdba权限连接到数据库。
  • DIRECTORY=EXPDP: 指定包含转储文件和日志文件的目录对象名称。确保此目录对象已经在数据库中定义,并且指向一个操作系统上可写的目录。
  • SCHEMAS=用户名: 指定要导出的模式(schema)名称。将用户名替换为实际的用户名。
  • DUMPFILE=my20240528%U.DMP: 定义转储文件的命名模板。%U是一个占位符,它会在需要创建多个转储文件时被替换为唯一标识符。
  • CLUSTER=NO: 指定不进行集群环境中的并行导出。如果您的数据库环境是RAC(Real Application Clusters)集群,并且您希望利用并行处理来提高性能,可以将其设置为YES
  • LOGFILE=my_20240528EXPDP.LOG: 指定记录导出操作详细信息的日志文件名。

 compression=all  启用所有可用的压缩功能

EXCLUDE=STATISTICS  排除统计信息

FULL=YES:指定全库导出

 

示例1,linux下:

--导出用户下指定的表数据。
expdp "'/ as sysdba'" DIRECTORY=EXPDP TABLES=usre1.table1,usre2.tablename1 DUMPFILE=my_20240528%U.DMP CLUSTER=NO LOGFILE=my_20240528EXPDP.LOG

 

示例2:

--命令行 执行导出脚本,指定4个线程并行,指定兼容目标库版本。指定多张表。

expdp system/woDeMiMa@192.168.1.31/orcl directory=expdp_dir version=11.2.0.4.0 dumpfile=log%U.dmp logfile=expdp.log parallel=4 tables=(a.tttt,a.tccc,b.taaa,b.tts)

 

示例3

--执行导入。排除索引、统计信息和约束加快导入。

impdp myuser11/pwd22222@192.168.11.61/sssst directory=expdp_dir dumpfile=log%U.dmp logfile=expdp.log parallel=4 exclude=index,constraint,statistics tables=(user1.table2)

 

示例4

旧版exp语句,在windows系统cmd下可执行,导出。

exp system/tta222@192.168.1.11/mtttss file=c:\log\log1.dmp tables=(usera.tablea,userb.tablec)

 

完整示例1,在linux下导出

ps -ef |grep pmon   --查找关健字pmon进程
su - oracle             --切换到oracle用户
export ORACLE_SID=orcl3        --设置当前环境默认查看实例
sqlplus / as sysdba        --以管理员登陆

--SQL
select * from dba_directories;    --查看变量值

--创建expdp文件夹变量
CREATE DIRECTORY EXPDP AS '/rman/expdp';

--授权
grant read,write on directory EXPDP to system;

--全库导入。指定并行线程4,其中FULL=YES:是指定全库导出。不指定兼容数据库版本
expdp "'/ as sysdba'" DIRECTORY=EXPDP DUMPFILE=ris20241209exp%U.DMP  parallel=4 LOGFILE=ris_expdp_20241209.LOG FULL=YES

--监控进度
SELECT job_name, operation, state, degree FROM   dba_datapump_jobs;

--开始导入 
--创建导入文件夹变量
CREATE DIRECTORY IMPDP AS '/home/oracle/IMPDP';

--授权
grant read,write on directory IMPDP to system;

--执行导入,全库导入。导入前需先检查表空间是否存在,不存在的预先建好。
impdp "'/ as sysdba'" DIRECTORY=IMPDP DUMPFILE=ris20241209exp%U.DMP  parallel=4 FULL=YES LOGFILE=ris_impdp_20241209.LOG

--监控进度,使用 DBA_DATAPUMP_JOBS 视图
SELECT job_name, operation, state, degree FROM dba_datapump_jobs; 

完整示例2,在windows下

--打开命令行
cmd

--连接数据库内执行
sqlplus system/mimamima

--创建expdp文件夹
create directory expdp_dir as 'G:\log\';

--删除,方便重建。若已经存在需修改,可先删除再建。若已存在且不用修改则忽略。
DROP DIRECTORY expdp_dir;

--在SQL下查询创建状态
select * from dba_directories;

--授权
grant read,write on directory expdp_dir to system;

#命令行 执行导出脚本4个并行,指定兼容目标库版本。导出一张表。
expdp system/mamawoma@192.168.1.13/orcl3 directory=expdp_dir version=11.2.0.4.0 dumpfile=file%U.dmp logfile=expdp.log parallel=4 tables=(user1.table1) 


目标库windows下导入。
准备工作,有DBA权限的帐号要提前准备。

--打开CMD
cmd

--连接数据库
sqlplus / as sysdba

--创建导入文件夹路径
create directory expdp_dir as 'D:\log';

--查询导入文件夹路径
select * from dba_directories;

--删除,方便重建
DROP DIRECTORY expdp_dir;

--授权
grant read,write on directory expdp_dir to xxzxdba;

--退出到命令行
exit

--执行导入,第一批,最大的一张表。并行四。排除索引、统计信息和约束
impdp  dbauser1/a1bttttt@192.168.1.6/orcl directory=expdp_dir dumpfile=log%U.dmp logfile=expdp.log parallel=4 exclude=index,constraint,statistics tables=(user1.table1)

 

posted on 2024-05-28 09:11  yi-sheng  阅读(801)  评论(0编辑  收藏  举报