MYSQL教程之在Redhat 9上安装 Oracle 817心得
RDBMS并非没有局限性。它们难以扩展,需要大量的资源来配置和维护,比如时间、硬件和人力。同样,它们往往遵循峰值性能模型,这就要求系统按照峰值容量来配置可用性,而不考虑典型的数据使用情况。oracle|心得在Linux上安装Oracle8i(注:援用http://vip.6to23.com/hanson/htdocs/oracle.htm,在安装过程当中作一些改正)
关于Oracle安装的会商已有良多了,但是在理论中你仍是总会碰到某些贫苦,因而我就留下我的两分钱吧。本文会商的情况基于RedhatLinux9.0.93,
Oracle的版本号为8.1.7.0.1。
下载软件
假定你已有了一台跑着Redhat的呆板,而且它满意Oracle8i对硬件的相干请求,而且具有收集毗连,上面就下载其他所需的软件。起首在OTN下载linux
81701.tar和glibc-2.1.3-stubs.tar.gz,别的还必要:
i386-glibc-2.1-linux.tar.gz(下载地位:http://ftp.valinux.com/pub/suppo...c-2.1-linux.tar.gz)
binutils-2.10.91.0.2-3.i386.rpm(下载地位:http://mirrors.usc.edu/pub/linux...s/i386/RedHat/RPMS/
binutils-2.10.91.0.2-3.i386.rpm)
(Redhat自带的是binutils-2.13.90.0.18-9.i386.rpm,用于恢复,下载地位:http://mirrors.usc.edu/pub/linux...t/redhat/linux/9/en
/os/i386/RedHat/RPMS/compat-gcc-7.3-2.96.118.i386.rpm)
jdk118_v3-glibc-2.1.3.tar.bz2(下载地位:http://ftp.dk.xemacs.org/pub/lan...libc-2.1.3.tar.bz2)
由于Oracle自带了JRE1.1.8,以是不必独自安装,假定以上所述软件都放在/tmp目次。
(注:还必要从Java官方网站下载JDK1.4.2用以恢复,我安装的Redhat9没有发明JDK1.4.2,下载地位:http://java.sun
.com/j2se/1.4.2/download.html)
安装glibc、JDK、和binutils
su
cd/
tarzxvf/tmp/i386-glibc-2.1-linux.tar.gz
cd/usr/bin
mkdirsaved
mvgccccldsaved
ln-s/usr/i386-glibc-2.1-linux/bin/i386-glibc21-linux-gccgcc
ln-sgcccc
ln-s/usr/i386-glibc-2.1-linux/bin/i386-glibc21-linux-ldld
(注:安装oracle过程当中发明/usr/bin/ld变成非链接,必要从头设置,不然会呈现毗连堕落!)
cd/usr/lib
mkdirsaved
mvlibc.solibdl.solibm.solibpthread.sosaved
mvlibc.alibdl.alibm.alibpthread.asaved
(注:没有安装过java的话就没有这个目次,必要先mkdir/usr/java)
cd/usr/java
tarjxvf/tmp/jdk118_v3-glibc-2.1.3.tar.bz2
ln-s/usr/java/jdk118_v3/usr/local/java
(注:本来是ln-sjdk118_v3/usr/local/java,厥后发明链接不准确)
(注:安装前先转到软件安排目次cd/tmp)
rpm-Uvh--force--nodepsbinutils-2.10.91.0.2-3.i386.rpm
(注:实行这一命令后/usr/bin/ld变成非链接,必要从头设置,不然会呈现毗连堕落!)
创立用户和组
groupaddoinstall
groupadddba
groupaddoper(注:此组还象没有效到,能够往失落,上面的useradd也要响应的往失落)
useradd-d/oracle-goinstall-Gdba,operoracle(注:此处为给oracle用户设定/oracle目次,默许是/home/oracle)
passwdoracle
chown-Roracle.dba/oracle
chmod750/oracle
筹办安装
vi/oracle/.bash_profile(注:因为后面给oracle设置/oracle目次,默许是/home/oracle/.bash_profile)
修正为以下内容:
(注:内容入手下手,能够在非Linux情况修正这个文件,不外该文件中换行只能是0A,要往失落一切的0D)
#.bash_profile
#Getthealiasesandfunctions
if[-f~/.bashrc];then
.~/.bashrc
fi
#Userspecificenvironmentandstartupprograms
unsetUSERNAME
umask022
exportEDITOR=vi
exportTERM=xterm
exportTMPDIR=/tmp
#Setupinstallationenvironment
exportORACLE_SID=orcl
exportORACLE_BASE=/oracle
exportORACLE_HOME=$ORACLE_BASE/product/8.1.7
exportLD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/i386-glibc-2.1-linux/i386-glibc-linux/lib:/lib:/usr/lib:/lib:/usr/local/lib(注:恢复时这一行要删i
386-glibc-2.1的路径)
exportSHLIB_PATH=$ORACLE_HOME/lib:/usr/lib:/lib:/usr/local/lib
exportLIBPATH=$ORACLE_HOME/lib:/usr/lib:/lib:/usr/local/lib
exportTNS_ADMIN=$ORACLE_HOME/network/admin
exportNLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
exportORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
exportORACLE_OWNER=oracle
exportORACLE_TERM=xterm
exportGCC_EXEC_PREFIX=/usr/i386-glibc21-linux/lib/gcc-lib/
exportLD_ASSUME_KERNEL=2.4
exportJAVA_HOME=/usr/local/java
exportCLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip:$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib:.
(注:内容停止,注重export的内容在统一行上,CLASSPATH前面的classesxxx.zip倡议本人往查一下,我这里xxx是111,路径用冒号分开而不是分号)
suoracle
..bash_profile
exportLANG=en
cd/tmp
tarxvflinux81701.tar
个中exportLANG=en是为了避免界面黑做一团。
(注:此时最好往反省一下/usr/bin/ld的链接是不是准确:ls-l/usr/bin/ld,应当链接到/usr/i386-glibc-2.1-linux/bin/i386-glibc21-linux-ld才对,不然重
复后面的做法,先rm/usr/bin/ld,再ln。别的倡议对后面设定的各个链接都反省一下:/usr/bin/gcc,/usr/bin/cc,/usr/local/java,深白色的暗示链接不准确)
入手下手安装
./Disk1/runInstaller
点击Next;在UNIXGroupName里输出oinstall;呈现一个提醒框请求实行orainstRoot.sh,这时候别的翻开一个终端:
su
cd$ORACLE_HOME
./orainstRoot.sh
回到GUI,按Retry;选择安装EnterpriseEdition;选择典范安装;选择利用一个已存在的repository;选择JDK的地位(注:应是/usr/local/java);问
是不是要新建一个数据库,不必;持续,守候一段工夫;呈现一个提醒框请求实行root.sh;回到终端:
(注:倡议选择自界说安装,如许能够增加撑持的言语,好比简体中文等,毗连历程假如堕落的话请按前面的“处置毛病”实行,我没有碰着毛病)
viroot.sh
按以下请求修正:第98行,把SED=/usr/local/bin/sed改成SED=/bin/sed;第102行,把RMF=/bin/rm–f改成RMF="/bin/rm-f";第156行,把RUID=`/usr
/bin/id|$AWK-F({print$2}|$AWK-F){print$1}`改成RUID=`/usr/bin/id|$AWK-F({print$2}|$AWK-F){print$1}`。
./root.sh
回一次车;回到GUI,按OK。
处置毛病
(注:堕落的大概性是/usr/bin/ld的链接被变动,记着在安装binutils-2.10.91.0.2-3.i386.rpm以后要往变动)
呈现一个提醒框,说Errorininvokingtargetrelinkofmakefile/oracle/product/8.1.7/precomp/lib/ins_precomp.mk大概Errorininvokingtarget
relinkofmakefile/oracle/product/8.1.7/rdbms/lib/ins_rdbms.mk,回到终端:
exit
cd$ORACLE_HOME
tarzxvf/tmp/glibc-2.1.3-stubs.tar.gz
./setup_stubs.sh
链接事情完成后,回到GUI,按Retry;守候,直到安装完成;完成后主动启动的Net8设置导游没有反响,kill之。
恢复其他软件
su
rpm-e--nodepsbintutils-2.10.91.0.2-3
rpm-ivh/mnt/cdrom/Redhat/RPMS/binutils-2.13.90.0.18-9.i386.rpm(注:假如是下载的,地位大概纷歧样)
cd/usr/local
rmjava
(注:增补入手下手)
安装JAVA
1、#cpj2sdk-1_4_2_05-linux-i586-rpm.bin到/usr/local
2、#chmod755j2sdk-1_4_2_05-linux-i586-rpm.bin
3、#./j2sdk-1_4_2_05-linux-i586-rpm.bin(解出j2sdk-1_4_2_05-linux-i586.rpm)
4、#rpm-ivhj2sdk-1_4_2_05-linux-i586.rpm
rpm安装很便利,不必保佑了。
(注:增补停止)
ln-s/usr/java/j2sdk1.4.2_05java
(注:本来是j2sdk1.4.2_01,我如今从网下载到的是j2sdk1.4.2_05,倡议安装完后本人往反省一下。我用的是“ln-s/usr/java/j2sdk1.4.2_05/usr/local/
java”,忧虑又出来链接不合错误的情形)
cd/usr/bin
rmgccccld
mv./saved/*.
rmdirsaved
cd/usr/lib
mv./saved/*.
rmdirsaved
然后把oracle用户情况变量LD_LIBRARY_PATH中的glibc的部分删往。
创立数据库
exit
cd$ORACLE_HOME/bin
unsetLANG
unsetNLS_LANG
./dbassist
选择创立数据库;定制;多用处;下一步;共享服务器形式;往失落一切选项(创立JServer的工夫巨长);设置全局数据库名和SID,假定全局数据库名为testdb
,SID为orcl;变动字符集:字符集为UTF8、国度字符集为ZHS16GBK;六次下一步;完成。
设置Net8
./netca
利用netca是由于netasst老是没有反响,让我们小看它吧。选择监听程序设置;增加;监听程序名利用默许的LISTENER;三次下一步。
下面步骤便是对$ORACLE_HOME/network/admin/listener.ora的编纂:
#copyright(c)1997bytheOracleCorporation
#
LISTENER=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=testdb)
(SID_NAME=orcl)
(ORACLE_HOME=/oracle/product/8.1.7)
)
)
个中GLOBAL_DBNAME、SID_NAME、和ORACLE_HOME随实践情形分歧而分歧。
手工启动数据库和监听
vi/etc/oratab
把最初的N改成Y。
./dbstart
./lsnrctlstart
设置服务
su
cd/etc/init.d
vioracle
(注:内容入手下手,能够在非Linux情况下天生然后复制已往,注重要往失落0D字符)
#!/bin/bash
#
#StartupscriptforOracleandlistener
#
#chkconfig:35991
#description:Oracle8.1.7.0.1
#Setupenvironmentforscriptexecution.
./oracle/.bash_profile(注:给oracle用户设置的目次有变时必要变动此处)
case"$1"in
start)
echo"StartingOracledatabase(s)listedin/etc/oratab..."
sleep2
su-oracle-c"$ORACLE_HOME/bin/dbstart"
echo"StartingTNSlistener..."
sleep2
su-oracle-c"$ORACLE_HOME/bin/lsnrctlstart"
touch/var/lock/subsys/oracle
;;
stop)
echo"StoppingTNSlistener..."
sleep2
su-oracle-c"$ORACLE_HOME/bin/lsnrctlstop"
echo"StoppingOracledatabases(s)listedin/etc/oratab..."
sleep2
su-oracle-c"$ORACLE_HOME/bin/dbshut"
rm-f/var/lock/subsys/oracle
;;
status)
ps-ax|grep-eora_-etnslsnr
;;
*)
echo"Usage:oracle{start|stop|status}"
exit1
esac
exit0
(注:内容停止)
chmod700/etc/init.d/oracle
/sbin/chkconfig--addoracle
利用启动剧本启动和封闭
/etc/init.d/oraclestart
/etc/init.d/oraclestop
(注:到此安拆卸置完成,今后每次启动/封闭体系时oracle服务城市主动启动/中断)
(注:有些情形会提醒权限不敷,就改用root操纵,至于哪一步该用oracle哪一步该用root,操纵过程当中看情形而定,倡议优先利用oracle)
参考工具:winscp366setup.exe-SetupforWinSCP3.6.6(SCP/SFTPclientforWindows),用于在Windows下毗连到Linux并操纵文件
”由于MySQL已经是一个运行了众多知名Web2.0网站的数据,包括Craigslist、Digg、Wikipedia和Google等,或许我们可以说每一个Web2.0公司实质上是一个使用MySQL数据库的公司。 原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜! 而写到本地,我又考虑到效率问题.大家来讨论讨论吧,分数不打紧,就给10分,十全十美,没啥对错,各抒己见,但是要有说服力的哦~ 只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。 在select语句中可以使用groupby子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。 是要和操作系统进行Socket通讯的场景。否则建议慎重! 光写几个SQL实在叫无知。 呵呵,这就是偶想说的 是否碎片会引发效率问题?这都是需要进一步探讨的东西。varbinary(max)代替image也让SQLServer的字段类型更加简洁统一。
页:
[1]