是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。能够说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各种大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。
首先咱们要准备两个包,p13390677_112040_Linux-x86-64_1of7.zip和p13390677_112040_Linux-x86-64_2of7.zip,咱们安装数据库只用到这两个包就好了,咱们本次安装数据库实验在centos6,x86_64上作得实验,数据库版本为11g。
安装以前,有一些准备须要咱们去完成:
1 yum源配置完成
2 网卡配置静态ip地址
3 主机名和ip地址能够解析(/etc/hosts)
4 swap是物理内存的两倍,不然最后的校验失败
yum安装依赖包大体有哪些包呢?mysql
unixODBC
unixODBC-devel
binutils
compat-libstdc++-33
elfutils-libelf
elfutils-libelf-devel
elfutils-libelf-devel-static
gcc
gcc-c++
glibc
glibc-common
glibc-devel
glibc-headers
kernel-headers
ksh
libaio
libaio-devel
libgcc
libgomp
libstdc++
libstdc++-devel
make
numactl-devel
sysstatlinux
固然这也只是其中的一部分,当咱们安装到校验时,有些包,或者文件会不符合咱们要求,因此到时候咱们依据提示去修改。c++
以后,就是准备相关的组和用户:sql
groupadd oinstall #新建组
groupadd dba
useradd -g oinstall -G dba oracle #新建用户
echo oracle |passwd --stdin oracle #设置密码数据库
而后在设置一下sysctl限制的内核参数在/etc/sysctl.conf内配置:vim
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 = 1048586centos
设置完了以后别完了sysctl -p生效!bash
更改完了系统内核参数以后,咱们的limit参数仍是有问题的,这个问题是家常便饭了,因此本次咱们直接写入/etc/security/limits.conf配置文件生效。session
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 1024oracle
再日后就是关于咱们的安装目录的设置了,默认安装在/u01/app/,因此咱们新建用户,更改权限,设置用户及用户组。
mkdir -p /u01/app/
chown -R oracle:oinstall /u01/app/
chmod -R 775 /u01/app
接着,咱们设置一些关于oracle的变量,安装的时候,系统会自动读取,咱们安装时会使用oracle用户,因此咱们设置在oracle的家目录中。
cat >> ~oracle/.bash_profile <<EOF
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/11.2.0/db_1
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
EOF
ok,前期的工做算是作得差很少了,咱们就要开始咱们的安装了,咱们把咱们以前的两个压缩包,解压到~oracle的家目录中,会生成一个database的文件夹,里面有一启动脚本为runInstaller,可是咱们若是图形化登录的时候使用的root,以后su - oracle下,使用此脚本,软件图形化会弹不出来,两种解决方法,1,退出当前的root图形化,使用oracle进行从新登陆图形化;2,使用xhost +,而后su - oracle下,进行运行脚本。
接下来的操做就是进行图形化的安装,前方多图预警:
第一项,所有都不用勾选
第二项,skip
第三项,选择只安装上软件就行,数据库配置下面手动配
第四项,单个数据库安装
第五项,能够选择相关语言
第六项,选择安装的版本
第七项,安装路径,上面的路径都是自动识别
第八项,默认就能够
第九项,设置一下数据的组
第十项,是校验项,以前的安装和修改都是为此作铺垫的,因此这的警告很重要,能够针对性的修改,好比看一下个人报错项,能够根据提示修改,第二个报错的就根据提示安装一个就ok:
咱们在/etc/sysctl.conf下修改shmmax的参数,别忘了sysctl -p保存
第十一项,安装。而后就是坐等安装好了。
等安装完成到最后一项会发现,让咱们本身运行一下脚本才能够完成最后一步:
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/11.2.0/db_1/root.sh
出现一下界面就ok了。
固然这样还不算成功,由于咱们只是安装了软件,并无对数据库进行一些配置,因此,咱们要在oracle用户下启动dbca(数据库配置工具),直接命令行,输入dbca。
前几项都是默认,或者自定义一个实例名,不过有一项监听工具选项的勾选Configure Enterprise Manager,须要命令行启动lsnrctl start(oracle用户才能够运行):
以后是一个定义帐户密码的,咱们为了方便直接选择第二项,密码同样都是oracle
此项是咱们的字符集的选择
再往下没有什么配置的了,一路ok,往下走,等咱们开始安装的界面开始,完成以后,就是咱们的配置完成了,下面咱们来看一下咱们的一些小优化,有利于咱们在进行数据库操做时进行的。
1 没法上下滚动历史命令,退格删除要ctrl配合使用,彻底反人类,解决方法以下:
yum install rlwarp
rlwarp sqlplus / as sysdba #能够上下滚动历史命令,退格删除,每次使用都要加入此条
alisa sqlplus='rlwarp sqlplus' #加入别名
2 默认oracle提示符为 mysql>,不方便,根本分不清当前目录是什么,解决方法以下:
vim /u01/app/oracle/11.2.0/db_1/sqlplus/admin/glogin.sql
set sqlprompt "_USER'@'_CONNECT_IDENTIFIER> " #添加此行
SYS@orcl> #这就是最终效果,咱们知道哪一个用户在哪一个实例里
好了,oracle的相关安装到此就告一段落,具体如何使用oracle须要咱们本身去学习的了,后面咱们编写了一个安装脚本,咱们能够省去前面的安装,直接在本机运行就ok,点点鼠标,根据本身的需求改一下也能够,不过注意本脚本只适合oracle 11g x86_64。
#!/bin/bash
PKG="
unixODBC
unixODBC-devel
binutils
compat-libstdc++-33
elfutils-libelf
elfutils-libelf-devel
elfutils-libelf-devel-static
gcc
gcc-c++
glibc
glibc-common
glibc-devel
glibc-headers
kernel-headers
ksh
libaio
libaio-devel
libgcc
libgomp
libstdc++
libstdc++-devel
make
numactl-devel
sysstat
"
PACKINSTALL=
for PACKAGE in $PKG ;do
rpm -q $PACKAGE || PACKINSTALL="$PACKINSTALL $PACKAGE"
done
echo
if [ -z "$PACKINSTALL" ];then
true
else
echo "The followling packages will be install: $PACKINSTALL "
read -p "Continue? (y/N): " answer
case $answer in
([yY]|[Yy][Ee][Ss])
echo 1
yum -y install $PACKINSTALL ;;
(*);;
esac
fi
cat /etc/group |grep oinstall &> /dev/null || /usr/sbin/groupadd oinstall
cat /etc/group |grep dba &> /dev/null || /usr/sbin/groupadd dba
id oracle &> /dev/null
if [ $? = 0 ];then
groups oracle | grep dba &> /dev/null || /usr/sbin/usermod -g oinstall -G dba oracle
else
/usr/sbin/useradd -g oinstall -G dba oracle
echo oracle |passwd --stdin oracle
fi
KELNUM=$(cat /etc/sysctl.conf |grep -v ^# |grep -v ^$ |grep -E "fs.aio-max-nr|fs.file-max|kernel.shmall|kernel.shmmax|kernel.shmmni|kernel.sem|net.ipv4.ip_local_port_range|net.core.rmem_default|net.core.rmem_max|net.core.wmem_default|net.core.wmem_max" |awk '{print $1}' |sort -u |wc -l )
if [ $KELNUM -lt 11 ];then
cat >> /etc/sysctl.conf <<EOF
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 = 1048586
EOF
/sbin/sysctl -p
fi
grep oracle /etc/security/limits.conf &> /dev/null
if [ $? != 0 ];then
cat >> /etc/security/limits.conf << EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 1024
EOF
fi
grep pam_limits.so /etc/pam.d/login &> /dev/null
if [ $? != 0 ];then
cat >> /etc/pam.d/login <<EOF
session required pam_limits.so
EOF
fi
[ -d /u01/app ] || ( mkdir -p /u01/app/ ; chown -R oracle:oinstall /u01/app/ ; chmod -R 775 /u01/app )
grep -i oracle ~oracle/.bash_profile &> /dev/null
if [ $? != 0 ];then
cat >> ~oracle/.bash_profile <<EOF
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/11.2.0/db_1
export ORACLE_SID=orcl
export PATH=\$PATH:\$ORACLE_HOME/bin
EOF
fi
xhost +[ -d ~oracle/database ] || mv /root/database ~oraclecd ~oracle;su - oracle -c 'database/runInstaller'