Oracle 数据泵方式导出(expdp)导入(impdp)数据,更新数据库

数据泵方式导入(impdp)数据,更新数据库

注1:首先要确定你导出的数据库是用数据泵的方式导出(expdp)的

注2:我是在有安装Oracle数据库的服务器上操作的

exp 和 imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。

expdp 和 impdp 是服务端的工具程序,只能在ORACLE服务端使用,不能在客户端使用。

imp 只适用于 exp 导出的文件,不适用于expdp 导出文件;

impdp 只适用于expdp导出的文件,而不适用于exp导出文件

1. 查看当前用户所在表空间

  1. 登入你要删除的库的用户
  2. 查看当前用户所在表空间

-- 如何查询当前用户的表空间名称?

select default_tablespace from dba_users where username='AUTH_NEW'

2. 管理员的数据库账号密码登录

  1. 用plsql工具切换管理员账号
  2. 也可以 直接进入黑窗口 cmd --> sqlplus / as sysdba

/*以管理员身份登录*/

sqlplus / as sysdba

3. 删除表空间、用户

  1. 先删除表空间(就是步骤1查出的表空间)

drop tablespace AUTH including contents and datafiles;

  1. 再删除用户

drop user AUTH_NEW cascade;

4.创建表空间、用户、授权

注1:下面这些命令建议都在黑窗口下面敲,在plsql登入的管理员账号下我昨天试了偶尔不太顺利

注2:创建一个用户名/密码和上面删除的一样的就好,这样就不用去改项目里面配置的连接数据库用户密码了;

      1.管理员账号登录

           cmd ----> sqlplus / as sysdba

      2. 创建表空间

create tablespace AUTH datafile 'D:\lmgd\tablespace\AUTH.dbf' size 500M autoextend on next 200M;

create tablespace AUTH -- 表空间名

datafile 'E:\wonders\lmgd\tablespace\AUTH.dbf' --表空间放的路径 路径+文件名

size 500M autoextend on next 200M --表空间的大小,

     3. 创建用户

 create user AUTH_NEW identified by AUTH_NEW default tablespace AUTH;

     4.分配权限

grant dba to AUTH_NEW; -- 用这个最高权限

注:分配最高权限是由于,等会导入数据库的时候怕没有权限,不能导入;

导入(impdp)数据库

5. 建立导入路径(把导出的eamdb.dmp放在此路径下),并授权。

create directory original as 'D:\lmgd\original';

grant read,write on directory original to AUTH_NEW;

  1. 然后把你按照你创建的目录手动创建一个文件夹;我的就是在 D盘lmm目录下创建一个 original文件夹

             D:\lmgd\original

    2. 然后再手动把你要导入的数据库 .dmp文件放到、复制到 original文件夹里面即可

6.导入数据库

注:现在重新打开一个黑窗口,不用以 sqlplus管理员的身份登入啦!不然会报错

cmd --> 然后再敲下面的命令

-- 正确的命令

impdp AUTH_NEW/AUTH_NEW@127.0.0.1:1521/ORCLPDB REMAP_SCHEMA = dbuser:AUTH_NEW table_exists_action = replace directory=original dumpfile=xxxx.dmp

注意:这个 127.0.0.1换成你自己的服务器地址就好,然后dmp文件换成你自己的就好

-- 失败的命令

-- 这个错的 指定文件夹的名字 而不是路径

impdp AUTH_NEW/AUTH_NEW@127.0.0.1:1521/ORCLPDB REMAP_SCHEMA = dbuser:AUTH_NEW table_exists_action = replace directory=D:\lmgd\original dumpfile=xxxx.dmp

报错整理

1.步骤6直接是以管理员身份登录 sqlplus,再敲导入数据库命令步骤的

报错: SP2-0734:未知的命令开头“IMPDP”

解决:重新打开一个黑窗口(cmd)敲导入数据库命令即可

2.步骤6敲导入数据库时报错

报错:

ORA-39002: 操作无效

ORA-39070: 无法打开日志文件。

ORA-29283: 文件操作无效

原因:

  1. 没有给用户授权,步骤5有写需要给用户授创建的文件夹的读写权限;
  2. 检查你的导入命令是否有问题

导出(expdp)数据库

注:记得 cmd--->然后管理员账号登入 sqlplus

/*以管理员身份登录*/

sqlplus / as sysdba

以下简单介绍schema的导出

以schema方式导出生产库用户下所有对象,并导入测试库。

注:eamdb为生产库,eamprd为生产库用户,密码为eamprd

eamuat为测试库,eamprduat为测试库用户,密码为eamprduat

一、生产库的导出(以sqlplus命令行的方式)

 1.以sys或者system用户身份登录生产数据库。

 2.创建schema导出路径(DUMP_DIR名称可替换),并在dba_directories中查看

create directory DUMP_DIR as ‘/xxx/xxx’;

select * from dba_directories;

 3.把导出路径与导出权限授权给eamprd,如果用system等高级帐号导出,则不用。

grant read,write on directory DUMP_DIR to eamprd;

grant exp_full_database to eamprd;

 4.退出sqlplus,在oracle系统用户下运行,导出对应的SCHEMA,推荐第二种。

expdp eamprd/eamprd@eamdb DIRECTORY=DUMP_DIR DUMPFILE=eamdb.dmp

expdp system/xxxx@eamdb directory=dump_dir dumpfile=eamdb.dmp schemas=eamprd

    导出重点参数:

    版本:高往低需加version=xx.x  导出某些张表tables=xxxx  content=metadata_only(只要结构)   content=data_only(只要数据)

 5.把eamdb.dmp拷贝到测试库。

导出直接复制这篇文章的然后导入数据库也有参考这篇COOL:

oracle数据泵导入导出数据 - 悟思 - 博客园

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle数据库提供了expdpimpdp命令用于备份和恢复数据库。这两个命令的使用方式如下: 1. expdp命令 expdp命令用于备份Oracle数据库,它能够将某个schema或整个数据库导出到一个二进制文件中。具体命令格式如下: ``` expdp username/password@connect_string DIRECTORY=directory_name DUMPFILE=dumpfile_name.dmp SCHEMAS=schema_name ``` 其中: - `username/password@connect_string`:指定连接Oracle数据库的用户名、密码和连接字符串。 - `DIRECTORY=directory_name`:指定备份文件的目录。 - `DUMPFILE=dumpfile_name.dmp`:指定备份文件的名称。 - `SCHEMAS=schema_name`:指定要备份的schema名称,多个schema可以用逗号分隔。 执行命令后,Oracle数据库会将指定的schema或整个数据库导出到一个二进制文件中。 2. impdp命令 impdp命令用于恢复Oracle数据库,它能够将之前导出的二进制文件导入数据库中。具体命令格式如下: ``` impdp username/password@connect_string DIRECTORY=directory_name DUMPFILE=dumpfile_name.dmp SCHEMAS=schema_name ``` 其中: - `username/password@connect_string`:指定连接Oracle数据库的用户名、密码和连接字符串。 - `DIRECTORY=directory_name`:指定备份文件所在的目录。 - `DUMPFILE=dumpfile_name.dmp`:指定备份文件的名称。 - `SCHEMAS=schema_name`:指定要恢复的schema名称,多个schema可以用逗号分隔。 执行命令后,Oracle数据库会将指定的schema或整个数据库从备份文件中恢复出来。 需要注意的是,expdpimpdp命令需要在Oracle数据库服务器上执行,而不是在客户端。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值