oracle备份还原到指定表空间

文章目录

  • 分析
  • 一、登陆
  • 二、新建用户
  • 三、指定表空间
  • 四、备份数据
  • 五、还原数据

分析

oracle某一个用户数据导出还原可分为三大步骤实现:导出数据、创建用户、还原数据
使用exp命令将需要导出的用户数据导出到dmp文件。登陆要被还原的目标库,新建用户和表空间。执行imp命令将导出的dmp文件还原到目标库中新建的用户中。
注意:使用imp,exp命令需要安装Oracle客户端

一、登陆

有sqlplus可以通过sqlplus执行一下操作,没有的可以使用Navicat、plsql等工具
注意:以下操作具有dba权限的用户才能操作
用户名:system
密码:Utry1234
ip地址:10.0.**.**
端口号:1521
服务名:orcl

>sqlplus system/Utry1234@//10.0.**.**:1521/orcl

二、新建用户

创建用户
用户名称:HI_APP_TENANT1201_NEW
密码:pass

create user HI_APP_TENANT1201_NEW identified by pass;	-- 创建用户		
drop user HI_APP_TENANT1201 cascade;					-- 删除用户	

解锁用户

alter user HI_APP_TENANT1201_NEW account unlock;		-- 解锁用户

设置用户权限|角色 (角色对应多个权限,即角色是权限集合)
oracle内置角色类型:dbaconnectresource

grant dba to HI_APP_TENANT1201_NEW ;					-- 设置权限

修改用户密码
新密码:pass_new

alter user HI_APP_TENANT1201_NEW identified by pass_new;

三、指定表空间

概念:Oracle用 表空间 这个概念提高系统的效率和性能。Oracle可以存放海量数据,数据最终的落脚点在数据文件。过大的数据文件对数据查询插入操作的性能影响非常大。而且Oracle是跨平台的数据库,可以轻松移植在各个平台。表空间就是提供数据落地保存这统一标准,实现以上功能。

查看数据库系统表空间存放位置
新创建的用户要指定一个新的表空间

select t1.name,t2.name from v$tablespace t1,v$datafile t2 where t1.ts# = t2.ts#;

为了方便管理,新建的表空间最好与之前创建的表空间放在一起
oracle备份还原到指定表空间_第1张图片
创建临时表空间
概念:一种表空间类型,可通过命令扩大。在执行排序操作中发挥巨大作用,例如用户在执行order by操作,数据量大于内存的排序区,这时oracle会将部分中间数据存入中间表。
临时空间名称:DB_TENANT1201_NEW_TEMP

create temporary tablespace DB_TENANT1201_NEW_TEMP
tempfile '\data\u01\app\oracle\oradata\orcl\DB_TENANT1201_NEW_TEMP.dbf'			-- 临时文件路径名称
size 2G			-- 临时表空间大小
extent management local;

创建正式表空间
表空间名称:DB_TENANT1201_NEW

create tablespace DB_TENANT1201_NEW
logging                 
datafile '\data\u01\app\oracle\oradata\orcl\DB_TENANT1201_NEW.dbf'				-- 表空间路径名称
size 50m	-- 初始大小
autoextend on         -- 开启自动扩容                     
next 50m maxsize 20480m     	-- 每次扩容50m,最大为2G
extent management local; 

给新建的用户指定表空间
用户名:HI_APP_TENANT1201_NEW
表空间名称:DB_TENANT1201_NEW
临时表空间名称:DB_TENANT1201_NEW_TEMP

alter user HI_APP_TENANT1201_NEW default tablespace DB_TENANT1201_NEW;			-- 指定表空间
alter user HI_APP_TENANT1201_NEW temporary tablespace DB_TENANT1201_NEW_TEMP;	-- 指定临时表空间

四、备份数据

执行导出导入需要expimp命令,没有这个命令的同学先去安装Oracle的客户端吧!
执行导出操作
file:指定导出路径及文件名称
owner:导出某个用户的全部表和数据

# exp system/Utry1234@10.0.33.83:1521/orcl file=d:\tenant1201.dmp owner=(HI_APP_TENANT1201);

五、还原数据

执行还原操作
file:指定要还原的dmp数据文件
fromuser:指定从什么用户导出
touser:指定导入到什么用户
tablespaces:指定表空间名称
ignore=y:表数据没有主键冲突,会追加进去。如果表数据有主键冲突,则导入报错

# imp HI_APP_TENANT1201_NEW/pass@10.0.33.83:1521/orcl file=d:\tenant1201.dmp fromuser=HI_APP_TENANT1201 touser=HI_APP_TENANT1201_NEW tablespaces=DB_TENANT1201_NEW;

你可能感兴趣的:(数据库,oracle,数据备份还原,数据库,oracle用户,oracle表空间)