1、环境介绍
- 服务器:CentOS release 6.6 + 16G内存
- 数据库版本:Oracle Database 11g Release 2 (11.2.0.1.0) for Linux x86-64
- 若需重新安装操作系统,请先注意分区时swap分区及/tmp目录的大小,见 安装步骤->查看系统配置信息
2、安装步骤
下载Oracle Database软件包,将linux.x64_11gR2_database_1of2.zip 和 linux.x64_11gR2_database_2of2.zip 下载到本地后再解压至同一文件夹下 (整个安装文件被分成了两份,故要分别解压并合到同一个database目录下)
- 可以在Windows下操作,然后拷到U盘里再在CentOS上安装
- 也可直接在linux下下载,然后解压到同一文件夹下1,见脚注
打开welcome.html ,即可观看安装帮助文档,如:Database Quick Installation Guide
和 Database Installation Guide —— 建议大家先过一遍Quick Guide查看系统配置信息
查看 /etc/meminfo 文件中的 MemTotal 和 SwapTotal 信息,如
grep "SwapTotal" /etc/meminfo
,以下是官方对Swap分区大小的要求Available RAM Swap Space Required Between 1 GB and 2 GB 1.5 times the size of RAM Between 2 GB and 16 GB Equal to the size of RAM More than 16 GB 16 GB 注:若需调整swap分区大小,既可选择重装系统2或 新建swap分区3也可通过 文件扩充swap分区4,详情请点击脚注!
查看/tmp目录所在磁盘空间的剩余大小,键入
df -h /tmp
,官方建议至少1G,系统一般都会满足条件的,除非你专门给/tmp划分了一个小于1G的磁盘空间,当然这种情况下你也可以通过后面的设置TMP目录进行修改
软件包检测及安装
安装包的检测(若求方便可跳过此步,直接进行安装操作)
具体安装包的要求,请参考oracle官方文档####软件包检测,求方便的,可直接跳过此命令!!! [root@centos6 oracle]# rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc- gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel pdksh
软件包的安装
下面是统一安装命令(当然也可以针对上步骤安装特定的软件包),建议大家直接复制下列命令1、2、3(因为就算遗漏了特定平台上的包,后续图形界面安装oracle时,其也会自动提示你的,故不用担心,到时再安装即可)
####1.软件包统一安装,当然你也可以参考上述命令只安装那些系统未安装的包 [root@centos6 oracle]# yum install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc- gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel pdksh ####2.64位系统默认的是安装x86_64位的,但**部分软件包还需再安装32位的**,详情可见oracle官方文档 [root@centos6 oracle]# yum search compat-libstdc++-33 glibc glibc-devel libaio libaio-devel libgcc libstdc++ unixODBC unixODBC-devel ####3.根据yum search 的结果,安装32位软件包 [root@centos6 oracle]# yum install compat-libstdc++-33.i686 glibc-devel.i686 glibc.i686 libaio.i686 libaio-devel.i686 libgcc.i686 libstdc++.i686 unixODBC.i686 unixODBC-devel.i686 ####4.查询安装情况,同oracle官方的要求作比(当然你可跳过此步,后续图形界面安装oracle时,其也会自动提示你的)求方便的,可直接跳过此命令!!! [root@centos6 oracle]# rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc- gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel binutils-2.20.51.0.2-5.42.el6.x86_64 compat-libstdc++-33-3.2.3-69.el6.x86_64 compat-libstdc++-33-3.2.3-69.el6.i686 elfutils-libelf-0.158-3.2.el6.x86_64 elfutils-libelf-devel-0.158-3.2.el6.x86_64 gcc-4.4.7-11.el6.x86_64 gcc-c++-4.4.7-11.el6.x86_64 glibc-2.12-1.149.el6_6.9.x86_64 glibc-2.12-1.149.el6_6.9.i686 glibc-common-2.12-1.149.el6_6.9.x86_64 glibc-devel-2.12-1.149.el6_6.9.x86_64 glibc-devel-2.12-1.149.el6_6.9.i686 glibc-headers-2.12-1.149.el6_6.9.x86_64 ksh-20120801-21.el6_6.3.x86_64 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 libgcc-4.4.7-11.el6.x86_64 libgcc-4.4.7-11.el6.i686 libstdc++-4.4.7-11.el6.x86_64 libstdc++-4.4.7-11.el6.i686 libstdc++-devel-4.4.7-11.el6.x86_64 make-3.81-20.el6.x86_64 sysstat-9.0.4-27.el6.x86_64 unixODBC-2.2.14-14.el6.x86_64 unixODBC-2.2.14-14.el6.i686 unixODBC-devel-2.2.14-14.el6.x86_64 unixODBC-devel-2.2.14-14.el6.i686
用户环境设置
创建oracle用户&组
[root@centos6 ~]# groupadd dba [root@centos6 ~]# groupadd oinstall [root@centos6 ~]# useradd -g oinstall -G dba -s /bin/bash oracle # 新建oracle用户 [root@centos6 ~]# passwd oracle
创建安装目录
[root@centos6 ~]# mkdir -p /u01/app/oracle [root@centos6 ~]# chown -R oracle:oinstall /u01 [root@centos6 ~]# chmod -R 755 /u01
设置用户环境(.bash_profile)
[root@centos6 ~]# su - oracle [oracle@centos6 ~]$ vi .bash_profile # 修改后的内容如下 [oracle@centos6 ~]$ cat .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH export TMP=/tmp # 若/tmp下容量不足1G,也可自行修改为符合条件的,如TMP=/oracle/tmp export TMPDIR=$TMP export ORACLE_BASE=/u01/app/oracle # oracle数据库安装目录 export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 # oracle数据库路径 export ORACLE_SID=orcl # oracle启动数据库实例名,这个很重要,也可自行修改 export ORACLE_TERM=xterm # xterm窗口模式安装,也可自行修改 export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin # 添加系统环境变量 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib # 添加系统环境变量 #export LANG=C # 防止安装过程出现乱码 export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK # 设置Oracle客户端字符集,必须与Oracle安装时设置的字符集保持一致如:ZHS16GBK,否则出现数据导入导出中文乱码问题 umask 022 #### 使设置立刻生效 [oracle@centos6 ~]$source .bash_profile
内核参数及资源参数配置
配置内核参数 – 如下是/etc/sysctl.conf文件的修改的内容(之前的数据已被注释掉),具体参数参见官方的要求,修改成功后,命令行键入
sysctl -p
# Controls the maximum shared segment size, in bytes #kernel.shmmax = 68719476736 # Controls the maximum number of shared memory segments, in pages #kernel.shmall = 4294967296 #fs.file-max = 6553600 # Oracle fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 68719476736 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 = 1048586
配置oracle账号资源 – 在 /etc/security/limits.conf 文件添加如下内容
# Oracle oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
设定资源限制 – 在 /etc/profile 或者 /home/oracle/.bash_profile 文件中添加如下内容
# Oracle if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi
配置pam模块 – 在 /etc/pam.d/login 添加
#Oracle session required pam_limits.so
图形界面安装
确保oracle用户对安装包的目录有执行权限
####设置已解压好的安装包目录的权限 [root@centos6 oracle]#chown -R oracle:oinstall /home/oracle/database
切换到oracle用户下,进行图形界面的安装(若centOS下未安转Xwindow5,请看脚注)
[root@centos6 oracle]su oracle [oracle@centos6 database]$ ./runInstaller # 进入安装软件目录并运行安装脚本
开始图形界面选项 —— 主要就是一直continue
等待一会,出现下面的界面(因个人的环境所以出现下面的提示框,忽略即可–yes)
Emial 可填写也可不填写 (本人选择忽略),点击NEXT 和 YES
本人选择仅安装数据库软件
单实例安装
语言选择(默认英语)
本人安装标准版
Oracle数据库基目录:/u01/app/oracle, Oracle 软件安装位置:/u01/app/oracle/product/11.2.0/dbhome_1
Oracle配置文件目录:/u01/app/oraInventory,默认即可
Oracle数据库运行组,默认即可
安装前系统环境监测 ——如果有某一项未监测通过,请根据提示做相应修改,直至监测全部通过为止,否则不能进行下一步安装
- 如果出现安装包的的问题,参考之前步骤,选择特定的单个安装即可
注意:oracle提示你检测到的错误信息,但检测程序包可能不准,此时还是需要确认一下
#### 以 compat-libstdc++ 为例,显然系统已经安装了,故直接忽略这个错误 #### *.i686 即32位的软件包,有时候oracle依旧会报x32bit 未安装,故也直接忽略这个错误 [root@centos6 oraInventory]# rpm -qa | grep compat-libstdc++ compat-libstdc++-33-3.2.3-69.el6.i686 compat-libstdc++-33-3.2.3-69.el6.x86_64
针对系统检测出来的配置错误(如前面提到的内核参数的配置等等),oracle会自动生成一个修复脚本,root下运行即可,然后再重新检测
[oracle@centos6 database]$ su - root Password: [root@centos6 ~]# /tmp/CVU_11.2.0.3.0_oracle/runfixup.sh
若出现pdksh包的安装提示,可登陆链接下载pdksh,然后键入,
rpm -ivh pdksh-5.2.14-36.el5.i386.rpm
手动安装即可(但该包的安装可能会和ksh出现冲突,此时卸载ksh 即可,rpm -e ksh
)——网上也有人将pdksh包上传至百度网盘了,很方便若swap分区太小,也会出现错误提示 —— 本人曾专门给SWAP划了4G的分区,但检测结果比4G少了一点点的容量(应该是文件系统占用了),而自己是直接忽略这个错误的!
若调过了之前第6步的内核参数设置,则此时可能会出现下列提示,按提示进行操作即可!!!
#### 打开一个terminal,root登陆,运行下列命令即可 [root@centos6 oracle]# /u01/app/oraInventory/orainstRoot.sh [root@centos6 oracle]# /u01/app/Oracle/product/11.2.0/dbhome_1/root.sh
之后点击 finish 完成即安装成功
3、 oracle启动&建库 —— 简单介绍
新建数据库
[oracle@centos6 database]$ dbca
命令运行后会出现如下的“建库”界面(按默认,一直next即可,自行设置也行)
建库中会出现类似下面的提示——因为只有在创建好“监听”后,数据库才能安装成功
终端键入
[oracle@centos6 Desktop]$ netca
,即可出现建立监听的图形界面(按默认,一直next即可,自行设置也行)监听建立OK后,“建库”直至Finish即OK
重启系统后启动数据库
oracle登陆终端,依次键入下列命令即可lsnrctl start sqlplus / as sysdba startup exit
4、 Reference
以下是自己曾经收集的有关安装oracle的博文链接,感谢他们,自己写的也只是简单的总结下,正好也能分享给像曾经的我一样的菜鸟们
1. 参考博文1
2. 参考博文2
3. 参考博文3
4. oracle官方安装文档
- 解压,若已建立oracle用户,可放到/home/oracle下(目录自己选择)
[root@centos6 ~]# unzip linux.x64_11gR2_database_1of2.zip -d /home/oracle
[root@centos6 ~]# unzip linux.x64_11gR2_database_2of2.zip -d /home/oracle ↩ - 重装系统进行分区时,参照oracle官方的要求设置好 swap 及 tmp 分区大小即可( 本人的设置为swap 4G,/tmp 4G ), 但可能会出现 实际分区大小小于当初划分的大小 的情况, 比如自己当初给swap划了4G,但当安装软件时,oracle检测到的swap小于4G,本人当时是直接忽略这个进行安装的,所以大家划分大小时可略微偏大一点(因为分区系统文件本来也占容量的) ↩
- 本方法适用于 系统中还存在多余的磁盘空间可以分区 ,我们可以通过 parted(或 fdisk,fdisk对分区是有大小限制的,它只能划分小于2T的磁盘,详情请见鸟哥的使用物理分区构建swap)工具在磁盘中分出一个分区给系统以便扩充swap分区大小(以下是本人在virtualbox下的实现步骤)
##### 生成swap分区 #####
[root@centos6 ~]# fdisk /dev/sda #通过fdisk命令分了一个2G的磁盘分区sda3
[root@centos6 ~]# partprobe #或者reboot
[root@centos6 ~]# mkswap /dev/sda3
Setting up swapspace version 1, size = 2104152 KiB
no label, UUID=0dac0f94-2530-46c4-9bb1-6623fe600c56
[root@centos6 ~]# free
total used free shared buffers cached
Mem: 3923824 224328 3699496 204 17616 75852
-/+ buffers/cache: 130860 3792964
Swap: 2097148 0 2097148
[root@centos6 ~]# swapon /dev/sda3
[root@centos6 ~]# free #扩充OK
total used free shared buffers cached
Mem: 3923824 225700 3698124 204 17628 75868
-/+ buffers/cache: 132204 3791620
Swap: 4201300 0 4201300
##### 设置开机自动挂载 #####
[root@centos6 ~]# blkid #或者通过 “ls -l /dev/disk/by-uuid” 命令查看sda3的UUID
/dev/sda1: UUID=”70ae1929-d549-4183-a0a1-d56c6436caea” TYPE=”ext4”
/dev/sda2: UUID=”705c2344-e67c-4526-a159-4b9841b7ac06” TYPE=”swap”
/dev/sda3: UUID=”0dac0f94-2530-46c4-9bb1-6623fe600c56” TYPE=”swap”
[root@centos6 ~]# vi /etc/fstab #设置开机自动挂载新增的swap分区
添加的内容为 UUID=0dac0f94-2530-46c4-9bb1-6623fe600c56 swap swap defaults 0 0 ↩ - 本方法适用于 系统盘中无多余磁盘空间可分区 的情况,具体请见鸟哥的使用文件分区构建swap(以下是本人在virtualbox下的实现步骤)
# 创建/home/swap分区文件,文件的大小是2097152个block,1个block为1K。
[root@centos6 ~]# dd if=/dev/zero of=/home/swap bs=1024 count=2097152
[root@centos6 ~]# mkswap /home/swap
# 添加加到fstab里面
[root@centos6 ~]# vi /etc/fstab #设置开机自动挂载新增的swap分区
添加的内容为 /home/swap swap swap defaults 0 0 ↩ - 其中1、2、3即可
#### 1.安装X window
[root@centos6 ~]# yum groupinstall “X Window System” # 安装X Window
#### 2.设置开机默认启动图形界面 (不想开机启动图形界面,请忽略此步骤)
[root@centos6 ~]# vi /etc/inittab # 编辑
id:5:initdefault: #修改3为5
#### 3.启动图形界面
[root@centos6 ~]# reboot # 或者键入 init 5
#### 通过 Xmanager 进行远程centOS (若直接在linux主机上操作,可忽略本步骤)
[root@centos6 ~]# vi /etc/sysconfig/iptables # 编辑,添加以下代码,开启防火墙UDP 177端口
-A RH-Firewall-1-INPUT -m state –state NEW -m udp -p udp –dport 177 -j ACCEPT
[root@centos6 ~]# service iptables restart # 重启防火墙
#### 上述方法若不行,也可暂时或者永久关闭防火墙
#### 暂时关闭防火墙
[root@centos6 ~]# service iptables stop
#### 暂时关闭防火墙
[root@centos6 ~]# ntsysv # 通过取消iptables 和 ip6tables前的*号,即可关闭 ↩