irpas技术客

CentOS7安装Oracle数据库的全流程_~虫虫~_centos7安装oracle

大大的周 7842

一、准备工作

1、下载Oracle的安装介质 Oracle 11g R2 Linux版本有两个压缩文件包,都需下载安装才会完整。 linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip 下载地址:网盘分享 链接:https://pan.baidu.com/s/1Y9hwNvlm5JIDMNLa0P_csQ 提取码:mhms 链接:https://pan.baidu.com/s/1QXQHy_FYRh2KmbpfQpXMng 提取码:gae2 2、检查设置服务器内核安装环境 (1)检查操作系统补丁包 (1)以root用户登录系统。 (2)使用uname -r命令查看kernel版本 (3)在root账号下执行如下脚本命令

for dep_rpm in elfutils-devel unixODBC* unixODBC.i686 unixODBC-devel.i686 binutils.x86_64 compat-libcap1.x86_64 compat-libstdc++-33.i686 compat-libstdc++-33.x86_64 gcc.x86_64 gcc-c++.x86_64 glibc.i686 glibc.x86_64 glibc-devel.i686 glibc-devel.x86_64 ksh libaio.i686 libaio.x86_64 libaio-devel.i686 libaio-devel.x86_64 libgcc.i686 libgcc.x86_64 libstdc++.i686 libstdc++.x86_64 libstdc++-devel.i686 libstdc++-devel.x86_64 libXi.i686 libXi.x86_64 libXtst.i686 libXtst.x86_64 make.x86_64 sysstat.x86_64 vim epel-release lrzsz unzip xorg*;do yum install $dep_rpm -y;done

(2)修改内核参数 (1)通过修改文件/etc/sysctl.conf,增加要修改的内核参数值

fs.file-max = 6815744 fs.aio-max-nr = 1048576 kernel.shmall = 524288 kernel.shmmax = 2147483647 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 = 1048576 net.ipv4.tcp_wmem = 262144 262144 262144 net.ipv4.tcp_rmem = 4194304 4194304 4194304

查看linux服务器的位数:getconf LONG_BIT 内核参数的详解: (1)kernel.shmmax 32位linux系统:可取最大值为4GB(4294967296bytes)-1byte,即4294967295。建议值为多于内存的一半,所以如果是32为系统,一般可取值为4294967295。32位系统对SGA大小有限制,所以SGA肯定可以包含在单个共享内存段中。若物理内存大于4GB,也取4GB-1byte。 64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,一般取值大于SGA_MAX_SIZE即可,可以取物理内存-1byte。例如,如果为12GB物理内存,可取1210241024*1024-1=12884901887,SGA肯定会包含在单个共享内存段中。 (2)kernel.shmall 查看系统默认的值-----------getconf PAGESIZE 默认是4096(字节 4K 一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB/4KB=16777216KB /4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304才符合要求。 (2)运行命令进行参数修改。

/sbin/sysctl -p

(3)检查参数是否生效

# /sbin/sysctl -a | grep sem # /sbin/sysctl -a | grep shm # /sbin/sysctl -a | grep file-max # /sbin/sysctl -a | grep aio-max-nr # /sbin/sysctl -a | grep net.ipv4.ip_local # /sbin/sysctl -a | grep rmem # /sbin/sysctl -a | grep wmem

3、设置oracle用户的shell限制 (1)以root用户登录。 步骤 2 修改文件/etc/security/limits.conf,追加以下内容(如果不存在)。

oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536

(2)修改文件/etc/pam.d/login,追加以下内容。

session required pam_limits.so

(3)修改文件/etc/pam.d/su,追加以下内容。

session required pam_limits.so

(4)修改文件/etc/profile,追加以下内容。

if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -u 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi

4、检查SWAP空间大小 (1)以root用户登录。 (2)检查物理内存大小。

# grep MemTotal /proc/meminfo

1881276 KB【物理内存过于小?】 (3)检查SWAP空间大小。

# grep SwapTotal /proc/meminfo

4063228 KB SWAP空间大小建议值如图所示。 5、创建用户和组 (1)以root用户登录。 (2)创建dba组,先检查dba组是否存在和/或组id是否一致。

#grep dba /ect/group

无输出则表示dba组不存在。如果dba组已存在,但组id不一样,则使用以下命令删除dba组。

# /usr/sbin/groupdel dba

创建dba组。

#/usr/sbin/groupadd -g 200 dba

(3)创建oinstall组。 先检查oinstall组是否存在和/或组id是否一致。

#grep oinstall /etc/group

无输出则表示oinstall组不存在。如果oinstall组已存在,但组id不一致,则使用以下命令删除oinstall组。

#/usr/sbin/groupdel oinstall

创建oinstall组。

#/usr/sbin/groupadd -g 201 oinstall

(4)创建oracle用户。 检查oracle用户是否存在和/或用户id是否一致。

#grep oracle /etc/passwd

无输出则表示Oracle用户不存在。如果Oracle用户已存在,但用户id不一致,则使用以下命令删除Oracle用户。

# /usr/sbin/userdel -rf oracle

创建oracle用户。

#/usr/sbin/useradd -u 300 -g oinstall -G dba -d /home/oracle -s /bin/bash -m oracle

修改oracle用户密码。

passwd oracle

6、创建安装目录并授权 (1)以root用户登录。 (2)赋予目录正确的权限。 对文件系统/opt/oracle赋权。

# mkdir /opt/oracle;chown -R oracle:oinstall /opt/oracle # chmod -R 775 /opt/oracle

对文件系统/opt/oraadm赋权。

# mkdir /opt/oraadm ;chown -R oracle:dba /opt/oraadm # chmod -R 770 /opt/oraadm

创建目录/usr/local/bin并赋权。 检查/usr/local/bin目录是否存在,如不存在则需创建该目录,并赋予755权限。

#mkdir /usr/local/bin #chmod 755 /usr/local/bin #ll /usr/local |grep bin

赋权/tmp目录权限。 检查/tmp是否具有1777权限,如不具备则赋予/tmp目录1777权限。

#chmod 1777 /tmp #ll / |grep tmp

7、设置oracle用户环境变量 (1)以oracle用户登录操作系统。 (2)编辑环境变量文件。 注意: ORACLE_BASE,ORACLE_HOME,ORACLE_SID,NLS_LANG请根据实际情况进行设置。 ORACLE_SID唯一的标识一个实例,一般以数据库名加上实例号为命名规范,例如:有两个实例,数据库名称为suseora,实例1命名为suseora1,实例2命名为suseora2,依次类推,这里数据库实例设置为orcl。 NLS_LANG格式为区域_语言.字符集,字符集必须和数据库保持一致。

cd /home/oracle/.bash_profile $ vi .bash_profile export ORACLE_BASE=/opt/oracle export ORACLE_HOME=/opt/oracle/product/11gR2/db export ORACLE_SID=orcl export ORACLE_TERM=xterm LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$ORACLE_HOME/rdbms/lib export LD_LIBRARY_PATH SHLIB_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib export SHLIB_PATH # Set shell search paths: export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH:/usr/local/bin # CLASSPATH must include the following JRE locations: CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib export CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

(3)执行source .bash_profile命令,使环境变量生效。 (4)执行env命令,确认环境变量。 8、拷贝安装文件并创建安装目录 (1)以root用户登录。 (2)将oracle安装文件以二进制的方式拷贝至节点1的“/opt/oraadm”中,如下所示。如果没有oraadm则创建并授权777权限。 注:从服务器下载文件到本地某路径:scp root@192.168.10.113 /home/mysql/MySQL-server-5.6.27-1.rhel5.x86_64.rpm C:\下载软件 将本地某文件上传至服务器:scp C:\下载软件\jdk-8u144-linux-x64.tar.gz root@192.168.10.113 /home/mysql (3)解压缩安装文件,并赋予权限。 安装unzip命令

yum install -y unzip zip

更改oracle介质zip为777权限

# cd /opt/oraadm # unzip /opt/oraadm/linux.x64_11gR2_database_1of2.zip # unzip /opt/oraadm/linux.x64_11gR2_database_2of2.zip # chmod 770 -R /opt/oraadm/database # chown oracle:dba -R /opt/oraadm/database # mkdir grid # chmod 770 -R /opt/oraadm/grid # chown oracle:dba -R /opt/oraadm/grid

(4)创建Inventory目录 创建目录/opt/oraInventory,并使oracle:oinstall为其所有者。 以root用户登录,创建目录/opt/oraInventory。

# mkdir /opt/oraInventory

使oracle:oinstall为该目录所有者。

# chown oracle:oinstall /opt/oraInventory # chmod 770 /opt/oraInventory

9、搭建Xstart环境 (1)首先保证linux服务器已安装“xorg-x11-xauth”软件包,否则会报错:“已拒绝X11转移申请”。 如果没有安装图形界面,则需要先安装图形化安装包。 切换为root账号,配置Display

[root@vlxcndcz01bpmth ~]#yum install xorg-x11-xauth.x86_64 [root@vlxcndcz01bpmth ~]#yum install xterm [root@vlxcndcz01bpmth ~]#yum install xclock 方式一: [root@vlxcndcz01bpmth ~]#export DISPLAY=172.20.10.3:0.0(本地IP而不是服务器IP):0.0 方式二: #编辑/etc/profile文件,添加内容:export DISPLAY=:0.0 [root@vlxcndcz01bpmth ~]# vi /etc/profile [root@vlxcndcz01bpmth~]# cat /etc/profile #省略…… export DISPLAY=172.20.10.3:0.0

(2)配置xmanager 确保主机名配置一致否则,会报INS-06101错误 [INS-06101] IP address of localhost could not be determined (3)打开xstart配置连接主机IP以及配置命令,点击运行/usr/bin/xterm -ls -display $DISPLAY 报错:DISPLAY not set. Please set the DISPLAY and try again. 解决:切换到root下,执行export DISPLAY=172.20.10.3:0.0,再执行xhost +,再切换到oracle su oracle /opt/oraadm/database/runInstaller 取消配置安全更新 不勾选“I wish to receive security updates via My Oracle Support”,选择“Next”。 取消安全更新,单击“Yes”。 选择安装方式,选择“Install database software only”,单击“NEXT”。 指定安装类型,选择“Single instance database installation” 选择安装语言 选择软件版本,选择“Enterprise Edition”,单击“Next”。 指定安装目录,在Oracle Base中填写“/opt/oracle”,即oracle用户的环境变量O R A C L E B A S E 。 在 S o f t w a r e L o c a t i o n 中 填 写 “ / o p t / o r a c l e / p r o d u c t / 11 g R 2 / d b ” , 即 o r a c l e 用 户 的 环 境 变 量 ORACLE_BASE。 在Software Location中填写“/opt/oracle/product/11gR2/db”,即oracle用户的环境变量ORACLE BASE。在SoftwareLocation中填写“/opt/oracle/product/11gR2/db”,即oracle用户的环境变量ORACLE_HOME。 设置操作系统用户组,Database Administrator Group 选择“dba”,Database Operator Group 选择“dba”,单击“Next”。

安装概要检查,检查没有问题,单击“Install”按钮进行安装。由于系统中已经存在更新的软件包,以下错误可以忽略。 安装概要检查结果: 1、对于shmall问题:点击fix and check again,打开新的终端按照步骤进行,然后点击OK,继续检查。 2、对于semmni,在内核设置处已经设置,忽略;packages安装包也可忽略。 3、architecture— oracle的安装版本不正确,本系统需要安装linux64位的 5、安装过程中会出现如下报错,解决方案如下。 错误1---------

解决方案=== 切换回oracle用户,修改 /opt/oracle/product/11gR2/db/ctx/lib/ins_ctx.mk文件中的配置 ctxhx: $(CTXHXOBJ) $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) 修改为 ctxhx: $(CTXHXOBJ) -static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/stdc.a 错误2--------- 解决方案=== 需要修改,/opt/oracle/product/11gR2/db/sysman/lib/ins_emagent.mk文件中的配置,将文件中的 $(SYSMANBIN)emdctl: $(MK_EMAGENT_NMECTL) 修改为 $(SYSMANBIN)emdctl: $(MK_EMAGENT_NMECTL) -lnnz11

继续:打开终端以root用户执行以下命令,执行的时候出现一些简单问题,直接点击enter即可 安装成功,如下提示 最后检查安装错误,cat /opt/oracle/product/11gR2/db/install/make.log

二、配置ORACLE监听器

配置数据库连接字符串:协议,地址,端口等 (1)启动NETCA。 用oracle用户登录节点1启动NETCA。选择“Cluster configuration”。 默认的端口名称 选择TCP 选择端口范围1500-1600 提示端口被占用? 勾选Automatic Maintenance Tasks界面中的“Enable automatic maintenance tasks”。 解决方案修改.bash_profile中的ORACLE_HOSTNAME为hostname

三、创建oracle数据库

使用操作系统oracle用户调用DBCA进行安装 (1)以oracle用户登录节点1。 (2)启动DBCA安装界面。 注意:只有 su - oracle才能启用oracle环境,而非su oracle su oracle只切换用户,而非环境变量,环境变量仍然是root的,不会执行oracle主目录中的profile脚本。 上述报错解决-------export DISPLAY=172.20.10.3:0.0 输入dbca后无反应=======在Xstart中调用终端而非Xshell中。 填写数据库名 接下来都是默认设置,图片略过 DBCA运行完毕,数据库建立,完成数据库创建操作。 登录数据库进行验证。 数据库实例启动后,登录数据库确认数据库状态。

四、oracle创建其他用户

oracle的权限分为系统权限和对象权限。系统权限可以让用户执行特定的指令,比如创建用户create table创建表,grant any privilege为用户赋予任何系统权限。对象权限指的是用户可以对各个对象进行操作,delete允许用户删除表或视图的行,select允许用户从表或视图、序列(sequences)与快照(snapshots)查询信息。 每个oracle用户都有一个名字和口令,并拥有一些由其创建的表、视图和其他资源。oracle角色(role)就是一组权限(privilege)(或者是每个用户根据其状态和条件所需的访问类型)。用户可以给角色授予或赋予指定的权限,然后将角色赋给相应的用户。一个用户也可以直接给其他用户授权。 一、创建用户 oracle内部有两个建好的用户:system和sys。用户可直接登录到system用户以创建其他用户,因为system具有创建别 的用户的 权限。 在安装oracle时,用户或系统管理员首先可以为自己建立一个用户。 语法[创建用户]: create user 用户名 identified by 口令[即密码]; 例子: create user test identified by test; 语法[更改用户]: alter user 用户名 identified by 口令[改变的口令]; 例子: alter user test identified by 123456; 二、删除用户 语法:drop user 用户名; 例子:drop user test; 若用户拥有对象,则不能直接删除,否则将返回一个错误值。指定关键字cascade,可删除用户所有的对象,然后再删除用户。 语法: drop user 用户名 cascade; 例子: drop user test cascade; 三、授权角色 oracle为兼容以前版本,提供三种标准角色(role):connect/resource和dba. (1)讲解三种标准角色: 1》. connect role(连接角色) –临时用户,特指不需要建表的用户,通常只赋予他们connect role. –connect是使用oracle简单权限,这种权限只对其他用户的表有访问权限,包括select/insert/update和delete等。 –拥有connect role 的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym)、回话(session)和其他 数据的链(link) 2》. resource role(资源角色) –更可靠和正式的数据库用户可以授予resource role。 –resource提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。 3》. dba role(数据库管理员角色) –dba role拥有所有的系统权限 –包括无限制的空间限额和给其他用户授予各种权限的能力。system由dba用户拥有 (2)授权命令 语法: grant connect, resource to 用户名; 例子: grant connect, resource to test; 用户:创建用户必须为其指定表空间,如果没有显性指定默认表空间,则指定为users表空间;创建用户后,可以在用户上,创建表、存储过程等等其他数据库对象; 表:是数据记录的集合; 创建过程: 表空间—>用户—>表; 所属关系: 表空间 包含 用户 包含 表;

五、管理工具sql developer进行连接

附: 如果本机安装有Oracle数据库,用PLSQL Dev 连接数据库自然没有什么问题,但是如果本机没有安装oracle 客户端,要连接非本地机的oracle DB,那么一种方法就是在本地也安装Oracle,或者安装类似oracle develop 10g开发套件,这些安装方法比较麻烦,安装下来占用磁盘空间和系统资源,特别是oracle数据库启动的时候大量占用系统服务和资源,不是理想的方法。 安装使用过PLSQL Dev都知道,要连接数据库,必须配置TNS(Transparence Network Substrate),而直接安装PLSQL Dev 之后,本机是没有Oracle HOME的注册表项,连网络连接配置项都没有,PLSQL Dev 就是一个文本编辑器而已。 PLSQL Dev 连接远程oracle的一个有效解决方法使使用OCI。ORACLE调用接口(Oracle Call Interface简称OCI)提供了一组可对ORACLE数据库进行存取的接口函数,通过在第三代程序设计语言中进行调用可达到存取ORACLE数据库的目的。本文介绍PLSQL Dev如何使用OCI的实例连接远程数据库的方法。 1、windows安装sql developer并连接centos的oracle (1)安装 下载地址: 链接:https://pan.baidu.com/s/1ojXGysHDCpf80EXussa5EA 提取码:5ddp (2)连接设置 1、下载轻量级免安装的客户端: 链接:https://pan.baidu.com/s/10Id7JzTGJ3L4YTVPXct2Pg 提取码:1zrm 解压到C:\下载软件\instantclient_12_2 拷贝服务端目录“/opt/oracle/product/11gR2/db/network/admin/tnsnames.ora”到客户端的“nstantclient-basic-nt-11.2.0.3.0\NETWORK\ADMIN“目录,该目录没有的话需要创建。 修改tnsnames.ora的内容

# tnsnames.ora Network Configuration File: /opt/oracle/product/11gR2/db/network/admin/tnsnames.ora # Generated by Oracle configuration tools. ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.114)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )

2、开启oracle监听器 su - oracle lsnrctl ------查看监听器 status ------状态 start ------打开监听 报错1: listener does not currently konw of service requested in connect descriptor(监听程序当前无法识别连接描述符中请求的服务) *检查tnsnames.ora的内容; *检查oracle是否启动: sqlplus /nolog; conn as sysdba; select status from v$instance;—查看视图,查看当前实例的状态。 若没有启动,则startup;进行启动。不要使用startup nomount启动,连接时会报错。

2、centos上安装sql developer并连接该服务器的oracle (1)下载 (2)连接设置


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #centos7安装oracle #developer连接