1、完全備份
exp demo/demo@orcl buffer=1024 file=d:\back.dmp full=ydemo:使用者名稱、密碼
buffer: 快取大小
file: 具體的備份檔案位址
full: 是否匯出全部檔案
ignore: 忽略錯誤,如果表已經存在,則也是覆蓋
2、將資料庫中system使用者與sys使用者的表匯出
exp demo/demo@orcl file=d:\backup\1.dmp owner=(system,sys)3、匯出指定的表
exp demo/demo@orcl file=d:\backup2.dmp tables=(teachers,students)4、按過濾條件,匯出
exp demo/demo@orcl file=d:\back.dmp tables=(table1) query=\" where filed1 like 'fg%'\"匯出時可以進行壓縮:
命令後面 加上 compress=y
如果需要日誌,後面: log=d:\log.txt
5、備份遠端伺服器的資料庫
exp 使用者名稱/密碼@遠端的ip:埠/例項 file=存放的位置:\檔名稱.dmp full=y
開啟cmd直接執行如下命令,不用再登陸sqlplus。
1、完整還原
imp demo/demo@orcl file=d:\back.dmp full=y ignore=y log=d:\implog.txt指定log很重要,便於分析錯誤進行補救。
2、匯入指定表:
imp demo/demo@orcl file=d:\backup2.dmp tables=(teachers,students)3、還原到遠端伺服器
imp 使用者名稱/密碼@遠端的ip:埠/例項 file=存放的位置:\檔名稱.dmp full=y
11g中有個新特性,當表無資料時,不分配segment,以節省空間。這樣在匯出資料的時候,空表不被匯出
解決方法:
1、insert一行,再rollback就產生segment了。
該方法是在在空表中插入資料,再刪除,則產生segment。匯出時則可匯出空表。
2、設定deferred_segment_creation 引數
該引數值預設是true,當改為false時,無論是空表還是非空表,都分配segment。
需注意的是:該值設定後對以前匯入的空表不產生作用,仍不能匯出,只能對後面新增的表產生作用。如需匯出之前的空表,只能用第一種方法。
需要查詢所有的空表,然後執行
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0然後再匯出即可。
imp-00003: 遇到 oracle 錯誤 959ora-00959: 表空間 '***' 不存在解決方案:imp-00017: 由於 oracle 錯誤 959, 以下語句失敗:
1、匯入前,先建立表空間
(建立目錄即為oracle的資料目錄)
create tablespace *** datafile 'd:\oracle\data\***.dbf' size 100m autoextend on;2、指定使用者該錶空間不受限
alter user demo quota unlimited on ***;//後面的***是表空間名3、然後再imp即可
注意匯入時一定要指定log,便於分析解決
成功提示是這樣的:
成功終止匯入,沒有出現警告
oracle的備份與還原
一。備份分為物理備份與邏輯備份。1.物理備份即是對物理檔案 包括資料檔案,控制檔案,重做日誌檔案 的備份。物理備份又細分為熱備份 聯機備份和冷備份 離線備份。2.邏輯備份即是將資料庫的邏輯物件 如表,儲存過程等 export到二進位制的檔案中,這個檔案通常是dmp檔案。還原的時候,再把該檔案impo...
oracle備份還原
學習過程中的總結,有興趣不妨看看,如果有不對的地方,高手不要留情!oracle的備份與恢復有三種標準的模式,大致分為兩大類,備份恢復 物理上的 以及匯入匯出 邏輯上的 而備份恢復又可以根據資料庫的工作模式分為非歸檔模式 nonarchivelog style 和歸檔模式 archivelog sty...
oracle 備份還原
echo dyfhys正式伺服器資料庫自動備份 set filename dyfhys date 0,4 date 5,2 date 8,2 version10g echo filename copy e dump backup filename dmp 10.0.3.f 好藥師90.58正式庫備份...