CentOS7安装Oracle 11g数据库
Posted hawking8su
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS7安装Oracle 11g数据库相关的知识,希望对你有一定的参考价值。
一、准备
1. Oracle11g安装包:
p13390677_112040_Linux-x86-64_1of7.zip
p13390677_112040_Linux-x86-64_2of7.zip
2. 虚拟机配置参考:
虚拟机安装CentOS7具体过程参见:https://blog.51cto.com/14451009/2428059?source=dra
我的配置方案是40G的硬盘/boot(系统启动目录)6个G,/(根目录)20个G,/home(存放所有用户文件的根目录)10个G,swap(虚拟内存)4个G。
二、CentOS7配置
首先确认关闭防火墙和Selinux,不知道可百度。
1. 创建用户组和用户
[root@localhost /]# groupadd oinstall [root@localhost /]# groupadd dba [root@localhost /]# user-g oinstall -G dba -m oracle #创建oracle用户,归属oinstall和dba两个组 [root@localhost /]# groups oracle # 验证oracle对应的组 oracle : dba [root@localhost /]# id oracle uid=1001(oracle) gid=1002(dba) groups=1002(dba) #少了oinstall,再用usermod把用户加到oinstall组 [root@localhost /]# usermod -a -G oinstall oracle [root@localhost /]# id oracle uid=1001(oracle) gid=1002(dba) groups=1002(dba),1001(oinstall) [root@localhost /]# groups oracle oracle : dba oinstall
2. 创建目录
[root@localhost /]# mkdir -p /data/oracle [root@localhost /]# mkdir -p /data/oraInventory [root@localhost /]# mkdir -p /data/database [root@localhost /]# cd /data #验证创建情况 [root@localhost data]# ll total 0 drwxr-xr-x. 2 root root 6 Jul 11 11:36 database drwxr-xr-x. 2 root root 6 Jul 11 11:36 oracle drwxr-xr-x. 2 root root 6 Jul 11 11:36 oraInventory [root@localhost data]# cd .. [root@localhost /]# chown -R oracle:oinstall /data/oracle #改变目录属主为oracle [root@localhost /]# chown -R oracle:oinstall /data/oraInventory [root@localhost /]# chown -R oracle:oinstall /data/database [root@localhost /]# ll /data total 0 drwxr-xr-x. 2 oracle oinstall 6 Jul 11 11:36 database drwxr-xr-x. 2 oracle oinstall 6 Jul 11 11:36 oracle drwxr-xr-x. 2 oracle oinstall 6 Jul 11 11:36 oraInventory
3. 修改内核版本名称
因为oracle默认不支持在centos7上安装,所以改为redhat-7
[root@localhost /]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [root@localhost /]# cp /etc/redhat-release /etc/redhat-release.bak #备份 [root@localhost /]# vi /etc/redhat-release redhat-7
4. 安装依赖包
[root@localhost /]# yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers gl ibc-static kernel-headers libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel libstdc++-static make numactl-devel sysstat unixODBC unixODBC-devel
Oracle前提校验依赖pdksh,但yum云上没有,网上查了说可以用ksh代替,这里单独安装
[root@localhost /]# yum -y install ksh
5. 修改内核参数
参考:Linux 下安装Oracle 时,/etc/sysctl.conf 内核参数设置详解 https://blog.csdn.net/weixin_34239169/article/details/89830714
[root@localhost /]# cp /etc/sysctl.conf /etc/sysctl.conf.bak [root@localhost /]# vi /etc/sysctl.conf # 添加下面内容 kernel.shmall = 2097152 kernel.shmmax = 2147483648 # 也可以是kernel.shmmax = 4294967295 fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65000 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 [root@localhost /]# /sbin/sysctl -p # 执行立即生效 [root@localhost /]# cat /proc/sys/kernel/shmmax # 验证是否生效
6. 修改用户oracle限制参数,提高软件运行性能
[root@localhost /]# cp /etc/security/limits.conf /etc/security/limits.conf.bak [root@localhost /]# vi /etc/security/limits.conf # 在最后添加下面几行: oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
7. 修改用户oracle环境变量
[root@localhost /]# cp /home/oracle/.bash_profile /home/oracle/.bash_profile.bak [root@localhost /]# vi /home/oracle/.bash_profile ...... # 注释下面两行 # PATH=$PATH:$HOME/.local/bin:$HOME/bin # export PATH # 添加下面内容 export ORACLE_BASE=/data/oracle # 数据库安装路径 export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 export ORACLE_SID=orcl # 实例名 export ORACLE_TERM=xterm export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export LANG=en_US.UTF-8 export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
退出后用root用户执行下面命令,使该配置文件即时生效。
[root@localhost /]#source /home/oracle/.bash_profile
三、安装Oracle数据库
1. 将oracle11g安装包拷贝到centos,解压到/data/database
[root@localhost data]# unzip p13390677_112040_Linux-x86-64_1of7.zip -d /data/database [root@localhost data]# unzip p13390677_112040_Linux-x86-64_2of7.zip -d /data/database [root@localhost data]# chown -R oracle:oinstall /data/database # 修改所有者 [root@localhost data]# ll /data/database total 0 drwxr-xr-x. 7 oracle oinstall 136 Aug 27 2013 database
2. 开始安装oracle数据库
[root@localhost data]# su oracle #切换到oracle用户安装 [oracle@localhost data]$ cd /database/database #进入解压后的路径 [oracle@localhost database]$ ./runInstaller #执行安装程序
仅安装数据库软件
单实例安装
语言添加Simplified Chinese
安装路径和.bash_properties环境变量配置中的一致
这里提示pdksh缺失,因为已经安装了ksh,所以可以ignore all,然后点击Next。
最后一步,保留安装过程,新开一个xshell窗口,按提示要求用root登录并执行以下脚本,然后回到此界面点击OK。
[root@localhost /]# /data/oraInventory/orainstRoot.sh Changing permissions of /data/oraInventory. Adding read,write permissions for group. Removing read,write,execute permissions for world. Changing groupname of /data/oraInventory to oinstall. The execution of the script is complete. [root@localhost /]# /data/oracle/product/11.2.0/db_1/root.sh Performing root user operation for Oracle 11g The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /data/oracle/product/11.2.0/db_1 Enter the full pathname of the local bin directory: [/usr/local/bin]: # 这里直接回车 Copying dbhome to /usr/local/bin ... Copying oraenv to /usr/local/bin ... Copying coraenv to /usr/local/bin ... ......
遇到报错:
解决方案: 保留安装过程,另外开启一个终端窗口,找到$ORACLE_HOME/sysman/lib /ins_emagent.mk文件,将
$(MK_EMAGENT_NMECTL)
替换为
$(MK_EMAGENT_NMECTL) -lnnz11
然后在安装过程中点击Retry即可。
到此,oracle数据库软件安装完成,下面要创建监听和实例。
四、创建Oracle实例
参考:https://blog.csdn.net/lia17/article/details/82256565
1. 创建监听:
使用oracle用户登录,执行netca 命令进入可视化监听配置界面,一路Next完成
[oracle@localhost database]$ whereis netca netca: /data/oracle/product/11.2.0/db_1/bin/netca [oracle@localhost database]$ cd /data/oracle/product/11.2.0/db_1 [oracle@localhost db_1]$ netca
监听配置完成。
2. 创建实例:
[oracle@localhost db_1]$ dbca #执行配置程序
配置实例名orcl
配置sys和system密码
Memory Size要在40%~60%之间
Charater sets要选择ZHS16GBK,否则显示中文会乱码
点击OK,结束创建实例!至此,可以正常使用oracle11g数据库了。
五、创建Oracle登录用户
1. 在centos中用sys用户登录,验证是否正常能正常登陆
[oracle@localhost db_1]$ sqlplus sys/password as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Sat Jul 11 14:07:00 2020 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> SELECT * FROM v$pwfile_users; SQL> exit;
2. 退出后用PL/SQL访问登录,用sys用户登录
-- 创建表空间 -- 默认设置表空间自动扩展,且每次扩展空间大小为100M,限制最大空间为5G,注:datafile后面是表空间的物理存储路径,文件名的后缀可以随便. create tablespace test_user01 datafile \'/data/oracle/oradata/orcl/test_user01.dbf\' size 200M autoextend on next 100m maxsize 5G; -- 创建用户 create user test_user01 identified by test_user01; -- 分配表空间到用户 alter user test_user01 default tablespace test_user01; -- 赋权sysdba权限 grant sysdba to test_user01; -- 赋权其他权限,否则无法登录 grant create session,create table,create view,create sequence,connect,resource,unlimited tablespace to test_user01; -- 尝试用test_user01登录 -- conn test_user01/test_user01; -- 登录之后查询用户所具有的权限 select * from session_privs; /*-- 删除用户及其相关对象,删除之前先断开相关链接 drop user username cascade;*/
参考链接:
国内:
https://www.cnblogs.com/dudu99/p/11074489.html
https://blog.csdn.net/lia17/article/details/82256565
https://blog.csdn.net/csgd2000/article/details/100224722
https://www.cnblogs.com/MicleZhou2020/p/12200622.html
国外:
http://dbaora.com/install-oracle-11g-release-2-11-2-on-centos-linux-7/
https://oracle-base.com/articles/11g/oracle-db-11gr2-installation-on-oracle-linux-7
Oracle官方:
https://www.oracle.com/cn/technical-resources/articles/hunter-rac11gr2-iscsi2.html#13
以上是关于CentOS7安装Oracle 11g数据库的主要内容,如果未能解决你的问题,请参考以下文章