本文共 6160 字,大约阅读时间需要 20 分钟。
是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说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安装依赖包大致有哪些包呢?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
当然这也只是其中的一部分,当我们安装到校验时,有些包,或者文件会不符合我们要求,所以到时候我们依据提示去修改。
之后,就是准备相关的组和用户:
groupadd oinstall #新建组
groupadd dba useradd -g oinstall -G dba oracle #新建用户 echo oracle |passwd --stdin oracle #设置密码
然后在设置一下sysctl限制的内核参数在/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 = 1048586
设置完了之后别完了sysctl -p生效!
更改完了系统内核参数之后,我们的limit参数还是有问题的,这个问题是屡见不鲜了,所以本次我们直接写入/etc/security/limits.conf配置文件生效。
oracle soft nproc 2047
oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 1024
再往后就是关于我们的安装目录的设置了,默认安装在/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"doneechoif [ -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 ;; (*);; esacficat /etc/group |grep oinstall &> /dev/null || /usr/sbin/groupadd oinstall
cat /etc/group |grep dba &> /dev/null || /usr/sbin/groupadd dbaid 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 fiKELNUM=$(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 = 1048586EOF/sbin/sysctl -pfigrep oracle /etc/security/limits.conf &> /dev/null
if [ $? != 0 ];thencat >> /etc/security/limits.conf << EOF oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 1024EOFfigrep pam_limits.so /etc/pam.d/login &> /dev/null
if [ $? != 0 ];thencat >> /etc/pam.d/login <<EOF session required pam_limits.soEOFfi[ -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 ];thencat >> ~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/binEOFfixhost +
[ -d ~oracle/database ] || mv /root/database ~oraclecd ~oracle;su - oracle -c 'database/runInstaller'转载于:https://blog.51cto.com/13296640/2048186