参考手册:http://docs.oracle.com/cd/E11882_01/nav/portal_11.htm/Database Quick Installation Guide for Linux x86-64
一,前期准备:
1,环境说明:
Linux:64位Centos release 6.5 (Final)
Oracle:linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip
方式:通过本地虚拟机给远程服务器安装oracle
2, 在线安装Oracle需要的RPM支持包(选择x86_64的devel类型的安装包,如果没有联网,可以去ISO安装文件里面去找,注意不同的操作系统版本对应的安装包不一样,下面是基于RedHat5的安装要求,centos是基于RedHat的):
1. binutils-2.17.50.0.6
2. compat-libstdc++-33-3.2.3 (33表示3.3版,296表示2.96版)
3. elfutils-libelf-0.125
4. elfutils-libelf-devel-0.125
5. elfutils-libelf-devel-static-0.125
6. gcc-4.1.2
7. gcc-c++-4.1.2
8. glibc-2.5-24
9. glibc-common-2.5
10. glibc-devel-2.5
11. glibc-headers-2.5
12. kernel-headers-2.6.18
13. ksh-20060214
14. libaio-0.3.106
15. libaio-devel-0.3.106
16. libgcc-4.1.2
17. libgomp-4.1.2
18. libstdc++-4.1.2
19. libstdc++-devel-4.1.2
20. make-3.81
21. numactl-devel-0.9.8.i386
21. numactl-devel-0.9.8.i386
22. sysstat-7.0.2
23. unixODBC-2.2.11 (官方文档里面没有写)
24. unixODBC-devel-2.2.11
说明:安装之前可以先通过rpm -qa | grep binutils 来检查本机上已经安装的包,然后在安装未安装的包。这些包在系统安装文件ISO里面有。
3,开始安装前我们首先要配置内核参数,保证Oracle的正常运行(Oracle启动需要较多的资源)。配置如下:
修改文件/etc/sysctl.conf,用vi /etc/sysctl.conf打开文件修改一下内容,有责略过,没有责添加。 编辑完成后按Esc键,输入“:wq”存盘退出 各参数意义如下:
(1)shmmax:该参数定义了共享内存段的最大尺寸(以字节为单位),通常将其设置为2G或更大。
(2)shmmni:用于设置系统范围内共享内存段的最大数量。默认值是 4096 ,通常不需要更改。
(3)shmall:该参数表示系统一次可以使用的共享内存总量(以页为单位)。缺省值就是2097152,如系统自动生成则不需要修改。
(4)sem:该参数表示设置的信号量,当oracle DB初始化参数文件中PROCESSES参数设置较大时,需要调整SEM设置如:kernel.sem = 250 32000 100 128各数据段含义如下。 SEMMSL SEMMNSSEMOPM SEMMNI SEMMSL应该设置为服务器中各个实例中最大的PROCESSES参数+10,如当最大的PROCESSES参数为5000时,SEMMSL应设置为5010。
SEMMNS参数应设置为SEMMSL*SEMMNI,如例SEMMSL为5010,SEMMNS参数应为(5010*128)=641280。 SEMOPM参数应设置与SEMMSL参数相同,接上例此处应设置为5010
(5)file-max:该参数表示文件句柄的最大数量。文件句柄设置表示在linux系统中可以打开的文件数量。
(6)rmem_default — 默认的TCP/IP接收缓冲大小
(7)rmem_max — 最大的TCP/IP接收窗口的大小
(8)wmem_default — 默认的TCP/IP发送窗口大小
(9)wmem_max — 最大的TCP/IP发送窗口的大小
要使 /etc/sysctl.conf 更改立即生效,执行以下命令: > sysctl -p
可能出现如下错误:
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
解决方法:
>lsmod | grep bridge
>modprobe bridge
>lsmod | grep bridge
如果还有其他的出错,那就是配置文件输入时的拼写错误。
4,修改用户的SHELL的限制,修改/etc/security/limits.conf文件 输入命令:vi /etc/security/limits.conf,按i键进入编辑模式,加入内容。
oracle soft nproc 4096
oracle hard nproc 16384
oracle soft nofile 4096
oracle hard nofile 65536
oracle soft stack 10240
编辑完成后按Esc键,输入“:wq”存盘退出.
5,修改/etc/pam.d/login 文件,输入命令:vi /etc/pam.d/login,按i键进入编辑模式,将下列内容加入该文件。
session required /lib64/security/pam_limits.so
session required pam_limits.so
备注:如果安装的Oracle是32为的,第一行就应该是 session required /lib/security/pam_limits.so,否则登录时会出现循环登录。
6,编辑 /etc/profile ,输入命令:vi /etc/profile,按i键进入编辑模式,加入下列内容。
7,创建Oracle用户和安装目录。
创建用户和用户组,输入命令:
>groupadd oinstall //创建Oracle Inventory 组
>groupadd dba //创建组群DBA 组
>useradd -g oinstall -G dba oracle //创建Oracle软件拥有者(-g表示辅助组,-G表示主组)(还可以在后面接-d dir,表示用户的家目录的位置,默认普通用户的家目录在/home下)
>passwd oracle //修改oracle用户的密码
创建安装目录:
>mkdir -p /home/oracle/app #基目录
>mkdir /home/oracle/app/oraInventory #该目录就像Windows下的注册表文件,每当有软件安装,就会向里面写一些注册表
>mkdir /home/oracle/app/oracle #oracle数据库目录
>mkdir /home/oracle/app/oracle/product #oracle实例目录
>mkdir /home/oracle/app/oracle/product #oracle实例目录
更改目录属主为Oracle用户所有(防止安装过程中发生权限不够的问题),输入命令:
>chown -R oracle:oinstall /home/oracle/app
>chmod -R 775 /home/oracle/app/
8,配置oracle用户的环境变量,要在oracle用户下进行操作,输入:
>su oracle
>vi /home/oracle/.bash_profile
export EDITOR=vi
export ORACLE_SID=orcl #实例名
export ORACLE_BASE=/home/oracle/app
export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1
export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1
export INVENTORY_LOCATION=/home/oracle/app/oraInventory
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export NLS_LANG="American_america.zhs16gbk"
export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin
umask 022
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export erase ^h #用于消除换车键产生的乱码
补充:如果我们的Linux是mini安装的,那么就没有JDK,我们需要安装它: yum install java-1.7.0-openjdk-devel.x86_64 -y
注意,安装的目录默认就是上面的JAVA_HOME,但是后面的版本数字可能会不一样,需要改动。
二,安装Oracleuyn
1,安装准备
1)退出系统以Oracle用户登陆。
2)首先将Oracle软件安装包复制到linux系统中的一个目录下,确保Oracle用户对此目录有足够权限。
3)打开一个终端,运行unzip命令解压oracle软件安装包。
2)首先将Oracle软件安装包复制到linux系统中的一个目录下,确保Oracle用户对此目录有足够权限。
3)打开一个终端,运行unzip命令解压oracle软件安装包。
解压完成后生成新目录database,进入解压后的database目录查看。
2.1,开始安装(系统安装有图形化界面)
[ oracle@localhost database ]$ ./runInstaller
安装报错:
这种错误有可能发生,也有可能不发生,主要是因为Oracle的安装需要可视化界面。
解决:
如果解决不了,退出登录,重新用Oracle用户登录,然后用Oracle用户执行startx开启图形化界面。
2.2,开始安装(系统没有安装图形化界面或者是通过ssh远程安装oracle)
在这种情况是不能直接安装,因为Oracle的安装需要图形化界面,可以通过Xmanager实现,添加配置如下:
(1)安装Xmanager,打开Xmanager下的Xmanager - Passive,用户接收显示ssh传来的图形化界面。
(2)重新编辑配置文件:vi /home/oracle/.bash_profile,增加一行:
export DISPLAY=192.168.178.1:0.0 #192.168.178.1是安装Xmanager物理主机的真实IP地址。后面的0.0应该是Xmanager的图形界面认证标识
(3)[ oracle@localhost database ]$ ./runInstaller
3,安装过程
选择常见一个数据库和配置一个数据库:
创建一个桌面版数据库:
(注意)安装快完成时,系统会提示你需要用root权限执行2个shell脚本。 按照其提示的路径 执 行/home/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh 和 /home/oracle/ oraInventory/orainstRoot.sh,安装完成会有提示信息。 执行命令:①>cd /home/oracle/app/oracle/product/11.2.0/dbhome_1
>sh root.sh #当中有个敲回车的点
② >cd /home/oracle/app/oraInventory
>sh orainstRoot.sh
close:
三,启动执行Oracle
1,执行>sqlplus / as sysdba
SQL>select TABLE_NAME from user_tables;
报错:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not existLinux-x86_64
Error: 2: No such file or directory
Process ID: 0
Session ID: 0 Serial number: 0
这种问题可能会出现,也可能不会出现,一般是ORACLE_HOME 和ORACLE_SID环境变量的错误,也有可能是Oracle实例没有启动,刚好我两种都碰到了。首先我在ORACLE_HOME前面多加了个斜杠,注意最后面也不能有斜杠:
>echo $ORACLE_HOME
//home/oracle/app/oracle/product/11.2.0/dbhome_1
>echo $ORACLE_SID
>orclps -ef | grep smon
执行>vi /home/oracle/.bash_profile查看文件内容:
如果仅仅是修改了上面的错误,还是会报出同样的错误,那是因为我们的oracle数据库实例没有启动,看下一步。
2,修改后,重启Linux,启动Oracle实例
>sqlplus / as sysdba #注意第一次登陆必须要用管理员的身份登陆(无需密码),因为只有管理员才有启动实例的权限。
>startup
成功启动oracle。
3,切换用户,操作数据库。
四,当你进入sqlplus后,发现无法使用上下键来翻出历史命令,我们可以使用第三方工具包解决该问题。
(1)到官网下载rlwrap-0.42.tar.gz包;
(2)上传到Linux,然后执行 tar -zxvf rlwrap-0.30.tar.gz 解压;
(3)进入解压目录,编译配置文件 ./configure,此时可能会报出如下错误:
这是因为缺少readline相关包,执行yum list | grep readline 可以找到这些包,执行yum -y install readline*
(4)如果报错,解决后,重新编译直到无误,然后编译安装软件make ; make install;
(5)编辑Oracle用户配置文件:vi /home/oracle/.bash_profile,添加如下两行:
alias sqlplus=‘rlwrap sqlplus'
alias rman='rlwrap rman'
OK,这样就可以像Windows下一样通过上下翻动调出sqlplus的历史命令了。
至此安装完毕!