IT忍者神龜之Database Backup還原技術總結,忍者神龜Database Backup
1. exp/imp (匯出與匯入裝庫與卸庫)1.1 基本命令1. 擷取協助
$ exp help=y
$ imp help=y
2. 三種工作方式
(1)互動式方式
$ exp // 然後按提示輸入所需要的參數
(2)命令列方式
$ exp user/pwd@dbname file=/oracle/test.dmp full=y // 命令列中輸入所需的參數
(3)參數檔案方式
$ exp parfile=username.par // 在參數檔案中輸入所需的參數
參數檔案 username.par 內容
userid=username/userpassword
buffer=8192000
compress=n
grants=y
file=/oracle/test.dmp
full=y
3. 三種模式
(1)表方式,將指定表的資料匯出/匯入。
匯出:
匯出一張或幾張表:
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1,table2
匯出某張表的部分資料
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1query=\”where col1=\’…\’
and col2 \<…\”
匯入:
匯入一張或幾張表
$ imp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1,table2fromuser=dbuser
user=dbuser2 commit=y ignore=y
(2)使用者方式,將指定使用者的所有對象及資料匯出/匯入。
匯出:
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log owner=(xx,yy)
只匯出資料對象,不匯出資料(rows=n )
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log owner=user rows=n
匯入:
$ imp user/pwd file=/dir/xxx.dmp log=xxx.log fromuser=dbusertouser=dbuser2
commit=y ignore=y
(3)全庫方式,將資料庫中的所有對象匯出/匯入
匯出:
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log full=y commit=yignore=y
匯入:
$ imp user/pwd file=/dir/xxx.dmp log=xxx.log fromuser=dbusertouser=dbuser2
1.2 進階選項1. 分割成多個檔案
以多個固定大小檔案方式匯出:這種做法通常用在表資料量較大,單個 dump 檔案可能
會超出檔案系統的限制的情況
$ exp user/pwd file=1.dmp,2.dmp,3.dmp,… filesize=1000m log=xxx.logfull=y
以多個固定大小檔案方式匯入
$ imp user/pwd file=1.dmp,2.dmp,3.dmp,… filesize=1000m tables=xxxfromuser=dbuser
touser=dbuser2 commit=y ignore=y
2. 增量匯出/匯入
// oracle 9i 以後 exp 不再支援 inctype
必須為 SYS 或 SYSTEM 才可執行增量匯出匯入
增量匯出: 包括三個類型:
(1)“完全”增量匯出(Complete) // 備份整個資料庫
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log inctype=complete
(2)“增量型”增量匯出匯出上一次備份後改變的資料。
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log inctype=incremental
(3)“累計型”增量匯出(Cumulative)只匯出自上次“完全”匯出之後資料庫中變化
了的資訊。
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log inctype=cumulative
增量匯入:
$ imp usr/pwd FULL=y inctype=system/restore/inctype
其中:
SYSTEM: 匯入系統對象
RESTORE: 匯入所有使用者物件
3. 以SYSDBA進行匯出/匯入
1. 用於 Oracle 支援人員
2. 用於資料表空間傳輸
例:
$ imp \'usr/pwd@instance as sysdba\' tablespaces=xxtransport_tablespace=y
file=xxx.dmp datafiles=xxx.dbf
$ imp file=expdat.dmp userid=”””sys/password as sysdba”””transport_tablespace=y
“datafile=(c:tempapp_data,c:tempapp_index)”
4. 資料表空間傳輸 (速度快)
資料表空間傳輸是 8i 新增加的一種快速在資料庫間移動資料的一種辦法,是把一個數
據庫上的格式資料檔案附加到另外一個資料庫中,而不是把資料匯出成 dmp 檔案,這
在有些時候是非常管用的,因為傳輸資料表空間移動資料就象複製檔案一樣快。
1.關於傳輸資料表空間有一些規則 (10g 前):
(一) 來源資料庫和目標資料庫必須運行在相同的硬體平台上。
(二) 來源資料庫與目標資料庫必須使用相同的字元集。
(三) 來源資料庫與目標資料庫一定要有相同大小的資料區塊
(四) 目標資料庫不能有與遷移資料表空間同名的資料表空間
(五) SYS 的對象不能遷移
(六) 必須傳輸自包含的對象集
(七) 有一些對象,如物化視圖,基於函數的索引等不能被傳輸
(同位元組序檔案的跨平台可以用更換資料檔案的檔案頭的方法)
(10g 支援跨平台的資料表空間傳輸,只要作業系統位元組順序相同,就可以進行資料表空間傳輸。需要使用 RMAN 轉換檔格式,略)
2. 檢測一個資料表空間是否符合傳輸通訊協定的方法:
SQL > exec sys.dbms_tts.transport_set_check(‘tablespace_name’,true);
SQL > select * from sys.transport_set_violations;
如果沒有行選擇,表示該資料表空間只包含表資料,並且是自包含的。對於有些非自包
含的資料表空間,如資料資料表空間和索引資料表空間,可以一起傳輸。
3. 簡要使用步驟:
如果想參考詳細使用方法,也可以參考 ORACLE 線上說明。
1.設定資料表空間為唯讀(假定資料表空間名字為APP_Data 和 APP_Index)
SQL > alter tablespace app_data read only;
SQL > alter tablespace app_index read only;
2.發出 EXP 命令
SQL> host exp userid=”””sys/password as sysdba”””transport_tablespace=y
tablespaces=(app_data, app_index)
以上需要注意的是
·為了在 SQL 中執行 EXP,USERID 必須用三個引號,在UNIX 中也必須注意
避免“/”的使用
·在 816 和以後,必須使用sysdba 才能操作
·這個命令在 SQL中必須放置在一行(這裡是因為顯示問題放在了兩行)
3.拷貝.dbf 資料檔案(以及.dmp 檔案)到另一個地點,即目標資料庫
可以是 cp(unix)或copy(windows)或通過 ftp 傳輸檔案(一定要在 bin 方式)
4.把本地的資料表空間設定為讀寫
$ alter tablespace app_data read write;
$ alter tablespace app_index read write;
5.在目標資料庫附加該資料檔案 (直接指定資料檔案名)
(資料表空間不能存在,必須建立相應使用者名稱或者用 fromuser/touser)
$ imp file=expdat.dmp userid=”””sys/password as sysdba”””
transport_tablespace=ydatafiles=(“c:\app_data.dbf,c:\app_index.dbf”)
tablespaces=app_data,app_index tts_owners=hr,oe
6.設定目標資料庫資料表空間為讀寫
$ alter tablespace app_data read write;
$ alter tablespace app_index read write;
1.3 最佳化1. 加快exp速度
加大large_pool_size,可以提高 exp 的速度
採用直接路徑的方式(direct=y),資料不需要經過記憶體進行整合和檢查.
設定較大的 buffer,如果匯出大對象,小buffer 會失敗。
export 檔案不在 ORACLE 使用的磁碟機上
不要 export 到 NFS 檔案系統
UNIX 環境:用管道模式直接匯入匯出來提高 imp/exp 的效能
2. 加快imp速度
建立一個indexfile,在資料 import 完成後在建立索引
將 import 檔案放在不同的磁碟機上
增加DB_BLOCK_BUFFERS
增加 LOG_BUFFER
用非歸檔方式運行ORACLE:ALTER DATABASE NOARCHIVELOG;
建立大的資料表空間和復原段,OFFLINE其他復原段,復原段的大小為最大表的 1/2
使用 COMMIT=N
使用 ANALYZE=N
單一使用者模式匯入
UNIX 環境:用管道模式直接匯入匯出來提高 imp/exp 的效能
3. 通過unix/Linux PIPE管道加快exp/imp速度
通過管道匯出資料:
1.通過 mknod -p 建立管道
$ mknod /home/exppipe p // 在目錄/home下建立一個管道exppipe注意參數p
2.通過 exp 和 gzip 匯出資料到建立的管道並壓縮
$ exp test/test file=/home/exppipe &gzip < /home/exppipe > exp.dmp.gz
$ exp test/test tables=bitmap file=/home/newsys/test.pipe&
gzip < /home/newsys/test.pipe >bitmap.dmp.gz
3.匯出成功完成之後刪除建立的管道
$ rm -rf /home/exppipe
匯出指令碼:
###UNIX 下 ORACLE 資料庫通過 PIPE 管道進行備份
###### using "export" and"tar" command to bakup oracle datebase #######
trap "" 1 #nohup
LOGFILE=/opt/bakup/log/bakup_ora.log
export LOGFILE
DUMPDIR=/archlog_node1
export DUMPDIR
exec >$LOGFILE 2>&1
echo
echo ' Begin at ' `date`
echo
# clear old result file
cd $DUMPDIR
if [ -f exp.dmp.Z ]
then
echo "clear old result file"
rm exp.dmp.Z
fi
# make pipe
mkfifo exp.pipe
chmod a+rw exp.pipe
# gain the dmp.Z file
compress < exp.pipe > exp.dmp.Z &
su -u oracle -c "exp userid=ll/llfile=$DUMPDIR/exp.pipe full=y buffer=20000000"
echo
echo ' exp end at '`date`
echo
# rm pipe
rm exp.pipe
# tar the dmp.Z file to tape
mt -f /dev/rmt/0 rew
tar cvf /dev/rmt/0 exp.dmp.Z
echo
echo ' tar end at '`date`
echo
通過管道匯入產生的檔案:
1.通過 mknod -p 建立管道
$ mknod /home/exppipe p
2.匯入產生的壓縮檔
$ imp test/test file=/home/exppipefromuser=test touser=macro &
gunzip < exp.dmp.gz > /home/exppipe
3.刪除管道
$ rm –fr /home/exppipe
4. 全庫匯入的一般步驟
注意:在匯出時,需要通過toad或其他工具提取來源資料庫建立主鍵和索引的指令碼
1. 先全庫加 rows=n 把結構導進去
$ imp system/manager file=exp.dmp log=imp.logfull=y rows=n indexes=n
2. 使業務使用者的觸發器失效/刪除主鍵和唯一索引
spool drop_pk_u.sql
select 'alter table '||table_name||' dropconstraint '||constraint_name||';'
from user_constraints
where constraint_type in ('P','U');
/
spool off
spool disable_trigger.sql
select 'alter trigger '||trigger_name||'disable;'
from user_triggers;
/
spool off
@drop_pk_u.sql
@disable_trigger.sql
3. 以 ignore=y全庫匯入
$ imp system/manager file=exp.dmplog=imp.log full=y ignore=y
4. 通過toad或其他工具提取來源資料庫建立主鍵和索引的指令碼,在目標資料庫中建立主鍵
和索引。使觸發器生效。
1.4 常見問題
1. 字元集問題
ORACLE 多國語言設定是為了支援世界範圍的語言與字元集,一般對語言提示,
貨幣形式,排序方式和 CHAR,VARCHAR2,CLOB,LONG 欄位的資料的顯示等有效。
ORACLE 的多國語言設定最主要的兩個特性就是國家語言設定與字元集設定,國家語
言設定決定了介面或提示使用的語言種類,字元集決定了資料庫儲存與字元集有關資料
(如文本)時候的編碼規則。
ORACLE 字元集設定,分為資料庫字元集和用戶端字元集環境設定。在資料庫端,
字元集在建立資料庫的時候設定,並儲存在資料庫 props$表中。
在用戶端的字元集環境比較簡單,主要就是環境變數或登錄機碼 NLS_LANG,注
意 NLS_LANG 的優先順序別為:參數檔案<註冊表<環境變數<alter session。如果用戶端
字元集和伺服器端字元集不一樣,而且字元集的轉換也不相容,那麼用戶端的資料顯示
與匯出/匯入的與字元集有關的資料將都是亂碼。
使用一點點技巧,就可以使匯出/匯入在不同的字元集的資料庫上轉換資料。這裡
需要一個 2 進位檔案編輯工具即可,如 uedit32。用編輯方式開啟匯出的 dmp 檔案,獲
取 2、3 位元組的內容,如 00 01,先把它轉換為 10 進位數,為 1,使用函數
NLS_CHARSET_NAME 即可獲得該字元集:
SQL> select nls_charset_name(1) fromdual;
NLS_CHARSET_NAME(1)
-------------------
US7ASCII
可以知道該 dmp 檔案的字元集為 US7ASCII,如果需要把該 dmp 檔案的字元集換
成 ZHS16GBK,則需要用 NLS_CHARSET_ID 擷取該字元集的編號:
SQL> select nls_charset_id('zhs16gbk')from dual;
NLS_CHARSET_ID('ZHS16GBK')
--------------------------
852
把 852 換成 16 進位數,為 354,把 2、3 位元組的 00 01 換成 03 54,即完成了把該
dmp 檔案字元集從 us7ascii 到 zhs16gbk 的轉化,這樣,再把該dmp 檔案匯入到 zhs16gbk
字元集的資料庫就可以了。
2. 版本問題
Exp/Imp 很多時候,可以跨版本使用,如在版本 7 與版本 8 之間匯出匯入資料,但
這樣做必須選擇正確的版本,規則為:
·總是使用 IMP 的版本匹配資料庫的版本,如果要匯入到 816,則使用 816 的匯入工
具。
·總是使用 EXP 的版本匹配兩個資料庫中低的那個版本,如在 815 與 816 之間互導,
則使用 815 的 EXP 工具。
imp 和 exp 版本不能往上相容: imp可以匯入低版本 exp 產生的檔案, 不能匯入高
版本 exp 產生的檔案
忍者神龜恢複備份的存檔方法
開啟《忍者神龜》進入之後,你會發現介面上會有一個“玩”字的表徵圖,點擊後會展開“”和“存檔”的表徵圖。 點擊存檔後會有三個分類,分別是“熱門存檔”,“我的備份”,“我的下載”,此時點擊我的備份,這時候我們需要登入自己的拇指玩帳號,登入之後變可看到自己備份的存檔了,下載下來恢複到遊戲裡,即可繼續上次遊戲的存檔玩了。 忍者神龜官方介紹:一款經典的過關動作遊戲。玩家需要通過沖跳,大跳,蹲下,爬牆,懸掛鐵鏈,推動箱子,控制機關來過關。戰鬥中打敗敵人還可以獲得怒氣值,滿了之後可以釋放超必殺技。同時還可以將多種攻擊方式和特殊技術甚至超必殺技組合起來使用,威力巨大。遊戲存檔 版本:2.0.5發布:2013-07-01大小:2.84M分類:必備軟體語言:中文適用:1.0下載:516186次開發商:拇指玩 立即查看忍者神龜版本:1.0發布:2012-01-30大小:0.8M分類:動作射擊語言:英文適用:1.0下載:2033次開發商:小木立即查看 查看原帖>>
熱備份技術的詳細資料!!!
1. 企業資料庫熱備份解決方案提出的背景
隨著電子化進程的飛速發展和資訊技術的廣泛應用,資料越來越成為企業、事業單位日常運作中不可缺少的部分和領導決策的依據。但是,電腦的使用有時也會給人們帶來煩惱,那就是電腦資料非常容易丟失和遭到破壞。有專業機構的研究資料表明:丟失300MB的資料對於市場營銷部門就意味著13萬元人民幣的損失,對財務部門意味著16萬的損失,對工程部門來說損失可達80萬。而丟失的關鍵資料如果15天內仍得不到恢複,企業就有可能被淘汰出局。隨著電腦系統越來越成為企業不可或缺的資料載體,如何利用資料備份來保證資料安全也成為我們迫切需要研究的一個課題。
資料遭到破壞,有可能是人為的因素,也可能是由於各種不可預測的因素,主要包括以下幾個方面:
(1)電腦硬體故障。電腦是一個機器,其硬體是整個系統的基礎。由於使用不當或者電腦產品品質不佳、配件老化等原因,電腦的硬體可能被損壞而不能使用。例如,硬碟的磁軌損壞。
(2)電腦軟體系統的不穩定。由於使用者使用不當或者系統的可靠性不穩定等原因,電腦軟體系統有可能癱瘓,無法使用。
(3)誤操作。這是人為的事故,不可能完全避免。例如,在使用DELETE句的時候,不小心刪除了有用的資料。
(4)破壞性病毒。病毒是系統可能遭到破壞的一個非常重要的原因。隨著資訊技術的發展,各種病毒也隨之泛濫。現在,病毒不僅僅能破壞軟體系統,還可能破壞電腦的硬體系統,例如當前流行的每月26日發作的CIH病毒,就是一個典型的破壞電腦硬體系統的病毒。
(5)自然災害,例如大火、洪水、地震等。這是一種人力幾乎無法抗拒的原因。
也許有人想象不到,一場小小的機房火災,就可能使一個跨國企業的的資訊系統全部坍塌。全球數十個生產中心的採購資料,數萬個供應商和分銷商的訂單,幾十億元的存貨資訊,十幾萬員工的的全年工作計劃,都可能在一分鐘內就化為烏有。因此,以往只有銀行和電信商等財務資料密集型的企業才使用的資料安全體系,正越來越成為各類企業不得不未雨綢繆採取的預防措施。
目前,國際上對電腦安全技術越來越重視,人們的安全意識越來越濃,體現在電腦安全技術的應用從個別的特殊行業發展到各行各業;從對電腦裝置的重視發展到對核心資料的安全的重視,這已經是一個無法復原轉的趨勢。而企業的電腦應用已經非常廣泛,而且深入到企業管理的各個環節,總經理查詢系統、財務管理、人事管理、進銷存物流管理等子系統的資料都存放在伺服器的資料庫中,即時性要求非常高,所以,伺服器的備份、資料庫的即時備份尤其必要和迫切。伺服器的硬體備份方案很多,而且已經比較成熟,資料庫的熱備份軟體國外有幾種,國內還剛剛起步,“永思熱備”資料庫熱備份軟體就是在這種背景下,經過一年多的開發、測試,成功推向市場的。該軟體填補了國內產品的空白,與國外同類產品相比,也有著不可比擬的優勢。在此基礎上,結合企業的業務特點和企業管理系統的資料處理特點,永思科技推出了企業資料庫熱備份解決方案,並迅速地進入應用,經受了實踐的檢驗。
2. 企業的一般商務程序
由此,可以看出:企業的商務程序非常複雜,環節很多,因此企業管理系統的資料庫的變化頻率很快。
3. 企業管理系統的資料處理
現行財務管理系統基本上是採用前幕後處理的模式。後台資料庫一般採用MS-SQL、ORACLE、SYBASE等。人事管理、財務管理、物流管理等資料,都放在後台資料庫中,各個商務程序對後台資料庫的增加、修改。都非常頻繁,而且,由於企業資料的特殊性,核心資料庫一旦出現問題,將給企業帶來不可估量的損失。所以,如何......餘下全文>>