±¾ÎÄÊÇOracle ACE×ܼàSyed Jaffer Hussain¶ÔOracleÊý¾Ý¿â12cµÄһЩÐÂÌØÐÔ×ܽᣬ°üÀ¨Êý¾Ý¿â¹ÜÀí¡¢RMAN¡¢¸ß¿ÉÓÃÐÔÒÔ¼°ÐÔÄܵ÷ÓŵÈÄÚÈÝ¡£
Ö÷ÒªÄÚÈÝ:
1. ÔÚÏßÇ¨ÒÆ»îÔ¾µÄÊý¾ÝÎļþ
2. ±í·ÖÇø»ò×Ó·ÖÇøµÄÔÚÏßÇ¨ÒÆ
3. ²»¿É¼û×Ö¶Î
4. Ïàͬ×Ö¶ÎÉϵĶàÖØË÷Òý
5. DDLÈÕÖ¾
6. ÁÙʱundo
7. еı¸·ÝÓû§ÌØÈ¨
8. ÈçºÎÔÚRMANÖÐÖ´ÐÐSQLÓï¾ä
9. RMANÖÐµÄ±í¼¶±ð»Ö¸´
10. PGAµÄ´óСÏÞÖÆÎÊÌâ
11. ¶Ô±í·ÖÇøÎ¬»¤µÄÔöÇ¿
12. Êý¾Ý¿âÉý¼¶µÄ¸Ä½ø
13. ͨ¹ýÍøÂç»Ö¸´Êý¾ÝÎļþ
14. ¶ÔData PumpµÄÔöÇ¿
15. ʵʱ×Ô¶¯Êý¾ÝÕï¶Ï¼àÊÓÆ÷(ADDM)
16. ²¢·¢Í³¼ÆÐÅÏ¢ÊÕ¼¯
1. ÔÚÏßÖØÃüÃûºÍÖØÐ¶¨Î»»îÔ¾Êý¾ÝÎļþ
²» ͬÓÚÒÔÍùµÄ°æ±¾£¬ÔÚOracleÊý¾Ý¿â12c R1°æ±¾ÖжÔÊý¾ÝÎļþµÄÇ¨ÒÆ»òÖØÃüÃû²»ÔÙÐèҪ̫¶à·±ËöµÄ²½Ö裬¼´°Ñ±í¿Õ¼äÖÃΪֻ¶Áģʽ£¬½ÓÏÂÀ´ÊǶÔÊý¾ÝÎļþ½øÐÐÀëÏß²Ù×÷¡£ÔÚ12c
R1ÖУ¬¿ÉÒÔʹÓÃALTER DATABASE MOVE DATAFILEÕâÑùµÄSQLÓï¾ä¶ÔÊý¾ÝÎļþ½øÐÐÔÚÏßÖØÃüÃûºÍÒÆ¶¯¡£¶øµ±´ËÊý¾ÝÎļþÕýÔÚ´«Êäʱ£¬ÖÕ¶ËÓû§¿ÉÒÔÖ´Ðвéѯ£¬DMLÒÔ¼°DDL·½ÃæµÄÈÎÎñ¡£Áí
Í⣬Êý¾ÝÎļþ¿ÉÒÔÔÚ´æ´¢É豸¼äÇ¨ÒÆ£¬Èç´Ó·ÇASMÇ¨ÒÆÖÁASM£¬·´Ö®ÒàÈ»¡£
ÖØÃüÃûÊý¾ÝÎļþ£º
SQL> ALTER DATABASE MOVE DATAFILE '/u00/data/users01.dbf' TO '/u00/data/users_01.dbf'; |
´Ó·ÇASMÇ¨ÒÆÊý¾ÝÎļþÖÁASM£º
SQL> ALTER DATABASE MOVE DATAFILE '/u00/data/users_01.dbf' TO '+DG_DATA'; |
½«Êý¾ÝÎļþ´ÓÒ»¸öASM´ÅÅÌȺ×éÇ¨ÒÆÖÁÁíÒ»¸öASM´ÅÅÌȺ×飺
SQL> ALTER DATABASE MOVE DATAFILE '+DG_DATA/DBNAME/DATAFILE/users_01.dbf ' TO '+DG_DATA_02'; |
ÔÚÊý¾ÝÎļþÒÑ´æÔÚÓÚз¾¶µÄÇé¿öÏ£¬ÒÔÏàͬµÄÃüÃû½«Æä¸²¸Ç£º
SQL> ALTER DATABASE MOVE DATAFILE '/u00/data/users_01.dbf' TO '/u00/data_new/users_01.dbf' REUSE; |
¸´ÖÆÎļþµ½Ò»¸öз¾¶£¬Í¬Ê±ÔÚÔ·¾¶Ï±£ÁôÆä¿½±´
SQL> ALTER DATABASE MOVE DATAFILE '/u00/data/users_01.dbf' TO '/u00/data_new/users_01.dbf' KEEP; |
µ±Í¨¹ý²éѯv$session_longops¶¯Ì¬ÊÓͼÀ´Òƶ¯Îļþʱ£¬Äã¿ÉÒÔ¼à¿ØÕâÒ»¹ý³Ì¡£ÁíÍ⣬ÄãÒ²¿ÉÒÔÒýÓÃalert.log£¬Oracle»áÔÚÆäÖмǼ¾ßÌåµÄÐÐΪ¡£
2. ±í·ÖÇø»ò×Ó·ÖÇøµÄÔÚÏßÇ¨ÒÆ
ÔÚOracle 12c R1ÖÐÇ¨ÒÆ±í·ÖÇø»ò×Ó·ÖÇøµ½²»Í¬µÄ±í¿Õ¼ä²»ÔÙÐèÒª¸´ÔӵĹý³Ì¡£Óë֮ǰ°æ±¾ÖÐδ·ÖÇø±í½øÐÐÔÚÏßÇ¨ÒÆÀàËÆ£¬±í·ÖÇø»ò×Ó·ÖÇø¿ÉÒÔÔÚÏß»òÊÇÀëÏßÇ¨ÒÆÖÁÒ»¸ö²»Í¬µÄ±í
¿Õ¼ä¡£µ±Ö¸¶¨ÁËONLINEÓï¾ä£¬ËùÓеÄDML²Ù×÷¿ÉÒÔÔÚûÓÐÈκÎÖжϵÄÇé¿öÏ£¬ÔÚ²ÎÓëÕâÒ»¹ý³ÌµÄ·ÖÇø»ò×Ó·ÖÇøÉÏÖ´ÐС£Óë´ËÏà·´£¬·ÖÇø»ò×Ó·ÖÇøÇ¨ÒÆÈç¹ûÊÇ
ÔÚÀëÏßÇé¿öϽøÐеģ¬DML²Ù×÷ÊDz»±»ÔÊÐíµÄ¡£
ʾÀý£º
1 SQL> ALTER TABLE table_name MOVE PARTITION
|SUBPARTITION partition_name TO tablespace tablespace_name; 2 SQL> ALTER TABLE table_name MOVE PARTITION
|SUBPARTITION partition_name TO tablespace tablespace_name UPDATE INDEXES ONLINE; |
µÚÒ»¸öʾÀýÊÇÓÃÀ´ÔÚÀëÏß×´¿öϽ«Ò»¸ö±í·ÖÇø»ò×Ó·ÖÇøÇ¨ÒÆÖÁÒ»¸öеıí¿Õ¼ä¡£µÚ¶þ¸öʾÀýÊÇÔÚÏßÇ¨ÒÆ±í·ÖÇø»ò×Ó·ÖÇø²¢Î¬»¤±íÉÏÈκα¾µØ»òÈ«¾ÖµÄË÷Òý¡£´ËÍ⣬µ±Ê¹ÓÃONLINEÓï¾äʱ£¬DML²Ù×÷ÊDz»»áÖжϵġ£
ÖØÒªÌáʾ:£º
UPDATE INDEXESÓï¾ä¿ÉÒÔ±ÜÃâ³öÏÖ±íÖÐÈκα¾µØ»òÈ«¾ÖË÷ÒýÎÞ·¨Ê¹ÓõÄÇé¿ö¡£
±íµÄÔÚÏßÇ¨ÒÆÏÞÖÆÒ²ÊÊÓÃÓÚ´Ë¡£
ÒýÈë¼ÓËø»úÖÆÀ´Íê³ÉÕâÒ»¹ý³Ì£¬µ±È»ËüÒ²»áµ¼ÖÂÐÔÄÜϽµ²¢»á²úÉú´óÁ¿µÄredo£¬ÕâÈ¡ÓÚ·ÖÇøºÍ×Ó·ÖÇøµÄ´óС¡£
3. ²»¿É¼û×Ö¶Î
ÔÚOracle 11g R1ÖУ¬OracleÒÔ²»¿É¼ûË÷ÒýºÍÐéÄâ×ֶεÄÐÎʽÒýÈëÁËһЩ²»´íµÄÔöÇ¿ÌØÐÔ¡£¼Ì³ÐǰÕß²¢·¢Ñï¹â´ó£¬Oracle
12c R1ÖÐÒýÈëÁ˲»¿É¼û×Ö¶Î˼Ïë¡£ÔÚ֮ǰµÄ°æ±¾ÖУ¬ÎªÁËÒþ²ØÖØÒªµÄÊý¾Ý×Ö¶ÎÒÔ±ÜÃâÔÚͨÓòéѯÖÐÏÔʾ£¬ÎÒÃÇÍùÍù»á´´½¨Ò»¸öÊÓͼÀ´Òþ²ØËùÐèÐÅÏ¢»òÓ¦ÓÃijЩ°²È«Ìõ
¼þ¡£
ÔÚ12c R1ÖУ¬Äã¿ÉÒÔÔÚ±íÖд´½¨²»¿É¼û×ֶΡ£µ±Ò»¸ö×ֶζ¨ÒåΪ²»¿É¼ûʱ£¬ÕâÒ»×ֶξͲ»»á³öÏÖÔÚͨÓòéѯÖУ¬³ý·ÇÔÚSQLÓï¾ä»òÌõ¼þÖÐÓÐÏÔʽµÄÌá¼°ÕâÒ»×ֶΣ¬»òÊÇÔÚ±í¶¨ÒåÖÐÓÐDESCRIBED¡£ÒªÌí¼Ó»òÊÇÐÞ¸ÄÒ»¸ö²»¿É¼û×Ö¶ÎÊǷdz£ÈÝÒ׵쬷´Ö®ÒàÈ»¡£
1 SQL> CREATE TABLE emp (eno number(6), ename name varchar2(40), sal number(9) INVISIBLE); 2 SQL> ALTER TABLE emp MODIFY (sal visible); |
Äã±ØÐëÔÚINSERTÓï¾äÖÐÏÔʽÌá¼°²»¿É¼û×Ö¶ÎÃûÒÔ½«²»¿É¼û×ֶβåÈëµ½Êý¾Ý¿âÖС£ÐéÄâ×ֶκͷÖÇø×Ö¶ÎͬÑùÒ²¿ÉÒÔ¶¨ÒåΪ²»¿É¼ûÀàÐÍ¡£µ«ÁÙʱ±í£¬Íⲿ±íºÍ¼¯Èº±í²¢²»Ö§³Ö²»¿É¼û×ֶΡ£
4. Ïàͬ×Ö¶ÎÉϵĶàÖØË÷Òý
ÔÚOracle 12c R1֮ǰ£¬Ò»¸ö×Ö¶ÎÊÇÎÞ·¨ÒÔÈκÎÐÎʽӵÓжà¸öË÷ÒýµÄ¡£»òÐíÓÐÈË»áÏëÖªµÀΪʲôͨ³£Ò»¸ö×Ö¶ÎÐèÒªÓжàÖØË÷Òý£¬ÊÂʵÉÏÐèÒª¶àÖØË÷ÒýµÄ×ֶλò×ֶμ¯ºÏÊǺܶàµÄ¡£
ÔÚ12c R1ÖУ¬Ö»ÒªË÷ÒýÀàÐ͵ÄÐÎʽ²»Í¬£¬Ò»¸ö×ֶξͿÉÒÔ°üº¬ÔÚÒ»¸öB-treeË÷ÒýÖУ¬Í¬ÑùÒ²¿ÉÒÔ°üº¬ÔÚBitmapË÷ÒýÖС£×¢Ò⣬ֻÓÐÒ»ÖÖÀàÐ͵ÄË÷ÒýÊÇÔÚ¸ø¶¨
ʱ¼ä¿ÉÓõġ£
5. DDLÈÕÖ¾
ÔÚ Ö®Ç°µÄ°æ±¾ÖÐûÓпÉÑ¡·½·¨À´¶ÔDDL²Ù×÷½øÐÐÈÕÖ¾¼Ç¼¡£¶øÔÚ12c R1ÖУ¬ÄãÏÖÔÚ¿ÉÒÔ½«DDL²Ù×÷дÈëxmlºÍÈÕÖ¾ÎļþÖС£Õâ¶ÔÓÚÁ˽âËÔÚʲôʱ¼äÖ´ÐÐÁËcreate»òdropÃüÁîÊÇÊ®·ÖÓÐÓõġ£Òª¿ªÆôÕâÒ»¹¦ÄܱØÐë¶Ô
ENABLE_DDL_LOGGING ³õʼ²ÎÊý¼ÓÒÔÅäÖá£ÕâÒ»²ÎÊý¿ÉÒÔÔÚÊý¾Ý¿â»ò»á»°¼¶¼ÓÒÔÉèÖᣵ±´Ë²ÎÊýΪÆôÓÃ״̬£¬ËùÓеÄDDLÃüÁî»á¼Ç¼ÔÚ$ORACLE_BASE/diag
/rdbms/DBNAME/log|ddl ·¾¶ÏµÄxmlºÍÈÕÖ¾ÎļþÖС£Ò»¸öxmlÖаüº¬DDLÃüÁIPµØÖ·£¬Ê±¼ä´ÁµÈÐÅÏ¢¡£Õâ¿ÉÒÔ°ïÖúÈ·¶¨ÔÚʲôʱºò¶ÔÓû§»ò±í½øÐÐÁËɾ³ýÒà»òÊÇÒ»ÌõDDLÓï¾ä
ÔÚºÎʱ´¥·¢¡£
¿ªÆôDDLÈÕÖ¾¹¦ÄÜ
1 SQL> ALTER SYSTEM|SESSION SET ENABLE_DDL_LOGGING=TRUE; |
ÒÔϵÄDDLÓï¾ä¿ÉÄÜ»á¼Ç¼ÔÚxml»òÈÕÖ¾ÎļþÖУº
1 CREATE|ALTER|DROP|TRUNCATE TABLE 2 DROP USER 3 CREATE|ALTER|DROP PACKAGE|FUNCTION|VIEW|SYNONYM|SEQUENCE
|
6. ÁÙʱundo
ÿ ¸öOracleÊý¾Ý¿â°üº¬Ò»×éÓëϵͳÏà¹ØµÄ±í¿Õ¼ä£¬ÀýÈçSYSTEM£¬SYSAUX£¬UNDO
& TEMP£¬²¢ÇÒËüÃÇÔÚOracleÊý¾Ý¿âÖÐÿ¸ö¶¼ÓÃÓÚ²»Í¬µÄÄ¿µÄ¡£ÔÚOracle 12c
R1֮ǰ£¬undo¼Ç¼ÊÇÓÉÁÙʱ±í²úÉú²¢´æ´¢ÔÚundo±í¿Õ¼äÖеģ¬Õâ¸üÀàËÆÓÚÒ»¸öͨÓûò³Ö¾ÃµÄ±í³·Ïú¼Ç¼¡£È»¶ø£¬ÓÉÓÚÔÚ12c
R1ÖÐÒýÈëÁËÁÙʱundo¹¦ÄÜ£¬ÄÇЩÁÙʱundo¼Ç¼ÏÖÔھͿÉÒÔ´æ´¢ÔÚÁÙʱ±íÖУ¬¶ø²»ÊÇ´æ´¢ÔÚundo±í¿Õ¼äÖС£ÁÙʱundoµÄÖ÷ÒªºÃ´¦ÔÚÓÚ£ºÓÉÓÚÐÅÏ¢²»
»áдÈëundoÈÕÖ¾£¬undo±í¿Õ¼äµÄ¿ªÏúµÃÒÔ¼õÉÙ²¢ÇÒ²úÉúµÄundoÊý¾Ý»á¸üÉÙ¡£¶ø¶ÔÓÚÔڻỰ¼¶»¹ÊÇÊý¾Ý¿â¼¶¿ªÆôÁÙʱundo¹¦ÄÜÄãÊÇ¿ÉÒÔÁé»îÑ¡ÔñµÄ¡£
ÆôÓÃÁÙʱundo¹¦ÄÜ
ҪʹÓÃÕâһй¦ÄÜ£¬ÐèÒª×öÒÔÏÂÉèÖãº
¼æÈÝÐÔ²ÎÊý±ØÐëÉèÖÃΪ12.0.0»ò¸ü¸ß
ÆôÓà TEMP_UNDO_ENABLED ³õʼ»¯²ÎÊý
ÓÉÓÚÁÙʱundo¼Ç¼ÏÖÔÚÊÇ´æ´¢ÔÚÒ»¸öÁÙʱ±í¿Õ¼äÖеģ¬ÄãÐèÒªÓÐ×ã¹»µÄ¿Õ¼äÀ´´´½¨ÕâÒ»ÁÙʱ±í¿Õ¼ä
¶ÔÓڻỰ¼¶£¬Äã¿ÉÒÔʹÓãºALTER SYSTEM SET TEMP_UNDO_ENABLE=TRUE;
²éѯÁÙʱundoÐÅÏ¢
ÒÔÏÂËùÁеÄ×ÖµäÊÓͼÊÇÓÃÀ´²é¿´»ò²éѯÁÙʱundoÊý¾ÝÏà¹ØÍ³¼ÆÐÅÏ¢µÄ£º
1 V$TEMPUNDOSTAT 2 DBA_HIST_UNDOSTAT 3 V$UNDOSTAT |
Òª½ûÓô˹¦ÄÜ£¬ÄãÖ»Ðè×öÒÔÏÂÉèÖãº
1 SQL> ALTER SYSTEM|SESSION SET TEMP_UNDO_ENABLED=FALSE;
|
7. ±¸·ÝÌØ¶¨Óû§ÌØÈ¨
ÔÚ11g R2ÖУ¬ÒýÈëÁËSYSASMÌØÈ¨À´Ö´ÐÐASMµÄÌØ¶¨²Ù×÷¡£Í¬ÑùµØ£¬ÔÚ12cÖÐÒýÈëÁËSYSBACKUPÌØÈ¨ÓÃÀ´ÔÚ
RMANÖÐÖ´Ðб¸·ÝºÍ»Ö¸´ÃüÁî¡£Òò´Ë£¬Äã¿ÉÒÔÔÚÊý¾Ý¿âÖд´½¨Ò»¸ö±¾µØÓû§²¢ÔÚ²»ÊÚÓèÆäSYSDBAȨÏÞµÄÇé¿öÏ£¬Í¨¹ýÊÚÓèSYSBACKUPȨÏÞÈÃÆäÄܹ»
ÔÚRMANÖÐÖ´Ðб¸·ÝºÍ»Ö¸´Ïà¹ØµÄÈÎÎñ¡£
1 $ ./rman target "username/password as SYSBACKUP" |
8. ÈçºÎÔÚRMANÖÐÖ´ÐÐSQLÓï¾ä
ÔÚ12cÖУ¬Äã¿ÉÒÔÔÚ²»ÐèÒªSQLǰ׺µÄÇé¿öÏÂÔÚRMANÖÐÖ´ÐÐÈκÎSQLºÍPL/SQLÃüÁ¼´Äã¿ÉÒÔ´ÓRMANÖ±½ÓÖ´ÐÐÈκÎSQLºÍPL/SQLÃüÁî¡£ÈçϱãÊÇÔÚRMANÖÐÖ´ÐÐSQLÓï¾äµÄʾÀý
1 RMAN> SELECT username,machine FROM v$session; 2 RMAN> ALTER TABLESPACE users ADD DATAFILE SIZE 121m;
|
9. RMANÖеıí»Ö¸´ºÍ·ÖÇø»Ö¸´
Oracle Êý¾Ý¿â±¸·ÝÖ÷Òª·ÖΪÁ½ÀࣺÂß¼ºÍÎïÀí±¸·Ý¡£Ã¿ÖÖ±¸·ÝÀàÐͶ¼ÓÐÆä×ÔÉíµÄÓÅȱµã¡£ÔÚ֮ǰµÄ°æ±¾ÖУ¬ÀûÓÃÏÖÓÐÎïÀí±¸·ÝÀ´»Ö¸´±í»ò·ÖÇøÊDz»¿ÉÐеġ£ÎªÁ˻ָ´Ìض¨¶Ô
Ïó£¬Âß¼±¸·ÝÊDZØÐèµÄ¡£¶ÔÓÚ12c R1£¬Äã¿ÉÒÔÔÚ·¢Éúdrop»òtruncateµÄÇé¿öÏ´ÓRMAN±¸·Ý½«Ò»¸öÌØ¶¨µÄ±í»ò·ÖÇø»Ö¸´µ½Ä³¸öʱ¼äµã»òSCN¡£
µ±Í¨¹ýRMAN·¢ÆðÒ»¸ö±í»ò·ÖÇø»Ö¸´Ê±£¬´ó¸ÅÁ÷³ÌÊÇÕâÑùµÄ£º
È·¶¨Òª»Ö¸´±í»ò·ÖÇøËùÐèµÄ±¸·Ý¼¯
ÔÚ»Ö¸´±í»ò·ÖÇøµÄ¹ý³ÌÖУ¬Ò»¸ö¸¨ÖúÊý¾Ý¿â»áÁÙʱÉèÖÃΪij¸öʱ¼äµãÀûÓÃÊý¾Ý±Ã½«ËùÐè±í»ò·ÖÇøµ¼³öµ½Ò»¸ödumpfile
Äã¿ÉÒÔ´ÓÔ´Êý¾Ý¿âµ¼Èë±í»ò·ÖÇø(¿ÉÑ¡)
ÔÚ»Ö¸´¹ý³ÌÖнøÐÐÖØÃüÃû²Ù×÷
ÒÔÏÂÊÇÒ»¸öͨ¹ýRMAN¶Ô±í½øÐÐʱ¼äµã»Ö¸´µÄʾÀý(È·±£ÄãÒѾ¶ÔÉÔÔçµÄÊý¾Ý¿â½øÐÐÁËÍêÕû±¸·Ý)£º
1 RMAN> connect target "username/password as SYSBACKUP"; 2 RMAN> RECOVER TABLE username.tablename UNTIL TIME 'TIMESTAMP¡' 3 AUXILIARY DESTINATION '/u01/tablerecovery' 4 DATAPUMP DESTINATION '/u01/dpump' 5 DUMP FILE 'tablename.dmp' 6 NOTABLEIMPORT -- this option avoids importing the table automatically.(´ËÑ¡Ïî±ÜÃâ×Ô¶¯µ¼Èë±í) 7 REMAP TABLE 'username.tablename': 'username.new_table_name'; -- can rename table with this option.(´ËÑ¡Ïî¿ÉÒÔ¶Ô±íÖØÃüÃû) |
ÖØÒªÌáʾ:£º
È·±£¶ÔÓÚ¸¨ÖúÊý¾Ý¿âÔÚ/u01ÎļþϵͳÏÂÓÐ×ã¹»µÄ¿ÉÓÿռ䣬ͬʱ¶ÔÊý¾Ý±ÃÎļþÒ²ÓÐͬÑù±£Ö¤
±ØÐëÒª´æÔÚÒ»·ÝÍêÕûµÄÊý¾Ý¿â±¸·Ý£¬»òÕßÖÁÉÙÊÇÒªÓÐSYSTEMÏà¹ØµÄ±í¿Õ¼ä±¸·Ý
ÒÔÏÂÊÇÔÚRMANÖÐÓ¦Óñí»ò·ÖÇø»Ö¸´µÄÏÞÖÆºÍÔ¼Êø£º
SYSÓû§±í»ò·ÖÇøÎÞ·¨»Ö¸´
´æ´¢ÓÚSYSAUXºÍSYSTEM±í¿Õ¼äϵıíºÍ·ÖÇøÎÞ·¨»Ö¸´
µ±REMAPÑ¡ÏîÓÃÀ´»Ö¸´µÄ±í°üº¬NOT NULLÔ¼ÊøÊ±£¬»Ö¸´´Ë±íÊDz»¿ÉÐеÄ
10. ÏÞÖÆPGAµÄ´óС
ÔÚOracle 12c R1֮ǰ£¬Ã»ÓÐÑ¡Ïî¿ÉÒÔÓÃÀ´ÏÞÖÆºÍ¿ØÖÆPGAµÄ´óС¡£ËäÈ»ÄãÉèÖÃij¸ö´óСΪPGA_AGGREGATE_TARGET
µÄ³õʼ²ÎÊý£¬Oracle»á¸ù¾Ý¹¤×÷¸ºÔغÍÐèÇóÀ´¶¯Ì¬µØÔö´ó»ò¼õСPGAµÄ´óС¡£¶øÔÚ12cÖУ¬Äã¿ÉÒÔͨ¹ý¿ªÆô×Ô¶¯PGA¹ÜÀíÀ´¶ÔPGAÉ趨ӲÐÔÏÞÖÆ£¬Õâ
ÐèÒª¶ÔPGA_AGGREGATE_LIMIT ²ÎÊý½øÐÐÉèÖá£Òò´Ë£¬ÄãÏÖÔÚ¿ÉÒÔͨ¹ýÉèÖÃеIJÎÊýÀ´¶ÔPGAÉ趨ӲÐÔÏÞÖÆÒÔ±ÜÃâ¹ý¶ÈʹÓÃPGA¡£
1 SQL> ALTER SYSTEM SET PGA_AGGREGATE_LIMIT=2G; 2 SQL> ALTER SYSTEM SET PGA_AGGREGATE_LIMIT=0; --disables the hard limit |
ÖØÒªÌáʾ:£º
µ±³¬¹ýÁ˵±Ç°PGAµÄÏÞÖÆ£¬Oracle»á×Ô¶¯ÖÕÖ¹/ÖÐÖ¹»á»°»ò½ø³ÌÒÔ±£³Ö×îºÏÊʵÄPGAÄÚ´æ¡£
11. ¶Ô±í·ÖÇøÎ¬»¤µÄÔöÇ¿
ÎÒ½âÊÍÁËÈçºÎÔÚÏß»òÊÇÀëÏß״̬ÏÂÇ¨ÒÆÒ»¸ö±í·ÖÇø»ò×Ó·ÖÇøµ½ÁíÒ»¸ö²»Í¬µÄ±í¿Õ¼ä¡£ÔÚ±¾ÎÄÖУ¬Ö÷Òª½éÉܱí·ÖÇøÆäËû·½ÃæµÄ¸Ä½ø¡£
Ìí¼Ó¶à¸öзÖÇø
ÔÚOracle 12c R1֮ǰ£¬Ò»´ÎÖ»¿ÉÄÜÌí¼ÓÒ»¸öзÖÇøµ½Ò»¸öÒÑ´æÔڵķÖÇø±í¡£ÒªÌí¼ÓÒ»¸öÒÔÉϵÄзÖÇø£¬ÐèÒª¶Ôÿ¸öзÖÇø¶¼µ¥¶ÀÖ´ÐÐÒ»´ÎALTER
TABLE ADD PARTITIONÓï¾ä¡£¶øOracle 12cÖ»ÐèҪʹÓÃÒ»Ìõµ¥¶ÀµÄALTER
TABLE ADD PARTITION ÃüÁî¾Í¿ÉÒÔÌí¼Ó¶à¸öзÖÇø£¬ÕâÔö¼ÓÁËÊý¾Ý¿âÁé»îÐÔ¡£ÒÔÏÂʾÀý˵Ã÷ÁËÈçºÎÌí¼Ó¶à¸öзÖÇøµ½ÒÑ´æÔڵķÖÇø±í£º
1 SQL> CREATE TABLE emp_part 2 (eno number(8), ename varchar2(40), sal number (6)) 3 PARTITION BY RANGE (sal) 4 (PARTITION p1 VALUES LESS THAN (10000), 5 PARTITION p2 VALUES LESS THAN (20000), 6 PARTITION p3 VALUES LESS THAN (30000) 7 ); |
Ìí¼ÓÁ½¸öзÖÇø£º
1 SQL> ALTER TABLE emp_part ADD PARTITION 2 PARTITION p4 VALUES LESS THAN (35000), 3 PARTITION p5 VALUES LESS THAN (40000); |
ͬÑù£¬Ö»ÒªMAXVALUE·ÖÇø²»´æÔÚ£¬Äã¾Í¿ÉÒÔÌí¼Ó¶à¸öзÖÇøµ½Ò»¸öÁбíºÍϵͳ·ÖÇø±í¡£
ÈçºÎɾ³ýºÍ½Ø¶Ï¶à¸ö·ÖÇø/×Ó·ÖÇø
×÷ ΪÊý¾Ýά»¤µÄÒ»²¿·Ö£¬DBAͨ³£»áÔÚÒ»¸ö·ÖÇø±íÉϽøÐÐɾ³ý»ò½Ø¶Ï·ÖÇøµÄά»¤ÈÎÎñ¡£ÔÚ12c R1֮ǰ£¬¶ÔÓÚÒ»¸öÒÑ´æÔڵķÖÇø±íÒ»´ÎÖ»¿ÉÄÜɾ³ý»ò½Ø¶ÏÒ»¸ö·ÖÇø¡£¶ø¶ÔÓÚOracle
12c£¬ ¿ÉÒÔÓõ¥ÌõALTER TABLE table_name {DROP|TRUNCATE}
PARTITIONSÃüÁîÀ´³·Ïú»òºÏ²¢¶à¸ö·ÖÇøºÍ×Ó·ÖÇø¡£
ÏÂÀý˵Ã÷ÁËÈçºÎÔÚÒ»¸öÒÑ´æÔÚ·ÖÇø±íÉÏɾ³ý»ò½Ø¶Ï¶à¸ö·ÖÇø£º
1 SQL> ALTER TABLE emp_part DROP PARTITIONS p4,p5; 2 SQL> ALTER TABLE emp_part TRUNCATE PARTITONS p4,p5; |
Òª±£³ÖË÷Òý¸üУ¬Ê¹ÓÃUPDATE INDEXES»òUPDATE GLOBAL INDEXESÓï¾ä£¬ÈçÏÂËùʾ£º
1 SQL> ALTER TABLE emp_part DROP PARTITIONS p4,p5 UPDATE GLOBAL INDEXES; 2 SQL> ALTER TABLE emp_part TRUNCATE PARTITIONS p4,p5 UPDATE GLOBAL INDEXES; |
Èç¹ûÄãÔÚ²»Ê¹ÓÃUPDATE GLOBAL INDEXES Óï¾äµÄÇé¿öÏÂɾ³ý»ò½Ø¶ÏÒ»¸ö·ÖÇø£¬Äã¿ÉÒÔÔÚUSER_INDEXES»òUSER_IND_PARTITIONS
×ÖµäÊÓͼϲéѯORPHANED_ENTRIES ×Ö¶ÎÒÔÕÒ³öÊÇ·ñÓÐË÷Òý°üº¬ÈκεĹýÆÚÌõÄ¿¡£
½«µ¥¸ö·ÖÇø·Ö¸îΪ¶à¸öзÖÇø
ÔÚ12cÖÐÐÂÔöÇ¿µÄSPLIT PARTITION Óï¾ä¿ÉÒÔÈÃÄãֻʹÓÃÒ»¸öµ¥¶ÀÃüÁһ¸öÌØ¶¨·ÖÇø»ò×Ó·ÖÇø·Ö¸îΪ¶à¸öзÖÇø¡£ÏÂÀý˵Ã÷ÁËÈçºÎ½«Ò»¸ö·ÖÇø·Ö¸îΪ¶à¸öзÖÇø£º
01 SQL> CREATE TABLE emp_part 02 (eno number(8), ename varchar2(40), sal number (6)) 03 PARTITION BY RANGE (sal) 04 (PARTITION p1 VALUES LESS THAN (10000), 05 PARTITION p2 VALUES LESS THAN (20000), 06 PARTITION p_max (MAXVALUE) 07 ); 08 SQL> ALTER TABLE emp_part SPLIT PARTITION p_max INTO 09 (PARTITION p3 VALUES LESS THAN (25000), 10 PARTITION p4 VALUES LESS THAN (30000), PARTITION p_max); |
½«¶à¸ö·ÖÇøºÏ²¢ÎªÒ»¸ö·ÖÇø
Äã¿ÉÒÔʹÓõ¥ÌõALTER TBALE MERGE PARTITIONS Óï¾ä½«¶à¸ö·ÖÇøºÏ²¢ÎªÒ»¸öµ¥¶À·ÖÇø£º
01 SQL> CREATE TABLE emp_part 02 (eno number(8), ename varchar2(40), sal number (6)) 03 PARTITION BY RANGE (sal) 04 (PARTITION p1 VALUES LESS THAN (10000), 05 PARTITION p2 VALUES LESS THAN (20000), 06 PARTITION p3 VALUES LESS THAN (30000), 07 PARTITION p4 VALUES LESS THAN (40000), 08 PARTITION p5 VALUES LESS THAN (50000), 09 PARTITION p_max (MAXVALUE) 10 ); 11 SQL> ALTER TABLE emp_part MERGE PARTITIONS p3,p4,p5 INTO PARTITION p_merge; |
Èç¹û·ÖÇø·¶Î§ÐγÉÐòÁУ¬Äã¿ÉÒÔʹÓÃÈçÏÂʾÀý£º
1 SQL> ALTER TABLE emp_part MERGE PARTITIONS p3 TO p5 INTO PARTITION p_merge; |
12. Êý¾Ý¿âÉý¼¶¸Ä½ø
ÿµ±Ò»¸öеÄOracle°æ±¾·¢²¼£¬DBAËùÒªÃæÁÙµÄÌôÕ½¾ÍÊÇÉý¼¶¹ý³Ì¡£¸Ã²¿·ÖÎÒ½«½éÉÜ12cÖÐÒýÈëµÄÕë¶ÔÉý¼¶µÄÁ½¸ö¸Ä½ø¡£
Ô¤Éý¼¶½Å±¾
ÔÚ12c R1ÖУ¬ÔÓеÄutlu[121]s.sql ½Å±¾ÓÉÒ»¸ö´óΪ¸ÄÉÆµÄÔ¤Éý¼¶ÐÅÏ¢½Å±¾preupgrd.sqlËùÈ¡´ú¡£³ýÁËÔ¤Éý¼¶¼ì²éÑéÖ¤£¬´Ë½Å±¾»¹ÄÜÒÔÐÞ¸´½Å±¾µÄÐÎʽ½â¾öÔÚÉý¼¶¹ý³Ìǰºó³öÏֵĸ÷ÖÖÎÊÌâ¡£
¿É ÒÔ¶Ô²úÉúµÄÐÞ¸´½Å±¾¼ÓÒÔÖ´ÐÐÀ´½â¾ö²»Í¬¼¶±ðµÄÎÊÌ⣬ÀýÈ磬ԤÉý¼¶ºÍÉý¼¶ºóµÄÎÊÌâ¡£µ±ÊÖ¶¯Éý¼¶Êý¾Ý¿âʱ£¬½Å±¾±ØÐëÔÚʵ¼ÊÉý¼¶¹ý³Ì³õʼ»¯Ö®Ç°¼ÓÒÔÊÖ¶¯Ö´ÐС£È»
¶ø£¬µ±Ê¹ÓÃDBUA¹¤¾ßÀ´½øÐÐÊý¾Ý¿âÉý¼¶Ê±£¬Ëü»á½«Ô¤Éý¼¶½Å±¾×÷ΪÉý¼¶¹ý³ÌµÄÒ»²¿·Ö¼ÓÒÔ×Ô¶¯Ö´ÐУ¬¶øÇÒ»áÌáʾÄãÈ¥Ö´ÐÐÐÞ¸´½Å±¾ÒÔ·ÀÖ¹±¨´í¡£
ÈçºÎÖ´Ðнű¾£º
1 SQL> @$ORACLE_12GHOME/rdbms/admin/preupgrd.sql |
ÒÔÉϽű¾»á²úÉúÒ»·ÝÈÕÖ¾ÎļþÒÔ¼°Ò»¸ö[pre/post]upgrade_fixup.sql ½Å±¾¡£ËùÓÐÕâЩÎļþ¶¼Î»ÓÚ$ORACLE_BASE/cfgtoollogs
Ŀ¼Ï¡£ÔÚÄã¼ÌÐøÕæÕýµÄÉý¼¶¹ý³Ì֮ǰ£¬ÄãÓ¦¸Ãä¯ÀÀÈÕÖ¾ÎļþÖÐËùÌáµ½µÄ½¨Òé²¢Ö´Ðнű¾ÒÔÐÞ¸´ÎÊÌâ¡£
×¢Ò⣺ÄãҪȷ±£½«preupgrd.sqlºÍutluppkg.sql ½Å±¾´Ó12c OracleµÄĿ¼home/rdbms/admin
directory¿½±´ÖÁµ±Ç°µÄOracleµÄdatabase/rdbms/admin·¾¶¡£
²¢ÐÐÉý¼¶¹¦ÄÜ
Êý¾Ý¿âÉý¼¶Ê±¼äµÄ³¤¶ÌÈ¡¾öÓÚÊý¾Ý¿âÉÏËùÅäÖõÄ×é¼þÊýÁ¿£¬¶ø²»ÊÇÊý¾Ý¿âµÄ´óС¡£ÔÚ֮ǰµÄ°æ±¾ÖУ¬ÎÒÃÇÊÇÎÞ·¨²¢ÐÐÔËÐÐÉý¼¶³ÌÐò£¬´Ó¶ø¿ìËÙÍê³ÉÕû¸öÉý¼¶¹ý³ÌµÄ¡£
ÔÚ12c R1ÖУ¬ÔÓеÄcatupgrd.sql ½Å±¾ÓÉcatctl.pl ½Å±¾(²¢ÐÐÉý¼¶¹¦ÄÜ)Ìæ´ú£¬ÏÖÔÚÎÒÃÇ¿ÉÒÔ²ÉÓò¢ÐÐģʽÔËÐÐÉý¼¶³ÌÐòÁË¡£
ÒÔÏÂÁ÷³Ì˵Ã÷ÁËÈçºÎ³õʼ»¯²¢ÐÐÉý¼¶¹¦ÄÜ(3¸ö¹ý³Ì);ÄãÐèÒªÔÚÉý¼¶Ä£Ê½ÏÂÔÚÆô¶¯Êý¾Ý¿âºóÔËÐÐÕâÒ»½Å±¾
1 cd $ORACLE_12_HOME/perl/bin 2 $ ./perl catctl.pl ¨Cn 3 -catupgrd.sql |
ÒÔÉÏÁ½¸ö²½ÖèÐèÒªÔÚÊÖ¶¯Éý¼¶Êý¾Ý¿âʱÔËÐС£¶øDBUAÒ²¼Ì³ÐÁËÕâÁ½¸öб仯¡£
13. ͨ¹ýÍøÂç»Ö¸´Êý¾ÝÎļþ
ÔÚ12c R1ÖÐÁíÒ»¸öÖØÒªµÄÔöÇ¿ÊÇ£¬ÄãÏÖÔÚ¿ÉÒÔÔÚÖ÷Êý¾Ý¿âºÍ±¸ÓÃÊý¾Ý¿âÖ®¼äÓÃÒ»¸ö·þÎñÃûÖØÐ»ñµÃ»ò»Ö¸´Êý¾ÝÎļþ¡¢¿ØÖÆÎļþ¡¢²ÎÊýÎļþ¡¢±í¿Õ¼ä»òÕû¸öÊý¾Ý¿â¡£Õâ¶ÔÓÚͬ²½Ö÷Êý¾Ý¿âºÍ±¸ÓÃÊý¾Ý¿â¼«ÎªÓÐÓá£
µ± Ö÷Êý¾Ý¿âºÍ±¸ÓÃÊý¾Ý¿âÖ®¼ä´æÔÚÏ൱´óµÄ²îÒìʱ£¬Äã²»ÔÙÐèÒª¸´ÔÓµÄǰ¹öÁ÷³ÌÀ´Ìî²¹ËüÃÇÖ®¼äµÄ²îÒì¡£RMANÄܹ»Í¨¹ýÍøÂçÖ´Ðб¸Óûָ´ÒÔ½øÐÐÔöÁ¿±¸·Ý£¬²¢ÇÒ¿É
ÒÔ½«ËüÃÇÓ¦Óõ½ÎïÀí±¸ÓÃÊý¾Ý¿â¡£Äã¿ÉÒÔÓ÷þÎñÃûÖ±½Ó½«ËùÐèÊý¾ÝÎļþ´Ó±¸Óõ㿽±´ÖÁÖ÷Õ¾£¬ÕâÊÇΪÁË·ÀÖ¹Ö÷Êý¾Ý¿âÉÏÊý¾ÝÎļþ¡¢±í¿Õ¼äµÄ¶ªÊ§£¬»òÊÇûÓÐÕæÕý´Ó±¸
·Ý¼¯»Ö¸´Êý¾ÝÎļþ¡£
ÒÔÏÂÁ÷³ÌÑÝʾÁËÈçºÎÓôËй¦ÄÜÖ´ÐÐÒ»¸öǰ¹öÀ´¶Ô±¸ÓÃÊý¾Ý¿âºÍÖ÷Êý¾Ý¿â½øÐÐͬ²½£º
ÔÚÎïÀí±¸ÓÃÊý¾Ý¿âÉÏ£º
1 ¡¡./rman target "username/password@standby_db_tns as SYSBACKUP" 2 RMAN> RECOVER DATABASE FROM SERVICE primary_db_tns USING COMPRESSED BACKUPSET; |
ÒÔ ÉÏʾÀýʹÓñ¸ÓÃÊý¾Ý¿âÉ϶¨ÒåµÄprimary_db_tns Á¬½Ó×Ö·û´®Á¬½Óµ½Ö÷Êý¾Ý¿â£¬È»ºóÖ´ÐÐÁËÒ»¸öÔöÁ¿±¸·Ý£¬ÔÙ½«ÕâЩÔöÁ¿±¸·Ý´«ÊäÖÁ±¸ÓÃÄ¿µÄµØ£¬½Ó׎«Ó¦ÓÃÕâЩÎļþµ½±¸ÓÃÊý¾Ý¿âÀ´½øÐÐͬ²½¡£È»¶ø£¬ÐèҪȷ±£ÒѾ
¶Ôprimary_db_tns ½øÐÐÁËÅäÖ㬼´ÔÚ±¸·ÝÊý¾Ý¿â¶Ë½«ÆäÖ¸ÏòÖ÷Êý¾Ý¿â¡£
ÔÚÒÔÏÂʾÀýÖУ¬ÎÒ½«ÑÝʾһ¸ö³¡¾°Í¨¹ý´Ó±¸ÓÃÊý¾Ý¿â»ñÈ¡Êý¾ÝÎļþÀ´»Ö¸´Ö÷Êý¾Ý¿âÉ϶ªÊ§µÄÊý¾ÝÎļþ£º
ÔÚÖ÷Êý¾Ý¿âÉÏ£º
1 ./rman target "username/password@primary_db_tns as SYSBACKUP" 2 RMAN> RESTORE DATAFILE ¡®+DG_DISKGROUP/DBANME/DATAFILE/filename¡¯FROM SERVICE standby_db_tns; |
14. ¶ÔData PumpµÄÔöÇ¿
Data Pump°æ±¾ÓÐÁ˲»ÉÙÓÐÓõĸĽø£¬ÀýÈçÔÚµ¼³öʱ½«ÊÓͼת»»Îª±í£¬ÒÔ¼°ÔÚµ¼Èëʱ¹Ø±ÕÈÕÖ¾¼Ç¼µÈ¡£
¹Ø±ÕredoÈÕÖ¾µÄÉú³É
Data PumpÖÐÒýÈëÁËеÄTRANSFORMÑ¡ÏÕâ¶ÔÓÚ¶ÔÏóÔÚµ¼ÈëÆÚ¼äÌṩÁ˹رÕÖØ×öÉú³ÉµÄÁé»îÐÔ¡£µ±ÎªTRANSFORMÑ¡ÏîÖ¸¶¨ÁË
DISABLE_ARCHIVE_LOGGING Öµ£¬ÄÇôÔÚÕû¸öµ¼ÈëÆÚ¼ä£¬ÖØ×öÉú³É¾Í»á´¦ÓڹرÕ״̬¡£ÕâÒ»¹¦ÄÜÔÚµ¼Èë´óÐͱíʱ»º½âÁËѹÁ¦£¬²¢ÇÒ¼õÉÙÁ˹ý¶ÈµÄredo²úÉú£¬´Ó¶ø¼Ó¿ìÁ˵¼Èë¡£ÕâÒ»ÊôÐÔ»¹¿ÉÓ¦
Óõ½±íÒÔ¼°Ë÷Òý¡£ÒÔÏÂʾÀýÑÝʾÁËÕâÒ»¹¦ÄÜ£º
1 $ ./impdp directory=dpump dumpfile=abcd.dmp logfile=abcd.log TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y |
½«ÊÓͼת»»Îª±í
ÕâÊÇData PumpÖÐÁíÍâÒ»¸ö¸Ä½ø¡£ÓÐÁËVIEWS_AS_TABLES
Ñ¡ÏÄã¾Í¿ÉÒÔ½«ÊÓͼÊý¾ÝÔØÈë±íÖС£ÒÔÏÂʾÀýÑÝʾÁËÈçºÎÔÚµ¼³ö¹ý³ÌÖн«ÊÓͼÊý¾ÝÔØÈëµ½±íÖУº
1 $ ./expdp directory=dpump dumpfile=abcd.dmp logfile=abcd.log views_as_tables=my_view:my_table |
15. ʵʱ×Ô¶¯Êý¾ÝÕï¶Ï¼àÊÓÆ÷ (ADDM) ·ÖÎö
ͨ¹ýʹÓÃÖîÈçAWR¡¢ASHÒÔ¼°ADDMÖ®ÀàµÄ×Ô¶¯Õï¶Ï¹¤¾ßÀ´·ÖÎöÊý¾Ý¿âµÄ½¡¿µ×´¿ö£¬ÊÇÿ¸öDBAÈճ̹¤×÷µÄÒ»²¿·Ö¡£¾¡¹ÜÿÖÖ¹¤¾ß¶¼¿ÉÒÔÔÚ¶à¸ö²ãÃæºâÁ¿Êý¾Ý¿âµÄÕûÌ彡¿µ×´¿öºÍÐÔÄÜ£¬µ«Ã»ÓÐÄĸö¹¤¾ß¿ÉÒÔÔÚÊý¾Ý¿â·´Ó¦³Ù¶Û»òÊÇÍêÈ«¹ÒÆðµÄʱºòʹÓá£
µ±Êý¾Ý¿â·´Ó¦³Ù¶Û»òÊÇ¹ÒÆð״̬ʱ£¬¶øÇÒÄãÒѾÅäÖÃÁËOracle ÆóÒµ¹ÜÀíÆ÷ 12cµÄÔÆ¿ØÖÆ£¬Äã¾Í¿ÉÒÔ¶ÔÑÏÖØµÄÐÔÄÜÎÊÌâ½øÐÐÕï¶Ï¡£Õâ¶ÔÓÚÄãÁ˽⵱ǰÊý¾Ý¿â·¢ÉúÁËʲô״¿öÓкܴó°ïÖú£¬¶øÇÒ»¹Äܹ»¶Ô´ËÎÊÌâ¸ø³ö½â¾ö·½°¸¡£
ÒÔϲ½ÖèÑÝʾÁËÈçºÎÔÚOracle ÆóÒµ¹ÜÀíÆ÷ 12cÉÏ·ÖÎöÊý¾Ý¿â״̬£º
ÔÚ·ÃÎÊÊý¾Ý¿â·ÃÎÊÖ÷Ò³Ãæ´ÓPerformance²Ëµ¥Ñ¡ÔñEmergency Monitoring
Ñ¡Ïî¡£Õâ»áÏÔʾ¹ÒÆð·ÖÎö±íÖÐÅÅÃû¿¿Ç°µÄ×èÖ¹»á»°¡£
ÔÚPerformance²Ëµ¥Ñ¡ÔñReal-Time ADDM Ñ¡ÏîÀ´Ö´ÐÐʵʱADDM·ÖÎö¡£
ÔÚÊÕ¼¯ÁËÐÔÄÜÊý¾Ýºó£¬µã»÷Findings±êÇ©ÒÔ»ñµÃËùÓнá¹ûµÄ½»»¥×ܽᡣ
16. ͬʱÔÚ¶à¸ö±íÉÏÊÕ¼¯Í³¼ÆÊý¾Ý
ÔÚ Ö®Ç°µÄOracleÊý¾Ý¿â°æ±¾ÖУ¬µ±ÄãÖ´ÐÐÒ»¸öDBMS_STATS ³ÌÐòÀ´ÊÕ¼¯±í¡¢Ë÷Òý¡¢Ä£Ê½»òÕßÊý¾Ý¿â¼¶±ðµÄͳ¼ÆÊý¾Ýʱ£¬Oracleϰ¹ßÓÚÒ»´ÎÒ»¸ö±íµÄÊÕ¼¯Í³¼ÆÊý¾Ý¡£Èç¹û±íºÜ´ó£¬ÄÇÃ´ÍÆ¼öÄã²ÉÓò¢Ðз½Ê½¡£ÔÚ12c
R1ÖУ¬ÄãÏÖÔÚ¿ÉÒÔͬʱÔÚ¶à¸ö±í¡¢·ÖÇøÒÔ¼°×Ó·ÖÇøÉÏÊÕ¼¯Í³¼ÆÊý¾Ý¡£ÔÚÄ㿪ʼʹÓÃËü֮ǰ£¬Äã±ØÐë¶ÔÊý¾Ý¿â½øÐÐÒÔÏÂÉèÖÃÒÔ¿ªÆô´Ë¹¦ÄÜ£º
1 SQL> ALTER SYSTEM SET RESOURCE_MANAGER_PLAN='DEFAULT_MAIN'; 2 SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=4; 3 SQL> EXEC DBMS_STATS.SET_GLOBAL_PREFS('CONCURRENT', 'ALL'); 4 SQL> EXEC DBMS_STATS.GATHER_SCHEMA_STATS('SCOTT'); |