Oracle DMP备份文件使用数据泵expdp/impdp导出导入dmp文件

您所在的位置:网站首页 怎么导入dmp文件 Oracle DMP备份文件使用数据泵expdp/impdp导出导入dmp文件

Oracle DMP备份文件使用数据泵expdp/impdp导出导入dmp文件

2023-08-08 18:58| 来源: 网络整理| 查看: 265

Oracle DMP备份文件使用数据泵expdp/impdp导出导入dmp文件 1:expdp导出操作2:impdp导入操作3:impdp导入踩坑3.1:ORA-01653 错误解决方案3.2:ORA-39171: Job is experiencing a resumable wait3.3:oracle impdp时卡死Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX 4:Linux命令scp--远程拷贝文件scp介绍如何使用

1:expdp导出操作 0、数据库登陆 plsql 使用sys账号,as sysdba身份登录orcl实例; 1、查询有哪些操作目录 select * from dba_directories; 2、创建操作目录,可以使用该已创建好的目录或创建新目录(此次我们创建新目录) 2.1、在指定目录下创建dump_dir文件夹(数据泵导出存放的路径) 2.2、用系统管理员登录数据库,在SQL执行器中执行如下命令 create directory dump_dir as '/home/oracle/data/expdpfile'; 并查看是否创建成功(执行1) 2.3、检查该目录及其目录下文件是否为oracle用户及其用户组,如图所示

温馨提示:只要按照步骤进行操作,一般这一步都是没问题的(此处防止以root用户创建目录或上传dmp文件,导致后面无法进行导入) 在这里插入图片描述 在这里插入图片描述

若不是,为其修改所属用户及用户组 chown -R oracle:oinstall /home/oracle/data/expdpfile; 3、将该目录的使用权限赋给用户,执行如下命令(SQL执行器执行) 3.1、赋值给wind用户 grant read,write on directory dump_dir to wind; 4、导出数据(切换到数据泵存放的路径下,执行cmd命令行如下) 4.1、导出wind数据 expdp wind/[email protected]:1521/orcl directory=dump_dir file=COSPACE.dmp schemas=wind 4.2、指定某表导出数据 expdp wind/[email protected]:1521/orcl directory= dump_dir file=cbondpricesnet.dmp tables= wind.cbondpricesnet logfile=cbondpricesnet.log 2:impdp导入操作

结合导出步

0、数据库登陆 plsql 使用sys账号,as sysdba身份登录orcl实例; 1、查询有哪些操作目录 select * from dba_directories; 2、在被导入的数据库创建操作目录 2.1、在指定目录下创建dump_dir文件夹(将数据泵文件都放到此目录(e:\dump)下) 2.2、用系统管理员登录数据库,在SQL执行器中执行如下命令 create directory dump_dir as '/home/oracle/imp_dir'; 3、用户赋权(sql执行器中执行如下命令) 3.1、赋权给指定用户(例如:wind) grant connect,resource,dba to wind; 4、执行导入数据(切换到数据泵存放的路径下,执行cmd命令行如下) 4.1、普通执行命令 impdp wind/[email protected]:1521/orcl directory=dump_dir dumpfile=test.dmp 4.2、复杂执行 链接: https://blog.csdn.net/zhengwei125/article/details/53670656 remap_tablespace=WIND:WIND 原来表空间:新的表空间 remap_schema=WIND:WIND 原来的schema:现在的schema transform=segment_attributes:n 去掉表空间和存储子句,加上这个参数后,remap_tablespace参数就会失效,就会倒进用户默认的表空间 impdp wind/[email protected]:1521/orcl directory=dump_dir dumpfile=cbondprices.dmp remap_tablespace=WIND:WIND remap_schema=WIND:WIND table_exists_action=replace transform=segment_attributes:n logfile=cbondprices.log 3:impdp导入踩坑 3.1:ORA-01653 错误解决方案 ORA-01653 无法在表空间扩展的解决办法 -- 增加表空间大小或给表空间增加数据文件 当前系统的数据量越来越大的,昨天还运行正常的数据库,突然无法使用了。经过定位发现是"ORA-01653 " 即表空间满了,在这里简单记录下处理办法,长期来看oracle是顶不住了,需要尽快切到hadoop的HBase里存储数据 --查询表空间使用情况--- SELECT UPPER(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)", TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') "使用比", F.TOTAL_BYTES "空闲空间(M)", F.MAX_BYTES "最大块(M)" FROM (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES, ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES FROM SYS.DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) F, (SELECT DD.TABLESPACE_NAME, ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB FROM SYS.DBA_DATA_FILES DD GROUP BY DD.TABLESPACE_NAME) D WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME ORDER BY 4 DESC; --查看表空间是否具有自动扩展的能力 SELECT T.TABLESPACE_NAME,D.FILE_NAME, D.AUTOEXTENSIBLE,D.BYTES,D.MAXBYTES,D.STATUS FROM DBA_TABLESPACES T,DBA_DATA_FILES D WHERE T.TABLESPACE_NAME =D.TABLESPACE_NAME ORDER BY TABLESPACE_NAME,FILE_NAME; --修改表空间文件扩展方式: ALTER DATABASE DATAFILE '/u01/Oracle/oradata/orcl/ccen01.dbf' AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED 增加表空间大小的四种方法 Meathod1:给表空间增加数据文件 ALTER TABLESPACE app_data ADD DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF' SIZE 50M; Meathod2:新增数据文件,并且允许数据文件自动增长 ALTER TABLESPACE app_data ADD DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP04.DBF' SIZE 50M AUTOEXTEND ON NEXT 5M MAXSIZE 100M; Meathod3:允许已存在的数据文件自动增长 ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF' AUTOEXTEND ON NEXT 5M MAXSIZE 100M; Meathod4:手工改变已存在数据文件的大小 ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP02.DBF' RESIZE 100M; 参考: http://www.linuxidc.com/Linux/2011-08/39834.htm http://www.2cto.com/database/201109/103101.html 3.2:ORA-39171: Job is experiencing a resumable wait select * from dba_datapump_jobs; SELECT owner_name, job_name, rtrim(operation) "OPERATION", rtrim(job_mode) "JOB_MODE", state, attached_sessions FROM dba_datapump_jobs WHERE job_name NOT LIKE 'BIN$%' ORDER BY 1,2;

运行结果: 在这里插入图片描述 在这里插入图片描述 正在运行的job无法删掉,我的解决办法是重启数据库,重新导入,可能不是最好的方式,希望各位朋友又能解决的请留言 参考链接:https://blog.csdn.net/giveupyou/article/details/84690117

3.3:oracle impdp时卡死Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX 今天在用impdp导入时,Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX卡在建索引的过程一直不动,也不报错,重试了好几遍还是这样。一般看日志没有报错请耐心等待,纸质成功或报错。 后来恍然大悟,是不是DB出什么问题了,查看alert日志,发现这个错误: statement in resumable session 'SYSTEM.SYS_IMPORT_SCHEMA_03.1' was timed out statement in resumable session 'SYSTEM.SYS_IMPORT_SCHEMA_03.1' was suspended due to ORA-01659: unable to allocate MINEXTENTS beyond 2 in tablespace TBS_FALABELLA 原来是空间不足,加大空间后,重试,OK! 快速找到oracle的alert日志方法: 1、进入到sqlplus接口 $sqlplus '/as sysdba' 注意:使用角色sysdba 2、查询alter日志目录 show parameter dump

在这里插入图片描述 在这里插入图片描述

4:Linux命令scp–远程拷贝文件 scp介绍 scp就是secure copy,一个在linux下用来进行远程拷贝文件的命令。 有时我们需要获得远程服务器上的某个文件,该服务器既没有配置ftp服务器,也没有做共享,无法通过常规途径获得文件时,只需要通过简单的scp命令便可达到目的。 如何使用 // 假设远程服务器IP地址为 192.168.1.100 1.从服务器复制文件到本地: scp [email protected]:/data/test.txt /home/myfile/ 补充:多文件拷贝 scp [email protected]:/data/\{test1.txt,test2.cpp,test3.bin,test.*\} /home/myfile/ [email protected] root是目标服务器(有你需要拷贝文件的服务器)的用户名,192.168.1.100是IP地址,后面紧跟的 “:” 不要忘记,/data/test.txt(多文件还有test1.txt,test2.cpp,test3.bin,test.a,test.c等) 是目标服务器中你要拷贝文件的地址,接一个空格,后面的 /home/myfile/ 是本地接收文件的地址。 2.从服务器复制文件夹到本地: scp -r [email protected]:/data/ /home/myfile/ 只需在前面加 -r 即可,就可以拷贝整个文件夹。 3.从本地复制文件到服务器: scp /home/myfile/test.txt [email protected]:/data/ 补充:多文件拷贝 scp /home/myfile/test1.txt test2.cpp test3.bin test.* [email protected]:/data/ 4.从本地复制文件夹到服务器: scp -r /home/myfile/ [email protected]:/data/


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3