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内置角色类型:dba
、connect
、resource
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#;
为了方便管理,新建的表空间最好与之前创建的表空间放在一起
创建临时表空间
概念:一种表空间类型,可通过命令扩大。在执行排序操作中发挥巨大作用,例如用户在执行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; -- 指定临时表空间
执行导出导入需要exp
、imp
命令,没有这个命令的同学先去安装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;