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...