Oracle导出/导入数据库的三种模式

导出

  模式一:全量导出(慎用)

    exp 用户名/密码@数据库实例 owner=用户名 file=文件存储路径 log=日志存储路径 full=y

    栗子:exp Mark/123456@151.2.*.156:1521/markdb owner=Mark file=d:/export/mark_db.emp log=d:/export/mark_db.log full=y owner=ds_planweb

  模式二:导出指定用户(推荐)

    exp 用户名/密码@数据库实例 owner=用户名 file=文件存储路径 log=日志存储路径 owner=指定用户

    栗子:exp Mark/123456@151.2.*.156:1521/markdb owner=Mark file=d:/export/mark_db.emp log=d:/export/mark_db.log owner=Mark

  模式三:导出指定表

    exp 用户名/密码@数据库实例 owner=用户名 file=文件存储路径 log=日志存储路径 owner=指定用户 tables=(指定表)

    栗子:exp Mark/123456@151.2.*.156:1521/markdb owner=Mark file=d:/export/mark_db.emp log=d:/export/mark_db.log owner=Mark tables=(mark_user)

导入

  模式一:全量导入(慎用)

    imp 用户名/密码@数据库实例 file=文件存储路径 full=y ignore=y

    栗子:imp Mark/123456@151.2.*.156:1521/markdb file=d:/export/mark_db.emp full=y ignore=y

    注:ignore:是否忽略创建错误

  模式二:导入指定用户(推荐)

    imp 用户名/密码@数据库实例 file=文件存储路径 fromuser=资源用户名 touser=目标用户名 ignore=y

    栗子:imp Mark/123456@151.2.*.156:1521/markdb file=d:/export/mark_db.emp fromuser=Mark touser=Mark_target ignore=y

    注:这样用户SONIC的所有对象被导入到文件中。必须指定FROMUSER、TOUSER参数,这样才能导入数据。

  模式三:导入指定表

    imp 用户名/密码@数据库实例 file=文件存储路径 owner=指定用户 tables=(指定表)

    栗子:imp Mark/123456@151.2.*.156:1521/markdb file=d:/export/mark_db.emp owner=Mark tables=(mark_user)

 创建用于接收导入数据库的用户

  创建用户

  1. 通过指令: create user 用户名 identified by 口令[即密码];
  2. 登录system账号,直接创建用户

  删除用户

    drop user 用户名 cascade;

    注:若用户拥有对象,则不能直接删除,否则将返回一个错误值。指定关键字cascade,可删除用户所有的对象,然后再删除用户。

  用户授权

  1. 授权:grant connect, resource to 用户名;
  2. 撤销:revoke connect, resource from 用户名;

  注:oracle为兼容以前版本,提供三种标准角色(role):connect/resource和dba.

  经过以上操作,该用户则可以作为imp指令 touser的值来接收导入数据库了。

——————----过渡线-----——————

以上用户没有操作表的权限,赋权脚本如下:

GRANT CREATE ANY TABLE TO DS_PORTAL_SH_DEV_GZW;
GRANT SELECT ANY TABLE TO DS_PORTAL_SH_DEV_GZW;
GRANT COMMENT ANY TABLE TO DS_PORTAL_SH_DEV_GZW;
GRANT LOCK ANY TABLE TO DS_PORTAL_SH_DEV_GZW;
GRANT SELECT ANY DICTIONARY TO DS_PORTAL_SH_DEV_GZW;

 

注:如果dmp文件由dba用户导出,而导入的用户不是dba,那么则会报以下的错误:(图片来自参考博客)

解决方案:

  1. 使用DBA账号进行导入
  2. 将dba权限赋值给需要导入的用户

赋权语句:

  grant dba to Mark

参考:

Oracle 导出、导入某用户所有数据(包括表、视图、存储过程...)

posted @   lclc  阅读(1920)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示