轉載自:http://blog.itpub.net/4227/viewspace-706635/
工具csscan用于檢查從一個字符集轉換到另一個字符集,數據庫中的數據是否會產生丟失、截斷等現象。
這個工具很早就出現了,不過由于長久以來牽制到字符集轉換的工作不是很多,因此對于這個工具沒什么研究,這次需要將ZHS16GBK轉換到AL32UTF8,嘗試了一下csscan的功能,發現這個工具還是很方便的。
[oracle@dbserver1 bin]$ csscan userid=thams/thams table=libfile722 tochar=AL32UTF8 log=/home/oracle/scan_722
Character Set Scanner v2.2 : Release 11.2.0.2.0 - Production on Wed Aug 31 10:54:15 2011
Copyright (c) 1982, 2009, Oracle and/or its affiliates.
CSS-00127: user thams does not have DBA privilege
Scanner terminated unsuccessfully.
錯誤信息很明顯,連接用戶不是DBA角色,如果用system用戶連接進行這個命令:
[oracle@dbserver1 bin]$ csscan userid=system/oracle table=thams.libfile722 tochar=AL32UTF8 log=/home/oracle/scan_722
Character Set Scanner v2.2 : Release 11.2.0.2.0 - Production on Wed Aug 31 10:54:45 2011
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
CSS-00107: Character set migration utility schema not installed
Scanner terminated unsuccessfully.
導致這個錯誤是由于CSSCAN工具需要在數據庫中建立一個CSMIG用戶:
[oracle@dbserver1 bin]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.2.0 Production on Wed Aug 31 10:57:28 2011
Copyright (c) 1982, 2010, Oracle.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
SQL> @?/rdbms/admin/csminst
User created.
Grant succeeded.
Grant succeeded.
Grant succeeded.
Grant succeeded.
Grant succeeded.
Grant succeeded.
Grant succeeded.
User altered.
1 row created.
1 row updated.
Table created.
.
.
.
View created.
View created.
View created.
View created.
Grant succeeded.
Grant succeeded.
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
[oracle@dbserver1 bin]$ csscan userid=system/oracle table=thams.libfile722 tochar=AL32UTF8 log=/home/oracle/scan_722
Character Set Scanner v2.2 : Release 11.2.0.2.0 - Production on Wed Aug 31 10:59:35 2011
Copyright (c) 1982, 2009, Oracle and/or its affiliates.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
Enter array fetch buffer size: 1024000 > 4096000
Enter number of scan processes to utilize(1..64): 1 >
Enumerating table to scan...
. process 1 scanning THAMS.LIBFILE722[AAAP2KAAAAAB7XYAAA]
Creating Database Scan Summary Report...
Creating Individual Exception Report...
Scanner terminated successfully.
調用csminst.sql腳本創建輔助用戶和對象后,再次運行csscan工具,對表中數據進行轉換前的掃描。
工具csscan的調用有命令行方式,和交互兩種,當命令行沒有提供足夠的參數,工具會以交互方式獲取其他參數。
操作完成后,可以檢查對應的日志信息:
[oracle@dbserver1 bin]$ more /home/oracle/scan_722.err
Database Scan Individual Exception Report
[Database Scan Parameters]
Parameter
------------------------------ ------------------------------------------------
CSSCAN Version
Instance Name
Database Version
Scan type
Scan CHAR data?
Database character set
FROMCHAR
TOCHAR
Scan NCHAR data?
Array fetch buffer size
Number of processes
Capture convertible data?
------------------------------ ------------------------------------------------
[Data Dictionary individual exceptions]
[Application data individual exceptions]
User
Table : LIBFILE722
Column: F4
Type
Number of Exceptions
Max Post Conversion Data Size: 45
ROWID
------------------ ------------------ ----- ------------------------------
AAAP2KAAAAAB+u0AAE exceed column size
------------------ ------------------ ----- ------------------------------
[oracle@dbserver1 bin]$ more /home/oracle/scan_722.out
Character Set Scanner v2.2 : Release 11.2.0.2.0 - Production on Wed Aug 31 10:59:35 2011
Copyright (c) 1982, 2009, Oracle and/or its affiliates.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
Enter array fetch buffer size: 1024000 >
Enter number of scan processes to utilize(1..64): 1 >
Enumerating table to scan...
. process 1 scanning THAMS.LIBFILE722[AAAP2KAAAAAB7XYAAA]
Creating Database Scan Summary Report...
Creating Individual Exception Report...
Scanner terminated successfully.
[oracle@dbserver1 bin]$ more /home/oracle/scan_722.txt
Database Scan Summary Report
Time Started
Time Completed: 2011-08-31 10:59:50
Process ID
---------- -------------------- --------------------
---------- -------------------- --------------------
[Database Size]
Tablespace
------------------------- --------------- --------------- --------------- ---------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS
LOB_AU2M
LOB_AU8M
DATA_ARCHIVE
LOB_AU32M
LOB_AU64M
------------------------- --------------- --------------- --------------- ---------------
Total
[Database Scan Parameters]
Parameter
------------------------------ ------------------------------------------------
CSSCAN Version
Instance Name
Database Version
Scan type
Scan CHAR data?
Database character set
FROMCHAR
TOCHAR
Scan NCHAR data?
Array fetch buffer size
Number of processes
Capture convertible data?
------------------------------ ------------------------------------------------
[Scan Summary]
Some character type application data are not convertible to the new character set
[Data Dictionary Conversion Summary]
Data Dictionary Tables:
Datatype
--------------------- ---------------- ---------------- ---------------- ----------------
VARCHAR2
CHAR
LONG
VARRAY
--------------------- ---------------- ---------------- ---------------- ----------------
Total
Total in percentage
XML CSX Dictionary Tables:
Datatype
--------------------- ---------------- ---------------- ---------------- ----------------
VARCHAR2
CHAR
LONG
VARRAY
--------------------- ---------------- ---------------- ---------------- ----------------
Total
Total in percentage
[Application Data Conversion Summary]
Datatype
--------------------- ---------------- ---------------- ---------------- ----------------
VARCHAR2
CHAR
LONG
VARRAY
--------------------- ---------------- ---------------- ---------------- ----------------
Total
Total in percentage
[Distribution of Convertible, Truncated and Lossy Data by Table]
Data Dictionary Tables:
USER.TABLE
---------------------------------------- ---------------- ---------------- ----------------
---------------------------------------- ---------------- ---------------- ----------------
XML CSX Dictionary Tables:
USER.TABLE
---------------------------------------- ---------------- ---------------- ----------------
---------------------------------------- ---------------- ---------------- ----------------
Application Data:
USER.TABLE
---------------------------------------- ---------------- ---------------- ----------------
THAMS.LIBFILE722
---------------------------------------- ---------------- ---------------- ----------------
[Distribution of Convertible, Truncated and Lossy Data by Column]
Data Dictionary Tables:
USER.TABLE|COLUMN
---------------------------------------- ---------------- ---------------- ----------------
---------------------------------------- ---------------- ---------------- ----------------
XML CSX Dictionary Tables:
USER.TABLE|COLUMN
---------------------------------------- ---------------- ---------------- ----------------
---------------------------------------- ---------------- ---------------- ----------------
Application Data:
USER.TABLE|COLUMN
---------------------------------------- ---------------- ---------------- ----------------
THAMS.LIBFILE722|F11
THAMS.LIBFILE722|F2
THAMS.LIBFILE722|F3
THAMS.LIBFILE722|F46
THAMS.LIBFILE722|F6
THAMS.LIBFILE722|F7
THAMS.LIBFILE722|TITLE
---------------------------------------- ---------------- ---------------- ---------------
[Indexes to be Rebuilt]
USER.INDEX on USER.TABLE(COLUMN)
-----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------
工具csscan會生成三個日志,一個err記錄錯誤信息,比如這個例子中,一個列的長度需要變長,否則無法容納數據長度的擴展;一個log記錄操作步驟;而txt則是最終的匯總信息。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。