程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle數據庫手動恢復備忘日志

Oracle數據庫手動恢復備忘日志

編輯:Oracle教程

最近因為升級了Mac os x 10.10 Yosemite,突然前幾天的一個晚上,開機發現就停留在開機界面了,看來BETA果然是不靠譜,然後想到自己這不前幾天剛備份完嗎,沒事,TimeMachine是何等神器,二話不說直接恢復。但是恢復完,我後悔了,一來是忘了昨天晚上還加班呢,加班的成功保留成果所剩無幾,關鍵我這才發現TimeMachine既然不備份虛擬機文件(虛擬機文件30G,估計直接給略過了吧),難怪每次都覺得備份那麼快。

不過後悔也沒用,重新搭開發環境吧。操作系統WIN7->開發工具VS2012->數據庫ORACLE。然後又到那無聊的數據庫備份恢復的時間呢。由於我對oracle的數據庫了解並不深,所以我並沒有辦法和牛B的DBA不看教程就能夠全部手寫數據庫執行腳本,但是為了不讓每一次都重新又回頭找一次教程,這裡深刻地做一次記錄,下次備忘。

這裡,數據庫主要恢復導出的dmp文件,具體涉及的一些相關指令如下


數據的導入
 1 將D:\daochu.dmp 中的數據導入 TEST數據庫中。
   imp system/manager@TEST  file=d:\daochu.dmp full=y
   imp system/manager@TEST  file=d:\daochu.dmp full=y ignore=y 
   上面可能有點問題,因為有的表已經存在,然後它就報錯,對該表就不進行導入。在後面加上 ignore=y 就可以了。
 2 將d:\daochu.dmp中的表table1 導入
   imp system/manager@TEST  file=d:\daochu.dmp  tables=(table1) 

3、從A用戶導入B用戶的表空間
   imp system/manager@TEST  file=d:\daochu.dmp fromuser=jandardb touser=jandardb

數據導出:
 1 將數據庫TEST完全導出,用戶名system 密碼manager 導出到D:\daochu.dmp中
   exp system/manager@TEST file=d:\daochu.dmp full=y
 2 將數據庫中system用戶與sys用戶的表導出
   exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
 3 將數據庫中的表inner_notify、notify_staff_relat導出
    exp aichannel/aichannel@TESTDB2 file= d:\data\newsmgnt.dmp tables=(inner_notify,notify_staff_relat) 
 4 將數據庫中的表table1中的字段filed1以"00"打頭的數據導出
   exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"

具體過程一般如下:

然後對應的執行過程操作步驟詳解(以下所有操作都在SQLPLUS上操作)

建立表空間

表空間含義(Table Space){copy from 百度百科}:

ORACLE數據庫被劃分成稱作為表空間的邏輯區域——形成ORACLE數據庫的邏輯結構。一個ORACLE數據庫能夠有一個或多個表空間,而一個表空間則對應著一個或多個物理的數據庫文件。表空間是ORACLE數據庫恢復的最小單位,容納著許多數據庫實體,如表、視圖、索引、聚簇、回退段和臨時段等。

狹義的理解就是,數據庫中可以有多個表空間,數據庫的每一張表都屬於某一個表空間,表空間是Oracle用來管理數據庫的一種邏輯概念。


/*第1步:創建臨時表空間  */
create temporary tablespace 臨時表空間名
tempfile '存儲地址\臨時表空間存儲文件名.DBF' 
size 50m  
autoextend on  
next 50m maxsize 20480m  
extent management local;  

 
/*第2步:創建數據表空間  */
create tablespace 表空間名
logging 
datafile '存儲地址\表空間存儲文件名.DBF'  
size 50m  
autoextend on  
next 50m maxsize 20480m  
extent management local;  

臨時表空間

由於Oracle工作時經常需要一些臨時的磁盤空間,這些空間主要用作查詢時帶有排序(Group by,Order by等)等算法所用,當用完後就立即釋放,對記錄在磁盤區的信息不再使用,因此叫臨時表空間。

建立數據庫用戶


/*建立用戶*/
create user 用戶名 identified by 密碼  
default tablespace 表空間  
temporary tablespace 臨時表空間;  

/*分配權限,connect,resource,dba是角色名*/
grant connect,resource,dba to 用戶名;  

數據庫的預定數據庫角色簡單說明:

角色名簡單說明 connect 具備最基本的數據庫連接權限 resource 具備能夠創建表和觸發器等一般管理權限 dba 除了不具備關閉和重啟數據庫權限,具備大多數的系統管理權限,但是不具備像SYSDBA,SYSOPER的特權

導入dmp備份數據

imp 用戶名/密碼@連接名稱  file=路徑/文件名.dmp full=y

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved