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#;

爲了方便管理,新建的表空間最好與之前創建的表空間放在一起
在這裏插入圖片描述
創建臨時表空間
概念:一種表空間類型,可通過命令擴大。在執行排序操作中發揮巨大作用,例如用戶在執行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/[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;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章