oracle客戶端備份導入導出數據庫(exp,imp)

 
當從服務器上備份數據到本地 
          
 
   exp  HPTDATA/HPTDATA@HPTDATA F:\backup\1.dmp  
說明 exp是orcale 備份數據庫操作語句
第一個 HPTDATA 是服務器數據庫用戶名  ,第二個HPTDATA是服務器密碼 “F:\backup\1.dmp”是備份到本地的路徑,1.dmp 
不用新建,可以隨便給定名稱,會自動生成。
(這裏可能有會出現點問題,即:你有沒有oracle客戶端,沒有就玩蛋了(自己玩),如果有那個@HPTDATA即是服務名,也可以用sid(這個吊),那麼問題來了,學挖掘機那家強?答:曼陀羅   @HPTDATA怎麼來的呢,如果你配置了net manager,如果配置了這個就是了
看截圖
 
然後按回車,然後經過漫長的蝸牛般的速度的前進了4多小時,11.5g的數據庫就備份完成
到這,纔剛剛開始,馬蛋,時間不要錢啊!
 
然後在本地oracle服務端,建立和服務器上的oracle服務端一樣的表空間,好的瞧下面截圖(爲毛要截圖呢,小編要做一個有圖有真相的文檔)
 
create tablespace HptData datafile 'F:\backup\HptData.dbf' size 200m autoextend OFF ;
 
瞭解的情況的曼陀羅的同學可能已經發現了端倪 看下面(不是褲襠!別誤會)
好了表空間這樣就建立好了 
 
下面就是建立user:
可是我已經有這個用戶了,怎麼辦,just do it 幹掉它 (如果僅僅是用戶名有了表名,視圖,存儲過程,作業,觸發器,函數and name not in(服務器裏對應的名稱) 這個效率高
declare 
   i integer;
begin
  select count(*) into i from  Select * from本地的orcale服務端對應的名稱 t  where  Exists (select 1 from服務器裏orcale服務端對應的名稱 h where  h.name =t.name);
if i>0 then
dbms_output.put_line(‘玩蛋不可用,你必須刪掉重名的!’);
end if;
end;
,就不用幹掉了,留着把,有總不沒有強) 反正我已經切掉了,不是! 是幹掉了。切的語句drop user HptData cascade;cascade是把數據也一起刪掉 ,不刪不行
下面就是建立user(即:用戶)看截圖
 
 
create user HptData identified by HptData default tablespace HptData;(不用多解釋了吧)
好了到這用戶就建立好了,下面就應該授權了
 
grant connect,dba to HptData;
 
好了接下來就該用戶的限額 (爲毛啊,這是幾個意思啊)(原因:例如某個用戶的users表空間限額爲30M,當用戶試圖存儲數據到表空間時,如果會導致空間使用超過30M,就會被拒絕。
 
ALTER USER HptData QUOTA UNLIMITED ON HptData;
好了設置好了
好了,到這纔剛剛開始,馬蛋
開始導入數據
 
好了開始導入了
 
可是過了一會(也就10秒,傳說中的10秒男)馬蛋,報錯
IMP-00003: 遇到 ORACLE 錯誤 1659
ORA-01659: 無法分配超出 1 的 MINEXTENTS (在表空間 HPTDATA 中)
IMP-00017: 由於 ORACLE 錯誤 1659, 以下語句失敗:
 
什麼原因呢:哦!問題在褲襠那,瞧上面(褲襠那)
在創建表空間時把自動自動增長的屬性製成OFF了(autoextend OFF ;)怎麼辦呢
修改吧
alter database datafile 'F:\backup\HPTDATA.dbf' autoextend on next 100m;
這就修改成沒次增長100了哦,
 
小心了哦。
開始導入,馬蛋,更慢,擦,好吧一點脾氣都沒有了
 
其實有效率高點的導入導出的方法,下期奉上
 
要注意的幾點,
1)  不要再數據繁忙時導出導入,不然出問題,你就逗比了(數據庫沒有備份完成就宕掉,畫面太美,完全不可想象)
2)  選一個磁盤容量多一點,進行備份(實際上最好在服務器上備份,讓後再拷出來,這樣效率稍微高點)
3)  導出是哪個@服務名是net manager 配置的
4)  創建表空間要不表空間的擴展屬性設置成 on (即:autoextend on;)
拓展:
1)  查看錶空間的屬性,用dba用戶 登錄 select * from dba_data_files 
2)  查看錶空間的容量 select tablespace_name,sum(bytes)/1024/1024 from dba_data_files t where t.tablespace_name = 'HPTDATA' GROUP BY T.tablespace_name;
3)查看這個用戶下的所有單位
select uo.object_name,uo.object_type from user_objects uo where uo.object_type<>'LOB' order by uo.object_type desc
4)幹掉用戶 drop user HptData cascade;
5)幹掉表空間 DROP TABLESPACE HptData INCLUDING CONTENTS AND DATAFILES;
6)修改表空間屬性 alter database datafile 'F:\backup\HPTDATA.dbf' autoextend on next 100m;
 
總結:這樣的效率太慢,9i以後有效率快的數據泵的技術 下期奉上

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章