ORACLEɵ¹ÏÊÖ²á
To be DBA or not to be, that is NOT the question.---- Arron
×÷ÕßÔÊÐí×ÔÓÉÉ¢·¢´ËÎĵµ£¬µ«¶ÔÆä½øÐеÄÈκÎÐÞ¸ÄӦ֪ͨ×÷Õߣ¬ÒÔ±ãÓÚά»¤°æ±¾¡£
OracleÊÇһͷ¿ÖÁú£¬¶øÇÒËæ×Å°æ±¾ºÅµÄ²»¶ÏÉÏÉý£¬ÌåϵԽÀ´Ô½ÅӴ󣬹¦ÄÜÔ½À´Ô½¸´
ÔÓ£¬ÒÔÖÁÓÚ±ä³ÉÁËÒ»×ùżÏñ£¬Ê¹Ðí¶àIT¼¼ÊõÈËÔ±ÐÄ´æη¾å¡£È»¶øżÏñÖÕ¾¿ÊÇÒª´òËéµÄ£¬
¼¼ÊõµÄÉúÃüÁ¦Ö»ÓÐÔÚÈËÃñÐÄÖвÅÄÜÑÓÐø³É³¤¡£±ÊÕß´ÓʹýÒ»¶Îʱ¼äµÄOracleÊý¾Ý¿â¹ÜÀí
ºÍ¿ª·¢£¬Éî¸ÐOracleÎĵµËäÈ«£¬µ«¹ýÓÚËöËéÎßÔÓ£¬ÊµÓõľ«»ªÑÍûÓÚϸ½ÚÂÞÁеĴóº£Ö®
ÖУ¬²»ÄÜѸËÙÓÐЧµØͶÈëÓ¦Ó㬶øÇÒȱÉÙʵ¼ù¾ÑéµÄ×ܽᡣ¸ßÊÖÅ£ÈËÊèÓÚΪÎÄ£¬ÖªÊ¶ÓÉ
ÓÚûÓй²ÏíÁ÷´«¶ø²»ÄÜÆðµ½±¶ÔöµÄЧ¹û£¬ÁîÎҵȺ󱲲»µÃ²»ÖØÆð¯Ô²Òµ¾Óª£¬ÆÚ¼ä
µÄ¾Ñé½ÌѵËä¿É±¦¹ó£¬È´Êµ³öÎÞÄΡ£±ÊÕßËäÓÞ£¬Ô¸¾¡Á¦¶øΪ£¬¼¯Ë¼¹ãÒ棬ÀÛ»ý³ÉÎÄ¡£Ï£
ÍûÄܽèÖú´ó¼ÒµÄºÏÁ¦£¬½«ÓйØOracleµÄ֪ʶ»¯·±Îª¼ò£¬»¯ÉñÃØΪÆÕ¼°£¬´Ó¶øÌá¸ßÈí¼þÓ¦
ÓÃÏîÄ¿µÄˮƽ¡£
×÷ÕߣºÖÜÔÆ·É email£ºzhou_arron@163.com
Oracle8ÒÔ8.1.5Ϊ½ç·ÖΪÆÕͨ°æ±¾ºÍinternet°æ±¾¡£ÆÕͨ°æ°æ±¾ºÅ8.0.x£¬½Ó´¥½Ï¶àµÄÊÇ8.0.5£»internet°æ°æ±¾ºÅ°üÀ¨8.1.5£¨Release 1£©£¬8.1.6£¨Release 2£©£¬8.1.7£¨Release 3£©¡£ÆÕͨ°æ¼ò³ÆOracle 8£¬internet°æ¼ò³ÆOracle 8i¡£Èç¹û²»×÷Ìرð˵Ã÷£¬ÎÄÖз²³öÏÖOracle 8i¾ùÖ¸8.1.7°æ¡£
Oracle9iÄ¿Ç°³öµ½µÚ¶þ°æ£¬°æ±¾ºÅΪ9.2£¬¼ò³ÆOracle 9i¡£Èç¹û²»×÷Ìرð˵Ã÷£¬ÎÄÖз²³öÏÖOracle 9i¾ùÖ¸9.2°æ¡£
±¾ÊÖ²á½éÉÜOracleÅäÖõĻù±¾·½·¨£¬ÃèÊöµÄÊÇ"ËùÈ»"¶ø²»ÊÇ"ËùÒÔÈ»"¡£È«²¿²Ù×÷ÒÔÃüÁîÐз½Ê½³öÏÖ£¬²»Éæ¼°GUI£¨Ö»Óа×ÈÐÕ½²ÅÊÇÕæÕýµÄÕ½¶·£©¡£¼øÓÚ´ó¼Ò¶ÔWindowsÒѾʮ·ÖÊìϤ£¬Í¬Ê±ÎªÁ˱ÜÃâWindowsºÍUnixÁ½ÖÖ½ØÈ»²»Í¬µÄʹÓúͿª·¢·ç¸ñ¸øÃèÊö´øÀ´µÄ¸´ÔÓÐÔ£¬ËùÒÔ±¾Êֲ᲻½éÉÜÔÚWindowsÉϵÄOracle£¨Éϵ۵ĹéÉϵۣ¬âýÈöµÄ¹éâýÈö£©¡£
ÎÄÖÐËùÓÐÀý×ÓÒÔoradb×÷ΪÊý¾Ý¿âʵÀýÃû£¬Êý¾Ý¿âÓû§dbuser£¬¿ÚÁîoracle¡£Èç¹û²»×÷Ìرð˵Ã÷£¬¹ØÓÚOracle 8iËùÓеÄÀý×Ó¶¼ÔÚSolaris 8 Intel Platform+Oracle 8iR3ÉÏͨ¹ý£¬¹ØÓÚOracle 9iËùÓеÄÀý×Ó¶¼ÔÚRedHat Linux 7.3+Oracle 9iR2ÉÏͨ¹ý¡£¸½Â¼Îļþsample.tar°üº¬È«²¿Ê¾Àý£¬¼ò³Æ¸½Â¼¡£
´óÁ¿Ê¹Óñíemp×÷ΪÀý×Ó£¨²Î¼û¸½Â¼08_proc/proc/single/emp.sql£©£º
create table emp
(
no number(12) not null,
name char(20) not null,
age number(6) not null,
duty char(1) not null,
salary number(12) not null,
upd_ts date not null,
primary key (no)
);
¿ª·¢ÖжÔÓ¦emp±í½á¹¹£¬¶¨ÒåÆäËÞÖ÷½á¹¹£¨²Î¼û¸½Â¼08_proc/proc/single/db.h£©£º
typedef struct
{
double no;
char name[21];
int age;
char duty[2];
double salary;
char upd_ts[15];
} emp_t;
ÐÞ¸ÄÀúÊ·£º
2000/07 °æ±¾1.0
2000/09 °æ±¾1.1
Ôö¼ÓLinux°²×°£¬export,importʹÓã¬Êý¾Ý¿â¼à¿Ø¼°ÓÅ»¯£¨utlbstat,utlestat,·ÖÎösession£©£¬ÓïÑÔʱ¼ä»·¾³±äÁ¿ÉèÖã¬Oracle8.0.5ÊÖ¹¤½¨¿â½Å±¾£¨wei_dickÌṩ£¬ÉÔ¼ÓÐ޸ģ©
2000/10 °æ±¾1.2
ÐÞ¸ÄLinux°²×°ÖÐRedHat 6.x+Oracle 8.1.6¡¢Êý¾Ý¿âÓÅ»¯ÖÐÅäÖÃÎļþºÍsession·ÖÎö¡¢³£Óü¼ÇÉÖÐÏÂÔØÉÏ´«Îı¾Êý¾ÝºÍ·ÃÎÊËû»úÊý¾Ý¿â£»Ôö¼Ó´´½¨Êý¾Ý¿âʵÀýÖÐÊý¾Ý×Öµä²Î¿¼¡¢³£Óü¼ÇÉÖÐɾ³ýÈßÓà¼Ç¼¡¢Ó¦Óÿª·¢£¬³£¼û´íÎó
¸Ðлliu_freeman,jiao_julian,huang_milesµÈÈ˶Կª·¢¹¤¾ßËù×÷µÄŬÁ¦
2001/03 °æ±¾1.3
Ð޸ݲװ²¿·Ö¡¢init.oraÅäÖᢳ£Óü¼ÇÉ¡¢Ó¦Óÿª·¢£»Ôö¼ÓÊÖ¹¤½¨¿â¡¢MTSÅäÖã»ÖØд¿ª·¢¹¤¾ß
¸Ðлli_boµÄ´óÁ¦°ïÖú
2001/09 °æ±¾1.4
ÐÞ¸ÄÊý¾Ý¿âÓÅ»¯£¬Ê¹Ö®½Ïϵͳ»¯£»Ôö¼ÓÓ¦Óÿª·¢ÖжàÏß³ÌϵÄÊý¾Ý¿âÁ¬½Ó
2002/04 °æ±¾1.5
ÐÞ¸ÄÊý¾Ý¿âÓÅ»¯¡¢¶àÏß³ÌÌõ¼þÏÂÊý¾Ý¿â±à³Ì£»·ÖÀ븽¼µÄ³ÌÐò·¶Àý
2002/12 °æ±¾2.0
ÖØа²ÅÅÄÚÈÝ£¬Ôö¼ÓOracle 9i°²×°ÅäÖá¢OCI¿ª·¢¡¢mysql°²×°ÅäÖÿª·¢£¬²¹³äÊý¾Ý¿âÓÅ»¯¡¢PROC¿ª·¢
ORACLEɵ¹ÏÊÖ²á 1
1 °²×° 6
1.1 ͨÓÃÉèÖà 6
1.2 UnixWare7 7
1.2.1 Oracle 8 7
1.3 HP-UX 8
1.3.1 Oracle8 8
1.4 Linux 9
1.4.1 kernel 2.0 & glibc 2.0 9
1.4.2 kernel 2.2 & glibc 2.1 9
1.4.3 kernel 2.4 & glibc 2.2 10
1.5 Solaris 11
2 ´´½¨ 13
2.1 Oracle 8 & 8i 13
2.1.1 ¹¤¾ß´´½¨ 13
2.1.2 ÊÖ¹¤´´½¨ 13
2.1.3 MTS£¨multi-threaded server£© 14
2.1.4 µ÷ÕûÁÙʱ±í¿Õ¼ä 15
2.1.5 µ÷Õû»Ø¹ö±í¿Õ¼ä 15
2.1.6 µ÷ÕûÈÕÖ¾ 15
2.1.7 µ÷ÕûÓû§±í¿Õ¼ä 16
2.1.8 ´´½¨Óû§ 17
2.1.9 ´´½¨Êý¾Ý¶ÔÏó 17
2.1.10 ´´½¨Ö»¶ÁÓû§ 18
2.1.11 Æô¶¯¼°¹Ø±ÕÊý¾Ý¿âʵÀý 19
2.1.12 ÍøÂçÅäÖà 19
2.2 Oracle 9i 21
2.2.1 ÊÖ¹¤´´½¨ 21
2.2.2 ´´½¨Óû§±í¿Õ¼ä 22
3 ³õʼ»¯ÎļþÅäÖà 23
3.1 Oracle 8 & 8i 23
3.2 Oracle 9i 25
4 ¹¤¾ß 26
4.1 sqlldr 26
4.2 exp 27
4.3 imp 28
4.4 sqlplus 29
4.4.1 ÃüÁîÐвÎÊý 29
4.4.2 Ìáʾ·ûÃüÁî 29
4.4.3 SETÑ¡Ïî 30
4.4.4 Àý×Ó 30
5 ±¸·Ý¼°»Ö¸´ 32
5.1 exportÓëimport·½Ê½ 32
5.2 À䱸·Ý 32
5.3 Áª»úÈ«±¸·Ý+ÈÕÖ¾±¸·Ý 32
5.3.1 ÉèÖÃ 32
5.3.2 ²½Öè 33
5.3.3 »Ö¸´ 33
5.4 ×¢ÒâÒªµã 34
6 Êý¾Ý¿âÓÅ»¯ 35
6.1 ͨÓÃÉèÖà 35
6.1.1 Ó²¼þÅäÖÃ 35
6.1.2 Ó¦ÓÃÅäÖÃ 35
6.1.3 ÈÕ³£ÐÔÄܼà¿Ø 36
6.2 ʵս·ÖÎö 36
6.2.1 ×ÜÌå·ÖÎö 37
6.2.2 Ïêϸ·ÖÎö 37
6.3 רÌâ·ÖÎö 39
6.3.1 ¾Þ±í²éѯ 39
6.3.2 ¶Ô±È²âÊÔ 41
6.3.3 ÉÏÏÂÔØÊý¾Ý 44
6.3.4 »Ø¹ö¿Õ¼ä¿ìÕճ¾ɣ¨snapshot too old£© 46
7 ³£Óü¼ÇÉ 48
7.1 Ôö¼Ó¡¢¸ü¸ÄºÍɾ³ýÓò 48
7.2 ɾ³ýÈßÓà¼Ç¼ 49
7.3 ¸ü¸Ä×Ö·û¼¯ 49
7.4 ±íÊý¾ÝǨÒÆ 50
7.5 ³ÉÅúÉú³ÉÊý¾Ý 50
7.6 ×¢ÒâÒªµã 51
8 ǶÈëʽSQL£¨C£© 53
8.1 ±àÒë 53
8.2 SQLÓï¾ä 54
8.2.1 ÄÚ²¿ÀàÐÍÓëËÞÖ÷ÀàÐͶÔÓ¦ 54
8.2.2 Á¬½ÓºÍ¶Ï¿ª 54
8.2.3 ÊÂÎñ 55
8.2.4 ±ê×¼SQLÓï¾ä 55
8.2.5 ¶¯Ì¬SQLÓï¾ä 55
8.2.6 Êý×é²Ù×÷ 56
8.3 ±à³Ì¿ò¼Ü 58
8.3.1 ×ÜÌåÔÔò 58
8.3.2 µ¥Ï̺߳ͶàÏß³Ì 59
8.3.3 ¿ª·¢¹¤¾ß 60
9 OCI-Oracle Call Interface 61
9.1 Á¬½ÓºÍ¶Ï¿ª 61
9.1.1 ¾ä±ú²ã´Î 61
9.1.2 Á¬½ÓÁ÷³Ì 61
9.1.3 ¶Ï¿ªÁ÷³Ì 62
9.2 SQLÓï¾ä 62
9.2.1 ÊÂÎñ 62
9.2.2 ÎÞ½á¹û¼¯µÄsqlÓï¾ä 63
9.2.3 Óнá¹û¼¯µÄsqlÓï¾ä 63
9.2.4 LOB 65
9.3 ±à³Ì¿ò¼Ü 67
9.3.1 ×ÜÌåÔÔò 67
9.3.2 sqlÓï¾ä 68
9.3.3 º¯Êý 69
10 ¸½Â¼-MYSQL 72
10.1 °²×°ÅäÖÃ 72
10.2 ¹ÜÀí 72
10.2.1 ³õʼµ÷Õû 72
10.2.2 ½¨Á¢Óû§¶ÔÏó 73
10.3 ¿ª·¢ 73
10.3.1 Á¬½ÓºÍ¶Ï¿ª 73
10.3.2 ÎÞ½á¹û¼¯µÄsqlÓï¾ä 74
10.3.3 Óнá¹û¼¯µÄsql 74
10.3.4 ´íÎó´¦Àí 75
1 °²×°
ËùÓвμûÄÚÈݶ¼ÔÚ¸½¼þ01_install_02_create_03_init/Ï¡£
1.1 ͨÓÃÉèÖÃ
Îļþϵͳswap
´´½¨ÎļþϵͳʱӦ¿¼ÂÇOracle¶ÔswapµÄÐèÒª£¬´óԼÿ¸öoracle·þÎñ½ø³Ì½«Õ¼ÓÃ10-20Mswap¿Õ¼ä£¬Í¨³£²Ù×÷ϵͳ½¨Òé2±¶ÓÚÄÚ´æµÄswap¿Õ¼ä£¬Êý¾Ý¿âϵͳ¿ÉÄÜÒªÇó¸ü¶àЩ¡£
²Ù×÷ϵͳÓû§ºÍ»·¾³±äÁ¿
OracleÎĵµÒªÇóΪÊý¾Ý¿âϵͳµÄ¹ÜÀíºÍʹÓý¨Á¢3¸ö»ò¸ü¶àµÄ×飬µ«Õâ¸öÐèÇóÊÇ¿ÉÒÔºöÂԵģ¬Êµ¼ùÖв¢Ã»ÓÐÌåÏÖÆä±ØÒªÐÔ¡£Îª¼ò»¯²Ù×÷Æð¼û£¬Ö»½¨Á¢dba×飬¼´ÓµÓиüÐÂÈí¼þºÍ¹ÜÀí×î¸ßȨÏÞ£¨SYSDBA£©µÄ²Ù×÷ϵͳÓû§×飬´Ë×é³ÆΪOSDBA£¬ÊôÓÚ´Ë×éµÄÓû§¿ÉÒÔSYSDBAÉí·ÝµÇ¼½øÈκÎÒ»¸öÊý¾Ý¿âʵÀý£¬¼òµ¥µÄ£¬Ö»½¨Á¢Ò»¸öÓû§£¬Ï°¹ßÉÏʹÓÃoracleµÄÃû³Æ¡£
$ groupadd dba
$ useradd -g dba -d /home/oracle -m -s /bin/bash oracle
È·¶¨oracle ϵͳµÄ¸ùĿ¼ORACLE_BASE£¬Èç/opt/oracle£¬ËùÓеÄÈí¼þºÍÅäÖö¼ÔÚÕâ¸öĿ¼ÏÂÕ¹¿ª£¬ËäÈ»²¢·ÇÒ»¶¨ÐèÒªÈç´Ë£¬µ«ÕâÊÇÒ»¸öÁ¼ºÃµÄÏ°¹ß¡£Í¬Ê±È·¶¨Èí¼þ°²×°µÄÆðʼµãORACLE_HOME£¬Í¨³£ÔÚORACLE_BASEÏ¡£
ÐÞ¸ÄoracleÓû§µÄ.profile,¼ÓÈëÒÔϸ÷ÐУ¬»òÕßÐÞ¸Ä/etc/profile£¬Ê¹Ã¿Ò»¸öÓû§¶¼»ñµÃ»·¾³±äÁ¿ÉèÖÃ
umask 022
ORACLE_BASE=/opt/oracle
ORACLE_HOME=$ORACLE_BASE/product/{°æ±¾ºÅ}£¨Èç8.0.5,8.1.7,9.2.0µÈ£©
ORACLE_SID=oradb
ORACLE_TERM=ansi ££½öÓëOracle8×Ö·û½çÃæ°²×°ÓйØ
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data ££×Ö·û¼¯Ö§³Ö
NLS_LANG=American_America.{ZHS16CGB231280(Oracle8Ö§³Ö)|ZHS16GBK(Oracle8iÖ§³Ö)|ZHS16GB18030(Oracle9iÖ§³Ö)}
NLS_DATE_FORMAT=YYYYMMDDHH24MISS
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH ££¶¯Ì¬Á¬½Ó·¾¶£¬UnixwareÖÐҪȷ±£/usr/ucb/libÔÚ/usr/ccs/libÖ®ºó³öÏÖ
TMPDIR=/tmp ££°²×°ÖÐOracle»áÔÚ´ËĿ¼Ï´洢Ï൱ÊýÁ¿µÄÎļþ£¬ËùÒÔTMPDIRËùÔڵĴÅÅÌ·ÖÇøҪȷ±£¿ÕÏпռäµÄ´óС£¬ÖÁÉÙÔÚ1G×óÓÒ
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID ORACLE_TERM ORA_NLS33 NLS_LANG NLS_DATE_FORMAT LD_LIBRARY_PATH TMPDIR
²Î¼ûprofile¡£
×¢Ò⣺
NLS_LANG=American_America.ZHS16CGB231280(ZHS16GBK)
"American"Ö¸ÏÔʾÐÅϢʱËùÓõÄÓïÑÔ£¬ÇÔÒÔΪƾ´ó¼ÒµÄÓ¢Óïˮƽ×ã¹»Ó¦¸¶£¬Èç¸ÄΪSIMPLIFIED CHINESE£¬ÔÚ²»´øÖÐÎÄÖ§³ÖµÄÖÕ¶ËÉϾÍûÈËÄÜ¿´¶®ÁË¡£
"America"Ö¸µØÇø
"ZHS16CGB231280"Ö¸Client¹¤¾ßʹÓõÄ×Ö·û¼¯£¬Ò»°ãʹÓÃ"ZHS16CGB231280"£¬Oracle8iÒÑÖ§³Öµ½"ZHS16GBK"
NLS_DATE_FORMAT=YYYYMMDDHH24MISS
OracleµÄdateÀàÐ͹ýÓÚÁé»î£¬ÎªÍ³Ò»Ê±¼ä¸ñʽ£¬ÀûÓÚ±à³Ì£¬Ó¦½«Ê±¼äµÄÊäÈëÊä³ö¸ñʽÏÞ¶¨Îª14λ×Ö·û´®£¬Èç"20000101235959"
¾ÝoracleÎĵµ£¬´Ë²ÎÊý¿É°´ÕÕsession,²Ù×÷ϵͳÓû§»·¾³£¬init.oraÓɸߵ½µÍµÄÓÅÏȼ¶Ë³ÐòÉèÖã¬ÒÀ´Î¸²¸Ç¡£
Ïà¹Øϵͳ±í£º
v$nls_parameters v$nls_valid_values
X-Window
Oracle 8µÄ°²×°³ÌÐòÊǹâÅÌmountµã/bin/orainst£¬Ê¹ÓÃ×Ö·û½çÃ棬²»Óÿ¼ÂÇX-Window¡£
Oracle 8iºÍ9iʹÓùâÅÌmountµã/runInstaller½øÐа²×°£¬ËüÊÇÓÃJava±àдµÄͼÐνçÃ棬¶ÔÖÐÎÄ´¦ÀíÓÐÎÊÌ⣬ËùÒÔÓ¦ÔÚ½øÈëX-WindowÇ°È·±£ÓïÑÔ£¨LANG£©ºÍµØÓò£¨LC_ALL,LC_TYPE,¡£©»·¾³±äÁ¿²»ÊÇÖÐÎÄ¡£
LANG=C
LC_ALL=C
°²×°Ñ¡Ïî
Oracle 8iµÄÖ÷ÒªÈí¼þ°üÔÚ°²×°Ñ¡ÏîEnterpriseÖУ¬µ«²¢²»°üÀ¨proc£¬±ØÐë½øÐеڶþ´Î°²×°£¬¿ÉÑ¡Ôñ°²×°Ñ¡ÏîClientÖеÄprogrammer¡£
Oracle 9iµÄÖ÷ÒªÈí¼þ°üÔÚ°²×°Ñ¡ÏîEnterprise°²×°Ñ¡ÏîÖУ¬µ«²¢²»°üÀ¨proc£¬±ØÐë½øÐеڶþ´Î°²×°£¬Ò»¶¨ÒªÑ¡Ôñ°²×°Ñ¡ÏîClientÖеÄAdministrator¡£runInstallerµÄÎȶ¨ÐÔÇ·¼Ñ£¬½¨Òéÿ´Î°²×°½áÊøºó£¬ÏÈÍ˳ö£¬ÔÙ½øÐÐÏÂÒ»´Î°²×°¡£
1.2 UnixWare7
1.2.1 Oracle 8
È·ÈϲÙ×÷ϵͳµÄ½»»»·ÖÇøswap²»ÉÙÓÚ350M
ÈÏΪ¸Ã´òµÄ²¹¶¡Í³Í³´òÉÏ£¬ÄþÀÄÎãȱ¡£UnixWare7.0.1±ØÐë´òµÄ²¹¶¡Îªptf7033,ptf7051,ptf7052,ptf7068,ptf7096¡£
½«/etc/default/loginÖеÄulimitÉèΪ´óÓÚ2113674£¨ÉÔ´óÒ»µã¼´¿É£¬Ì«´ó»áÓÐÎÊÌ⣩
½«/etc/conf/node.d/asyncÖеÄ600¸ÄΪ666
ÐÞ¸ÄÒÔϺËÐIJÎÊý
ºËÐIJÎÊý ±ØÐèÖµ ½âÊÍ
SHMMAX 2147483647 ¹²ÏíÄÚ´æ¶Î×î´ó³ß´ç
SHMMNI 100 ϵͳ¹²ÏíÄÚ´æ¶Î±êʶ×î´óÊýÄ¿
SHMSEG 15 ÿ¸ö½ø³ÌËùÄÜʹÓÃ×î´ó¹²ÏíÄÚ´æ¶ÎÊýÄ¿
SEMMNI 100 ºËÐÄÐźÅÁ¿±êʶ×î´óÊýÄ¿
SEMMSL 150 ÿ¸öÐźÅÁ¿±êʶ°üº¬µÄÐźÅÁ¿¸öÊý
SCORLIM 0X7FFFFFFF CoreÎļþ×î´ó³ß´ç
HCORLIM 0X7FFFFFFF
SDATLIM 0X7FFFFFFF ½ø³Ì¶Ñ×î´ó³ß´ç
HDATLIM 0X7FFFFFFF
SVMMLIM 0X7FFFFFFF ½ø³Ì×î´óÓ³ÉäµØÖ·
HVMMLIM 0X7FFFFFFF
SFSZLIM 0X7FFFFFFF ½ø³ÌÎļþ×î´óÆ«ÒÆÁ¿
HFSZLIM 0X7FFFFFFF
SFNOLIM 128 ½ø³ÌÄÜ´ò¿ªµÄ×î´óÎļþ¸öÊý
HFNOLIM 2048
NPROC 20+(8*MAXUSERS) MAX:125000
ARG_MAX 1,048,576
NPBUF 100 I/O»º³åÇøÊýÄ¿
MAXUP 1000 Óû§Í¬Ê±Ê¹ÓõÄ×î´ó½ø³Ì¸öÊý
STRTHRESH 0X500000 Á÷ÄÜʹÓõÄ×î´ó×Ö½ÚÊý
ΪÓÅ»¯Ó¦ÓÃϵͳÐÞ¸ÄÒÔϺËÐIJÎÊý
ºËÐIJÎÊý ²Î¿¼Öµ ½âÊÍ
MSGMAX 8192 ÏûÏ¢×î´ó³ß´ç
MSGMNB 81920 ÏûÏ¢¶ÓÁгߴç
MSGMNI 2048 ϵͳÄܲ¢´æµÄ×î´óÏûÏ¢¶ÓÁÐÊýÄ¿
MSGSSZ 16384
MSGTQL 4096 ϵͳÄܲ¢ÓõÄÏûϢͷÊýÄ¿
SEMMNI 1024
SEMMSL 150
Ò²¿Éͨ¹ý±à¼/etc/conf/cf.d/stune´ïµ½Í¬ÑùЧ¹û
ÖØÐÂÁ¬½ÓÄÚºË,ÖØÆð»òÔËÐÐ/etc/conf/bin/idbuild -B
Ð޸ĺËÐIJÎÊýSEMMAPʱ,×¢ÒâҪͬʱÐÞ¸Ä/etc/conf/mtune.d/ipcÖÐÏàÓ¦µÄMAXÖµ
½¨Á¢/var/opt/oracle,ʹoracle³ÉΪ´ËĿ¼ÊôÖ÷
mount oracle¹âÅÌ,ͨ³£mountĿ¼Ϊ/SD-CDROM_1
rootÓû§,ORACLE_OWNER=oracle,Ö´ÐйâÅÌÉÏorainstÖÐoratab.sh,½¨Á¢/var/opt/oracle/oratab
°²×°Ê±,Ñ¡custom·½Ê½,°²×°Ê±²»½¨Á¢Êý¾Ý¿â,×Ö·û¼¯¿ÉÑ¡Simplified Chinese
1.3 HP-UX
1.3.1 Oracle 8
Á÷³Ì´óÖÂÓëunixwareÏàͬ£¬µ÷Õûkernel²ÎÊý¿Éͨ¹ýsam£¬Ñ¡Ôñ/Kernel Configuration/Actions/Apply Tuned Parameter Set/OLTP Database Server System£¬ÁíÍâΪÌá¸ßI/OÄÜÁ¦£¬»¹Ðèµ÷ÕûÒÔϲÎÊý£º
ºËÐIJÎÊý ²Î¿¼Öµ ½âÊÍ
bufpages 61992 »º³åÒ³
dbc_max_pct 10 ¶¯Ì¬»º´æÕ¼ÄÚ´æ×î´ó°Ù·Ö±È
dbc_min_pct 10 ¶¯Ì¬»º´æÕ¼ÄÚ´æ×îС°Ù·Ö±È
nbuf
É趨¹²Ïí¿âĿ¼SHLIB_PATH£¬²»ÊÇLD_LIBRARY_PATH
SHLIB_PATH=$SHLIB_PATH:$ORACLE_HOME/lib;export SHLIB_PATH
1.4 Linux
1.4.1 kernel 2.0 & glibc 2.0
´ú±í²úƷΪRed Hat Linux 5.1¡£
Oracle 8ÔÚRedHat5.1ÉÏÄܳɹ¦°²×°£¬°²×°Èí¼þ°üΪ805ship.tgz
Ò»°ã²»»áÔÚRedHat5.1ÉÏ°²×°Oracle8iÒÔÉϵİ汾
Ð޸Ĺ²ÏíÄÚ´æ×î´ó³ß´çÏÞÖÆ£º
ÔÚϵͳ³õʼ»¯½Å±¾/etc/rc.d/rc.sysinitÖмÓÈ룺
echo 2147483648 >;/proc/sys/kernel/shmmax
ÖØÆô¼ÆËã»ú¡£ÕâÑù×ö±ÜÃâÁËOracle·ÖÅäµÄ¹²ÏíÄÚ´æËéƬ»¯£¬¶ÔÌá¸ßЧÂÊÓкô¦¡£
Ô$ORACLE_HOME/precomp/admin/pcscfg.cfgÖÐsys_includeÓÐÎó£¬Ê¹procÔ¤´¦Àípc³ÌÐòʧ°Ü£¬°²×°½áÊøºó£¬Ó¦ÉèΪ£ºsys_include=(/usr/include,/usr/lib/gcc -lib/i386-redhat-linux/egcs-2.91.66/include)£¨ÊÓgcc°æ±¾¶ø¶¨£©
1.4.2 kernel 2.2 & glibc 2.1
´ú±í²úƷΪRed Hat Linux 6.2¡£
Ð޸Ĺ²ÏíÄÚ´æ×î´ó³ß´çÏÞÖÆ£º
ÔÚϵͳ³õʼ»¯½Å±¾/etc/rc.d/rc.sysinitÖмÓÈ룺
echo 2147483648 >;/proc/sys/kernel/shmmax
ÖØÆô¼ÆËã»ú¡£ÕâÑù×ö±ÜÃâÁËOracle·ÖÅäµÄ¹²ÏíÄÚ´æËéƬ»¯£¬¶ÔÌá¸ßЧÂÊÓкô¦¡£
Ô$ORACLE_HOME/precomp/admin/pcscfg.cfgÖÐsys_includeÓÐÎó£¬Ê¹procÔ¤´¦Àípc³ÌÐòʧ°Ü£¬°²×°½áÊøºó£¬Ó¦ÉèΪsys_include=(/usr/include,/usr/lib/gcc -lib/i386-redhat-linux/egcs-2.91.66/include) £¨ÊÓgcc°æ±¾¶ø¶¨£©
1.4.2.1 Oracle 8
±¾À´ÒѾºÜÉÙÓÐÈËÔÚLinuxKernel2.2µÄϵͳÖа²×°Oracle8.0.5£¬µ«±ÊÕßʵÔÚ»³Äî8.0.5´¿´âµÄÎı¾½çÃæºÍÓëÖ®Ïà´¦µÄÎÞÊý²»ÃßÖ®Ò¹£¬¹ÊÊÕ¼ÈçÏ£º
Oracle8ÔÚkernelΪ2.2.xµÄlinuxÖÐÊÇÎÞ·¨Õý³£ÔËÐеģ¬ÔËÐпÉÖ´ÐÐÎļþÈçsvrmgrl,sqlplusʱ»áµ¼ÖÂ"Segmentation fault"£¬ÔÒòÔÚÓÚÕâЩlinuxʹÓÃÁËĬÈϵÄlibc2.1£¬ÓëOracle8³ÌÐòÖØÁ¬½ÓËùÐèµÄlibc2.0²»¼æÈÝ¡£OracleµÄ²¹¶¡³ÌÐòÆäʵÊǽ«Oracle¿ÉÖ´ÐгÌÐòµÄÖØÁ¬½Ó½Å±¾ÖÐlibcλÖÃÖØж¨Î»µ½libc2.0ÉÏÈ¥£¬²¢ÓþɰæµÄgcc£¬ldÖØÐÂÁ¬½Ó¿ÉÖ´ÐÐÎļþ¡£Îª´Ë±ØÐëÏÈÔÚϵͳÖа²×°¼æÈÝ¿âºÍÏàÓ¦¹¤¾ß¡£ÕâÊÇȨÒËÖ®¼Æ£¬¶øÇÒ½ö¶ÔRedHatÓÐЧ¡£
rootÓû§
rpm -ivh tcl-8.0.3-20.i386.rpm OracleµÄIntelligent AgentҪʹÓÃ
rpm -ivh compat-binutils-5.2-2.9.1.0.23.1.i386.rpm
rpm -ivh compat-glibc-5.2-2.0.7.1.i386.rpm
rpm -ivh compat-egcs-5.2-1.0.3a.1.i386.rpm
rpm -ivh compat-egcs-c++-5.2-1.0.3a.1.i386.rpm
rpm -ivh compat-libs-5.2-1.i386.rpm
°æ±¾ºÅ¿ÉÂÔÓвîÒì
oracleÓû§°²×°Oracle8.0.5µ«²»´´½¨instance£¬ÈçÑ¡Ôñ°²×°Îĵµ£¬Ôò»á²úÉúÈçÏ´íÎó£º
A write error occurred while try to copy '/home/oracle/setup_oracle/unixdoc/server.805/install/lnx_server.805.map' to '/oracle/product/8.0.5/doc/server.805/install/lnx_server.805'(No such file or directory).
ÕâÊÇ°²×°³ÌÐòµÄÒ»¸öbug-²»ÄÜ´´½¨Ä¿Â¼¡£¿É½øÈë$ORACLE_HOME/doc£¬mkdir -p server.805/install£¬ÔÙÑ¡ÔñRetry
´Óftp.oracle.com/pub/www/otn/linuxÏÂÔØglibcpatch.tgz£¬ÔÚijһĿ¼£¨Èç~/patch£©ÏÂÕ¹¿ª
cd ~/patch
glibcpatch.sh
¾¹ýÒ»¶Îʱ¼äºó£¬¿´µ½"Applied glibc patch for Oracle 8.0.5.x successfully"£¬±íÃ÷²¹¶¡³É¹¦¡£´Ëʱ¾ÍÄܳɹ¦´´½¨instance¡£
1.4.2.2 Oracle 8i
ÍƼöʹÓõäÐÍ°²×°£¬·ñÔò»á²úÉúÄÑÒÔÔ¤ÁϵĴíÎó¡£
1.4.3 kernel 2.4 & glibc 2.2
´ú±í²úƷΪRed Hat Linux 7.3,SuSE Linux 7.3¡£
1.4.3.1 Oracle 8i
ÓëOracle8ÔÚRedHat Linux 6.2ÉÏ°²×°ËùÓöµ½µÄÎÊÌâÒ»Ñù£¬Oracle 8iʹÓõÄglibc 2.1Óë²Ù×÷ϵͳ×Ô´øµÄglibc 2.2²»ÄܼæÈÝ£¬½â¾öµÄ·½·¨Ò²Ò»Ñù£¬Òª°²×°glibc 2.1µÄ¼æÈݿ⣬²¢ÖØÐÂÁ¬½ÓOracle¸÷×é¼þ¡£
³ý·ÇÍò²»µÃÒÑ£¬²»½¨ÒéʹÓüæÈÝ·½Ê½£¬Òò´ËÊ¡ÂÔ°²×°²½Ö裬¿É²ÎÔÄÍøÉÏÓйØÎĵµ¡£
1.4.3.2 Oracle 9i
RedHat 7.3
Ð޸Ĺ²ÏíÄÚ´æ×î´ó³ß´çÏÞÖÆ£º
ÔÚϵͳ³õʼ»¯½Å±¾/etc/rc.d/rc.sysinitÖмÓÈ룺
echo 2147483648 >;/proc/sys/kernel/shmmax¡£
ÐÞ¸ÄÐźÅÁ¿²ÎÊý£º
ÔÚϵͳ³õʼ»¯½Å±¾/etc/rc.d/rc.sysinitÖмÓÈ룺
echo 250 32000 100 128 >;/proc/sys/kernel/sem¡£
Õâ4¸ö²ÎÊýÒÀ´ÎΪSEMMSL(ÿ¸öÓû§ÓµÓÐÐźÅÁ¿×î´óÊýÁ¿),SEMMNS(ϵͳÐźÅÁ¿×î´óÊýÁ¿),SEMOPM(ÿ´Îsemopϵͳµ÷ÓòÙ×÷Êý),SEMMNI(ϵͳÐźÅÁ¿¼¯×î´óÊýÁ¿)£¬ÊÂʵÉÏÖ»ÓÐSEMOPÊÇÐèÒªµ÷ÕûµÄ¡£
ÖØÆô¼ÆËã»ú¡£
ÔÚÁ¬½Ó¿ÉÖ´ÐÐÎļþ¹ý³ÌÖУ¬»á·¢ÉúÖжϣ¬´ò¿ª$ORACLE_HOME/ctx/lib/env_ctx.mk£¬ÕÒµ½INSO_LINK£¬ÔÚ-L$(CTXLIB) -L$(LDLIBFLAG)mºó¼ÓÈë-L$(LDLIBFLAG)dl£¬ÖØÊÔ¡£
SuSE 7.3
ÓëRedHatÀàËÆ£¬µ«SuSEûÓÐ/etc/rc.d/rc.sysinit£¬±ÊÕßÑ¡Ôñ/etc/rc.d/rc£¬½«ºËÐIJÎÊýÐÞ¸ÄÌí¼Óµ½×îºóexitÓï¾ä֮ǰ¡£
°²×°¹ý³ÌÖÐûÓз¢ÉúÈκÎÎÊÌâ¡£
1.5 Solaris
Oracle 8iÔÚSolaris 7,8 Intel PlatformÉϾùÄÜ˳Àû°²×°£¬Î´²âÊÔSolaris Sparc Platform¡£
Oracle 9iÄ¿Ç°ÎÞSolaris Intel PlatformÉϵİ汾£¬ÓÉÓÚÌõ¼þËùÏÞ£¬Î´²âÊÔÔÚSolaris Sparc PlatformÉϵÄOracle 9i¡£
ÐÞ¸ÄÏÂÁкËÐIJÎÊý£º
ºËÐIJÎÊý ²Î¿¼Öµ ½âÊÍ
shmmax ÎïÀíÄÚ´æ/2 ¹²ÏíÄÚ´æ¶Î×î´ó³ß´ç
shmmin 1 ¹²ÏíÄÚ´æ¶Î×îС³ß´ç
shmmni 100 ϵͳ¹²ÏíÄÚ´æ¶Î±êʶ×î´óÊýÄ¿
shmseg 10 ÿ¸ö½ø³ÌËùÄÜʹÓÃ×î´ó¹²ÏíÄÚ´æ¶ÎÊýÄ¿
semmni 100 ϵͳÐźÅÁ¿±êʶ×î´óÊýÄ¿
semmsl init.ora.processes+10 ÿ¸öÐźÅÁ¿±êʶ°üº¬µÄÐźÅÁ¿ÊýÄ¿
semmns sum(init.ora.processes)*10+max(init.ora.processes)+count(init.ora)*10 ϵͳÐźÅÁ¿×î´óÊýÄ¿
semopm 100 ÿ¸ösemopµ÷ÓÃ×î´ó²Ù×÷ÊýÄ¿
rlim_fd_max 4096 ϵͳÎļþ¾ä±ú×î´óÊýÄ¿
rlim_fd_cur 1024 ÿ¸ö½ø³ÌÎļþ¾ä±ú×î´óÊýÄ¿
ÐÞ¸Ä/etc/system£¬²¢ÖØÆôʹºËÐIJÎÊýÉúЧ
Àý£º
set shmsys:shminfo_shmmax=2147483648
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=10
set semsys:seminfo_semmni=200
set semsys:seminfo_semmsl=200
set semsys:seminfo_semmns=1000
set semsys:seminfo_semopm=100
set semsys:seminfo_semmap=200
set semsys:seminfo_semmnu=250
set semsys:seminfo_semvmx=32767
set msgsys:msginfo_msgmni=200
set msgsys:msginfo_msgmap=200
set msgsys:msginfo_msgmax=65536
set msgsys:msginfo_msgmnb=655360
set msgsys:msginfo_msgssz=64
set msgsys:msginfo_msgtql=1000
set msgsys:msginfo_msgseg=16384
set rlim_fd_max=4096
set rlim_fd_cur=1024
²Î¼ûsolaris_7_8/system
×¢Ò⣺
Ò»¶¨ÒªÏÈÖؽ¨ºÃkernelºóÔÙ°²×°£¬ÒòΪoracle°²×°Ê±¸ù¾Ýkernel¶¯Ì¬Á¬½Ó³ÌÐò£¬Èç¹ûÏÈ°²×°oracle£¬¼´Ê¹ËæºóÕýÈ·µ÷Õûkernel£¬Ò²»á´øÀ´Ðí¶àÎÊÌ⣬Èçoracle½ø³Ì²»ÄÜÀÆð£¬instance´´½¨Ê§°ÜµÈ¡£
ÔÚkernel²ÎÊýÖУ¬¶ÔÊý¾Ý¿âÔËÐÐÓ°Ïì×î´óµÄÖ÷ÒªÊÇSHMMAX,SEMMNS,SEMMNI,SEMMSL£¬SHMMAXÈ¡ÄÚ´æÒ»°ë¼´¿É£¬SEMMNSÀíÂÛÉÏÓ¦µÈÓÚSEMMNI*SEMMSL£¬Êµ¼ÊÈ¡Ò»¸ö½Ï´óÖµ¼´¿É¡£
SEMMNS: ÐźÅÁ¿×î´ó¸öÊý£¬ÓÐЩϵͳ¿ÉºöÂÔ£¬ÒòΪËûÓëSEMMNI,SEMMSLÓйء£
2 ´´½¨
ËùÓвμûÄÚÈݶ¼ÔÚ¸½¼þ01_install_02_create_03_init/Ï¡£
ÒÔoracleÓû§½øÐвÙ×÷£¬É趨Êý¾Ý¿âʵÀýÃûΪoradb£¨³¤¶È½¨Òé²»Òª³¬¹ý8¸ö×Ö·û£©¡£
2.1 Oracle 8 & 8i
2.1.1 ¹¤¾ß´´½¨
Oracle 8
ÔËÐÐ$ORACLE_HOME/bin/orainst£¨°²×°Êý¾Ý¿âʱ±ØÐëÑ¡ÖÐoracle installer£©£¬Ñ¡Ôñcreate database object£¬°²×°½çÃæÖÐÑ¡Oracle Enterprise Server(RDBMS)
mount pointÔÝΪ$ORACLE_BASE£¬×Ö·û¼¯ÎªZHS16CGB231280»òZHS16GBK£¬µ÷Õûsystem,tools,users,rbs,temp,redologµÈ³ß´ç¡£
´´½¨¹ý³ÌÖлáÌáʾÊäÈëosdba,osoperµÄUNIX×飬ÕâÊÇÏòinstance±íÃ÷´Ë×éµÄ³ÉÔ±ÏíÓнÇÉ«sysdba»òsysoperµÄȨÏÞ£¬´Ó¶øÓÃconnect / as sysdbaÌæ»»µôconnect internal
Oracle 8i
½øÈëX WINDOW£¬ÔËÐÐdbassist
2.1.2 ÊÖ¹¤´´½¨
Èκι¤¾ß¶¼ÓÐÆä¾ÖÏÞÐÔ£¬ÊìÁ·µÄÊý¾Ý¿â¹ÜÀíÔ±¿É²ÉÓÃÊÖ¹¤·½·¨´´½¨Êý¾Ý¿â£¬ÒÔÔö¼Ó¶ÔϵͳµÄÁé»î¿ØÖÆ¡£
¶ÔÓÚÊÖ¹¤½¨¿âOracle 8ÓëOracle 8iµÄÇø±ðÖ÷ÒªÊǽ¨Á¢µÄÊý¾Ý×ÖµäºÍ´æ´¢¹ý³ÌÓÐЩ²»Í¬£¬Oracle8iµÄdbassistant¿ÉÒÔÉú³É½¨¿â½Å±¾¹©ÒÔºóʹÓá£
È¡µÃ/8i/initoradb.ora£¬±à¼Èçdb_name,control_file,dump_destµÈ²ÎÊý£¬ÒÔ·ûºÏʵ¼ÊÇé¿ö¡£Èç²»ÐèÒªÉú³Éremote_login_passwordfile£¬¿ÉÔÚinitoradb.oraÖÐÉèremote_login_passwordfile=none£»ÈçÐèÒª£¬ÔÚinitoradb.oraÖÐÉèremote_login_passwordfile=exclusive£¬ÔËÐÐorapwd file= password= ±ØÐë´´½¨ÐÂÉú³ÉÎļþËùÒªÓõ½µÄĿ¼£¬ÈçÔÚÅäÖÃÎļþÖÐÖ¸¶¨µÄbdump,cdump,udumpµÈĿ¼£¬ÒÔ¼°Êý¾ÝÎļþ´æ´¢Ä¿Â¼¡£
½«initoradb.oraתÒƵ½$ORACLE_BASE/admin/oradb/pfile/£¬²¢Á¬½Óµ½$ORACLE_HOME/dbs/initoradb.ora¡£
ln -s $ORACLE_BASE/admin/oradb/pfile/initoradb.ora $ORACLE_HOME/dbs/initoradb.ora
È¡µÃ8i/createdb.sh£¬±à¼Èçpfile,Êý¾ÝÎļþĿ¼µÈ²ÎÊý£¬ÒÔ·ûºÏʵ¼ÊÇé¿ö£¬²¢×ªÒƵ½$ORACLE_BASE/admin/oradb/create/Ï£¬Ö´ÐС£
Ïà¹Øϵͳ±í£º
v$database
v$datafile(file#,ts#,name)
v$tablespace(ts#,name)
v$parameter£¨SQL>;show parameter£©
v$sga£¨SQL>;show sga£©
2.1.3 MTS£¨multi-threaded server£©
Oracle8ʹÓÃÁ½ÖÖÅäÖÃģʽ£ºdedicated server£¨×¨ÓÃģʽ£©ºÍshared server£¨¼´multi-threaded server¹²Ïíģʽ£©£¬È±Ê¡Ê¹ÓÃרÓÃģʽ¡£ÔÚÁ¬½ÓÊý²»ºÜ´óÇÒ±£³Ö³¤ÆÚÁ¬½ÓµÄÇé¿öÏ£¬×¨ÓÃģʽΪÿ¸öÁ¬½ÓÉèÁ¢Ò»¸öרÓÃoracle·þÎñ½ø³Ì£¬ÒÔ±£³Ö½Ï¸ßµÄÐÔÄܺÍÎȶ¨ÐÔ¡£¶øµ±Á¬½ÓÊýÉÏÉýµ½·Ç³£¸ßµÄÊýÄ¿ÇÒ²»±£³Ö³¤ÆÚÁ¬½Óʱ£¬Êý¾Ý¿â¹ÜÀí¿ªÏúÔö´ó£¬²¢ÇÒÕ¼ÓôóÁ¿ÏµÍ³×ÊÔ´£¬¸ø²Ù×÷ϵͳÐγɴøÀ´¼«´óµÄѹÁ¦¡£ÔÚÕâÖÖÇé¿öÏ£¬¹²Ïíģʽ¸üΪÓÐÀû£¬Ëüͨ¹ý»º³å³ØºÍÔ¤ÏÈÉ趨ÊýÄ¿µÄserverÌṩ·þÎñ£¬Ã¿¸öÁ¬½Ó²»ÔÙÓÐרÓõÄoracle·þÎñ½ø³Ì£¬Ã¿´ÎSQL²Ù×÷ÓÉ·ÖÅäÆ÷£¨dispatcher£©È·¶¨oracle·þÎñ½ø³Ì¡£
multi-thread½ö±íʾ·ÖÅäÆ÷Õ¹¿ªµÄ¶à¸ö·þÎñÁ÷³Ì£¬²¢·Ç²Ù×÷ϵͳÒâÒåÉϵĶàÏß³Ì
ÅäÖãº
¡é initoradb.ora
¼ÓÈë
mts_dispatchers = "(address=(protocol=TCP))(dispatchers=10)" #³õʼ·ÖÅäÆ÷ÊýÁ¿
mts_max_dispatchers = 15 #×î´ó·ÖÅäÆ÷ÊýÁ¿
mts_servers = 50 #³õʼ·þÎñ½ø³ÌÊýÁ¿
mts_max_servers = 80 #×î´ó·þÎñ½ø³ÌÊýÁ¿
mts_service = oradb3 #MTS·½Ê½Ï¶ÔÍâÌṩµÄÊý¾Ý¿â·þÎñ£¬·Çservice_name
±íÃ÷instanceÄܹ»ÌṩMTS·þÎñ£¬²»Òâζ×ÅÈ¡Ïûdedicated·½Ê½
¡é listener.ora
Ӧɾ³ýËùÓÐSID_LIST£¬SID_LISTµÄ´æÔÚ¾ö¶¨LISTENERÒÔdedicated»¹ÊÇshared·½Ê½Æô¶¯oracleÁ¬½Ó¡£ÈçSID_LIST´æÔÚ£¬LISTENER²»ÔÙ½ÓÊÜinstanceµÄµÇ¼Ç£¬ÒÔdedicated·½Ê½Æô¶¯oracleÁ¬½Ó£» ÈçSID_LIST²»´æÔÚ£¬LISTENERÆô¶¯Ê±²»ÎªÈκÎinstance·þÎñ£¬ÓÉinstanceÀ´µÇ¼ÇMTS service£¬ÒÔshared·½Ê½Æô¶¯oracleÁ¬½Ó
¡é client
MTSÔÚclient¶ËÅäÖÃÆÄΪ¹Öµ®£¬ÔÚtnsnames.oraÖеÄhostÒ»¶¨ÒªÐ´Êý¾Ý¿âserverµÄÃû×Ö£¬¶øÇÒ±ØÐë×÷È«Ãû½âÎö£¬Ëƺõserver¶Ë½ÓÊÕµ½client¶ËÇëÇóºó»á½«Ö÷»ú×Ö·û´®·µ»Ø£¬Ó¦´Ëclient¶Ë±ØÐëÄܹ»½âÎö£¬·ñÔò»á±¨³öÖîÈç"database service not exist"µÄ´íÎó
tnsnames.ora
dbserver.soar.com =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS=(PROTOCOL=TCP)(HOST= dbserver)(PORT = 1521))
)
(CONNECT_DATA =(SERVICE_NAME = oradb))
)
/etc/hosts
10.0.0.1 dbserver.soar.com dbserver
Æô¶¯£ºÏÈÆðLISTENER£¬ºóÆðinstance
ÒÔϲ½Öè¾ùÔÚÊý¾Ý¿âopen״̬Ï£¬ÓÉsystemÓû§Íê³É
2.1.4 µ÷ÕûÁÙʱ±í¿Õ¼ä
alter tablespace temp temporary; #Oracle8µÄorainstûÓн«tempµÄȱʡֵpermanent¸ÄΪtemporary£¬ÕâÑùÓû§ÔÚtempÉÏÔÝ´æµÄÊý¾Ý¾ùΪÓÀ¾Ã¶ÔÏ󣬺ܿ콫temp¿Õ¼äºÄÍê¡£Oracle8iÒÑÐÞÕý¡£
SQL>;alter tablespace temp default storage (initial 128k next 128k maxextents 5000 pctincrease 0)£»
SQL²éѯ²Ù×÷Èçgroup by,order by,distinct£¬joinµÈÐèÒªÔÚÁÙʱ¶ÎÉÏÕ¹¿ªÊý¾Ý£¬Ðë³ä·Ö¿¼ÂÇÁÙʱ¶ÎµÄ´óС¡£
Èç¹ûʵÀýÆô¶¯²ÎÊýÖ¸¶¨hash_join_enabled=true£¨È±Ê¡Îªtrue£©£¬µ±oracleÑ¡ÔñÒÔhash join·½Ê½½øÐбíÓë±íµÄÁª½Ó£¬oracle¸ù¾Ý²éѯ²Ù×÷µÄʵ¼ÊÇé¿ö¼ÆËã³öhash_multiblock_io_count£¬´Ë²ÎÊý´ÓÊôÓÚsession£¬Æ½Ê±ÏÔʾΪ0£¬¼´hash joinÒ»´ÎI/O¶ÁдÐèÒªµÄÁ¬ÐøÊý¾Ý¿Õ¼ä¡£ÕâÑùµ±´Ë²ÎÊý´óÓÚÁÙʱ¶ÎµÄnextÀ©Õ¹¿éʱ£¬hash join²Ù×÷»áÖжϡ£Èç¹ûÔ¤ÖªÁª½Ó±íµÄ¹æÄ£±È½Ï¾Þ´ó£¬¿ÉʹÓÃalter tablespace temp default storage(next ¡)½«nextÖµÉèΪ½Ï´óÖµ£¬´ýÈ«²¿²Ù×÷Íê³Éºó£¬ÔÙ»Ö¸´Õý³£¡£
2.1.5 µ÷Õû»Ø¹ö±í¿Õ¼ä
ÏȽ«½¨¿â¹¤¾ßȱʡÉ趨µÄÈô¸É¸ö»Ø¹ö¶Îɾ³ý
SQL>;alter rollback segment r01 offline£»
SQL>;drop rollback segment r01£»
¸ù¾Ýʵ¼ÊÐèÒª´´½¨»Ø¹ö¶Î£¨Èçr01-r10£©£¬¹©Áª»ú´¦ÀíºÍÅú´¦ÀíʹÓÃ
SQL>;create rollback segment r01 storage£¨initial 128k next 128k maxextents 5000 optimal 5M£© tablespace rbs£»
SQL>;alter rollback segment r01 online£»
×¢ÒâÐÞ¸Ä$ORACLE_HOME/dbs/initoradb.oraÖеļ¤»î»Ø¹ö¶Î¶ÎÃû
Áí´´½¨Ò»¸ö³ß´çÎÞÏÞÖƵĻعö¶Î£¨r99£©£¬¹©ÌØÊâÓÃ;
SQL>;create rollback segment r99 storage£¨initial 128k next 128k maxextents 5000£© tablespace rbs£»
Èç¹ûÔÚ´´½¨»Ø¹ö¶ÎʱʹÓÃcreate public rollback segment£¬Ôò²»ÐèÒªÔÚ$ORACLE_HOME/dbs/initoradb.oraÖÐÓÃrollback_segment=(¡)Ñ¡Ï»î£¬ÍƼöʹÓÃpublic·½Ê½
Ïà¹Øϵͳ±í£º
SQL>;select segment_name, initial_extent, next_extent, max_extents, extents,bytes from dba_segments where segment_type='ROLLBACK'; #»Ø¹ö¶ÎÕ¼Óÿռä×´¿ö
SQL>;select segment_name, status from dba_rollback_segs; #»Ø¹ö¶Î״̬
2.1.6 µ÷ÕûÈÕÖ¾
½¨Á¢ÈÕÖ¾×é
SQL>;alter database add logfile group x('log1a','log1b') size 10M;
Ôö¼ÓÈÕÖ¾×é³ÉÔ±
SQL>;alter database add logfile member 'log1c' to group x£»
ɾ³ýÈÕÖ¾
Êý¾Ý¿âʵÀýÖÁÉÙÐèÒª2¸öÈÕÖ¾×飬ֻÓÐ״̬ΪinactiveµÄÈÕÖ¾×é²ÅÄܱ»É¾³ý£¬¶øµ±Ç°ÈÕÖ¾×é״̬Ϊcurrent£¬ÉÏÒ»¸öÇл»µÄÈÕÖ¾×é״̬Ϊactive£¬Õâ¾ÍÒâζ×ÅÖÁÉÙ´æÔÚ3¸öÈÕÖ¾×é²ÅÄÜɾ³ýÆäÖеÄÒ»¸ö£¬Èç¹ûÒª¸üÐÂÈ«²¿ÈÕÖ¾×飬ֻÄÜɾ³ýÒ»¸ö£¬ÔÙ´´½¨Ò»¸ö£¬Ö±ÖÁÈ«²¿±»¸üС£
SQL>;alter database drop logfile group x£»
Èç¹ûҪɾ³ýµÄÈÕÖ¾×éÊǵ±Ç°ÈÕÖ¾×飬±ØÐëÏȽ«ÆäÇл»ÖÁ״̬Ϊinactive£¬ÔÙɾ³ý¡£
SQL>;alter system switch logfile£»
ɾ³ýÈÕÖ¾×é³ÉÔ±
SQL>;alter database drop logfile member 'log1c';
Ïà¹Øϵͳ±í
v$log ££ÈÕÖ¾×é״̬¡¢Õ¼Óÿռ䡢˳ÐòºÅµÈ
v$logfile ££ÈÕÖ¾×éÎļþ
2.1.7 µ÷ÕûÓû§±í¿Õ¼ä
´´½¨±í¿Õ¼ä
¼Ù¶¨±íÊý¾ÝÔÚts_data£¬Ë÷ÒýÔÚts_index
SQL>;create tablespace ts_data default storage£¨initial 10M next 10M maxextents 5000 pctincrease 0£© datafile 'path/data_01.dbf' size 500M;
SQL>;create tablespace ts_index default storage£¨initial 5M next 5M maxextents 5000 pctincrease 0£© datafile 'path/index_01.dbf' size 500M;
²Î¿¼ÃüÁɾ³ý±í¿Õ¼ä
SQL>;drop tablespace data including contents; ££É¾³ý±í¿Õ¼ä¼°Æä°üº¬µÄËùÓÐÊý¾Ý¶ÔÏó
Ïà¹Øϵͳ±í£º
user(dba)_tablespaces
Ôö¼Ó±í¿Õ¼ä³ß´ç
¼Ù¶¨±í¿Õ¼äts_dataÓÉpath/data_01.dbfºÍpath/data_02.dbf£¨500M£©×é³É
Ôö¼ÓÒ»¸öÊý¾ÝÎļþ£º
SQL>;alter tablespace ts_data add datafile 'path/data_03.dbf' size 500M;
À©´óÔÓÐÎļþ´óС£º
SQL>;alter database datafile 'path/data_01.dbf' resize 1000M;
Òƶ¯±í¿Õ¼äÊý¾ÝÎļþ
¼ÙÈçÒªÇóΪ£º½«path1ÏÂdata_01.dbfÒÆÖÁpath2Ï£¬²¢°ÑÎļþÃû¸ÄΪdata01.dbf
ʵÀý´¦ÓڹرÕ״̬
sqlplus "/ as sysdba"
SQL>;startup mount
»Øµ½shell»·¾³ÏÂ
$ mv path1/data_01.dbf path2/data01.dbf
$ mv path1/data_02.dbf path2/data02.dbf
ÔÙµ½sqlplus»·¾³ÖÐ
SQL>;alter database rename file 'path1/data_01.dbf' to 'path2/data01.dbf';
»ò
SQL>;alter tablespace tbsdata rename datafile 'path/data_01.dbf' to 'path2/data01.dbf';
SQL>;alter database open;
²é¿´Ê£Óà¿Õ¼ä
SQL>;select tablespace_name,sum(bytes),max(bytes) from dba_free_space group by tablespace_name;
×¢Òâ:¿ÕÏÐÊý¾Ý¿é×ܺÍsum(bytes)¹»Óò¢²»Òâζÿ¸ö¿ÕÏп鶼Âú×ã·ÖÅäÐèÒª£¬ËùÒÔµ±±í¿Õ¼ä²»¹»·ÖÅäÀ©Õ¹¿éµÄʱºò£¬»¹Òª²é¿´×î´ó¿ÕÏÐÊý¾Ý¿émax(bytes)µÄ´óС¡£
ºÏ²¢¿ÕÏпé
Èç¹û±í¿Õ¼äÉϵÄÊý¾Ý¶ÔÏó¾³£·¢ÉúÀàËÆdrop-createµÄ±ä¶¯£¬¼Ó֮δ²ÉÓÃͳһµÄÀ©Õ¹¿é³ß´ç£¬Ê¹ÄÇЩ²ÉÓýϴóÀ©Õ¹¿éµÄÊý¾Ý¶ÔÏó²»ÄÜÀûÓýÏСµÄ¿Õ¼äËéƬ£¬Ôì³É¿Õ¼äÀË·Ñ¡£¿Éͨ¹ý½«½ÏСµÄ¿ÕÏпéºÏ²¢³É½Ï´óµÄ¿ÕÏпéµÄ·½·¨£¬¼õÉÙ¿Õ¼äÀË·Ñ¡£
SQL>;alter tablespace tbsdata coalesce;
2.1.8 ´´½¨Óû§
SQL>;create user dbuser identified by oracle default tablespace data temporary tablespace temp quota unlimited on data quota 0 on system quota 0 on tools quota 0 on users£»
SQL>;grant connect to dbuser£»
SQL>;grant create procedure to dbuser£» ££ÕâЩȨÏÞ×ã¹»ÓÃÓÚ¿ª·¢¼°Éú²ú»·¾³
SQL>;grant select on dba_pending_transactions to dbuser; ££¶þ½×¶ÎÌá½»¹ý³ÌÖÐÀàËÆTuxedoµÄÈí¼þÐèÒª¼ìË÷¹ÒÆð½»Ò×µÄ״̬£¬ËùÒÔ±ØÐëµÃµ½¶Ô´ËÊÓͼµÄselectȨÏÞ£¬ÒÔsysÓû§Éí·Ý¸³Óè
ÐÞ¸ÄÓû§¿ÉʹÓÃalter user dbuser ...
²Î¿¼ÃüÁ
drop user dbuser cascade; ££É¾³ýÓû§¼°ÆäËùÓеÄÊý¾Ý¶ÔÏó
revoke connect from dbuser; ££È¡ÏûÓû§½ÇɫȨÏÞ
Ïà¹Øϵͳ±í£º
user(dba)_users
user(dba)_role_privs ½ÇɫȨÏÞ
user(dba)_sys_privs ϵͳȨÏÞ
user(dba)_tab_privs ¶ÔÆäËûÓû§±í²Ù×÷µÄȨÏÞ
user_ts_quotas ±í¿Õ¼äÏÞ¶î
2.1.9 ´´½¨Êý¾Ý¶ÔÏó
Ïà¹Øϵͳ±í£º
user_catalog(cat)
user_objects(obj)
±íºÍË÷Òý½¨Á¢ÔÚ±í¿Õ¼äÉÏ£¬Èç¹û²»Ö¸¶¨±í¿Õ¼ä£¬Ê¹Óñ¾Óû§µÄȱʡ±í¿Õ¼ä£¨default tablespace£©£»Èç¹û²»Ö¸¶¨±¾¶ÔÏóµÄ´æ´¢²ÎÊý£¬Ê¹Óý¨ÓÚÆäÉϵıí¿Õ¼äµÄȱʡ´æ´¢²ÎÊý£¨default storage£©¡£
±í£¨table£©
½¨±í½Å±¾Í¨³£ÊÇÒÔÏÂÐÎʽ£º
create table emp £¨no number(12), name char(20), ¡,constraint emp_x00 primary key(no)£© storage£¨initial 100M next 100M pctincrease 0 maxextents 5000£© pctused 70 pctfree 10 tablespace tbs_data enable primary key using index tablespace tbs_index;
È»¶ø´Ó¼ò»¯Êý¾Ý¶ÔÏóÅäÖᢼõÉÙ±í¿Õ¼äËéƬµÄ½Ç¶È¿¼ÂÇ£¬²»ÍƼöΪÿÕÅ±íµ¥¶ÀÖ¸¶¨storageÑ¡Ï´æ´¢²ÎÊýʹÓý¨ÓÚÆäÉϵıí¿Õ¼äµÄȱʡ´æ´¢²ÎÊý¡£²»Í¬±í¶ÔÀ©Õ¹¿é´óСµÄÒªÇ󣬿ÉÒÔͨ¹ý·ÖÎö¹éÀ࣬½¨Á¢ÏàÓ¦¾ßÓв»Í¬È±Ê¡´æ´¢²ÎÊýµÄ±í¿Õ¼äµÄ·½·¨½â¾ö¡£ÕâÑùÊý¾Ý¿âÉè¼Æ¾ÍÄܱäµÃ¼ò½àÃ÷ÁË¡£
ÃüÁî¼ò»¯Îª£º
create table emp £¨no number(12), name char(20), ¡, constraint emp_x00 primary key(no)£©pctused 70 pctfree 10 tablespace tbs_data enable primary key using index tablespace tbs_index;
primary key¹Ø¼ü×Ö½¨Á¢Í¬ÃûµÄprimary key constraintºÍunique index£¬±íµÄÿ¸öÓò¶¼ÓÐ×ÔÉíµÄconstraint¡£
Ïà¹Øϵͳ±í£º
user_tables(tabs)£¬dba_tables #±íÊôÐÔ
user_tab_columns(cols),dba_tab_columns #±í¸÷ÁÐÊôÐÔ
Ë÷Òý£¨index£©
create index emp_x01 on emp(name) storage(initial 10M next 10M pctincrease 0 maxextents 5000) pctfree 10 tablespace tbs_index;
¿É²ÎÕÕ±í¶ÔstorageµÄ´¦Àí·½Ê½¡£
create index emp_x01 on emp(name) pctfree 10 tablespace tbs_index;
Ïà¹Øϵͳ±í£º
user_indexes(ind),dba_indexes #Ë÷ÒýÊôÐÔ
user_ind_columns,dba_ind_columns #Ë÷Òý¸÷ÁÐÊôÐÔ£¬ÒÔindex_positionΪ˳Ðò
ÐòÁУ¨sequence£©
create sequence emp_seq increment by 1 start with 1 nomaxvalue nocycle;
Ïà¹Øϵͳ±í£º
user(dba)_sequences(seq) ÐòÁÐÊôÐÔ
ÊÓͼ£¨view£©
create emp_depart_view as select emp.name,emp_duty.name from emp,emp_duty where emp.duty=emp_duty.duty;
Ïà¹Øϵͳ±í£º
user(dba)_views ÊÓͼÊôÐÔ
Oracle½«view,sequence£¬Óû§²ÎÊýµÈ¶¨Òå¾ù´æ·ÅÓÚϵͳ±í¿Õ¼ä£¬¶øÓû§´´½¨µÄ±í¿Õ¼ä½ö´æ·Åtable,indexʵÌ壬Òò´Ë¿ÉÒÔ´óµ¨É¾³ýÓû§±í¿Õ¼ä£¬ÔÙÓñ¸·ÝÖØлָ´£¬²»±Øµ£ÐÄview,sequenceµÈ»á±»Ò»²¢É¾È¥¡£
2.1.10 ´´½¨Ö»¶ÁÓû§
¼Ù¶¨Êý¾Ý¿âÓû§dbbrsrÐèÒª¶ÔdbuserµÄ±íempÓµÓÐselectȨÁ¦
connect dbuser
grant select on emp to dbbrsr
connect dbbrsr
create synonym emp for dbuser.emp;
ÕâÑù£¬dbbrsr¾ÍÄÜÏóʹÓÃ×Ô¼ºµÄ±íÒ»Ñù¶ÔdbuserµÄ±íÖ´ÐÐselect²Ù×÷
2.1.11 Æô¶¯¼°¹Ø±ÕÊý¾Ý¿âʵÀý
oracleÓû§£¬dbstartºÍdbshutÆô¶¯¼°¹Ø±Õ/var/opt/oracle/oratab»ò/etc/oratabÖÐÉ趨µÄÊý¾Ý¿âʵÀý£¬dbstart²ÉÓÃnormal·½Ê½£¬dbshut²ÉÓÃimmediate·½Ê½¡£
»òÕßʹÓÃÊÖ¹¤·½Ê½
sqlplus "/ as sysdba"
Æô¶¯
normal
SQL>;startup
mount
SQL>;startup mount; #Æô¶¯ÊµÀý½ø³Ì£¬ÔØÈëÊý¾Ý¿âÎļþ£¬ÔÊÐíDBAȨÏÞµÄijЩ²Ù×÷£¬µ«½ûÖ¹¶ÔÊý¾Ý¿âÎļþµÄÒ»°ãÐÔ²Ù×÷
SQL>;Íê³ÉijЩ²Ù×÷
SQL>;alter database open;
nomount
SQL>;startup nomount; #Æô¶¯ÊµÀý½ø³Ì£¬µ«²»ÔÊÐí·ÃÎÊÊý¾Ý¿â£¬³£ÓÃÓÚ´´½¨Êý¾Ý¿â¡¢½éÖʻָ´»ò´´½¨controlfile
SQL>;Íê³ÉijЩ²Ù×÷
SQL>;alter database open;
¹Ø±Õ
normal
SQL>;shutdown»òSQL>;shutdown transactional; #µÈ´ýÿ¸öÁ¬½Ó½»Ò×Íê³Éºó£¬ÇжÏÁ¬½Ó£¬ÔٹرÕÊý¾Ý¿â
immediate
SQL>;shutdown immediate; #Á¢¿ÌÖÐֹÿ¸öÁ¬½Ó£¬½»Ò׻عö
abort
SQL>;shutdown abort; #Á¢¿Ì¹Ø±ÕÊý¾Ý¿â£¬²»±£Ö¤½»Ò×ÍêÕûÐÔ£¬ÔÚÏÂÒ»´ÎÆô¶¯´ò¿ªÊý¾Ý¿âÎļþʱ»á½øÐнéÖʻָ´
2.1.12 ÍøÂçÅäÖÃ
¼Ù¶¨Ä³Ò»Ì¨»úÆ÷Ϊclient£¬ORACLE_SIDΪoraclient£¬Êý¾Ý¿âÓû§Îªdbclient£»Áíһ̨»úÆ÷Ϊserver£¬ORACLE_SIDΪoraserver£¬Êý¾Ý¿âÓû§ÎªdbserverÔÚserverÉÏ$ORACLE_HOME/dbs/initoraserver.oraÖÐÓÐÒÔÏÂÉ趨£º
db_name = oraserver
instance_name = oraserver
Oracle 8i
service_names=oraserver
2.1.12.1 TNS
Client¶ËÅäÖÃ
ÐÞ¸Ä$ORACLE_HOME/network/admin/tnsnames.ora£¬Ôö¼ÓÒ»ÌõPROTOCOL=TCPµÄ¼Ç¼¡£
Oracle8
db_server
(DESCRIPTION =
(ADDRESS = (PROTOCOL= TCP)(Host= server)(Port= 1521))
(CONNECT_DATA = (SID = oraserver))
)
Oracle8i
db_server
(DESCRIPTION =
(ADDRESS = (PROTOCOL= TCP)(HOST= server)(PORT= 1521))
(CONNECT_DATA = (SERVICE_NAME=oraserver
)
HOST¿ÉÔÚ/etc/hosts»òDNSÖÐÅäÖ㬻òÖ±½ÓдÉÏIPµØÖ·
sqlplus dbserver/passwd@db_server
Server¶ËÅäÖÃ
ÐÞ¸Ä$ORACLE_HOME/network/admin/listener.ora
ÔÚLISTENERÖÐÔö¼ÓADDRESSµÄ¼Ç¼
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
(ADDRESS = (PROTOCOL = TCP)(HOST = server)(PORT = 1521))
)
)
)
ÔÚSID_LIST_LISTENERÖÐÔö¼ÓSID_DESC¼Ç¼
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /opt/oracle/app/oracle/product/8.1.5)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = oraserver)
(ORACLE_HOME = /opt/oracle/app/oracle/product/8.1.7)
(SID_NAME = oraserver)
)
)
HOST¿ÉÔÚ/etc/hosts»òDNSÖÐÅäÖ㬻òÖ±½ÓдÉÏIPµØÖ·
×¢Ò⣺LISTENERºÍSID_LIST_LISTENERÊdzɶԳöÏֵģ¬¿ÉÅäÖöà¸ö¼àÌý·þÎñ½ø³ÌºÍÏàÓ¦µÄSID_LIST£¬ÈçLISTENER_1ºÍSID_LIST_LISTENER_1
2.1.12.2 DB Link
Èç¹ûclientµÄinstanceÐèÒªÔÚ·ÃÎʱ¾µØÊý¾Ý¶ÔÏóͬʱ·ÃÎÊserverÖеÄÊý¾Ý¶ÔÏ󣬿ÉÔÚinstanceÖд´½¨¶ÔserverµÄÊý¾Ý¿âÁ¬½Ó£¬ÊµÏÖ¼ä½Ó·ÃÎÊ
ÔÚtnsnames.oraÖн¨Á¢"db_server"ÅäÖÃ
sqlplus dbclient/passwd1
SQL>;create database link server_link connect to dbserver identified by passwd using 'db_server';
ʹÓÃemp@server_link·ÃÎÊserverÉϵÄemp£¬Èçͬ·ÃÎʱ¾µØinstanceÖеÄÊý¾Ý¶ÔÏóÒ»Ñù¡£ÎªÁ˸ü·½±ãµÄʹÓ㬿ɽ¨Á¢synonym
2.2 Oracle 9i
Oracle 9iÏà½ÏÓÚOracle 8&8i£¬ÔÚ¼æÈÝOracle 8&8iµÄ»ù´¡ÉÏ£¬»Ø¹öºÍÁÙʱ±í¿Õ¼äÅäÖ÷¢Éú±È½Ï´óµÄ±ä»¯£¬µ¼Ö½¨¿â²Ù×÷³öÏÖһЩ²»Í¬¡£ÔÚÊý¾Ý¿âÅäÖÃÎļþinitoradb.oraÖÐÓйØÓڻعö±í¿Õ¼äµÄÑ¡ÏÏêϸÇé¿öÔÚ"Êý¾Ý¿âÅäÖÃ"ÖнâÊÍ¡£¶øÇÒOracle 9i¼ò»¯Á˱í¿Õ¼äµÄ´´½¨¡£ËùÒÔ´ËС½ÚÖ÷ÒªÃèÊöOracle 9iÏà¶ÔÓÚOracle 8iµÄ²îÒ죬ÆäËüÏàͬµÄ²Ù×÷¿É²Î¿¼Oracle 8i¡£
2.2.1 ÊÖ¹¤´´½¨
ÓÉÓÚÔÚOracle 9iÖй¤¾ßdbassistµÄʹÓ÷½·¨ÓëÔÚOracle 8iÖÐÀàËÆ£¬Òò´Ë¹¤¾ß½¨¿â¹ý³ÌÊ¡ÂÔ£¬Ö»¼Ç¼ÊÖ¹¤½¨¿â¹ý³Ì
Oracle 9iÖеĽ¨¿â¹ý³ÌÒѾ±äµÃ¼«Îª¼ò½à£¬´óÖÂÈçÏ£º
create database ${ORACLE_SID}
user sys identified by sys
user system identified by system
logfile group 1 ('${ORACLE_BASE}/oradata/${ORACLE_SID}/redo01.log') size 10M,
group 2 ('${ORACLE_BASE}/oradata/${ORACLE_SID}/redo02.log') size 10M,
group 3 ('${ORACLE_BASE}/oradata/${ORACLE_SID}/redo03.log') size 10M
maxlogfiles 5
maxlogmembers 5
maxloghistory 1
maxdatafiles 254
maxinstances 1
archivelog
character set ZHS32GB18030
national character set AL16UTF16
datafile '${ORACLE_BASE}/oradata/${ORACLE_SID}/system01.dbf' size 300M
default temporary tablespace tbstemp tempfile '${ORACLE_BASE}/oradata/${ORACLE_SID}/temp01.dbf' size 500M
undo tablespace tbsundo datafile '${ORACLE_BASE}/oradata/${ORACLE_SID}/undo01.dbf' size 500M;
ÆäÌصãΪʹÓÃרÓõĻعöºÍÁÙʱ±í¿Õ¼ä£¬¶ø²»ÏóOracle 8iÖеÄÄÇÑù£¬»Ø¹öºÍÁÙʱ±í¿Õ¼äÓëÆÕͨ±í¿Õ¼äûÓвîÒ죬ÕâÑù¼È¼ò»¯ÁËÅäÖÃÒ²ÓÐÀûÓÚЧÄÜÌá¸ß¡£Òª×¢ÒâÁÙʱ±í¿Õ¼äµÄÖ¸¶¨Îļþ¹Ø¼ü×ÖÊÇtempfile¶ø²»ÊÇͨÓõÄdatafile£¬¶øÇÒÁÙʱ±í¿Õ¼äµÄ´æ´¢Ñ¡Ïî±ØÐëΪuniform£¬ÓÉOracleϵͳ¾ö¶¨¡£Í¬Ñù»Ø¹ö±í¿Õ¼äÒ²ÊÇÓÉOracleϵͳ¾ö¶¨¡£²»±ØÈ˹¤¸ÉÔ¤¡£
Oracle 9iÔÚ$ORACLE_HOME/dbsÏ¿ÉʹÓöþ½øÖÆÅäÖÃÎļþ£¬È±Ê¡Îªspfile{ʵÀýÃû}.ora£¬Èçspfileoradb.ora£¬Ö§³ÖOracleϵͳ½ø³ÌÔÚ²»ÖØÆôµÄÇé¿ö϶¯Ì¬µ÷Õû²ÎÊý£¬Õâ¶ÔÒªÇó²»¼ä¶ÏÔËÐеÄϵͳÊÇÓÐÀûµÄ¡£ÔÚ½¨¿â½×¶Î¾Í¿É½«´ËÅäÖÃÎļþ´´½¨ÆðÀ´¡£
create spfile from pfile= '${ORACLE_BASE}/admin/${ORACLE_SID}/init${ORACLE_SID}.ora
ÍêÕû²½Öè¼û/9i/createdb.sh£¬±à¼Èçpfile,Êý¾ÝÎļþĿ¼µÈ²ÎÊý£¬ÒÔ·ûºÏʵ¼ÊÇé¿ö£¬²¢×ªÒƵ½$ORACLE_BASE/admin/oradb/create/Ï£¬Ö´ÐС£
2.2.2 ´´½¨Óû§±í¿Õ¼ä
Oracle 9i¶ÔÓÚ±í¿Õ¼ä¹ÜÀíÒ»¸öÃ÷ÏԵı仯ÊǸÄÊý¾Ý×Öµä¹ÜÀí£¨extent management dictionary£©Îª±í¿Õ¼ä±¾µØ¹ÜÀí£¨extent management local£©£¬»¹¿ÉÒÔ¸ù¾Ý½¨Á¢µÄÊý¾Ý¶ÔÏó¶Ô¿Õ¼äµÄÒªÇó×Ô¶¯È·¶¨À©Õ¹¿éµÄ´óС£¨autoallocate£©£¬×îСΪ64K£¬ÕâÁ½ÏÊÇ´´½¨±í¿Õ¼äµÄȱʡѡÏî¡£
create tablespace tbsdata datafile '¡' [ extent management local ] [ autoallocate ];
¶ø¶ÔÓÚÖ¸¶¨Ã¿¸öÀ©Õ¹¿é´óСµÄ´´½¨²ßÂÔ£¬ÉèÁ¢ÁËÐÂÑ¡ÏͳһÀ©Õ¹¿é´óС£¨uniform [size xxx[K|M]]£©£¬¿É¸²¸ÇautoallocateÑ¡ÏÈç¹û²»¼ÓÉϾßÌåµÄsize xxx[K|M]£¬È±Ê¡Îª1M£¬ÕâÑù¾Í²»±Ø¿¼ÂÇOracle 8iÖеÄÈçinitial,next,pctincrease,maxextentsµÈdefault storage²ÎÊýÓ¦ÈçºÎ×éºÏ£¬ÊÂʵÉÏOracle 8iµÄÕâЩÉèÖÃÔ±¾¾ÍûÓÐʲôÒâÒå¡£
²»Äܹ»Í¬Ê±Ö¸¶¨extent management localºÍdefault storage£¬»»ÑÔÖ®£¬default storageÖ»ÄܺÍextent management dictionaryÒ»ÆðÏÔʽָ¶¨¡£
Èç¹ûδָ¶¨extent managementµÄÀàÐÍ£¬Oracle 9iȱʡʹÓÃlocal·½Ê½£¬Èç¹ûÓÖͬʱʹÓÃdefault storageÑ¡Ï¾ÍÓÐÒÔϵÄÅжϣº
Èç¹ûʹÓÃminimun extent£¬Oracle¼ì²éÊÇ·ñminumum extent=initial=nextÇÒpctincrease£½0,ÈçÊÇ£¬OracleʹÓÃuniformÑ¡Ïsize=initial£»Èç²»ÊÇ£¬OracleºöÂÔÖ¸¶¨Ñ¡ÏʹÓÃautoallocate¡£
Èç¹ûδָ¶¨minimum extent£¬Oracle¼ì²éÊÇ·ñinitial=nextÇÒpctincrease£½0,ÈçÊÇOracleʹÓÃuniformÑ¡Ïsize=initial£»Èç²»ÊÇOracleºöÂÔÖ¸¶¨Ñ¡ÏʹÓÃautoallocate¡£
ΪÁ˱ÜÃâÓëOracle 8iµÄÏ°¹ß×ö·¨»ìÏý£¬½¨ÒéֻʹÓÃOracle 9i½Ï¼ò½àµÄ·½·¨¡£
¶ÔÓÚ´æ´¢ÉÙÁ¿¾²Ì¬Êý¾ÝµÄ±í¿Õ¼äÀ´Ëµ£¬ÈçÅäÖÃÐÅÏ¢µÈ£¬¿É¼òµ¥µØдΪ£º
create tablespace tbsdata datafile '¡';
¶ÔÓÚ±ØÐë¹ØÐÄÆäÀ©Õ¹¿é´óСµÄ±í¿Õ¼ä£¬Èç´óÅúÁ¿µÄ¼Ç¼»òË÷Òý£¬¿É¼òµ¥µØдΪ£º
create tablespace tbsdata datafile '¡' uniform size 10M;
3 ³õʼ»¯ÎļþÅäÖÃ
ËùÓвμûÄÚÈݶ¼ÔÚ¸½¼þ01_install_02_create_03_init/Ï¡£
ÃèÊöinitoradb.oraÖи÷Ñ¡Ïî¡£
3.1 Oracle 8 & 8i
¾ßÌå²Î¼û8i/initoradb.ora¡£
db_block_size
Êý¾Ý¿â»ù±¾Êý¾Ý¿é³ß´ç£¬×Ö½ÚΪµ¥Î»¡£
µ±Éæ¼°µ½´óÁ¿Êý¾Ý½»»»Ê±£¬ÀýÈçexport/import²Ù×÷ʱ£¬´Ë²ÎÊý¶ÔÊý¾Ý¿âÐÔÄÜÓзdz£´óµÄÓ°Ï죬É趨һ¸ö½Ï´óµÄÖµ£¬ÓÐÀûÓÚÌá¸ßÊý¾ÝÍÌÍÂÁ¿£¬µ«ÓÉÓÚdb blockÊÇÎļþºÍÄÚ´æÖ®¼ä½»»»µÄ»ù±¾µ¥Î»£¬¹ý´óµÄÖµ·´¶ø»á½»»»²»ÐèÒªµÄ¼Ç¼£¬Ôö¼Ó¶îÍâµÄI/O¡£
Ò»°ãÈ¡8k¾ÍÒÑÄÜ»ñµÃ½ÏÂúÒâЧ¹û¡£
db_block_buffers
Êý¾Ý»º³åÇø£¬db_block_sizeΪµ¥Î»£¬²»³¬¹ý1/4ÄÚ´æ
¼ÆËã²éѯ»º³åÃüÖÐÂÊ£º
SELECT name, value FROM v$sysstat WHERE name IN ('db block gets', 'consistent gets', 'physical reads');
Hit Ratio = 1 - ( physical reads / (db block gets + consistent gets) )
SELECT name, phyrds, phywrts FROM v$datafile df, v$filestat fs WHERE df.file# = fs.file#
db block gets:ÔÚÄÚ´æbufferÖеÄÃüÖдÎÊý
consistent gets:Ò»ÖÂÐÔÃüÖдÎÊý£¬Ö¸ÔÚÄÚ´æbufferÖÐδÃüÖУ¬µ«´Ó»Ø¹ö¶Î»òÊý¾ÝÎļþÖлñµÃÃüÖÐ
physical reads:ÔÚÊý¾ÝÎļþÖеĶÁ´ÎÊý
×¢Ò⣺һ°ãHitRatio´ïµ½90%ÒÔÉϾͿÉÒÔÈÏΪÒÑ´ïµ½ÓÅ»¯£¬Õâ¸öÊýÖµÓ¦ÔÚϵͳÔËÐÐÎȶ¨ºó½øÐÐͳ¼Æ¡£
shared_pool_size
Êý¾Ý×ÖµäºÍSQL²Ù×÷»º³åÇø£¬×Ö½ÚΪµ¥Î»£¬²»³¬¹ý1/4ÄÚ´æ
select (sum(pins - reloads)) / sum(pins) "Lib Cache" from v$librarycache;
select (sum(gets - getmisses - usage - fixed)) / sum(gets) "Row Cache" from v$rowcache;
select * from v$sgastat where name = 'free memory'
×¢Ò⣺CacheÃüÖÐÂÊ´ïµ½95%ÒÔÉϾͿÉÒÔÈÏΪÒÑ´ïµ½ÓÅ»¯£¬Õâ¸öÊýÖµÓ¦ÔÚϵͳÔËÐÐÎȶ¨ºó½øÐÐͳ¼Æ
log_checkpoint_interval
ÈÕÖ¾Ìá½»µãÊý¾ÝÁ¿¼ä¸ô
ÒÔ²Ù×÷ϵͳblock(ͨ³£512-byte)Ϊµ¥Î»£¬µ±ÈÕÖ¾ÀÛ¼ÆÖÁ´Ë²ÎÊý£¬»áʹsgaÖÐdirty buffer±»Í¬²½ÖÁÊý¾ÝÎļþ£¬ÈÕÖ¾Çл»Ê±Ò²»áÒýÆð´Ë²Ù×÷£¬ÈçÉèΪ0£¬ÔòÏ൱ÓÚÎÞÏ޴󣬴˲ÎÊýʧȥ×÷Óã¬ÈÕÖ¾Ìá½»½öÒÀ¿¿ÈÕÖ¾ÎļþµÄÇл»¡£
ӦѡÔñÊʵ±´óСµÄÈÕÖ¾Îļþ£¬Í¬Ê±Ê¹log_checkpoint_intervalÂÔ´óÓÚÈÕÖ¾Îļþ»òÉèΪ0¡£ÔÔòÉÏÓ¦¸Ã±ÜÃâ¹ýÓÚƵ·±µÄcheckpoint²Ù×÷£¬¿ØÖÆÔÚ30·ÖÖÓÒÔÉÏΪºÃ¡£
ÍƼö´Ë²ÎÊýÉèΪ0¡£
log_buffer
ÔÚÏßÈÕÖ¾»º³å£¬×Ö½ÚΪµ¥Î»£¬512K»ò128K*CPUÊýÁ¿£¬È¡½Ï´óÖµ
processesºÍsessions
dedicated serverģʽÏÂÿһ¸öÁ¬½Ó¶¼ÓÐÒ»¸öOracle·þÎñ½ø³Ì£¨process£©ÎªÖ®·þÎñ£¬Õâ¸öÁ¬½Ó±¾ÉíÒ²¾ÍÊÇÒ»¸ö»á»°£¨session£©¡£
shared serverģʽÏÂËùÓÐÁ¬½Ó¹²ÏíÒ»¸öOracle·þÎñ½ø³Ì³Ø£¬ÕâÑùprocessºÍsession¾Í²»ÔÙÊÇÒ»Ò»¶ÔÓ¦£¬sessionsÒª´óÓÚprocesses¡£
sort_area_sizeºÍsort_area_retained_size
ÅÅÐò»º³åÇø£¬×Ö½ÚΪµ¥Î»¡£
µ±ÅÅÐò¼Ç¼±»È«²¿È¡×ߺ󣬻º³åÇøËõ¼õµ½sort_area_retained_size£¬Îª¼õÉÙ»º³åÇøËõ·ÅµÄ¿ªÏú£¬¿Éʹsort_area_sizeºÍsort_area_retained_sizeÈ¡Ïàֵͬ¡£
hash_area_size
hash join»º³åÇø£¬×Ö½ÚΪµ¥Î»£¬È±Ê¡Îª2*sort_area_size¡£
db_file_multiblock_read_count
ÿ´Î¶ÁÈ¡µÄdb blockÊý£¬¶Ô´ó¹æÄ£²éѯÐÔÄÜÓÐÌá¸ß£¬ÌرðÊDZíɨÃèЧÂÊ¡£ÔÚÏßϵͳӦ±ÜÃâÕâÖÖÀàÐ͵IJéѯ¡£
db_writer_processes
ͬ²½Êý¾Ý½ø³ÌÊý£¬ÓëcheckpointµÄƵÂʺÍÊý¾ÝÁ¿Óйء£
db_block_lru_latches
LRUËø¼¯£¬Ò»°ãÉèΪCPUÊýÄ¿¡£RedHat Linux 6.xϵÄOracle 8.1.6Éè´Ë²ÎÊý»áµ¼ÖÂϵͳ¹ÒÆð£¬ÒɶÔsmpÖ§³ÖÓÐÎÊÌâ
log_archive_start
ϵͳÆô¶¯Ê±ÊÇ·ñͬʱÆô¶¯¹éµµ½ø³Ì£¨archive£©¡£
log_archive_dest_1
¹éµµÈÕ־Ŀ¼£¬×îºóµÄ±êºÅ±íÃ÷¹éµµÏ̱߳àºÅ£¬Ò»°ãÖ»ÓÃ1¡£
log_archive_format
¹éµµÈÕÖ¾Ãû³Æ£¬%tÖ¸¹éµµÏ̱߳àºÅ£¬ %sÖ¸¹éµµÈÕÖ¾ÐòÁкÅ
rollback_segments
Èç¹û´´½¨»Ø¹ö¶Î£¨rollback segment£©Ê±²»Ê¹ÓÃpublicÑ¡ÏÄǾÍÊÇʹÓÃ˽ÓеĻعö¶Î£¬ÕâÑù¾Í±ØÐëÔÚϵͳÆô¶¯Ê±¼¤»î¡£
ÍƼöʹÓÃpublic rollback segmentµÄ×ö·¨£¬Õâ¸öÑ¡Ïî¿ÉÒÔ·ÏÆú¡£
background_dump_dest
Oracleϵͳ½ø³Ì¼Ç¼logºÍtrcĿ¼¡£
alert_{ʵÀýÃû}.logÒÔÎı¾·½Ê½¼Ç¼ϵͳÆô¶¯¡¢¹Ø±Õ¡¢³ö´í¡¢´æ´¢±ä»¯¡¢ÈÕÖ¾Çл»µÈlogÐÅÏ¢¡£
ϵͳ½ø³ÌÒÔ¸÷×ÔÃû³ÆºÍ½ø³ÌºÅ¼Ç¼´íÎóÐÅÏ¢£¬ÎļþÒÔtrcΪºó׺£¬Îı¾¸ñʽ¡£
core_dump_dest
Oracle·þÎñ½ø³ÌµÄcore dumpĿ¼¡£
user_dump_dest
Oracle·þÎñ½ø³ÌÒÔ¸÷×ÔÃû³ÆºÍ½ø³ÌºÅ¼Ç¼´íÎóÐÅÏ¢£¬ÎļþÒÔtrcΪºó׺£¬Îı¾¸ñʽ¡£
3.2 Oracle 9i
²Î¼û9i/initoradb.ora¡£
pga_aggregate_target
ÒÔK¡¢M¡¢GΪµ¥Î»
sort, group-by, hash-join, bitmap merge, bitmap createµÈ¶ÔÄÚ´æÓÐÒ»¶¨ÐèÇóµÄSQL²Ù×÷£¬¶¼ÓÉ´ËÑ¡Ïîͳһ¶¯Ì¬·ÖÅäÄÚ´æÇøÓò´óС£¬Òò´ËOracle 8iÖÐÈçsort_area_size,sort_area_retained_size,hash_area_size£¬bitmap_merge_area_sizeµÈÑ¡Ïî¿ÉÒÔ·ÏÆú¡£
db_cache_size
Êý¾Ý»º³åÇø£¬ÒÔK¡¢M¡¢GΪµ¥Î»£¬×Ô¶¯¶ÔÆëµ½Á£¶Èµ¥Î»¡£
È¡´úOracle 8iµÄdb_block_buffersÑ¡Ïî¡£
undo_management
»Ø¹ö¿Õ¼ä¹ÜÀíģʽ£¬È±Ê¡Îªmanual£¬Ê¹Óûعö¶Î£¨rollback segment£©£¬ÈçÉèΪauto£¬ÔòʹÓÃOracle 9iµÄ»Ø¹ö±í¿Õ¼ä¡£´ËÑ¡Ïî¾ö¶¨ÁËÒÔϹØÓÚundoµÄÆäËüÑ¡Ïî¡£
undo_retention
ÒÑÌá½»Êý¾ÝÔڻعö±í¿Õ¼äÖб£Áôʱ¼ä£¬ÒÔÃëΪµ¥Î»£¬È±Ê¡900¡£
µ±Ä³Ð©½Ï³¤Ê±¼äµÄ²éѯÐèҪͨ¹ý»Ø¹öÊý¾ÝÖؽ¨ÀÏÊý¾Ý¿éµÄʱºò£¬´ËÑ¡Ïî¿ÉʹÐÂÊÂÎñ¾¡¿ÉÄÜʹÓÿÕÏеĻعö±í¿Õ¼ä£¬ÕâÑù¾Í¼õÉÙÁ˲éѯ¹ý³ÌÒòsnapshot too old¶øʧ°ÜµÄ¼¸ÂÊ¡£
È»¶øµ±¿ÕÏлعö±í¿Õ¼ä²»×ãÒÔÓ¦¸¶ÐÂÊÂÎñʱ£¬ÏµÍ³ÈÔÈ»»áÖØÓôËÑ¡Ïî±£ÁôµÄ¿Õ¼ä£¬Òò´Ë²»Äܱ£Ö¤³¤²éѯһ¶¨Äܳɹ¦Ö´ÐÐÍê±Ï¡£
undo_tablespace
Ö¸¶¨ÏµÍ³Æô¶¯Ê±µÄ»Ø¹ö±í¿Õ¼ä¡£
4 ¹¤¾ß
ËùÓвμûÄÚÈݶ¼ÔÚ¸½¼þ04_tool/Ï¡£
ÔÚ¡¶ÓÅ»¯¡·Ò»½ÚÖÐÌÖÂÛÒÔϹ¤¾ßʹÓõÄЧÂÊ¡£
4.1 sqlldr
²Î¼ûsqlldr/¡£
ÓÃÓÚ½«¸ñʽ»¯µÄÎı¾Êý¾ÝÉÏÔص½±íÖÐÈ¥
ÒÔ±íempΪÀý
Ê×Ïȱàдһ¸ö¿ØÖÆÃüÁîµÄ½Å±¾Îļþ£¬Í¨³£ÒÔctl½á⣬ÄÚÈÝÈçÏ£º
emp.ctl
load data
append
into table emp
fields terminated by '|'
(
no float external,
name char(20),
age integer external,
duty char(1),
salary float external,
upd_ts date(14) 'YYYYMMDDHH24MISS'
)
À¨ºÅÀï¶ÔÊý¾ÝÎļþÀïÿ¸öÊý¾ÝÓò½øÐнâÊÍ£¬ÒÔ´ËÔÚÉÏÔØʱÓëÄ¿±ê±í½øÐбȶԡ£
³ýÁËappendÍ⣬»¹ÓÐinsert¡¢replace¡¢truncateµÈ·½Ê½£¬Óëappend´óͬСÒ죬²»×÷¸ü¶àµÄ½âÊÍ¡£
ÔÙ½«ÉÏÔØÊý¾Ý×éÖ¯³ÉÊý¾ÝÎļþ£¬Í¨³£ÒÔdat½á⣬ÄÚÈÝÈçÏ£º
emp.dat
100000000001|Tom|000020|1|000000005000|20020101000000
100000000002|Jerry|000025|2|000000008000|20020101235959
·Ö¸ô·ûÒªÓëctlÎļþÖÐfields terminated byÖ¸¶¨µÄÒ»Ö£¬Õâ¸öÀý×ÓÖÐΪ"|"
ctlºÍdatÎļþ¾ÍÐ÷ºó¿ÉÒÔÖ´ÐÐÉÏÔØ£¬ÃüÁîΪ£º
sqlldr dbuser/oracle control=emp.ctl data=emp.dat
Ò²¿ÉÒÔ½«datÎļþºÏ²¢ÔÚctlÎļþÖУ¬ctlÎļþ¸ÄдΪ£º
emp2.ctl
load data
infile *
append
into table emp
fields terminated by '|'
(
no float external,
name char(20),
age integer external,
duty char(1),
salary float external,
upd_ts date(14) 'YYYYMMDDHH24MISS'
)
begindata
100000000003|Mulder|000020|1|000000005000|20020101000000
100000000004|Scully|000025|2|000000008000|20020101235959
¿ØÖÆÎļþÖÐinfileÑ¡Ïî¸úsqlldrÃüÁîÐÐÖÐdataÑ¡ÏÒåÏàͬ£¬ÈçʹÓÃinfile *Ôò±íÃ÷Êý¾ÝÔÚ±¾¿ØÖÆÎļþÒÔbegin data¿ªÍ·µÄÇøÓòÄÚ¡£
ÕâÑùÃüÁî±ä³É£º
sqlldr dbuser/oracle control=emp2.ctl
conventional path
ͨ¹ý³£¹æͨµÀ·½Ê½ÉÏÔØ¡£
rows£ºÃ¿´ÎÌá½»µÄ¼Ç¼Êý
bindsize£ºÃ¿´ÎÌá½»¼Ç¼µÄ»º³åÇø
readsize£ºÓëbindsize³É¶ÔʹÓã¬ÆäÖнÏСÕß»á×Ô¶¯µ÷Õûµ½½Ï´óÕß
sqlldrÏȼÆËãµ¥Ìõ¼Ç¼³¤¶È£¬³ËÒÔrows£¬ÈçСÓÚbindsize£¬²»»áÊÔͼÀ©ÕÅrowsÒÔÌî³äbindsize£»È糬³ö£¬ÔòÒÔbindsizeΪ׼¡£
ÃüÁîΪ£º
sqlldr dbuser/oracle control=emp.ctl log=emp.log rows=10000 bindsize=8192000
direct path
ͨ¹ýֱͨ·½Ê½ÉÏÔØ£¬²»½øÐÐSQL½âÎö¡£
ÃüÁîΪ£º
sqlldr dbuser/oracle control=emp.ctl log=emp.log direct=true
4.2 exp
²Î¼ûdmp/exp_demo.sh¡£
½«Êý¾Ý¿âÄڵĸ÷¶ÔÏóÒÔ¶þ½øÖÆ·½Ê½ÏÂÔسÉdmpÎļþ£¬·½±ãÊý¾ÝǨÒÆ¡£
buffer£ºÏÂÔØÊý¾Ý»º³åÇø£¬ÒÔ×Ö½ÚΪµ¥Î»£¬È±Ê¡ÒÀÀµ²Ù×÷ϵͳ
consistent£ºÏÂÔØÆÚ¼äËùÉæ¼°µÄÊý¾Ý±£³Öread only£¬È±Ê¡Îªn
direct£ºÊ¹ÓÃֱͨ·½Ê½ £¬È±Ê¡Îªn
feeback£ºÏÔʾ´¦Àí¼Ç¼ÌõÊý£¬È±Ê¡Îª0£¬¼´²»ÏÔʾ
file£ºÊä³öÎļþ£¬È±Ê¡Îªexpdat.dmp
filesize£ºÊä³öÎļþ´óС£¬È±Ê¡Îª²Ù×÷ϵͳ×î´óÖµ
indexes£ºÊÇ·ñÏÂÔØË÷Òý£¬È±Ê¡Îªn£¬ÕâÊÇÖ¸Ë÷ÒýµÄ¶¨Òå¶ø·ÇÊý¾Ý£¬exp²»ÏÂÔØË÷ÒýÊý¾Ý
log£ºlogÎļþ£¬È±Ê¡ÎªÎÞ£¬ÔÚ±ê×¼Êä³öÏÔʾ
owner£ºÖ¸Ã÷ÏÂÔصÄÓû§Ãû
query£ºÑ¡Ôñ¼Ç¼µÄÒ»¸ö×Ó¼¯
rows£ºÊÇ·ñÏÂÔرí¼Ç¼
tables£ºÊä³öµÄ±íÃûÁбí
ÏÂÔØÕû¸öʵÀý
exp dbuser/oracle file=oradb.dmp log=oradb.log full=y consistent=y direct=y
userÓ¦¾ßÓÐdbaȨÏÞ
ÏÂÔØij¸öÓû§ËùÓжÔÏó
exp dbuser/oracle file=dbuser.dmp log=dbuser.log owner=dbuser buffer=4096000 feedback=10000
ÏÂÔØÒ»ÕÅ»ò¼¸Õűí
exp dbuser/oracle file=dbuser.dmp log=dbuser.log tables=table1,table2 buffer=4096000 feedback=10000
ÏÂÔØijÕűíµÄ²¿·ÖÊý¾Ý
exp dbuser/oracle file=dbuser.dmp log=dbuser.log tables=table1 buffer=4096000 feedback=10000 query=\"where col1=\'¡\' and col2 \<¡\"
²»¿ÉÓÃÓÚǶÌ×±í
ÒÔ¶à¸ö¹Ì¶¨´óСÎļþ·½Ê½ÏÂÔØijÕűí
exp dbuser/oracle file=1.dmp,2.dmp,3.dmp,¡ filesize=1000m tables=emp buffer=4096000 feedback=10000
ÕâÖÖ×ö·¨Í¨³£ÓÃÔÚ£º±íÊý¾ÝÁ¿½Ï´ó£¬µ¥¸ödumpÎļþ¿ÉÄܻᳬ³öÎļþϵͳµÄÏÞÖÆ
ֱͨ·¾¶·½Ê½
direct=y£¬È¡´úbufferÑ¡ÏqueryÑ¡Ïî²»¿ÉÓÃ
ÓÐÀûÓÚÌá¸ßÏÂÔØËÙ¶È
consistentÑ¡Ïî
×ÔexportÆô¶¯ºó£¬consistent=y¶³½áÀ´×ÔÆäËü»á»°µÄ¶Ôexport²Ù×÷µÄÊý¾Ý¶ÔÏóµÄ¸üУ¬ÕâÑù¿ÉÒÔ±£Ö¤dump½á¹ûµÄÒ»ÖÂÐÔ¡£µ«Õâ¸ö¹ý³Ì²»ÄÜÌ«³¤£¬ÒÔÃâ»Ø¹ö¶ÎºÍÁª»úÈÕÖ¾ÏûºÄÍê
4.3 imp
²Î¼ûdmp/imp_demo.sh¡£
½«expÏÂÔصÄdmpÎļþÉÏÔص½Êý¾Ý¿âÄÚ¡£
buffer£ºÉÏÔØÊý¾Ý»º³åÇø£¬ÒÔ×Ö½ÚΪµ¥Î»£¬È±Ê¡ÒÀÀµ²Ù×÷ϵͳ
commit£ºÉÏÔØÊý¾Ý»º³åÇøÖеļǼÉÏÔغóÊÇ·ñÖ´ÐÐÌá½»
feeback£ºÏÔʾ´¦Àí¼Ç¼ÌõÊý£¬È±Ê¡Îª0£¬¼´²»ÏÔʾ
file£ºÊäÈëÎļþ£¬È±Ê¡Îªexpdat.dmp
filesize£ºÊäÈëÎļþ´óС£¬È±Ê¡Îª²Ù×÷ϵͳ×î´óÖµ
fromuser£ºÖ¸Ã÷À´Ô´Óû§·½
ignore£ºÊÇ·ñºöÂÔ¶ÔÏó´´½¨´íÎó£¬È±Ê¡Îªn£¬ÔÚÉÏÔØÇ°¶ÔÏóÒѱ»½¨Á¢ÍùÍùÊÇÒ»¸öÕý³£ÏÖÏó£¬ËùÒÔ´ËÑ¡ÏÒéÉèΪy
indexes£ºÊÇ·ñÉÏÔØË÷Òý£¬È±Ê¡Îªn£¬ÕâÊÇÖ¸Ë÷ÒýµÄ¶¨Òå¶ø·ÇÊý¾Ý£¬Èç¹ûÉÏÔØʱË÷ÒýÒѽ¨Á¢£¬´ËÑ¡ÏʹΪnÒ²ÎÞЧ£¬imp×Ô¶¯¸üÐÂË÷ÒýÊý¾Ý
log£ºlogÎļþ£¬È±Ê¡ÎªÎÞ£¬ÔÚ±ê×¼Êä³öÏÔʾ
rows£ºÊÇ·ñÉÏÔرí¼Ç¼
tables£ºÊäÈëµÄ±íÃûÁбí
touser£ºÖ¸Ã÷Ä¿µÄÓû§·½
ÉÏÔØÕû¸öʵÀý
imp dbuser/oracle file=oradb.dmp log=oradb.log full=y buffer=4096000 commit=y ignore=y feedback=10000
ÉÏÔØij¸öÓû§ËùÓжÔÏó
imp dbuser/oracle file=dbuser.dmp log=dbuser.log fromuser=dbuser touser=dbuser2 buffer=2048000 commit=y ignore=y feedback=10000
ÉÏÔØÒ»ÕÅ»ò¼¸Õűí
imp dbuser2/oracle file=user.dmp log=user.log tables=table1,table2 fromuser=dbuser touser=dbuser2 buffer=2048000 commit=y ignore=y feedback=10000
ÒÔ¶à¸ö¹Ì¶¨´óСÎļþ·½Ê½ÉÏÔØijÕűí
imp dbuser/oracle file=\(1.dmp,2.dmp,3.dmp,¡\) filesize=1000m tables=emp fromuser=dbuser touser=dbuser2 buffer=4096000 commit=y ignore=y feedback=10000
4.4 sqlplus
²Î¼ûsqlplus/download.sh¡£
½öÁгö³£ÓõÄÑ¡Ï¶Ô¸´ÔÓµÄÓ¦Óò»×÷É
4.4.1 ÃüÁîÐвÎÊý
/ as {sysdba|sysopr}£ºÊ¹ÓòÙ×÷ϵͳÓû§ÑéÖ¤£¬ÒÔosdba»òosoprÒ»Ô±µÄÉí·ÝµÇ¼£¬ÈçÑé֤ͨ¹ý£¬±»¸³Óèsysdba»òsysoprµÄȨÏÞ
ʹÓøñʽ£ºsqlplus "/ as sysdba"
/nolog£º²»Ö´ÐÐconnect²Ù×÷£¬Ö±½Ó½øÈësqlplus²Ù×÷½çÃæ
-s£ºsilentģʽ£¬²»ÏÔʾsqlplusÆô¶¯ÐÅÏ¢ºÍÌáʾ·û
<£º½ÓÊÜsql½Å±¾´Ó±ê×¼ÊäÈëÖض¨Ïò
<<£ºÁ¢¼´Îĵµ
4.4.2 Ìáʾ·ûÃüÁî
accept variable [number|char|date] [format format] [default default] [prompt text] [hide]£º½ÓÊÜÊäÈë±äÁ¿
Àý×Ó£ºaccept pwd char format a8 prompt 'Password:' hide
column column [format format] [heading heading]£ºÉ趨¶Ôij¸öÓòµÄÏÔʾ¸ñʽ
Èç¹ûҪͬʱ¸Ä±äijÓòµÄÊä³ö³¤¶ÈºÍ±êÌ⣬±ØÐëʹÓÃcolumnÃüÁî
¼ûempµÄ¶¨Ò壬name±¾Îªchar(20)£¬Êä³öËõΪ10룬duty±¾Îª char(1)£¬À©ÕÅΪ6룬ÒÔ±ãÓÐ×ã¹»µÄ¿Õ¼äÏÔʾÖÐÎıêÌâ¡£
SQL>;column name format a10 heading 'ÐÕÃû';
SQL>;column duty format a6 heading 'ְλ';
SQL>;column age format 999999 heading 'ÄêÁä';
SQL>;column upd_ts format a14 heading '¸üÐÂʱ¼ä';
SQL>;select name,duty,age,upd_ts from emp;
show option£ºÏÔʾSETµÄÑ¡Ïî
spool [filename|off]£ºÊä³öÖض¨ÏòÎļþ
timing [start text|show|stop]£º¶¨Ê±Æ÷
4.4.3 SETÑ¡Ïî
autocommit£º×Ô¶¯Ìá½»insert¡¢update¡¢delete´øÀ´µÄ¼Ç¼¸Ä±ä£¬È±Ê¡Îªoff
colsep£ºÓòÊä³ö·Ö¸ô·û
define£ºÊ¶±ðÃüÁîÖеıäÁ¿Ç°×º·û£¬È±Ê¡Îªon£¬Ò²¾ÍÊÇ'&'£¬Åöµ½±äÁ¿Ç°×º·û£¬ºóÃæµÄ×Ö·û´®×÷Ϊ±äÁ¿´¦Àí
Èç¹û´ý¸üÐÂÄÚÈÝ°üº¬'&'£¨ÔÚURLÖкܳ£¼û£©£¬¶ødefine·ÇÉèΪoff£¬sqlplus»á°Ñ'&'ºóÃæ½ô¸úµÄ×Ö·û´®µ±³É±äÁ¿£¬ÌáʾÊäÈ룬ÕâÀï±ØÐëÖØÐÂÊäÈë'&'ºÍÄǸö×Ö·û´®£¬²ÅÄÜʵÏÖÕý³£¸üС£½«defineÉèΪoff£¬¾Í²»ÔÙ½øÐбäÁ¿Åжϡ£
SQL>;set define off;
SQL>;update bbs_forum set url='http://www.xxx.com/bbs/show.php&forum_id=1' where forum_id=1;
echo£ºÏÔʾstartÆô¶¯µÄ½Å±¾ÖеÄÿ¸ösqlÃüÁȱʡΪon
feedback£º»ØÏÔ±¾´ÎsqlÃüÁî´¦ÀíµÄ¼Ç¼ÌõÊý£¬È±Ê¡Îªon
heading£ºÊä³öÓò±êÌ⣬ȱʡΪon
linesize£ºÊä³öÒ»ÐÐ×Ö·û¸öÊý£¬È±Ê¡Îª80
Èç¹ûÒ»ÐÐÊä³ö³¬¹ýlinesize£¬»á»Ø³µµ½µÚ¶þÐУ¬ÕâÑù¸ñʽ¾Í»á»ìÂÒ¡£
markup html£ºhtml¸ñʽÊä³ö£¬È±Ê¡Îªoff
ͨ³£ÐèÒªÓëspoolÅäºÏ£¬·ñÔòhtmlÊä³ö¾ÍûÓÐÒâÒå¡£
numwidth£ºÊä³önumberÀàÐÍÓò³¤¶È£¬È±Ê¡Îª10
³¤numberÀàÐ͵ÄÓò³£³£ÒòΪÊä³ö³¤¶ÈµÄÎÊÌ⣬ÒýÆðÎó»á¡£
pagesize£ºÊä³öÿҳÐÐÊý£¬È±Ê¡Îª24
ΪÁ˱ÜÃâ·ÖÒ³£¬¿ÉÉ趨Ϊ0¡£
termout£ºÏÔʾ½Å±¾ÖеÄÃüÁîµÄÖ´Ðнá¹û£¬È±Ê¡Îªon
timing£ºÏÔʾÿÌõsqlÃüÁîµÄºÄʱ£¬È±Ê¡Îªoff
trimout£ºÈ¥³ý±ê×¼Êä³öÿÐеÄÍÏβ¿Õ¸ñ£¬È±Ê¡Îªoff
trimspool£ºÈ¥³ýÖض¨Ïò£¨spool£©Êä³öÿÐеÄÍÏβ¿Õ¸ñ£¬È±Ê¡Îªoff
4.4.4 Àý×Ó
ÒÔÎı¾ÐÎʽÏÂÔرíÊý¾Ý
oracleȱ·¦½«±íÖÐÊý¾ÝÊä³öÖÁÎı¾ÎļþµÄ¹¤¾ß£¬Òò´ËÖ»ÄÜÀûÓÃsqlplusºÍunix¹¤¾ß×ö±äͨµÄ´¦Àí
sqlplus -s dbuser/oracle set colsep |;
set echo off;
set feedback off;
set heading off;
set pagesize 0;
set linesize 1000;
set numwidth 12;
set termout off;
set trimout on;
set trimspool on;
spool tmp.txt;
select * from emp;
spool off;
exit
EOF
tr -d ' ' < tmp.txt >;emp.txt ɾ³ý¿Õ¸ñ£¬¿ÉÑ¡
×¢Ò⣺һ¶¨ÒªÓÃspool£¬Èç¹ûÔÚÃüÁîÐÐÖÐÖ±½ÓÓÃ>;tmp.txt¿ÉÄÜ»áÔì³ÉÊý¾Ýȱʧ£¬ÖÁÉÙÔÚUnixware7ÉÏÈç´Ë
¼Ù¶¨Ä³ÓòÊÇchar(n)£¬ÈçÖмä³öÏֻسµ\n£¬ÔòÏÂÔسöµÄÕâÌõ¼Ç¼µÄ¸ñʽ½«»á´íÂÒ£¬²»Ò˲ÉÓô˷½·¨
5 ±¸·Ý¼°»Ö¸´
ËùÓвμûÄÚÈݶ¼ÔÚ¸½¼þ05_backup/Ï¡£
5.1 exportÓëimport·½Ê½
²Î¼ûdmp/backup.sh¡£
¼û¡¶¹¤¾ß¡·¶ÔexpºÍimpµÄÃèÊö
Êý¾Ý¿âÖеĶÔÏóÊDZȽ϶àµÄ£¬µ«³ýÁ˱íÒÔÍâÕ¼ÓõĿռ䲻´ó£¬ËùÒÔµ±±íÖмǼÊýÁ¿´ïµ½Ò»¶¨¹æÄ£ºó£¬ÒÔÓû§µÄ·½Ê½Ò»ÏÂ×Ó°ÑÊý¾Ýexp³öÀ´¾ÍÏԵò»¹»Áé»î¡£¿¼ÂÇÒÔϵIJßÂÔ£¬ÏÈexp³ö³ý±íÊý¾ÝÒÔÍâµÄËùÓжÔÏó£¬ÔÙ·Ö±ðexp³öÿÕűíµÄÊý¾Ý¡£
exp dbuserËùÓеÄÊý¾Ý¶ÔÏó
exp dbuser/oracle file=dbuser.dmp log=user.log owner=user buffer=2048000 rows=n
expµ¥ÕűíµÄÊý¾Ý
sqlplus -s dbuser/oracle set colsep |;
set echo off;
set feedback off;
set heading off;
set pagesize 0;
set linesize 1000;
set termout off;
set trimout on;
set trimspool on;
spool tables.txt;
select table_name from user_tables;
spool off;
exit;
EOF
for table in $(cat tables.txt)
do
exp dbuser/oracle file=${table}_$(date '+%Y%m%d').dmp tables=$table direct=y
done
5.2 À䱸·Ý
shutdownÊý¾Ý¿â£¬½«ËùÓкͱ¾ÊµÀýÓйصÄÎļþ£¬°üÀ¨datafile,controlfile,redolog,archived redolog,initora.oraµÈÈ«²¿±¸·Ý¡£»Ö¸´Ê±Ö»Òª½«ÕâЩÎļþ·Å»Ø´ÓÇ°µÄĿ¼£¬startupÊý¾Ý¿â¼´¿É¡£
5.3 Áª»úÈ«±¸·Ý+ÈÕÖ¾±¸·Ý
5.3.1 ÉèÖÃ
Èç¹ûÊý¾Ý¿âʵÀýÔÀ´Ã»ÓÐʹÓù鵵ÈÕÖ¾¹¦ÄÜ£¬Ôò±ØÐë½øÐÐÅäÖÃÐÞ¸Ä
initoradb.ora£º
log_archive_start = true #ʵÀýÆô¶¯Ê±Í¬Ê±Æô¶¯¹éµµ½ø³Ì¡£
log_archive_dest_1= "location=/appl/oracle/oradata/orafe/arch/arch" #¹éµµÈÕ־Ŀ¼¡£
´ò¿ª¹éµµÈÕÖ¾¹¦ÄÜ£º
shutdownÊý¾Ý¿â
sqlplus "/ as sysdba"
SQL>;startup mount
SQL>;alter database archivelog;
SQL>;alter database open;
¿ÉÓÃarchive log list²é¿´×´Ì¬£¬È¥³ý¹éµµÈÕÖ¾¹¦ÄܵÄÃüÁîΪalter database noarchivelog¡£
5.3.2 ²½Öè
²Î¼ûonline/full.sh¡¢daily.sh£¬ÒÔosdba×éµÄÓû§Ö´ÐÐ
Áª»úÈ«±¸·Ý£º
Êý¾Ý¿â´¦ÓÚopen״̬£¬ÒÀ´Î¶Ô¸÷¸ö±í¿Õ¼ä±¸·Ý
sqlplus "/ as sysdba"
SQL>;alter tablespace system begin backup;
¸´ÖÆ´Ëtablespace¸÷¸ödatafile
SQL>;alter tablespace system end backup;
×¢Ò⣺¾ÝÍƲ⣬begin backupÊǶÔtablespace¶³½áдÈ룬end backupÊǽâ³ý¶³½á£¬Òò´Ë¸´ÖÆdatafileµÄ¹ý³Ì²»Ò˹ý³¤
±¸·Ýcontrolfile
SQL>;alter database backup controlfile to '¡¡.';
ÈÕÖ¾±¸·Ý£º
sqlplus "/ as sysdba"
SQL>;alter system archive log stop;
ÒÆÈ¥ÈÕ־Ŀ¼ÏµÄËùÓÐarchived redolog
SQL>;alter system archive log start;
5.3.3 »Ö¸´
Êý¾Ý¿â´¦ÓÚshutdown״̬
×î²îÇé¿ö£º´ÅÅÌÈ«²¿Ë𻵣¬½ö±£´æÉÏ´ÎÁª»úÈ«±¸·ÝºÍÿÌìÈÕÖ¾±¸·Ý
½â¾öÓ²¼þ¹ÊÕÏ£¬ÅäÖÃϵͳÈí¼þ¼°»·¾³
oracleÓû§£¬½«È«±¸·ÝºÍÈÕÖ¾±¸·ÝתÒÆÖÁÏàӦĿ¼£¬¸ù¾Ýinitoradb.oraÖÐcontrolfileµÄÅäÖ㬽«±¸·Ý¿ØÖÆÎļþ¸´ÖƵ½ÏìӦĿ¼ÏÂ
sqlplus "/ as sysdba"
SQL>;startup mount
SQL>;recover database until cancel using backup controlfile;
Öð¸öÈ·ÈÏ´ý»Ö¸´µÄarchived redolog£¬´ý×îºóÒ»¸öÍê³Éºó£¬¼üÈëcancel£¬Ê¹»Ö¸´½áÊø
SQL>;alter database open resetlogs;
×¢Ò⣺ÓÉÓÚÈÕÖ¾ÒѾÖØÖã¬ËùÒÔÓ¦¾¡¿ì×öÒ»´ÎÁª»úÈ«±¸·Ý
¶ªÊ§Ä³Êý¾ÝÎļþ
Ö»Òª½«´ËÎļþ´ÓÉÏ´ÎÁª»úÈ«±¸·ÝÖи´ÖÆÖÁÆäĿ¼£¬²¢½«×ÔÉÏ´ÎÁª»úÈ«±¸·ÝÒÔÀ´ËùÓÐÈÕÖ¾±¸·ÝÒÆÖÁ¹éµµÄ¿Â¼
sqlplus "/ as sysdba"
SQL>;startup mount
SQL>;alter database recover datafile 'path/file';»òÕß¼òµ¥Ð©recover database;
SQL>;alter database open;
Èç¹û´ËÎļþË𻵻ò¶ªÊ§£¬ÓÖÎÞ±¸·Ý£¬ÔòÖ»Äܽ«´ËÎļþÍÑ»ú£¬½«Êý¾Ýexp³öÀ´£¬Öؽ¨±í¿Õ¼ä£¬ÔÙimp½øÈ¥
sqlplus "/ as sysdba"
SQL>;connect internal
SQL>;startup mount
SQL>;alter database datafile 'path/file' offline;
SQL>;alter database open;
5.4 ×¢ÒâÒªµã
ÎÞÂÛÓжàÉÙ°ÑÎÕ£¬»Ö¸´Ç°ÏÈ×öÀ䱸·Ý£¬´ËΪµÚÒ»ÔÔò
²»ÕâÑù×ö£¬±ãÊÇÎÞ·¿ÉÍË£¬Ò»µ©Ê§Î󣬺ó¹û²»±Ø¶à˵¡£
rollback¶ÎËð»µ
ÕâÊǷdz£ÑÏÖصÄÎÊÌ⣬¿ÉÔÚinitora.oraÖÐдÈë_corrupted_rollback_segments=(rxx)£¬Æô¶¯Ê±±Ü¿ªË𻵵Ärollback¶Î£¬ÕâÖ»ÊÇȨÒËÖ®¼Æ¡£ÈçÊý¾Ý¿â´¦ÓÚarchivelog£¬Ó¦´ÓÉÏÒ»´ÎÈ«±¸·ÝÆðÀûÓñ¸·ÝµÄÈÕÖ¾½øÐлָ´£»ÈçÊý¾Ý¿â´¦ÓÚnoarchivelog£¬Ó¦¾¡¿ì½«È«²¿Êý¾Ýexport³öÀ´£¬Öؽ¨Êý¾Ý¿â£¬ÔÙimport½øÈ¥¡£ËùÓвÙ×÷֮ǰ£¬Ó¦×öÀ䱸·Ý¡£
Êý¾Ý¿âÒì³£ÖÐÖ¹´¦Àí
ͨ¹ýÊÖ¹¤shutdown abort²Ù×÷ÖÐÖ¹Êý¾Ý¿â£¬²»»á²úÉú´óµÄÎÊÌ⣬ͨ³£Ö±½ÓstartupÎÞÐèʹÓýéÖʻָ´ÃüÁî
Èç¹ûÓÉÓÚ»úÆ÷±ÀÀ£ÒýÆðµÄÖÐÖ¹£¬ÔòÇé¿öÑÏÖصö࣬ÓпÉÄÜҪʹÓõ½ÉÏÃæÌáµ½µÄ»Ö¸´·½·¨£¬²»¹ýÕâÖÖÏÖÏó²¢²»¶à¼û¡£Ò»°ãÐèÒªÏÔʽʹÓýéÖʻָ´ÃüÁÈçÏ£º
sqlplus "/ as sysdba"
SQL>;startup mount;
SQL>;recover database;
SQL>;alter database open;
_____________________________________________________
È«ÎÄÍê!