Linux安装部署Oracle 11gR2完整步骤
简介
Oracle Database,又名 Oracle RDBMS,或简称 Oracle。是甲骨文公司的一款关系数据库管理系统。
安装环境
名称 | 参数 |
---|---|
linux版本 | CentOS-7-x86_64 |
oracle版本 | linux.x64_11gR2,点击下载 |
安装前准备
如下操作都需要root用户执行
-
创建oracle数据库的系统用户和用户组
#创建用户组oinstall groupadd oinstall #创建用户组dba groupadd dba #创建oracle用户,并加入到oinstall和dba用户组 useradd -g oinstall -g dba -m oracle #设置用户oracle的登陆密码,不设置密码,在CentOS的图形界面没法登陆 passwd oracle # 查看新建的oracle用户 id oracle
-
创建oracle数据库安装目录
#oracle数据库安装目录 mkdir -p /data/oracle #oracle数据库配置文件目录 mkdir -p /data/oraInventory #oracle数据库软件包解压目录 mkdir -p /data/database #设置目录所有者为oinstall用户组的oracle用户 chown -R oracle:oinstall /data/oracle chown -R oracle:oinstall /data/oraInventory chown -R oracle:oinstall /data/database #学习用下面一条即可 chown -R oracle:oinstall /data/*
-
修改OS系统标识,oracle默认不支持CentOS系统安装
#这里cat文件查看系统标示为CentOS需要修改为redhat-7 cat /etc/redhat-release #编辑系统文件,将CentOS需要修改为redhat-7 vi /etc/redhat-release #再次输出一下,是否是redhat-7 cat /etc/redhat-release
-
安装oracle数据库所需的软件包
yum install -y binutils compat-gcc* compat-glibc* compat-libcap1 compat-libstd* compat-libstdc++-33 compat-libstdc++-33.i686 compat-libstdc++-33*.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-devel.i686 glibc-devel*.i686 glibc-headers glibc.i686 glibc*.i686 ksh libaio libaio-devel libaio-devel.i686 libaio-devel*.i686 libaio.i686 libaio*.i686 libgcc libgcc.i686 libgcc*.i686 libstdc++ libstdc++-devel libstdc++-devel*.i686 libstdc++.i686 libstdc++*.i686 libXp make numactl sysstat unixODBC unixODBC-devel unixODBC-devel*.i686 unixODBC*.i686
-
开放防火墙端口
firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --reload #重新载入防火墙规则使其生效
-
修改内核参数
vi /etc/sysctl.conf
#以下是新增代码 net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.conf.all.rp_filter = 1 fs.file-max = 6815744 #设置最大打开文件数 fs.aio-max-nr = 1048576 kernel.shmall = 2097152 #共享内存的总量,8G内存设置:2097152*4k/1024/1024 kernel.shmmax = 2147483648 #最大共享内存的段大小 kernel.shmmni = 4096 #整个系统共享内存端的最大数 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 #可使用的IPv4端口范围 net.core.rmem_default = 262144 net.core.rmem_max= 4194304 net.core.wmem_default= 262144 net.core.wmem_max= 1048576
#输出sysctl.conf内容确认 cat /etc/sysctl.conf
#使配置参数生效 sysctl -p
-
对oracle用户设置限制,提高软件运行性能
vi /etc/security/limits.conf
#以下是新增代码 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
-
配置用户的环境变量
vi /home/oracle/.bash_profile
#以下是新增代码 #oracle数据库安装目录 export ORACLE_BASE=/data/oracle #oracle数据库路径 export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 #oracle启动数据库实例名 export ORACLE_SID=orcl #xterm窗口模式安装 export ORACLE_TERM=xterm #添加系统环境变量 export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH #添加系统环境变量 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib #防止安装过程出现乱码 export LANG=C #设置Oracle客户端字符集,必须与Oracle安装时设置的字 符集保持一致,如:ZHS16GBK,否则出现数据导入导出中文乱码问题 export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
source /home/oracle/.bash_profile
-
上传安装包
-
解压安装包
#切换oracle用户 su oracle #进入到下载上传好oracle安装包的目录下 cd /home/oracle #解压 unzip linux.x64_11gR2_database_1of2.zip -d /data/ unzip linux.x64_11gR2_database_2of2.zip -d /data/ #切换root用户 su root #把文件权限给oracle:oinstall chown -R oracle:oinstall /data/database/
视图化安装
-
启动安装图形页面
# 在解压目录下,运行./runIstaller文件 cd /data/database/ #启动安装图形页面 ./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
-
傻瓜式安装(略)
问题及解决方案
问题1:写入目录 /tmp/OraInstall2013-09-05_08-50-32AM 时出错。请确保此目录是可写的, 并且至少有 60 MB 的磁盘空间。无法继续安装
分析原因
- 可能能是因为/tmp划分的太小或者空间满了,所有在执行写入相关的文件时,写入不进去(cd /tmp转到tmp目录 du -sh查看该目录大小 就可以知道是不是容量问题了)
- 没有权限(使用ls -la命令查看tmp目录的权限)
解决方案
-
Oracle在运行安装时,会在/tmp下面生出60M左右大小的文件,文件以Ora开头,在Oracle安装失败时,不会自动删除。所以把/mp下的那个文件删除再运行可能就行了。
#在tmp目录下执行如下命令 rm -rf *OraInstall* # 删除包含OraInstall的文件及文件夹
问题2:Error in invoking target ‘install’ of makefile ‘/data/oracle/product/10.2/ctx/lib/ins_ctx.mk’. See ‘/data/oracle/oraInvertory/logs/installActions2010-09-28_10-27-06AM.log’ for details.
原因
- ins_ctx.mk编译错误
解决方案
#切换oracle用户
su oracle
#修改ins_ctx.mk文件
vi vi /data/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk
#按‘:’+set number 显示行号
#修改ins_ctx.mk文件第11行
ctxhx: $(CTXHXOBJ) -static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/stdc.a
问题3:Error in invoking target ‘agent nmhs’ of makefile
‘/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk.
原因
- ins_emagent.mk编译错误
解决方案
#切换oracle用户
su oracle
#修改ins_emagent.mk文件
vi /data/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
#按‘:’+‘set number’ 显示行号
#修改ins_emagent.mk文件第190行的末尾添加-lnnz11
$(MK_EMAGENT_NMECTL) -lnnz11
启动与关闭
#切换Oracle用户
su - oracle
注意:切换用户必须使用 -,因为su后面追加 -,-l,--login,表示切换用户时,使环境变量(home,shell,user,logname,path等)和欲切换的用户相同
启动
-
启动监听
lsnrctl start
-
连接到sqlplus
sqlplus /nolog
-
sysdba登陆
conn /as sysdba
-
执行命令startup
startup
关闭
-
连接到sqlplus
sqlplus /nolog
-
sysdba登陆
conn /as sysdba
-
关闭数据库
shutdown immediate
-
退出sqlplus
exit
-
关闭监听
lsnrctl stop