Oracle数据库表备份导入导出dmp的方式及踩坑记录

目录
  • 一、备份导出前的注意事项
  • 二、导出的两种方式
    • 2.1.使用exp导出
    • 2.2.使用数据泵expdp导出
  • 三、在备份时遇到的坑
  • 附:Oracle导出指定用户下dmp文件
  • 总结

一、备份导出前的注意事项

1.导出导出的时候需要注意数据库的字符集是否一致,使用工具导入的话也需要确认工具的字符集

   --查询服务端的编码命令
SELECT * FROM Nls_Database_Parameters where parameter = 'NLS_CHARACTERSET';
   --查询客户端软件的编码命令
SELECT Userenv('language') FROM dual where parameter = 'NLS_CHARACTERSET';

2.导出时要确认导出文件的目录,使用oracle自带的逻辑目录或者自己创建逻辑目录,需要用到目录名称和目录路径,在导出时只需指定目录名称,导出的文件存放在目录路径下

   --2.1.查看oracle已有的目录,
select * from dba_directories;
   --2.2.自己创建逻辑目录
create directory 目录名称 as ‘目录路径';
   --2.3.如果是自己创建的目录,需要给用户添加读写此文件夹的权限
grant read,write on directory dir to scott;

3.需要确认要导出的目录中空间是否够用,空间不足时导入会停止

二、导出的两种方式

2.1.使用exp导出

--2.1.1.导出命令
exp 用户名/密码@数据库IP:端口号/orcl file=导出的目标文件名称 tables=要导出的表名(多个表时用逗号隔开)
exp TJ_DATA/a123456@10.10.1.54:1521/orcl file=export.dmp tables=USER_INFO,POLICY_INFO;

--2.1.2.导入命令
imp 用户名/密码@数据库IP:端口号/orcl file=导出的目标文件名称 tables=要导出的表名(多个表时用逗号隔开)
imp TJ_DATA/a123456@10.10.1.54:1521/orcl file=export.dmp tables=USER_INFO,POLICY_INFO;

2.2.使用数据泵expdp导出

--2.2.1.导出命令
expdp 用户名/密码@数据库IP:端口号/orcl file=导出的目标文件名称 tables=要导出的表名(多个表时用逗号隔开)
expdp TJ_DATA/a123456@10.10.1.54:1521/orcl file=export.dmp tables=USER_INFO,POLICY_INFO;

--2.2.2.导入命令
impdp 用户名/密码@数据库IP:端口号/orcl file=导出的目标文件名称 tables=要导出的表名(多个表时用逗号隔开)
impdp TJ_DATA/a123456@10.10.1.54:1521/orcl file=export.dmp tables=USER_INFO,POLICY_INFO

三、在备份时遇到的坑

--3.1. 要备份的表如果是分区表,不能使用exp导出命令.只能使用数据泵导出方式.

--3.2. dmp文件导入时,数据库中不能存在同名的表

--3.3. 导入时,数据库表的表空间要一致,在命令中可以修改表空间,在导入导入命令后面加上 ‘remap_tablespace=原表空间名:新表空间名’
impdp TJ_DATA/a123456@10.10.1.54:1521/orcl file=export.dmp tables=USER_INFO remap_tablespace=OLD_SPACE:NEW_SPACE

– 3.4. 导出时如果表空间不足,需要为当前表空间新增数据文件来扩容,数据文件可以设置初始大小,并设置自增,也可以限定最大值
ALTER TABLESPACE 表空间名 ADD DATAFILE ‘数据文件路径及名称’ size 文件初始大小 autoextend on (设置是否开启自增) MAXSIZE 文件最大值;

ALTER TABLESPACE TJ_DATA ADD DATAFILE '/oracle/oradata/ds.dbf' size 1024M autoextend on MAXSIZE 20480M;

--3.5.导入导出有三种类型,分别是表方式(T方式),用户方式(U方式),全库方式(Full方式),这里只记录了表导出方式

附:Oracle导出指定用户下dmp文件

1.导出指定用户下的全部表

exp DEMO/DEMO@ORCL file=D:\dmp\DEMO_20220121.dmp owner=DEMO buffer=8192000 log=D:\dmp\DEMO_20220121_daochu.log

上述内容代表将用户DEMO的全部表导出为D盘dmp文件夹下的DEMO_20220121.dmp文件,导出日志为相同目录下的DEMO_20220121_daochu.log

2.导出指定表名的表

exp DEMO/DEMO@ORCL file=D:\dmp\DEMO_20220121_ep.dmp tables=('EP_SYS_CQ_COND','EP_SYS_CONSIGN_REC','EP_SYS_CQ_COND_DEF') buffer=8192000 log=D:\dmp\DEMO_20220121_ep_daochu.log

表示导出指定的三个表('EP_SYS_CQ_COND','EP_SYS_CONSIGN_REC','EP_SYS_CQ_COND_DEF')

3.导出以**开头的表

exp DEMO/DEMO@ORCL_MDPC file=D:\dmp\DEMO_20220307_demo.dmp tables=(DEMO.DEMO_%) buffer=8192000 log=D:\dmp\DEMO_20220307_demo_daochu.log

表示导出DEMO用户下DEMO_开头的全部表

总结

到此这篇关于Oracle数据库表备份导入导出dmp的文章就介绍到这了,更多相关Oracle备份导入导出dmp内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Linux下Oracle如何导入导出dmp文件详解

    前言 对于本机安装了oracle 客户端,下述命令都可以在 dos 执行,当然 dmp 文件导出在本地. 但在实际研发时,没人愿意在本机上安装庞大的 oracle 软件,这时你需要使用 Xshell/puTTY.. 远程工具连接到 Linux 进行操作,进行 Linux 上 dmp 文件的导入导出. 正文 a. 将用户 system 用户表导出到指定路径 D 盘 exp system/password@SID file=d:/daochu.dmp full=y b. 将用户 system 与 s

  • Oracle数据库表备份导入导出dmp的方式及踩坑记录

    目录 一.备份导出前的注意事项 二.导出的两种方式 2.1.使用exp导出 2.2.使用数据泵expdp导出 三.在备份时遇到的坑 附:Oracle导出指定用户下dmp文件 总结 一.备份导出前的注意事项 1.导出导出的时候需要注意数据库的字符集是否一致,使用工具导入的话也需要确认工具的字符集 --查询服务端的编码命令 SELECT * FROM Nls_Database_Parameters where parameter = 'NLS_CHARACTERSET'; --查询客户端软件的编码命

  • 有关Oracle数据库的备份情况

    正在看的ORACLE教程是:有关Oracle数据库的备份情况. 一.意义:当我们使用一个数据库时,总希望数据库的内容是可靠的.正确的,但由于计算机系统的故障(硬件故障.网络故障.进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失.因此当发生上述故障后,希望能重新建立一个完整的数据库,该处理称为数据库恢复.恢复子系统是数据库管理系统的一个重要组成部分.恢复处理随所发生的故障类型所影响的结构而变化.二.备份的方法ORACLE数据库有三种标

  • Oracle数据库的备份及恢复策略研究

    正在看的ORACLE教程是:Oracle数据库的备份及恢复策略研究. 摘 要 恢复丢失的数据库文件在很大程度上取决于所采用的备份策略.本文从恢复的灵活性出发,对Oracle8数据库的备份及恢复策略进行了探讨,并给出了Windows 2000环境下使备份过程自动化的脚本文件的项目开发实例. 关键词 Oracle 数据库 备份 恢复 引言 随着信息系统在各种商务活动中重要性的不断增强,维护系统数据的可用性已成为当前一个十分重要的课题.为了有效地保持健康的信息系统,必须采取一定的措施防止在由介质.操作

  • oracle数据与文本导入导出源码示例

    oracle提供了sqlldr的工具,有时需要讲数据导入到文本,oracle的spool可以轻松实现. 方便的实现oracle导出数据到txt.txt导入数据到oracle. 一.导出数据到txt 用all_objects表做测试 SQL> desc all_objects; Name Null? Type ----------------------------------------- -------- ---------------------------- OWNER NOT NULL

  • Oracle数据库逻辑备份的SH文件

    正在看的ORACLE教程是:Oracle数据库逻辑备份的SH文件.完全备份的SH文件:exp_comp.sh rq=` date +"%m%d" ` su - oracle -c "exp system/manager full=y inctype=complete file=/oracle/export/db_comp$rq.dmp" 累计备份的SH文件:exp_cumu.sh rq=` date +"%m%d" ` su - oracle -

  • Linux下mysql数据库的创建导入导出 及一些基本指令

    首先linux 下查看mysql相关目录 查看 mysql 的安装路径 执行查询 SQL mysql>show variables like '%dir%'; datadir 就是数据路径 确定了运行路径,执行导入.导出mysql数据库命令 一.导出数据库用mysqldump命令 (注意:先cd到mysql的运行路径下,再执行一下命令): 1.导出数据和表结构: mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql 注意 我的服务器配置权限特殊 因此需要用 muysqldu

  • Oracle数据库表名支持的最大长度是多少

    本文介绍Oralce数据库中,表名可以使用的最大长度.这个长度也是Oracle标识符的最大长度,为30个字符. 小编今天在建一个Oracle数据库表时,提示如下表名长度超过了最大值了.错误如下: 复制代码 代码如下: 错误报告: SQL 错误: ORA-00972: 标识符过长 00972. 00000 -  "identifier is too long" *Cause:    An identifier with more than 30 characters was specif

  • 如何确定Oracle数据库表重复的记录

    正在看的ORACLE教程是:如何确定Oracle数据库表重复的记录. 作为一个Oracle数据库开发者或者DBA,在实际工作中经常会遇到这样的问题:试图对库表中的某一列或几列创建唯一索引时,系统提示ORA-01452:不能创建唯一索引,发现重复记录. 下面我们以表code_ref为例来讨论这个问题及其解决办法. ERROR位于第1行: ORA-01452: 无法 CREATE UNIQUE INDEX:找到重复的关键字 Oracle系统提示不能对表code_ref创建一个唯一索引,因为系统发现表

  • Oracle数据库表中字段顺序的修改方法

    前言 前段时间,有人问我, 有一个关于Oracle中表字段顺序调整的问题.问题就是当设计好表结构之后,后期如果需要往表中增加字段,默认会把该字段放到表的最后,并且字段特别多而我们又想把有关联性的字段放在一起,这时就要修改字段顺序.在修改顺序之前,我们先来看看Oracle数据库表中如何增加字段. 新增字段: 添加字段的语法:alter table tablename add (column datatype [default value][null/not null],-.); 实例 创建表结构:

  • 如何将postgresql数据库表内数据导出为excel格式(推荐)

    在上篇文章给大家介绍了如何将postgresql数据库表内数据导出为excel格式(推荐) 感兴趣的朋友点击查看. 本文主要用于介绍如何使用copy或者\copy命令将postgresql数据库内表的数据导出为excel格式,方便用户查看编辑. copy命令同\copy命令语法上相同,区别在于copy必须使用能够超级用户使用,copy - to file 中的文件都是数据库服务器所在的服务器上的文件,而\copy 一般用户即可执行且\copy 保存或者读取的文件是在客户端所在的服务器.本文主要以

随机推荐