一、项目中数据库的选择


一般根据以下几点:


  • 项目的规模
  • 需要的成本
  • 安全性要求
  • 负载量大小,用户大小


数据库根据模型划分,主要的类型有:


  • 关系数据库(Relational Database)
  • 网状数据库(Network Database)
  • 树状数据库(Hierarchical Database)
  • 面向对象数据库(Object-oriented Database)
  • ...

商业应用中主要是 关系型数据库(以行列结构的形成,将数据库中的信息表示出来的对象,既二维表)

根据数据库的新能有可以分为三种:

access、foxbase)

优点:成本低

安全性低、负载量小、用户量小

        2.中型数据库(mysql、sql server、informix)

                    优点:支持负载均衡,日访问量可高达15000左右

                    缺点:成本较高

        3.大型数据库(sybase、oracle、db2)

                    优点:支持负载均衡,处理数据量大、安全性较高,通过最高级别的安全认证

                    缺点:成本较高


二、Oracle的历史

1977年 美国人 Larry 成立软件开发实验室 


1980年 用c/c++开发了世界第一个商用关系型数据库(RDBMS)


1983年 公司更名为Oracle Corporation(甲骨文公司)


30多年的发展,Oracle成为世界上领先的信息管理软件供应商和独立软件开发公司,Oracle技术几乎涉及各个行业


2009年4月21日,原SUN -> Oracle


市场份额:【Oracle(54%+-)--->IBM-DB2(21%+-)--->MicrosoftMSSQL(14%+-)】


Oracle认证种类:


(1)开发技术认证:Java认证

                   数据库开发语言SQL和PL/SQL认证


 (2)数据库技术认证:


                    OCM认证【大师】


    OCP认证【专家】


    OCA认证【初级】




 (3)中间件技术认证:OracleServer认证,WEB服务器认证,。。。




 (4)专业领域的应用技术认证:


   ERP认证


                   CRM认证


                   HR认证 


                   OA认证



   TAX认证。。




2007年7月12日,甲骨文公司在美国推出Oracle11g,建议至少使用JDK6


它有400多项功能,经过了1500万个小时的测试,开发工作量达到3.6万人/月




早期:Oracle8i,9i,【10i】----(i表示internet)


近期:Oracle11g-------------(g表示grid),将多台Oracle服务器当作一台主机协调使用,网格计算被之泛视为未来的计算方式


现在:oracle 12c(clound融合云计算服务器)




window7/8中,查询端口的命名:netstat -a,或使用其它第三方工具查询当前计算机中的端口号




oracle数据库的主端口:1521,通常固定不变,前提是:开机时要启动"OracleOraDb11g_home1TNSListener"服务




报价:oracle11g企业版/标准版/个人版-----¥19.5万+-




报价:oracle12c企业版/标准版/个人版-----¥31.79万+-



三、Oracle的安装



1.Windows 安装

官方下地址:

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html以下两网址来源此官方下载页网。

win 32位操作系统 下载地址:

http://download.oracle.com/otn/nt/oracle11g/112010/win32_11gR2_database_1of2.zip

http://download.oracle.com/otn/nt/oracle11g/112010/win32_11gR2_database_2of2.zip 

win 64位操作系统 下载地址:

http://download.oracle.com/otn/nt/oracle11g/112010/win64_11gR2_database_1of2.zip

http://download.oracle.com/otn/nt/oracle11g/112010/win64_11gR2_database_2of2.zip

二、Oracle安装

1. 解压缩文件,将两个压缩包一起选择, 鼠标右击 ->  解压文件 如图

 

Greeplum 做核心业务数据库 核心数据库有哪些_Oracle数据库

 

 

2.两者解压到相同的路径中,如图:
 

Greeplum 做核心业务数据库 核心数据库有哪些_oracle11g安装_02

 

 

3. 到相应的解压路径上面,找到可执行安装文件【 setup.exe 】双击安装。如图:
 

Greeplum 做核心业务数据库 核心数据库有哪些_oracle11g基本了解_03

 

 

4. 安装第一步:配置安全更新,这步可将自己的电子邮件地址填写进去(也可以不填写,只是收到一些没什么用的邮件而已)。取消下面的“我希望通过My Oracle Support接受安全更新(W)”。 如图:
 

 

Greeplum 做核心业务数据库 核心数据库有哪些_oracle11g基本了解_04

 

5. 安全选项,直接选择默认创建和配置一个数据库(安装完数据库管理软件后,系统会自动创建一个数据库实例)。 如图:

 

Greeplum 做核心业务数据库 核心数据库有哪些_oracle11g基本了解_05

 

 

6. 系统类,直接选择默认的桌面类就可以了。(若安装到的电脑是,个人笔记本或个人使用的电脑使用此选项) 如图:
 

 

Greeplum 做核心业务数据库 核心数据库有哪些_Greeplum 做核心业务数据库_06

 

7. 典型安装。 重要步骤。建议只需要将Oracle基目录更新下,目录路径不要含有中文或其它的特殊字符。全局数据库名可以默认,且口令密码,必须要牢记。密码输入时,有提示警告,不符合Oracel建议时不用管。 (因Oracel建议的密码规则比较麻烦, 必须是大写字母加小写字母加数字,而且必须是8位以上。麻烦,可以输入平常自己习惯的短小密码即可)  如图:
 

 

Greeplum 做核心业务数据库 核心数据库有哪些_oracle11g安装_07

 

8. 若输入的口令短小简单,安装时会提示如下。直接确认Y继续安装就是了。如图:
 

 

Greeplum 做核心业务数据库 核心数据库有哪些_Oracle数据库_08

 

9. 先决条件检查。 安装程序会检查软硬件系统是否满足,安装此Oracle版本的最低要求。 直接下一步就OK 了。如图:

 

Greeplum 做核心业务数据库 核心数据库有哪些_oracle11g基本了解_09

 

 

10. 概要 安装前的一些相关选择配置信息。 可以保存成文件 或 不保存文件直接点完成即可。如图:
 

 

Greeplum 做核心业务数据库 核心数据库有哪些_Oracle数据库_10

 

11. 安装产品 自动进行,不用管。如图:
 

 

Greeplum 做核心业务数据库 核心数据库有哪些_oracle11g基本了解_11

 

12. 数据库管理软件文件及dbms文件安装完后,会自动创建安装一个实例数据库默认前面的orcl名称的数据库。如图:
 

Greeplum 做核心业务数据库 核心数据库有哪些_Greeplum 做核心业务数据库_12

 

 

13. 实例数据库创建完成了,系统 默认是把所有账户都锁定不可用了(除sys和system账户可用外),建议点右边的口令管理,将常用的scott账户解锁并输入密码。 如图:
 

 

Greeplum 做核心业务数据库 核心数据库有哪些_Oracle数据库_13

 

14. 解锁scott账户, 去掉前面的绿色小勾,输入密码。同样可以输入平常用的短小的密码,不必非得按oracle建议的8位以上大小写加数字,麻烦。呵呵。如图:
 

 

Greeplum 做核心业务数据库 核心数据库有哪些_Greeplum 做核心业务数据库_14

 

15. 同样,密码不符合规则会提示。不用管它,继续Y即可。如图:
 

 

Greeplum 做核心业务数据库 核心数据库有哪些_Oracle数据库_15

 

 

16. 安装成功,完成即可。 简单吧,呵呵。如图:
 

 

Greeplum 做核心业务数据库 核心数据库有哪些_oracle11g基本了解_16

 

 

三、安装后,进入小测试下。

可以通过开始,应用程序中的 "Oracle 11g" -> "应用程序开发" -> "Sql Developer 或Sql Plus" 连接。

注意第一次,使用SQL Developer时,会提示指定 java.exe的路径,这里千万别指定自己的java_home了(我就是开始不知道,指定一个JDK6,结束说不兼容。)可以使用Oracel安装路径下面的jdk路径 

 

D:\Installation\oracle\product\11.2.0\dbhome_1\jdk\jre\bin(我的笔记本)

具体是:如图:。

 

Greeplum 做核心业务数据库 核心数据库有哪些_Oracle数据库_17

当然若不小心,选择错了。选择了java_home中的高级版本,打开SQL Developer报错后不兼容,也有办法解决。可以在

【F:\app\chen\product\11.2.0\dbhome_1\sqldeveloper\sqldeveloper\bin】路径下找到【sqldeveloper.conf】文件后打开

找到SetJavaHome 所匹配的值,删除后面的配置内容。保证时会提示,只读文件不可覆盖保存。此时可以另存为到桌面上,然后再回到bin目录中删除掉此文件,再把桌面上的文件复制过去,再打开时,重新选择java.exe。此时选择对就好了。

--------------------------------------------------------------------------------------------------------------------------------------

安装64位版Oracle11gR2后发现启动SQL Developer时弹出配置java.exe的路径,找到Oracle自带java.exe后产生的路径“C:\app\用户名\product\11.2.0\dbhome_1\jdk”却弹出错误信息:

--------------------------
Unable to find a java Virtual Machine
to point to a location of a java virtual machine,please refer to the oracle9i Jdeveloper Install guide(jdev\install.html)
--------------------------

  由于没有重新配置的机会,只好到安装目录“C:\app\用户名\product\11.2.0\dbhome_1\sqldeveloper0\sqldeveloper\bin”中找到配置文件sqldeveloper.conf,修改其中“SetJavaHome”项为“SetJavaHome C:\Program Files\Java\jdk1.6.0_21”,这是另一个单独安装的JDK,结果还是一样。

  于是,又配置成MyEclipse8.5所带的JDK路径“SetJavaHome C:\Users\用户名\AppData\Local\Genuitec\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013”,一切正常,正纳闷时,到网络上搜了一下,找到“http://forums.oracle.com/forums/thread.jspa?messageID=4449178”后终于受到了启发,弄明白是怎么回事。

  原来Oracle在制造64位版的时候没注意Oracle11gR2所带的SQL Developer是1.5.5.59.69版,不支持64位版的JDK,恰好64位Oracle带的JDK和“C:\Program Files”中的JDK都是64位的。如果你单独安装的JDK中“C:\Program Files (x86)”中则说明是32位版的,是可以用的。为什么MyEclipse所带的JDK可用呢,因为MyEcipse8.5没有64位版(包括最新的8.6也一样),所以其中带的JDK当然是32位版的了。明白了吗?

  再来看看解决方案:

  既然你已经决定了要用64位版的Oracle11gR2:

(1)单独安装一个32位版的JDK就可以直接配置了;

(2)升级SQL Developer到2.1,把原来“C:\app\用户名\product\11.2.0\dbhome_1”下的的删除,下载(http://download.oracle.com/otn/java/sqldeveloper/sqldeveloper64-2.1.1.64.45-no-jre.zip)回来直接解压得到一个sqldeveloper文件夹放到同一位置即可。这时即可以配置“C:\Program Files”下的JDK,而Oracle自带的JDK,还是不能用的,因为这个2.1版的SQL Developer需要的JDK是1.6.0_04以上,而Oracle11gR2自带的JDK版本只有1.5.0_17。

  还没完哟,还有个小小的问题没有解决,“开始”菜单中的那个“SQL Developer”是指向“C:\app\用户名\product\11.2.0\dbhome_1\sqldeveloper\sqldeveloper\bin\sqldeveloper.bat”的,这个无法启动,也许你的机器可以启动,网络上有人说过这个问题,打开这个文件一看,内容是:

java -Xmx640M -Xms128M -Xverify:none -Doracle.ide.util.AddinPolicyUtils.OVERRIDE_FLAG=true -Dsun.java2d.ddoffscreen=false -Dwindows.shell.font.languages= -XX:MaxPermSize=128M -Dide.AssertTracingDisabled=true -Doracle.ide.util.AddinPolicyUtils.OVERRIDE_FLAG=true -Djava.util.logging.config.file=logging.conf -Dsqldev.debug=false -Dide.conf="./sqldeveloper.conf" -Dide.startingcwd="." -classpath ../../ide/lib/ide-boot.jar oracle.ide.boot.Launcher

  解决办法是:把前面的“-Xmx640M”修改为“-Xmx512M”即可。但运行这个命令,单击那个允许运行程序的“是”后,没有任何反应,但直接在资源管理器中运行这个BAT文件会弹出一上类似DOS的窗口有很多信息显示后又弹出一个窗口,这个就是了。这样运行感觉不太好,所以继续改造:

  在“开始”菜单中的“SQL Developer”上右击选属性,把目标中的“C:\app\用户名\product\11.2.0\dbhome_1\sqldeveloper\sqldeveloper\bin\sqldeveloper.bat”修改为“C:\app\用户名\product\11.2.0\dbhome_1\sqldeveloper\sqldeveloper\bin\sqldeveloperW.exe”即可。

  至于默认运行“sqldeveloper.bat”,应该有其道理,知道原理者可以补充一下。

2.Linux 安装

检查Linux环境

  • 检查系统位数
uname -m
  • 1
  • 检查内存(两条命令都可以)
grep MemTotal /proc/meminfo
free



  • 查看交换空间大小
grep SwapTotal /proc/meminfo



  • 查看tmp空间大小(不能小于1G)
df -h /tmp




  • 查看内核版本 

(最好是oracle推荐的linux版本,如果不是建议修改/etc/redhat-release的内容来伪装一下)

cat /proc/version
vim /etc/redhat-release
修改为:redhat-7



  • 查看内核版本
uname -r
2.6.18-128.el5PAE

安装和配置JDK

  • 卸载自带的openJDK:
rpm -aq | grep java | xargs rpm -e --nodeps
  • 建立JDK安装目录:
mkdir /usr/java
  • 用XFTP或SFTP把JDK拷贝到linux
  • 安装JDK:
chmod 777 jdk-7u67-linux-x64.rpm
rpm -ivh jdk-7u67-linux-x64.rpm
  • 配置JDK环境变量:
vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_67
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
export PATH=$PATH:$JAVA_HOME/bin
  • 使JDK环境变量生效:有两种方式(建议使用第二种)
1.重启生效
2.source /etc/profile

检查Oracle安装必须包

(redhat6、centos6) 
binutils-2.20.51.0.2-5.11.el6 (x86_64) 
compat-libcap1-1.10-1 (x86_64) 
compat-libstdc++-33-3.2.3-69.el6 (x86_64) 
compat-libstdc++-33-3.2.3-69.el6.i686 
gcc-4.4.4-13.el6 (x86_64) 
gcc-c++-4.4.4-13.el6 (x86_64) 
glibc-2.12-1.7.el6 (i686) 
glibc-2.12-1.7.el6 (x86_64) 
glibc-devel-2.12-1.7.el6 (x86_64) 
glibc-devel-2.12-1.7.el6.i686 
ksh 
libgcc-4.4.4-13.el6 (i686) 
libgcc-4.4.4-13.el6 (x86_64) 
libstdc++-4.4.4-13.el6 (x86_64) 
libstdc++-4.4.4-13.el6.i686 
libstdc++-devel-4.4.4-13.el6 (x86_64) 
libstdc++-devel-4.4.4-13.el6.i686 
libaio-0.3.107-10.el6 (x86_64) 
libaio-0.3.107-10.el6.i686 
libaio-devel-0.3.107-10.el6 (x86_64) 
libaio-devel-0.3.107-10.el6.i686 
make-3.81-19.el6 
sysstat-9.0.4-11.el6 (x86_64)

检查命令(建议还是自己一个一个检查)

rpm -q package_name

安装命令

yum install -y binutils* compat-libcap* compat-libstdc++* gcc* glibc* ksh* libaio*  libgcc* libstdc++* libXi* libXtst*  make* sysstat*

* 如果yum提示another app is currently holding the yum lock;waiting for it to exit
可能是系统自动升级正在运行,yum在锁定状态中。可以通过强制关掉yum进程:
rm -f /var/run/yum.pid

添加用户组和用户

  • 添加用户组(oinstall,dba,oper) 
    *oper可以不添加
先检查用户组是否存在:
grep oinstall /etc/group
grep dba /etc/group
grep oper /etc/group
添加用户组:(组id最好在500以后的值)
/usr/sbin/groupadd -g 501 oinstall
/usr/sbin/groupadd -g 502 dba
/usr/sbin/groupadd -g 503 oper
  • 添加用户
检查用户是否存在:
id oracle
如果存在则给该用户分组:
/usr/sbin/usermod -g oinstall -G dba oracle
如果不存则添加用户并且分组:
/usr/sbin/useradd -g oinstall -G dba oracle
  • 设置密码
passwd oracle

修改内核参数

  • 修改/etc/sysctl.conf文件
vim /etc/sysctl.conf

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

/sbin/sysctl -p
  • 修改/etc/security/limits.conf文件
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

创建oracle11gR2安装目录

mkdir -p /ora01/app
chown oracle:oinstall /ora01/app
chmod 775 /ora01/app
mkdir -p /ora01/app/oracle
chown oracle:oinstall /ora01/app/oracle
chmod 775 /ora01/app/oracle
mkdir -p /ora01/app/oracle/product/11.2.0/db_1
chown oracle:oinstall -R /ora01/app/oracle



修改oracle用户环境变量

su - oracle
vim .bash_profile

export TMP=/tmp
export ORACLE_HOSTNAME=localhost.localdomain
export ORACLE_UNQNAME=ORA11G
export ORACLE_BASE=/ora01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=ORA11G
#xterm窗口模式安装
export ORACLE_TERM=xterm 
#防止安装过程出现乱码
export LANG=C 
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK 
PATH=/usr/sbin:$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;
umask 022

source .bash_profile

解压安装oracle11gR2

切换oracle用户登录,运行runInstaller

unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip

./runInstaller

安装过程中会遇到如下报错,新打开一个oracle用户终端,切换至root用户,安装如下包
yum install glibc-static.x86_64 glibc-static.i686
安装完成后,返回切换回oracle用户,修改
vim /ora01/app/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk
将
ctxhx: $(CTXHXOBJ)
        $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)
修改为
ctxhx: $(CTXHXOBJ)
        -static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)
        /usr/lib64/stdc.a
修改完毕保存,点击oracle图形安装界面的continue按钮继续安装
再次报错,
vim /ora01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk文件中的配置,将文件中的
$(SYSMANBIN)emdctl:
        $(MK_EMAGENT_NMECTL)
修改为
$(SYSMANBIN)emdctl:
        $(MK_EMAGENT_NMECTL)  -lnnz11
点击图形安装界面的继续按钮

运行脚本

/ora01/app/oraInventory/orainstRoot.sh
/ora01/app/oracle/product/11.2.0/db_1/root.sh