ITPub博客

首页 > 数据库 > Oracle > 数据库导入导出

数据库导入导出

原创 Oracle 作者:九十一万里 时间:2017-08-03 16:36:24 0 删除 编辑

使用数据泵做导入导出时遇到的问题整理笔记

语法:
create or replace directory <路径名称> as ‘备份路径’

 

create or replace directory file_path as 'C:\软件\数据库文件'

--赋权限给smsdb用户:

grant read,write on directory file_path to smsdb;

 

1.3:备份数据库(在CMD中执行)

语法:expdp用户名/密码@数据库连接标示符 directory=路径名称 dumpfile=备份的文件名称 logfile=输出的日志名称 schemas=需要备份的数据库用户名

 

expdp smsdb/123456@oracle11 directory=file_path dumpfile=new.dmp logfile=new.log schemas=smsdb

问题:

ORA-39151: Table "SMSDB"."T_PROVIDER_MOBILE" exists. All dependent metadata and data will be skipped due to table_exists_action of skip

分析:

默认值是skip,但若设置了CONTENT=DATA_ONLY,则默认值是APPEND,不是SKIP。

TABLE_EXISTS_ACTION=[SKIP | APPEND | TRUNCATE | REPLACE]

SKIP:跳过这张表,继续下一个对象。如果CONTENT设置了DATA_ONLY参数,则不能使用SKIP。

APPEND:会加载数据至对象,但不会影响已存在的行。

TRUNCATE:删除已存在的行,然后加载所有的数据。

REPLACE:drop已存在的表,然后create并加载数据。如果CONTENT设置了DATA_ONLY,则不能使用REPLACE

解决方法:

在imp后面加上 table_exists_action=truncate

 

--导出表

expdp smsdb/123456@oracle11 tables=t_smsgateway_mt_his directory=file_path dumpfile=2017.5.12.dmp

 

4.5数据库导入

语法:Impdp 用户名/密码@数据库连接标示符 directory=路径名称 dumpfile=备份的文件名称 logfile=输出的日志名称 schemas=需要备份的数据库用户名

 

创建路径:(删除路径:DROP DIRECTORY  directory_NAME)

create directory file_path as 'C:\软件\数据库文件';

赋权限给smsdb用户:

grant read,write on directory file_path to smsdb;

 

数据导入(cmd命令下):

impdp smsdb/123456@oracle11 directory=file_path dumpfile=new.dmp logfile=new.log schemas=smsdb ignore=y

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31477110/viewspace-2143040/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 恢复还原测试
下一篇: em乱码问题
请登录后发表评论 登录
全部评论
一个oracle没有入门的dba

注册时间:2017-07-20

  • 博文量
    21
  • 访问量
    93447