在Linux系统上安装Oracle数据库
前期准备:我用的是虚拟机上的CentOS 64位系统。所以需要设置网卡,时间,EPEL源,安装一些必备的软件。
1.1在虚拟机上安装好Linux系统后选择虚拟机设置—>网络适配器—>网络连接—>桥接模式
1.2然后进入系统配置网卡。
永久修改:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0(设备名称)
TYPE=Ethernet(网络类型)
ONBOOT=yes(开机自启动)
BOOTPROTO=static(静态ip) dhcp是动态ip none 是不指定
IPADDR=192.168.1.21
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
NETWORK=192.168.1.0
DNS1=192.168.1.1
立即生效:
service network restart
1.3关闭防火墙 :在使用网络程序时要先关闭防火墙,不然是连接不上的
1) 永久性生效,重启后不会复原
开启:chkconfig iptables on
关闭:chkconfig iptables off
2) 即时生效,重启后复原
开启:service iptables start
关闭:service iptables stop
如果是firewall防火墙
停止: systemctl stop firewalld.service
禁止开机启动:systemctl disable firewalld.service
启动:systemctl start firewalld.service
开机启动:systemctl enable firewalld.service
1.4设置系统时间
手动设置硬件时间
hwclock --set --date="05/1/2015 19:24"
时间格式:月/日/年空格时:分:秒
---------------
将硬件时间写入系统时间
hwclock --hctosys
clock --hctosys
1.5设置EPEL源
rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
1.6安装解压缩工具
yum install unzip
下面就开始正式安装
2.1 安装oracle-rdbms-server-11gR2-preinstall
在Linux上安装oracle数据库,在环境准备方面,例如该安装的RPM包,该调整的内核参数等,不仅较为复杂,有些参数值还会因为人工设置的不合理而对日后的运行带来一定的影响,也是整个安装过程中最耗时的部分。在oracle linux 6_64bit上,提供了oracle-rdbms-server-11gR2-preinstall包,可以自动化的将需要安装的rpm包,需要调整的内核参数自动化的处理,对DBA安装数据库确实节省了不少的时间。在oracle linux 5和oracle linux 4上有一个相似功能的包叫oracle-validated
他所起的作用:
(1)自动安装oracle所需的RPM包
(2)自动创建oracle用户和group组
(3)自动配置/etc/sysctl.conf内核参数
(4)自动配置/etc/security/limits.conf参数
(5)关闭NUMA=OFF (关闭非一致内存访问)
安装前检查
a、 检查网络环境,确保网络畅通
cat /etc/issue
b、检查yum是否已安装
rpm -qa | grep yum
C、安装oracle-rdbms-server-11gR2-preinstall包 按照下面步骤一步一步来
切换到目录 /etc/yum.repos.d/
cd /etc/yum.repos.d/
wget http://public-yum.oracle.com/public-yum-ol6.repo(注意:如果没有安装wget需要先执行 yum install wget)
(vi public-yum-ol6.repo)这里可以是手动添加,也可以是之前添加好的EPEL源,查看是否安装上
cd /etc/pki/rpm-gpg/
wget http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6 -O RPM-GPG-KEY-oracle
gpg --quiet --with-fingerprint ./RPM-GPG-KEY-oracle
yum install oracle-rdbms-server-11gR2-preinstall
验证
[root@localhost24 yum.repos.d]# cat /etc/passwd |grep oracle
oracle:x:54321:54321::/home/oracle:/bin/bash
[root@localhost24 yum.repos.d]# cat /etc/group |grep dba
dba:x:54322:oracle
[root@localhost24 yum.repos.d]#
2.2 编辑 /etc/pam.d/login
vi /etc/pam.d/login
添加以下行:
session required /lib64/security/pam_limits.so
session required pam_limits.so
2.3 编辑 /etc/profile
vi /etc/profile
添加以下行:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
2.4 预先创建安装目录
cd /
创建ORALCE_BASE目录
mkdir -p /u01/app/oracle
创建ORACLE_HOME目录
mkdir -p /u01/app/oracle/product/11.2.0/db_1
创建Oracle数据文件存放目录
mkdir -p /u01/app/oracle/product/11.2.0/oradata
创建Oracle安装过程日志目录
mkdir -p /u01/app/oracle/oraInventory
2.5 设置目录的所有者所属组和权限
设置app 目录所有者为oracle用户及其所属的oinstall组
chown -R oracle.oinstall /u01/app
设置oraInventory目录所有者为oracle用户及其所属的组
chown -R oracle.dba /u01/app/oracle/oraInventory
设置app 目录所属用户具有该目录读、写、执行的权限
chmod -R 775 /u01/app/
2.6 上传oracle安装源文件并且unzip解压缩到 /u01/app/oracle 目录下
2.7创建 oraInst.loc
创建oraInst.loc文件并增加内容
vi /etc/oraInst.loc
inventory_loc=/u01/app/oracle/oraInventory
inst_group=oinstall
设置oracle用户及其oinstall组对oraInst.loc文件的所有权
chown oracle:oinstall /etc/oraInst.loc
设置oraInst.loc文件所属用户及组具有该目录读、写、执行的权限
chmod 664 /etc/oraInst.loc
2.8 设置用户 oracle的环境变量
登录oracle用户
su - oracle
编辑oracle用户的环境变量
vi /home/oracle/.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 # user add umask 022 export SHELL=/bin/bash export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 export ORACLE_SID=orcl export ORACLE_UNQNAME=$ORACLE_SID export ORACLE_OWNER=oracle export ORACLE_TERM=vt100 export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib export CLASSPATH export ORA_NLS33=$ORACLE_HOME/nls/admin/data # 设置中文环境 # export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK" # 通过locale命令查看自己主机的真实LANG情况,或者echo $LANG # user end
|
执行以下命令让配置马上生效或以oracle用户登录使设置生效
source $HOME/.bash_profile
2.9 设置系统临时空间的大小
注意:默认为物理内存的2倍,同时也是为了防止在后续启动数据库时报ORA-00845的错误,下为错误示例:
SQL> startup ;
ORA-00845: MEMORY_TARGET not supported on this system
调整shm的大小,这样相对简单,具体操作如下
vi /etc/fstab
修改如下行的设置
tmpfs /dev/shm tmpfs defaults 0 0
改成
tmpfs /dev/shm tmpfs defaults,size=2G 0 0 (我这边给虚拟机分的内存是1G)
保存退出
重新mount下shm使其生效
mount -o remount /dev/shm
df -h | grep shm
2.10 准备 Oracle11201静默安装应答文件
进入到oracle 的安装文件 database目录
./runInstaller -silent -debug -force \
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0 \
oracle.install.option=INSTALL_DB_SWONLY \
UNIX_GROUP_NAME=oinstall \
INVENTORY_LOCATION=/u01/app/oracle/oraInventory \
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 \
ORACLE_BASE=/u01/app/oracle \
oracle.install.db.InstallEdition=EE \
oracle.install.db.EEOptionsSelection=false \
oracle.install.db.DBA_GROUP=dba \
oracle.install.db.OPER_GROUP=install \
DECLINE_SECURITY_UPDATES=true
执行完之后不要乱动,要根据提示查看日志,直接查看下一个步骤要复制一个SSh窗口进行操作
2.11 根据上述提示查看安装日志
tail -100f /u01/app/oracle/oraInventory/logs/installActions2014...
查看日志是否安装成功,如果安装失败需要将所有文件删除重新安装。
后期完善:配置Oracle随操作系统启动相关
3.1配置dbstart和dbshut命令
1.安装好Oracle数据库后: 执行 dbstart和dbshut会提示:
[oracle@oracle11g ~]$ dbstart
ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener
Usage: /u01/app/oracle/oracle/product/10.2.0/db_1/bin/dbstart ORACLE_HOME
错误原因是:dbstart和dbshut脚本文件中ORACLE_HOME_LISTNER的设置有问题
分别编辑两个文件(dbstart和dbshut)
找到:ORACLE_HOME_LISTNER=$1,修改为
ORACLE_HOME_LISTNER=$ORACLE_HOME,命令如下:
[oracle@oracle11g ~]$ vi $ORACLE_HOME/bin/dbstart
[oracle@oracle11g ~]$ vi $ORACLE_HOME/bin/dbshut
提示:
dbstart ORACLE_HOME_LISTNER=$1 参数大约在78行
dbshut ORACLE_HOME_LISTNER=$1 参数大约在50行
vi命令:
:set nu 显示行号
3.2设置开机自动运行oracle
第一步:修改/etc/oratab文件,命令如下:
[oracle@oracle11g ~]$ vi /etc/oratab
找到:orcl:/u01/oracle:N 修改为: orcl:/u01/oracle:Y 注意:orcl:/u01/oracle:N 应根据实际情况鉴别,orcl是新创建库的实例名,/u01/oracle是ORACLE_HOME的绝对路径;Y代表的是随系统一起启动;
第二步:把lsnrctl start和dbstart添加到rc.local文件中,命令如下:
[oracle@oracle11g ~]# vi /etc/rc.d/rc.local
添加:
su oracle -lc "/u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl start"
su oracle -lc /u01/app/oracle/product/11.2.0/db_1/bin/dbstart
注意:第一个命令有空格,所以要用引号的
3.3配置Oracle sqlplus 回显
yum install -y rlwrap (如果不设置回显sqlplus不能删除字符操作 需要在root用户下进行)
echo "alias sqlplus='rlwrap sqlplus'" >>/home/oracle/.bash_profile
echo "alias rman='rlwrap rman'" >>/home/oracle/.bash_profile
立即生效
source /home/oracle/.bash_profile
至此,所有工作都已经完成了。