美文网首页
oracle数据库迁移指定用户下所有的对象

oracle数据库迁移指定用户下所有的对象

作者: moutory | 来源:发表于2023-10-23 19:02 被阅读0次

前言

前阵子遇到一个任务,需要把数据库中某个用户下所有对象复制到一个新用户上面,和常规的需求有些不同的是这里并不需要复制表对象中的数据。写一篇文章记录一下这种场景的解决方案。

一、创建新用户

这一步主要是创建用户对象和赋权,为后面复制对象做准备

CREATE USER USER_CTEST IDENTIFIED BY USER_CTEST;
GRANT CONNECT, RESOURCE TO USER_CTEST;

二、创建导出目录

我们需要指定一下我们后面用于存放备份数据的文件路径,执行完成后我们可以在USER_DIRECTORIES视图中找到我们刚刚定义的目录。

create directory ctest_dir as '/home/oracle/oradata/ORCL'

三、导出旧用户对象

使用expdp命令,导出指定用户的所有对象数据。需要注意的是,下面这条命令是直接在数据库服务器的命令行窗口执行的。

expdp username/passwd DIRECTORY=CTEST_DIR DUMPFILE=userCtest.dmp SCHEMAS=USER_OLD CONTENT=METADATA_ONLY
  • DIRECTORY:这里需要和我们第二步定义的目录名称保持一致。
  • SCHEMAS:指定我们想要导出的schemas对象,也就是用户对象
  • dumpfile:自定义就行,这个文件就是临时用于存放具体数据的文件
  • content:metadata_only 表示只复制表结构,不复制表数据
    我们还可以通过下面这些参数去自定义的导出我们想要的数据
  • TABLES:指定要导出的表。
  • QUERY:指定要导出的数据的查询条件。

需要注意的是,如果希望连同数据一起复制,这里可以不写content参数。

四、导入到新用户对象中

使用impdp命令,将第三步生成的临时文件数据导入到我们新建的用户对象中。

impdp username/passwd DIRECTORY=CTEST_DIR DUMPFILE=userCtest.dmp REMAP_SCHEMA=USER_OLD:USER_CTEST

下面介绍一下使用到的参数含义

  • DIRECTORY:临时文件的存放路径,这里和第三步的参数保持一致就行
  • DUMPFILE:临时文件的文件名,这里也是和第三步的参数保持一致就行
  • REMAP_SCHEMA:临时文件要变更的对象,我们按照OLD_SCHEMA_NAME:NEW_SCHEMA_NAME这种格式去写就行

五、删除临时文件

第四步执行成功后,如果没有文件备份需要的话,我们就可以删除第三步生成的临时文件了。

相关文章

  • [杂七杂八的小问题]impdp外键没有导入的问题

    0. summary 1. 问题背景和初步分析 应用一套系统需要迁移,迁移的内容包含指定的用户下的所有对象,其中部...

  • 数据库迁移后的检验,2022-07-22

    (2022.07.22 Fri) 关系型数据库迁移后的检验 对象完整性检验 可检测是否所有的数据库对象都已迁移,包...

  • Oracle迁移记录

    Oracle迁移记录 背景说明 自建机房中的所有服务全部迁移至阿里云服务器,重中之重-Oracle数据库迁移,包括...

  • Oracle 导出

    查看Oracle脚本 导出用户下的所有表 导出指定表以XX前缀开头 导入

  • 数据库不同字符集迁移

    数据库不同字符集迁移 一.引言 ORACLE 数据库字符集,即Oracle全球化支持(Globalization ...

  • MYSQL实现Oracle的Start with…Connect

    因项目迁移,使用的数据库也需要从Oracle迁移到MySQL 其中有个功能使用到了Oracle的Start wit...

  • 2019-10-15

    背景介绍: 近期在做的项目数据要从Oracle数据库向MySQL数据库迁移,本文档整理了Oracle与MySQL环...

  • Oracle数据库对象

    数据库对象简介 Oracle 数据库对象又称模式对象。 数据库对象是逻辑结构的集合,最基本的数据库对象是表。 序列...

  • PL/SQL Developer导出导入表数据+填坑指南

    最近被分配一个迁移表的任务,数据库用的是 Oracle,作为新手的我折腾了几天,跌跌撞撞的踩了些坑(表迁移过程有数...

  • SQL-常用

    获取oracle数据库当前用户下所有表名和表名的注释 select a.TABLE_NAME,b.COMMENTS...

网友评论

      本文标题:oracle数据库迁移指定用户下所有的对象

      本文链接:https://www.haomeiwen.com/subject/czjjidtx.html