[oracle]拆分多用户的公共表空间

简介: [oracle]拆分多用户的公共表空间

前言

开发环境之前多个用户共用一个表空间,后期维护比较麻烦,因此需要将这些用户拆出来,一个用户一个表空间,以后清理这些用户也更方便。

大致思路:假设A、B、C用户共用一个表空间,将A、B、C的用户数据使用expdp或其他工具备份出来,分别创建一个新的用户和表空间,将数据使用impdp还原到新用户。基本等于复制了一个新用户。

  • 数据库版本:oracle 19c

步骤

  1. 备份旧用户数据。账户信息:ZHANGSAN/ZHANGSAN@192.168.0.10:1521/orcl。备份到DATA_PUMP_DIR目录,这个是Oracle安装好之后就有的目录。指定备份文件和备份日志。
expdp ZHANGSAN/ZHANGSAN@192.168.0.10:1521/orcl \
  directory=DATA_PUMP_DIR dumpfile=ZHANGSAN_20220610_expdp.dmp \
  logfile=ZHANGSAN_20220610_expdp.log
  1. 新建表空间。起始256MB,每次能扩增256MB,最大2048MB。
create tablespace TS_ZHANGSAN0610 logging datafile 'TS_ZHANGSAN0610.dbf' size 256m autoextend on next 256m maxsize 2048m extent management local;
  1. 创建新用户并授权
create user ZHANGSAN0610 identified by ZHANGSAN0610 default tablespace TS_ZHANGSAN0610;
grant alter session, create any synonym, create any trigger, create job, create materialized view, create procedure, create public synonym, create view, create table to ZHANGSAN0610;
grant connect, create sequence, unlimited tablespace to ZHANGSAN0610;
grant read, write on directory DATA_PUMP_DIR to ZHANGSAN0610;
grant connect, resource, dba to ZHANGSAN0610;
  1. 还原数据。使用新用户导入数据,使用remap_schema将旧帐户数据映射到新账户的schema,使用remap_tablespace将旧帐户的表空间映射到新账户的表空间。
impdp ZHANGSAN0610/ZHANGSAN0610@192.168.90.213:1521/orcl \
  directory=DATA_PUMP_DIR dumpfile=ZHANGSAN_20220610_expdp.dmp \
  logfile=ZHANGSAN0610_20220610_impdp.log \
  remap_schema=ZHANGSAN:ZHANGSAN0610 \
  remap_tablespace=TS_PUBLIC:TS_ZHANGSAN0610 transform=OID:N
  1. 导入完成后,使用客户端工具自验证新用户数据导入是否正常,正常的话交给相关人员将后端程序切换到新库进行验证。
相关文章
|
6月前
|
存储 Oracle NoSQL
Oracle 表空间、数据文件、schema的关系
Oracle 表空间、数据文件、schema的关系
186 2
|
SQL 监控 Oracle
Oracle创建和管理表空间
Oracle创建和管理表空间
97 1
|
Oracle 关系型数据库 数据库
9-4 Oracle管理表空间和数据文件
9-4 Oracle管理表空间和数据文件
122 0
|
6月前
|
SQL Oracle 关系型数据库
Oracle 数据泵导出导入(映射表空间、Schema)
Oracle 数据泵导出导入(映射表空间、Schema)
|
6月前
|
Oracle 关系型数据库 数据库
Oracle 11gR2学习之三(创建用户及表空间、修改字符集和Oracle开机启动)
Oracle 11gR2学习之三(创建用户及表空间、修改字符集和Oracle开机启动)
|
6月前
|
存储 Oracle 关系型数据库
Oracle表空间:数据王国的疆域规划
【4月更文挑战第19天】Oracle中的表空间是逻辑存储结构,用于存放数据库对象的物理数据,是数据库性能优化和备份恢复的基础。表空间类型多样,如永久和临时表空间,需根据业务需求进行规划和管理。通过监控使用情况、利用自动扩展功能,可有效管理表空间,提高数据访问速度和可靠性。深入理解表空间有助于优化数据库存储和管理。
|
6月前
|
Oracle 关系型数据库
oracle 修改表空间文件路径方法
oracle 修改表空间文件路径方法
|
6月前
|
Oracle 关系型数据库 数据库
Oracle系列之五:Oracle表空间
Oracle系列之五:Oracle表空间
|
6月前
|
SQL Oracle 关系型数据库
Oracle查看表空间 及表空间是否需要扩展
Oracle查看表空间 及表空间是否需要扩展
61 0
|
SQL 存储 监控
Oracle-UNDO表空间解读
Oracle-UNDO表空间解读
643 0

推荐镜像

更多