• 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 导出、导入某用户所有数据(包括表、视图、存储过程...)

  • 相关阅读:
    Servlet_note
    J2SE学习历程
    ASP.NET Core搭建多层网站架构【0-前言】
    使用oh-my-posh美化powershell
    Linux使用整理
    Ubuntu18.04国内源安装MySQL8.0
    Visual Studio Code 个人配置备份
    ASP.NET Core搭建多层网站架构【15-扩展之使用Obfuscar混淆加密保护代码】
    ASP.NET Core搭建多层网站架构【14-扩展之部署到IIS】
    ASP.NET Core搭建多层网站架构【13-扩展之支持全球化和本地化多语言】
  • 原文地址:https://www.cnblogs.com/meng-ma-blogs/p/11351614.html
Copyright © 2020-2023  润新知