22 07, 2008
ÈçºÎÔÚ10gÖÐÐÞ¸ÄÊý¾Ý¿â×Ö·û¼¯
Ò»°ãÀ´Ëµ£¬Êý¾Ý¿âÔÚ´´½¨Íê³Éºó¾Í²»ÄÜÐÞ¸Ä×Ö·û¼¯ÁË£¬ÈçÒªÐÞ¸Ä×Ö·û¼¯£¬ÐèÒª¶ÔÔÓÐÊý¾Ý½øÐе¼Èëµ¼³öºóÖØ½¨Êý¾Ý¿âÀ´Ð޸ġ£µ«ÊÇÒ²ÓÐһЩÀýÍâµÄ£¬Èç¹û´Ó×Ó¼¯Éý¼¶µ½³¬¼¯£¬Ôò¿ÉÒÔÖ±½ÓÐ޸ĶøÎÞÐèÖØ½¨Êý¾Ý¿â¡£
[php]
×Ó¼¯µ½³¬¼¯£¬ÔÚ8I/9IÖУ¬¼òµ¥µÄÐ޸IJ½ÖèÈçÏ£º
SHUTDOWN IMMEDIATE;
-- make sure there is a database backup you can rely on, or create one
STARTUP MOUNT;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
ALTER DATABASE CHARACTER SET <new_character_set>;
-- a alter database takes typically only a few minutes or less,
-- it depends on the number of columns in the database, not the
-- amount of data.
SHUTDOWN;
-- If you use Oracle8 then also do:
STARTUP RESTRICT;
SHUTDOWN;
µ«ÊÇ£¬ÒÔÉϲ½ÖèÖ»ÊÊÓÃÓÚ8I/9I£¬¶ÔÓÚ10g£¬oracleÃ÷È·Ö¸³ö²»ÄÜÕâÑù¸ÉÁË£¬ÔÚ10g£¬oracleÌṩÁËÒ»¸öй¤¾ßCSALERÀ´ÐÞ¸Ä×Ö·û¼¯¡£
ÏÂÃæËµÃ÷ÈçºÎÔÚ10gÓÃÐÞ¸Ä×Ö·û¼¯¡£
1¡¢µ±Ç°×Ö·û¼¯sys@TEST> select userenv('language') from dual;
USERENV('LANGUAGE')
------------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16CGB231280
2¡¢²åÈëһЩÉúƧ×Ö
sys@TEST> create table a(a varchar2(100));
±íÒÑ´´½¨¡£
sys@TEST> insert into a values('«˜');
ÒÑ´´½¨ 1 ÐС£
sys@TEST> commit;
Ìá½»Íê³É¡£
sys@TEST> select *from a;
A
--------------------
£¿
¿É¼û£¬ZHS16CGB231280°üº¬µÄºº×ÖÌ«ÉÙ£¬ÐèÒªÉý¼¶°üº¬ºº×Ö¸ü¶àµÄZHS16GBK¡£ZHS16GBKÊÇZHS16CGB231280µÄ³¬¼¯£¬¿ÉÒÔÖ±½ÓÐÞ¸Ä×Ö·û¼¯¡£
3¡¢¹Ø±ÕÊý¾Ý¿â²¢±¸·Ý
ÓÉÓÚ¸üÐÂÊý¾Ý¿â²Ù×÷²»¿É»Ø¹ö£¬°²È«Æð¼û£¬×îºÃ¶ÔÊý¾Ý¿â×öÒ»¸öÈ«±¸¡£
4¡¢Ê¹ÓÃcsscan¼ì²é×Ö·û¼¯×ª»»ÊÇ·ñ¿ÉÐÐ
csscanɨÃèÊý¾Ý¿âµÄËùÓÐÊý¾Ý²¢²âÊÔ×Ö·û¼¯×ª»»ÊÇ·ñ¿ÉÐС£
csscanÓÐËÄÖÖɨÃèģʽ£ºÈ«¿âɨÃè¡¢°´Óû§É¨Ãè¡¢°´±íɨÃè¡¢°´ÁÐɨÃè¡£
ÒòΪÎÒÃÇÕâÀïÊDzâÊԸıäÈ«¿âµÄ×Ö·û¼¯£¬ËùÒÔÒªÓÃÈ«¿âɨÃèģʽ£¬²¢ÇÒÒªÇóɨÃèÓû§ÓÐDBAȨÏÞ£º
ÔËÐÐcsscanÐèҪһϵÁеÄȨÏÞºÍ±í£¬Òò´ËÐèÒªÏÈÔËÐÐÒ»¸ö½Å±¾£¬·ñÔò»á±¨´í£ºsys@TEST> @E:oracleora10gRDBMSADMINcsminst.sql
......
ÊÓͼÒÑ´´½¨¡£
ͬÒå´ÊÒÑɾ³ý¡£
ͬÒå´ÊÒÑ´´½¨¡£
ÊÓͼÒÑ´´½¨¡£
ÊÓͼÒÑ´´½¨¡£
Ìá½»Íê³É¡£
´Ó Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining options ¶Ï¿ª
ÔËÐÐCSSCANɨÃèÊý¾Ý¿â£º
E:oracleora10gBIN>CSSCAN SYSTEM/AAA FULL=y FROMCHAR=ZHS16CGB231280 TOCHAR=ZHS16GBK ARRAY=1024000 PROCESS=1
¼òµ¥ËµÒ»Ï¼¸¸ö²ÎÊýµÄº¬Ò壺
username/password :Êý¾Ý¿âÓû§ÃûºÍ¿ÚÁÐèÒªÓÐdbaȨÏÞ
FULL :ÊÇ·ñ½øÐÐÈ«¿âɨÃè
FROMCHAR :Ô×Ö·û¼¯£¬¿ÉÒÔÊ¡ÂÔ£¬Ä¬ÈÏΪÁ¬½ÓÊý¾Ý¿âµÄµ±Ç°×Ö·û¼¯
TOCHAR :Ä¿±ê×Ö·û¼¯
ARRAY :¶ÁÈ¡Êý¾ÝµÄ»º³åÇø´óС
PROCESS :ͬʱÆô¶¯¼¸¸ö½ø³Ì½øÐÐɨÃè
Character Set Scanner v2.1 : Release 10.2.0.0.0 - Production on ÐÇÆÚËÄ 12ÔÂ 27 18:49:55 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining options
Enumerating tables to scan...
.......
. process 1 scanning SYS.WRH$_LATCH_MISSES_SUMMARY[AAACUwAADAAAAzRAAA]
. process 1 scanning SYSTEM.LOGMNR_COL$[AAABbGAADAAAAeZAAA]
. process 1 scanning SYSTEM.LOGMNR_ATTRCOL$[AAABa/AADAAAAhpAAA]
......
Creating Database Scan Summary Report...
Creating Individual Exception Report...
Scanner terminated successfully.
ĬÈÏÇé¿öÏ£¬csscanɨÃè½áÊøºó£¬»á²úÉúÈý¸öÎļþ£ºscan.txt¡¢scan.err¡¢scan.out£¬·Ö±ð²é¿´ÕâÈý¸öÎļþ£¬Èç¹ûûÓÐÒì³££¬Ôò¿ÉÒÔÍùÏÂÖ´ÐÐÁË¡£
csscan»á°Ñ×î½üÒ»´ÎÖ´ÐÐɨÃèµÄ²ÎÊýдÈë±ícsm$parametersÖУ¬Õâ¸ö±íµÄ²ÎÊý·Ç³£ÖØÒª£¬Ëü¾ö¶¨×ÅÏÂÒ»²½½øÐÐ×Ö·û¼¯×ª»»ÐèÒªµÄ²ÎÊý£¬ÈçҪת³Éʲô×Ö·û¼¯µÈ¡£sys@TEST> select * from csm$parameters;
NAME VALUE
------------------------------ ----------------------------------------
SCANNER_VERSION 5
SCAN_TYPE ALL
SCAN_CHAR YES
TO_CHARSET_NAME ZHS16GBK
FROM_CHARSET_NAME ZHS16CGB231280
SCAN_NCHAR NO
MAX_ARRAY_SIZE 1024000
MAX_ROWS_IN_HEAP 100
NUMBER_OF_PROCESS 1
SUPPRESS_ERROR_LOG_BY -1
INSERT_SUPPRESSED NO
CAPTURE_CONVERTIBLE_DATA NO
SCANNER_SCRIPT NO
SCANNER_PRESERVE NO
MIGRATE_TO_SUPERSET 0
CSLD_ENABLE 0
PREVIOUS_CHARACTER_SET ZHS16CGB231280
PREVIOUS_NCHAR_SET AL16UTF16
TIME_START 2007-12-27 18:50:02
TIME_END 2007-12-27 18:51:35
5¡¢ÔËÐÐCSALTERÐÞ¸Ä×Ö·û¼¯
CSALTERÊÇ10gÐÂÍÆ³öµÄÓÃÓÚÐÞ¸Äoracle×Ö·û¼¯µÄ¹¤¾ß£¬ËüλÓÚ$ORACLE_HOME/RDBMS/ADMIN/ÖУ¬ÆäʵÕâ¸ö¹¤¾ß²¢²»ÉñÃØ£¬ËüÖ»²»¹ýÊǰÑÎÄÕ¿ªÍ·Ìáµ½µÄ9iÖÐÐÞ¸Ä×Ö·û¼¯µÄÖ÷Òª²½Öèд³É½Å±¾£¬²¢ÐÂÔöһЩ×Ô¶¯¼ì²é¹¦ÄÜ£¬¼ò»¯²Ù×÷²¢¾¡Á¿±ÜÃâ´íÎó²úÉú¡£sys@TEST> @E:oracleora10gRDBMSADMINCSALTER.PLB
ÒÑ´´½¨0ÐС£
º¯ÊýÒÑ´´½¨¡£
º¯ÊýÒÑ´´½¨¡£
¹ý³ÌÒÑ´´½¨¡£
This script will update the content of the Oracle Data Dictionary.
Please ensure you have a full backup before initiating this procedure.
Would you like to proceed (Y/N)?y
ÔÖµ 6: if (UPPER('&conf') <> 'Y') then
ÐÂÖµ 6: if (UPPER('y') <> 'Y') then
Checking data validility...
begin converting system objects
PL/SQL ¹ý³ÌÒѳɹ¦Íê³É¡£
Alter the database character set...
CSALTER operation completed, please restart database
PL/SQL ¹ý³ÌÒѳɹ¦Íê³É¡£
ÒÑɾ³ý0ÐС£
º¯ÊýÒÑɾ³ý¡£
º¯ÊýÒÑɾ³ý¡£
¹ý³ÌÒÑɾ³ý¡£
ÕâÀï×¢Òâµ½£¬oracle²¢Ã»ÓÐÒªÇóÎÒÃÇÊäÈë²ÎÊýÀ´Ö´ÐÐÒª°Ñµ±Ç°Êý¾Ý¿â×Ö·û¼¯×ª»»ÎªÊ²Ã´×Ö·û¼¯£¬Êµ¼ÊÉÏ£¬CSALERT¶ÁÈ¡csm$parametersÖÐÉ趨µÄ²ÎÊýÖµÀ´½øÐÐ×Ö·û¼¯×ª»»¡£
Õâ¸ö²Ù×÷»áºÜ¿ìÍê³É£¬ÒòΪcsalter²¢Ã»ÓÐÐÞ¸Äʵ¼ÊÊý¾Ý£¬Ö»ÊǰÑÊý¾Ý×ÖµäÖеÄÔªÊý¾ÝÐÞ¸Äһ϶øÒÑ¡£
´Óºǫ́ÈÕÖ¾¿ÉÒÔ¿´³öÕâ¸ö¹ý³ÌÖ´ÐеIJÙ×÷£º
Thu Dec 27 22:25:43 2007
ALTER SYSTEM enable restricted session;
MMNL started with pid=11, OS id=3516
Thu Dec 27 22:25:43 2007
ALTER SYSTEM SET job_queue_processes=0 SCOPE=BOTH;
Thu Dec 27 22:25:43 2007
ALTER SYSTEM SET aq_tm_processes=0 SCOPE=BOTH;
Thu Dec 27 22:25:43 2007
alter database character set internal_use ZHS16GBK
Thu Dec 27 22:25:46 2007
Updating character set in controlfile to ZHS16GBK
Synchronizing connection with database character set information
Refreshing type attributes with new character set information
Completed: alter database character set internal_use ZHS16GBK
6¡¢ÖØÆôÊý¾Ý¿âsys@TEST> shutdown immediate
Êý¾Ý¿âÒѾ¹Ø±Õ¡£
ÒÑ¾Ð¶ÔØÊý¾Ý¿â¡£
ORACLE Àý³ÌÒѾ¹Ø±Õ¡£sys@TEST> startup
ORACLE Àý³ÌÒѾÆô¶¯¡£
Total System Global Area 603979776 bytes
Fixed Size 1250380 bytes
Variable Size 159386548 bytes
Database Buffers 436207616 bytes
Redo Buffers 7135232 bytes
Êý¾Ý¿â×°ÔØÍê±Ï¡£
Êý¾Ý¿âÒѾ´ò¿ª¡£
7¡¢ÑéÖ¤sys@TEST> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
--¿É¼û£¬Êý¾Ý¿â×Ö·û¼¯ÒѾ±äΪZHS16GBKÁË¡£
ÔÙ²éÔÀ´ÊÇÂÒÂëµÄÊý¾Ý£ºsys@TEST> select * from a;
A
----------
£¿
²éѯ½á¹ûÊÇÂÒÂ룬ÕâÒ²¾ÍÊÇ˵¶ÔÓÚÔÀ´¿âÖÐÒѾÊÇÂÒÂëµÄÊý¾Ý£¬ÐÞ¸Ä×Ö·û¼¯ÊÇÎÞÄÜΪÁ¦µÄ¡£
ÎÒÃÇÔÙ¿´¿´´ËʱÊÇ·ñ¿ÉÒÔ²åÈëÔÀ´ÊÇÂÒÂëµÄºº×Ö£º
sys@TEST> insert into a values('«˜');
ÒÑ´´½¨ 1 ÐС£
sys@TEST> select * from a;
A
----------
£¿
«˜
ÔÀ´ÊÇÂÒÂëµÄºº×ÖÏÖÔÚ¿ÉÒÔÕý³£²åÈëºÍÏÔʾ£¬×Ö·û¼¯Ð޸ijɹ¦¡£
.
[/php]