安装oracle数据库,linux必须安装图形化界面。否则无法安装oracle数据库。
安装oracle我们有几步工作需要做:
-
安装oracle所需要的安装包
根据oracle官方提供的安装文档可知,安装oracle需要如下的安装包:
我们可以使用rpm方式来检查相关的软件包是否已经安装:
rpm –q binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686
libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat
如果没有安装,我们可以通过yum方式来安装,oracle所需要的安装包。当然使用yum方式的前提是,该机器已经接入Intenet。
yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686
libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat
最后还需要安装libXp这个Library,这个一定要安装,否则安装Oracle时会出现java Exception。
yum install libXp
-
修改linux系统所需的配置文件
Oracle数据库的安装不建议在超级用户root上安装,建议另外增加一个用户oracle在linux系统上。但是在增加该用户之前,我们还需要为该用户设置一些系统内核参数。
使用Vi编辑器在/etc/sysctl.conf文件的末尾增加下面的参数(红色字体):
#use for oracle
kernel.shmall = 2097152 //表示系统一次可以使用的共享内存总量(以页为单位)。缺省值就是2097152,通常不需要修改。
kernel.shmmax = 2147483648 //定义了共享内存段的最大尺寸(以字节为单位)。缺省为32M,对于oracle来说,该缺省值太低了,通常将其设置为2G。
kernel.shmmni = 4096 //用于设置系统范围内共享内存段的最大数量。该参数的默认值是 4096 。通常不需要更改。
kernel.sem = 250 32000 100 128 //表示设置的信号量
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=4194304 //默认的接收窗口大小
net.core.rmem_max=4194304 //接收窗口的最大大小
net.core.wmem_default=262144 //默认的发送窗口大小
net.core.wmem_max=262144 //发送窗口的最大大小
-----------------------------------------------------------
#use for oracle
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=4194304
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=262144
----------------------------------------------------------
编辑完之后保存,然后执行:
sysctl –p
启用刚刚所做的变更。
以上修改完毕后,编辑/etc/security/limits.conf文件,用于设置系统资源限制。假如未来由oracle这个用户来安装oracle数据库,则需要系统管理员将以下参数添加到limits.conf。
# vi /etc/security/limits.conf
加入以下四行:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
然后在编辑/etc/pam.d/login文件,增加以下参数:
# vi /etc/pam.d/login
session required /lib/security/pam_limits.so
session required pam_limits.so
-
创建相应的用户名及用户组
在这里只讨论单主机环境,不考虑RAC环境的配置。执行以下指令以新增oracle安装时所需要的使用者与群组。
3.1建立群组oinstall
# groupadd oinstall
3.2建立群组dba
# groupadd dba
3.3建立用户oracle将加入oinstall和dba群组,并测试
# useradd -g oinstall -G dba oracle
# id oracle
3.4 建立oracle的新密码
# passwd oracle
-
修改/etc/profile,限制其他用户使用
将以下代码新增到profile文件中:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
由于/etc/profile是644属性,所以在使用VI编辑保存时必须使用:wq!强制保存。
-
修改Linux发行版本信息
由于Oracle 10g发行的时候,CentOS6.5没有发行,所以Oracle 10g并没有对CentOS6.5确认支持,需要修改相关文件让Oracle 10g支持CentOS 6。
我们需要手工修改Linux的发行注记,让Oracle 10g支持CentOS6.5。
编辑/etc/redhat-release文件
# vi /etc/redhat-release
将其中的内容CentOS release 6.5 (Final)修改为redhat 4
-
创建oracle的安装文件夹及数据存放目录
mkdir –p /u01/app/oracle
mkdir加入参数-p的目的是创建目标目录的上层目录
6.1修改/u01/app/oracle目录所属用户及组,修改为oracle和oinstall组。
查看目前oracle目录的用户及组:ls –la |grep oracle
修改oracle目录用户及组:
chown –R oracle:oinstall /u01/app/oracle
6.2 修改/u01/app/oracle的目录权限,使oinstall组对/u01/app/oracle目录也有可读写执行权限。
使用如下命令:chmod –R 775 /u01/app/oracle
-
配置oracle用户的环境变量
打开cd /home/oracle,使用Vi编辑.bash_profile。如下图:
修改并加入以下內容:
#Oracle Settings
export TMP=/tmp;
export TMPDIR=$TMP;
export ORACLE_BASE=/u01/app/oracle;
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1;
export ORACLE_SID=orcl;
export ORACLE_TERM=xterm;
export PATH=/usr/sbin:$PATH;
export PATH=$ORACLE_HOME/bin:$PATH;
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib: $ORACLE_HOME/rdbms/jlib;
保存后使用如下命令,使设置生效:
source /home/oracle/.bash_profile
-
安装Oracle,并进行相关设置
8.1解压缩安装文件
将下载的压缩包放至即将安装oracle的文件夹/uo1/app/oracle下,如下图:
解压该文件,使用如下命令:
unzip oracle_for_linux_10201_database_linux32.zip
接着会看到一连串的解压缩动作,如下图:
解压缩完成会在同一个文件夹中看到database的文件夹
通过上图可以看到,目前database文件夹的所有者和用户组均是root。现在我们要该更它:
chown –R oracle:oinstall /u01/app/oracle/database
8.2安装oracle数据库
上述解压oracle安装包后,我们要注销掉root用户,使用Oracle用户登录,然后使用该用户进行oracle的安装。
在终端下,进入/u01/app/oracle/database目录,如下图:
准备执行数据库安装,如果你的centos是中文环境,安装时会出现中文乱码,请下以下指令。使系统临时为英文状态:
export LC_ALL=en_US.UTF-8
然后接着执行如下命令,进行安装:
./runInstaller
然后会弹出oracle的安装界面,如下图:
弹出这个界面,下面我们的安装就顺利了。
在我们./runInstaller命令,弹出来oracle的安装界面,如下图示:
如果我们其他的要求的话,我们完全可以按照软件的提示一步一步的进行安装。
但是,如果你使用突然间有一天你会发现。在你把原来其他服务器上的数据库(含中文字符)导入到这个oracle数据库中显示乱码时,你就会哭了。
因为按照这个提示进行安装的oracle数据库字符集是英文字符集而不是中文字符集。
也行有些人会说,那我可以在安装好oracle数据库再修改中文字符集的啊。呵呵,我会笑的。因为到最后你会发现即使你通过SQL语句修改了数据库的字符集,然后数据库中的中文字符还是乱码!
但是你还会发现如果是在windows系统下,使用SQL语句修改字符集是可以的哦!
那么在Linux系统里面,我们只需要选择高级安装即可,如下图:
上图是指定证书存放的目录。
选择安装的数据库类型及oracle所支持的语言,这里选择企业版,语言选择英文和简体中文。
指定oracle环境变量,及安装路径。因为我们在.bash_profile中已经声明,所以这里会自动填充。
Oracle开始进行安装前的检查工作。
选择配置选项,在这有三个选择项:创建数据库、配置自动存储管理、只安装数据软件。
我们在此选择第一项,创建数据库。 创建数据库后,我们就不必再执行"dbca"进行数据库的创建。
选择创建的数据库模式,我们在此选择第一项一般用途。因为 "Advanced" 后面有很多SGA,文件系统都可以自行设置。
指定oracle数据库默认的SID。指定字符集为库所用的字符集,中文为simplified Chinese zhs16gbk。如果字符集不对,可能造成以后数据乱码。最下面不用打钩Create database withsample schemas(已有的模式建库)。
配置选择数据库管理选项
配置数据库的数据文件存储的位置
配置数据库备份恢复的相关选项
配置数据库相关用户密码
显示安装概要,再次确认相关配置是否正确。
开始安装数据库
开启一个新的终端,su到root。将要求执行的两段script依序执行。
/u01/app/oracle/oraInventory/orainstRoot.sh
/u01/app/oracle/product/10.2.0/db_1/root.sh
使用lsnrctl status命令,查看oracle的运行状态:
也可以通过浏览器的进行查看,如下图:
通过上述查看没有问题,说明我们的oracle已经正常安装和启动。
下面我们可以导入其他数据库的库,来查看字符集的问题。
到此oracle数据库安装完毕。