提問:這個字符集掃描器的作用是什麽呢?
回答:查找出在做字符集轉換後,哪些內容無法轉換需要單獨處理,也就是確定並報告在數據轉換過程中會出現的異常問題。
csscan工具檢測完成之後,會報告如下三種類型的異常:
1)lossy conversions(有耗損的轉換)
2)exceeded column length(超出的列長度)
3)convertible or exceptional data in the data dictionary(數據字典中可轉換或者有異常的數據)
再提問:什麽時候使用這個工具?
再回答:如果您像我壹樣,需求是從WE8ISO8859P1字符集升級到AL32UTF8字符集,那麽,第壹步就需要使用這個工具給您的寶貝數據庫做壹個全面的“體檢”了。
2.安裝csscan
1)在數據庫安裝完成之後就會自帶這個工具。此工具的存放路徑如下:
$ which csscan
/u01/app/oracle/product/11.2.0/db_1/bin/csscan
2)這個工具是二進制文件。
3.“實操式”使用csscan現在開始,請大家打起精神。
1)第壹步,以sys用戶登陸,創建所需的CSMIG用戶和數據字典對象。這個步驟是必要條件的,否則工具無法使用。
$ sqlplus / as sysdba
SQL> @?/rdbms/admin/csminst.sql
SQL> exit;
2)“實操”目標:對目前數據庫做“不留死角”的檢驗。
首先,需要以具有SYSDBA權限的用戶登錄操作;其次就是對這個工具的壹些參數要有所了解。
下面的記錄是在我的測試環境下演示的效果。
註意,這裏為了使用具有SYSDBA權限的用戶操作采用了壹個小技巧,如果不知道的話,可能會比較郁悶。
Shell下的小技巧是:userid="'"sys/sys as sysdba"'",只有這樣使用才能順利的執行。也可以把它放到參數文件中。
(1)如果使用參數文件,語法如下
$cd /home/oracle
$ vi csscan.par
userid="sys/sys as sysdba" full=y fromchar=we8iso8859p1 tochar=AL32UTF8 log=check.log capture=y array=1000000 process=4
$ csscan parfile=csscan.par
舉例:
userid="sys/sys as sysdba" full=y fromchar=ZHS16CGB231280 tochar=AL32UTF8 log=check.log capture=y array=1000000 process=1