oracle 備份與恢復

2021-06-08 18:00:56 字數 3849 閱讀 7343

oracle備份和恢復

<1>邏輯備份

不用去拷貝資料庫的物理檔案

備份邏輯上的結構

外部的工具:匯出和匯入的工具

dos下的命令 cmd下執行

匯出exp  export縮寫形式

檢視幫助 exp help=y

使用引數檔案匯出

exp parfile=c:\abc.par

>>>abc.par的內容

a)scott使用者連線匯出自己的所有物件   

userid=scott/tiger --連線的使用者scott

file=c:\a1.dmp  --匯出的檔案的名字a1.dmp

--匯出了scott使用者的所有物件

b)用system連線來匯出scott下的所有物件 

exp parfile=c:\sys.par

>>>>sys.par的內容

userid=system/manager

file=c:\b1.dmp

wner=(scott)  --匯出scott使用者的所有物件

匯出多個使用者的資料

建立乙個測試使用者 test

grant connect,resource

to test identified by t123;

alter user test

default tablespace users

temporary tablespace temp;

create table student(

stu_id number(4) primary key,

stu_name varchar2(20),

stu_score number(2)

);insert into student values (1000,

'mike',95);

insert into student values (1001,

'john',90);

匯出scott和test下的所有物件????

>>>userid=system/manager

file=c:\st.dmp

wner=(scott,test)

匯出scott下的emp,dept表????

>>>userid=system/manager

file=c:\st.dmp

tables=(scott.emp,scott.dept,test.student)

匯出整個資料庫(備份整個資料庫)

必須用超級使用者 system ,sys

exp system/manager file=c:\system.dmp full=y feedback=1000

或者exp parfile=c:\sys.par

>>>sys.par

userid=system/manager

file=c:\system.dmp

full=y 

比較全的乙個匯出的引數檔案

>>>sys.par

userid=system/manager

file=c:\aa.dmp

buffer=1024000  --緩衝

rows=y          --是否匯出記錄

compress=y      --extent是否壓縮

grants=y        --grant語句是否匯出

indexes=y       --匯出索引

full=y          --全庫匯出

feedback=3      --顯示匯出進度每3行

匯出表scott.dept中部門編號是40的記錄

>>>sys.par

userid=system/manager

file=c:\sys.dmp

tables=(scott.emp)

query="where deptno=10"

匯出表scott.emp中的記錄

>>>sys.par

userid=system/manager

file=c:\sys.dmp

tables=(scott.emp)

feedback=3  --每3行記錄顯示乙個點進度

如何把匯出的資料匯入到資料庫中進行恢復??

imp    import縮寫形式

dos命令

imp help=y 檢視幫助

<1>把scott下的表emp匯出 ,

然後刪除表中的內容(truncate table emp),

利用匯出的檔案來恢復??

a)匯出

exp parfile=c:\sys.par

>>> sys.par

userid=system/manager

file=c:\emp.dmp

tables=(scott.emp)

b)刪除

truncate table emp;  --刪資料

或者drop table emp;  --刪除結構

( delete from emp;  --刪資料可以恢復)

c)恢復

imp prafile=c:\im.par;

>>>im.par

userid=system/manager

file=c:\emp.dmp

fromuser=scott    --從哪個使用者來恢復

show=y            --顯示匯入檔案中的sql語句

<2>scott下的物件全部複製到test使用者下

(轉殖使用者scott)

a)匯出scott使用者

exp parfile=c:\sys.par

>>>sys.par

userid=system/manager

file=c:\scott.dmp

wner=(scott)

b)匯入scott.dmp檔案中的內容到test使用者下

imp parfile=c:\im.par

>>>im.par

userid=system/manager

file=c:\scott.dmp

fromuser=scott

touser=test

<3>scott使用者匯出資料後

使用者scott被刪除了

怎麼來恢復??????

a)匯出scott使用者

exp parfile=c:\sys.par

>>>sys.par

userid=system/manager

file=c:\scott.dmp

wner=(scott)

b)刪除scott使用者

drop user scott cascade; 

c)恢復

先建立使用者scott

grant connect,resource to scott

identified by tiger;

alter user scott

default tablespace users

temporary tablespace temp;

然後匯入

imp parfile=c:\im.par

>>im.par

userid=system/manager

file=c:\scott.dmp

fromuser=scott

<4>如何進行全庫匯入

imp system/manager

file=c:\all.dmp full=y ignore=y

full   ---全庫

ignore  ---忽略匯入過程中的錯誤

Oracle備份與恢復

oracle的備份與恢復有三種標準的模式,大致分為兩大類,備份恢復 物理上的 以及匯入匯出 邏輯上的 而備份恢復又可以根據資料庫的工作模式分為非歸檔模式 nonarchivelog style 和歸檔模式 archivelog style 通常,我們把非歸檔模式稱為冷備份,而相應的把歸檔模式稱為熱備...

oracle備份與恢復

完全恢復 前提條件 所需要的歸檔日誌檔案和online redolog都在 方式一 資料庫在開啟的情況下進行恢復 適合的環境 普通資料檔案損壞 非system undo的表空間的資料檔案 環境準備 1 以scott使用者登入,往test表當中插入資料,並導致日誌切換至少3組以上。sql select...

oracle 備份與恢復

1.建立表空間 sqlplus nolog sql conn sys sys as sysdba sql create tablespace test123 datafile d test123 size 500m 2.建立使用者並指向表空間 sql create user test123 idde...