需求:在資料遷移專案中,經常需要計算大批量匯出、匯入的速度,以估算遷移專案的時間視窗是否滿足要求。
例如有如下impdp log檔案,需要估算本次
impdp
過程的速度:
1. $more impdp.log
2. import: release 11.2.0.3.0 - productionontue mar 26 20:16:27 201
73.
4. and/or
its affiliates.
allrights reserved.
5. 6.
connectedto: oracledatabase11g enterprise edition release 11.2.0.3.0 - 64bit production
7.withthe partitioning, olap, data mining
andreal
8. starting
"system"
."sys_import_schema_01"
: system/******** directory=dump logfile=scott_impdp.log remap_schema=scott:
ljgnetwork_link=power1
9. estimate
inprogress using blocks method...
10.
processing object type schema_export/table/table_data
11.
total estimation using blocks method:
10.129 gb
12.
processing object type schema_export/
user
13.
processing object type schema_export/system_grant
14.
processing object type schema_export/role_grant
15.
processing object type schema_export/default_role
16.
processing object type schema_export/pre_schema/procact_schema
17.
processing object type schema_export/table/table
18.
. . imported
"ljg".
"test"
3.91 gb
19096576rows
19.
. . imported
"ljg".
"dept"
1.91 gb
220000
4rows
20.
. . imported
"ljg".
"emp"
1.01 gb
10000
14rows
21.
. . imported
"ljg".
"salgrade"
2.03 gb
23000
5rows
22.
. . imported
"ljg".
"bonus"
1.11 gb
334009
0rows
23.
. . imported
"ljg".
"bonus1"
1.11 mb
334009
0rows
24.
. . imported
"ljg".
"bonus2"
1.11 mb
334009
0rows
25.
26.
27.
processing object type schema_export/procedure/procedure
28.
processing object type schema_export/procedure/alter_procedure
29.
ora-39082: object type alter_procedure:
"ljg".
"bbw_insert"
createdwithcompilation warnings
30.
processing object type schema_export/table/index/index
31.
processing object type schema_export/table/constraint/constraint
32.
processing object type schema_export/table/index/statistics/index_statistics
33.
processing object type schema_export/table/constraint/ref_constraint
34.
processing object type schema_export/table/statistics/table_statistics
35.
job
"system"
."sys_import_schema_01"
completedwith1 error(s)at20:
19:27
簡單一點的方案就是直接複製3.91,
1.91......
這些資料到
excel
中,利用
excel
計算總資料量。
但是,如果匯入的表有幾千張,用excel就太不方便了!!
這時我們可以利用awk shell指令碼,對
gb所在的列進行加總求和,計算出總的資料量。
$cat import.log |grep gb|awk 『 end 』
10.97
得到本次匯入gb級表資料
10.97gb
$cat import.log |grep mb|awk 『 end 』
2.22
得到本次匯入mb級表資料
2.22mb
將上面兩個資料單們統一為1099mb,再除以總時間(
20:19:27 -20:16:27=3
分鐘),得出匯入速度為每分鐘
366mb。
注意:由於shell指令碼不支援小數點的浮點數運算,需要引入
awk進行計算。
Linux Makefile與shell指令碼區別
在makefile可以呼叫shell指令碼,但是makefile和shell指令碼是不同的。本文試著歸納一下makefile和shell指令碼的不同。1 shell中所有引用以 打頭的變數其後要加 而在makefile中的變數是以 打頭的後加 例項如下 makefile path data subp...
C函式呼叫shell腳
c程式呼叫shell指令碼共有三種方式 system popen exec系列函式 1 system shell命令或shell指令碼路徑 執行過程 system 會呼叫fork 產生子程序,由子程序來呼叫 bin sh c string來執行引數string 字串所代表的命令,此命令執行完後隨即返...
linux shell環境以及shell指令碼
1.的區別,中的變數會被解析 中所有的都被當成字串 執行系統命令 2.自定義的變數預設是區域性變數,環境變數是全域性變數。3.export可以把乙個或者多個變數設定為全域性變數 4.父shell中要使用子shell中的變數,必須用export將變數設定為全域性變數 5.常用的環境變數 6.使用者工作...