Oracle工具——csscan
admin
2023-05-11 18:42:20
0次

转载自: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.  All rights reserved.

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.  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

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.  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

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                      Value                                           
------------------------------ ------------------------------------------------
CSSCAN Version                 v2.1                                            
Instance Name                  fhacdb1                                         
Database Version               11.2.0.2.0                                      
Scan type                      Selective tables                                
Scan CHAR data?                YES                                             
Database character set         ZHS16GBK                                        
FROMCHAR                       ZHS16GBK                                        
TOCHAR                         AL32UTF8                                        
Scan NCHAR data?               NO                                              
Array fetch buffer size        4096000                                         
Number of processes            1                                               
Capture convertible data?      NO                                              
------------------------------ ------------------------------------------------

[Data Dictionary individual exceptions]

[Application data individual exceptions]

User  : THAMS
Table : LIBFILE722
Column: F4
Type  : VARCHAR2(42)
Number of Exceptions         : 1         
Max Post Conversion Data Size: 45       

ROWID              Exception Type      Size Cell Data(first 30 bytes)     
------------------ ------------------ ----- ------------------------------
AAAP2KAAAAAB+u0AAE exceed column size    45 
巡视台湾兼理学政陕西道监察御史
------------------ ------------------ ----- ------------------------------

[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.  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

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  : 2011-08-31 10:59:48
Time Completed: 2011-08-31 10:59:50

Process ID         Time Started       Time Completed
---------- -------------------- --------------------
         1  2011-08-31 10:59:49  2011-08-31 10:59:49
---------- -------------------- --------------------

[Database Size]

Tablespace                           Used            Free           Total       Expansion
------------------------- --------------- --------------- --------------- ---------------
SYSTEM                            581.81M         118.19M         700.00M            .00K
SYSAUX                            521.38M          78.63M         600.00M            .00K
UNDOTBS1                            7.44M      20,699.56M      20,707.00M            .00K
TEMP                                 .00K            .00K            .00K            .00K
USERS                           1,930.38M         139.88M       2,070.25M            .00K
LOB_AU2M                        8,176.13M   1,937,423.88M   1,945,600.00M         212.00K
LOB_AU8M                       10,074.69M     501,925.31M     512,000.00M            .00K
DATA_ARCHIVE                    5,332.06M   1,018,667.94M   1,024,000.00M            .00K
LOB_AU32M                       4,772.38M     507,227.63M     512,000.00M            .00K
LOB_AU64M                       4,548.38M     507,451.63M     512,000.00M            .00K
------------------------- --------------- --------------- --------------- ---------------
Total                          35,944.63M   4,493,732.63M   4,529,677.25M         212.00K

[Database Scan Parameters]

Parameter                      Value                                           
------------------------------ ------------------------------------------------
CSSCAN Version                 v2.1                                            
Instance Name                  fhacdb1                                         
Database Version               11.2.0.2.0                                      
Scan type                      Selective tables                                
Scan CHAR data?                YES                                             
Database character set         ZHS16GBK                                        
FROMCHAR                       ZHS16GBK                                        
TOCHAR                         AL32UTF8                                        
Scan NCHAR data?               NO                                              
Array fetch buffer size        4096000                                         
Number of processes            1                                               
Capture convertible data?      NO                                              
------------------------------ ------------------------------------------------

[Scan Summary]

Some character type application data are not convertible to the new character set

[Data Dictionary Conversion Summary]

Data Dictionary Tables:

Datatype                    Changeless      Convertible       Truncation            Lossy
--------------------- ---------------- ---------------- ---------------- ----------------
VARCHAR2                             0                0                0                0
CHAR                                 0                0                0                0
LONG                                 0                0                0                0
VARRAY                               0                0                0                0
--------------------- ---------------- ---------------- ---------------- ----------------
Total                                0                0                0                0
Total in percentage              0.000%           0.000%           0.000%           0.000%

XML CSX Dictionary Tables:

Datatype                    Changeless      Convertible       Truncation            Lossy
--------------------- ---------------- ---------------- ---------------- ----------------
VARCHAR2                             0                0                0                0
CHAR                                 0                0                0                0
LONG                                 0                0                0                0
VARRAY                               0                0                0                0
--------------------- ---------------- ---------------- ---------------- ----------------
Total                                0                0                0                0
Total in percentage              0.000%           0.000%           0.000%           0.000%

[Application Data Conversion Summary]

Datatype                    Changeless      Convertible       Truncation            Lossy
--------------------- ---------------- ---------------- ---------------- ----------------
VARCHAR2                       222,683           28,308                1                0
CHAR                                 0                0                0                0
LONG                                 0                0                0                0
VARRAY                               0                0                0                0
--------------------- ---------------- ---------------- ---------------- ----------------
Total                          222,683           28,308                1                0
Total in percentage             88.721%          11.278%           0.000%           0.000%

[Distribution of Convertible, Truncated and Lossy Data by Table]

Data Dictionary Tables:

USER.TABLE                                    Convertible       Truncation            Lossy
---------------------------------------- ---------------- ---------------- ----------------
---------------------------------------- ---------------- ---------------- ----------------

XML CSX Dictionary Tables:

USER.TABLE                                    Convertible       Truncation            Lossy
---------------------------------------- ---------------- ---------------- ----------------
---------------------------------------- ---------------- ---------------- ----------------

Application Data:

USER.TABLE                                    Convertible       Truncation            Lossy
---------------------------------------- ---------------- ---------------- ----------------
THAMS.LIBFILE722                                   28,308                1                0
---------------------------------------- ---------------- ---------------- ----------------

[Distribution of Convertible, Truncated and Lossy Data by Column]

Data Dictionary Tables:

USER.TABLE|COLUMN                             Convertible       Truncation            Lossy
---------------------------------------- ---------------- ---------------- ----------------
---------------------------------------- ---------------- ---------------- ----------------

XML CSX Dictionary Tables:

USER.TABLE|COLUMN                             Convertible       Truncation            Lossy
---------------------------------------- ---------------- ---------------- ----------------
---------------------------------------- ---------------- ---------------- ----------------

Application Data:

USER.TABLE|COLUMN                             Convertible       Truncation            Lossy
---------------------------------------- ---------------- ---------------- ----------------
THAMS.LIBFILE722|F11                                4,648                0                0
THAMS.LIBFILE722|F2                                 4,643                0                0
THAMS.LIBFILE722|F3                                 4,648                0                0
THAMS.LIBFILE722|F46                                  222                0                0
THAMS.LIBFILE722|F6                                 4,312                0                0
THAMS.LIBFILE722|F7                                   565                0                0
THAMS.LIBFILE722|TITLE                              4,642                0                0
---------------------------------------- ---------------- ---------------- ---------------

[Indexes to be Rebuilt]

USER.INDEX on USER.TABLE(COLUMN)                                                         
-----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------

工具csscan会生成三个日志,一个err记录错误信息,比如这个例子中,一个列的长度需要变长,否则无法容纳数据长度的扩展;一个log记录操作步骤;而txt则是最终的汇总信息。

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...