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)