分析
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/[email protected]:1521/orcl file=d:\tenant1201.dmp owner=(HI_APP_TENANT1201);
五、還原數據
執行還原操作
file
:指定要還原的dmp數據文件
fromuser
:指定從什麼用戶導出
touser
:指定導入到什麼用戶
tablespaces
:指定表空間名稱
ignore=y
:表數據沒有主鍵衝突,會追加進去。如果表數據有主鍵衝突,則導入報錯
# imp HI_APP_TENANT1201_NEW/[email protected]:1521/orcl file=d:\tenant1201.dmp fromuser=HI_APP_TENANT1201 touser=HI_APP_TENANT1201_NEW tablespaces=DB_TENANT1201_NEW;