Benjamin Zhang

目前就职于中科院计算机网络信息中心,主要兴趣集中在数据库,操作系统,中间件。

【安装部署】Oracle Database 11g Release 2 (11.2.0.4) (64-bit) on Linux 6 (64-bit)

01 Feb 2019 » Oracle

1.Oracle数据库安装的先决条件

需求关键点: 1、选择语言 2、SID:arpdb 3、选择字符集为 Simplfied Chinese ZHS16GBK (当然可以选择为UTF8,因需求而定) 4、修改数据库端口为1523

防火墙关闭方式

service iptables stop          #当前关闭
chkconfig iptables off         #服务器自动启动关闭

selinux的关闭方式

setenforce 0                                                       #临时关闭
sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config        #全局关闭

1.1 red hat enterprise Linux 6 必须安装的package

下列是必须部署的安装包:

binutils-2.20.51.0.2-5.11.el6 (x86_64) 
compat-libcap1-1.10-1 (x86_64) 
compat-libstdc++-33-3.2.3-69.el6 (x86_64) 
compat-libstdc++-33-3.2.3-69.el6.i686 
gcc-4.4.4-13.el6 (x86_64) 
gcc-c++-4.4.4-13.el6 (x86_64) 
glibc-2.12-1.7.el6 (i686) 
glibc-2.12-1.7.el6 (x86_64) 
glibc-devel-2.12-1.7.el6 (x86_64) 
glibc-devel-2.12-1.7.el6.i686 
ksh 
libgcc-4.4.4-13.el6 (i686) 
libgcc-4.4.4-13.el6 (x86_64) 
libstdc++-4.4.4-13.el6 (x86_64) 
libstdc++-4.4.4-13.el6.i686 
libstdc++-devel-4.4.4-13.el6 (x86_64) 
libstdc++-devel-4.4.4-13.el6.i686 
libaio-0.3.107-10.el6 (x86_64) 
libaio-0.3.107-10.el6.i686 
libaio-devel-0.3.107-10.el6 (x86_64) 
libaio-devel-0.3.107-10.el6.i686 
make-3.81-19.el6 
sysstat-9.0.4-11.el6 (x86_64) 
unixODBC-2.2.14-11.el6 (x86_64)or later 
unixODBC-2.2.14-11.el6.i686 or later 
unixODBC-devel-2.2.14-11.el6 (x86_64) or later 
unixODBC-devel-2.2.14-11.el6.i686 or later

1.2 上传镜像并挂载镜像

mkdir -p /arp/software (上传rhel-server-6.4-x86_64-dvd.iso至/arp/software目录中) 
mkdir -p /arp/iso 
mount -o loop /arp/software/rhel-server-6.4-x86_64-dvd.iso /arp/iso

1.3 YUM文件配置

#cd /etc/yum.repos.d/ 
# mv rhel-source.repo rhel-source.repo.bak 
[root@localhost yum.repos.d]# cat rhel-source.repo 
[Server] 
name=Server 
baseurl=file:///arp/iso 
gpgcheck=gpgkey=file:///arp/iso/RPM-GPG-KEY-redhat-release 

验证yum功能 
[root@localhost yum.repos.d]# yum list -y 

1.4 安装所需的包

yum install -y binutils* 
yum install -y compat-libcap1* 
yum install -y compat-libstdc++* 
yum install -y elfutils-libelf* elfutils-libelf-devel* 
yum install -y glibc* glibc-devel* 
yum install -y gcc* 
yum install -y gcc-c++* 
yum install -y libaio* libaio-devel* 
yum install -y libgcc* 
yum install -y libstdc++ libstdc++-devel* 
yum install -y ksh* 
yum install -y libXp* libXp-devel* 
yum install -y libxt* libxt-devel* 
yum install -y make* 
yum install -y sysstat* 
yum install -y unixODBC* 
yum install -y unixODBC-devel* 

1.5 配置主机名称

vi /etc/hosts 
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 
10.1.13.10 arpdb-1310 

1.6 添加oraarp用户&创建目录&赋予相应权限

####创建用户
groupadd oinstall 
groupadd dba 
groupadd oper 
useradd -g oinstall -G dba,oper oraarp 
####创建目录 
mkdir -p /arp/oraarp/product 
mkdir -p /arp/oraarp/oradata 
mkdir -p /arp/oraarp/oraInventory 
####赋予权限 
chown -R oraarp:oinstall /arp/oraarp 
chown -R oraarp:oinstall /arp/software 
####设置oraarp用户密码
passwd oraarp 

1.7 修改/etc/sysctl.conf文件

fs.suid_dumpable = 1 
fs.aio-max-nr = 1048576 
fs.file-max = 6815744 
kernel.shmall = 8388608 
kernel.shmmax = 536870912 
kernel.shmmni = 4096 
# semaphores: semmsl, semmns, semopm, semmni 
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 

要使 /etc/sysctl.conf 更改立即生效,执行以下命令 
/sbin/sysctl -p 

1.8修改/etc/security/limits.conf配置文件

修改/etc/security/limits.conf 文件,用于Oracle用户设置shell限制

oraarp soft nproc 16384 
oraarp hard nproc 16384 
oraarp soft nofile 4096 
oraarp hard nofile 65536 
oraarp soft stack 10240 

1.9 用户环境变量配置

#su - oraarp 
$vi .bash_profile 
增加如下几行: 
# added by oraarp 
export ORACLE_BASE=/arp/oraarp 
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 
export ORACLE_SID=arpdb 
export NLS_LANG="Simplified Chinese_CHINA.ZHS16GBK" 
export ORACLE_TERM=xterm 
export PATH=/usr/sbin:$PATH 
export PATH=$ORACLE_HOME/bin:$PATH 
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/usr/X11R6/lib64/ 
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib 

注意:修改后要用oraarp重新登录,或者执行以下命令才能生效。 
$source .bash_profile 
检查环境变量是否生效: 
$set 

1.10 VNC配置

VNC在Linux上的安装

#yum install tigervnc-server 
#vncserver #该命令在服务器端启动一个VNC进程。允许一个 
VNC View连接进来;如果需要多个View连接到服务器,需要多次执行上述命令; 
Password: # 为了不想任何人都可以任意遥控此计算机。因此当第1次启动VNC server时,会要求设置网络遥控的密码。 
Verify: # 验证密码; 
进入root主目录下的.vnc隐含目录, 找到 xstartup文件并编辑
# cd /root/.vnc 
# vi xstartup 
# twm & (注释掉该行) 
startkde & (添加该行) 
# killall Xvnc 
# vncserver 

如在安装Redhat linux环境没有安装kde图形界面,还需YUM安装一次。

———————vnc安装需要图形桌面环境———————

yum groupinstall “X Window System” yum -y groupinstall Desktop

1.11上传Oracle包至/arp/software/目录中,并执行Oracle安装。

11.2.0.4的软件包 
unzip p13390677_112040_Linux-x86-64_1of7.zip 
unzip p13390677_112040_Linux-x86-64_2of7.zip 
# cd /arp/software/ 
# chown -R oraarp.oinstall database 
# chmod 777 -R database 

如果是以root用户启动的话,需要首先执行(使用VNC进入图形化界面):

[root@node1 ~]# xhost + 
Access control disabled, clients can connect from any host? 
[root@node1 ~]# su - oraarp 
[oraarp@localhost software]# cd /arp/software/database/ 
[oraarp@node1 database]$ ./runInstaller

2 Oracle数据库安装

2.1 安装Oracle软件

Oracle安装01.png

如上图,然后一直下一步即可,后面会出现要执行下列两个脚本。(途中会出现,修复相关的脚本的提示,请按照图形界面的提示认真执行相关命令即可)

/opt/oracle/oraInventory/orainstRoot.sh

/opt/oracle/product/11.1.2/db_1/root.sh

在linux shell端执行即可。Oracle软件安装完毕

2.2 安装Oracle实例

注意:必须在图形界面中(可以用VNC客户端进入)用root用户下执行xhost+

[root@oracle-n1 ~]# xhost+

之后,切换到oraarp用户,执行dbca

[root@oracle-n1 ~]#su – oraarp
[oraarp@arpdb-1310 ~]$ dbca

Oracle安装02.png

Oracle安装03.png

Oracle安装04.png

选择Custom Database,自定义数据库,知晓存储数据的位置,方便管理。

Oracle安装05.png

设置全局数据库名称(Global Database Name)和SID,为数据库指定一个标识。

Oracle安装06.png

Oracle安装07.png

Oracle安装08.png

存储选择文件系统,通过点击[Browse],为数据库文件选择一个通用的位置。

Oracle安装09.png

Oracle安装10.png

Oracle安装11.png

初始化参数,内存可以自己定制.参照标准如下:

对于OLTP数据库:SGA=系统内存70%80% PGA=SGA*(10%~20%)

对于OLAP数据库:SGA=系统内存80%60% PGA=SGA*(45%~65%)

Oracle安装12.png

生产环境是2000进程数,选择500也是一个合适的进程数。基本能满足一般应用的需要,如果需要增加,也可后期调整.

Oracle安装13.png

字符编码非常重要,这里选择ZHS16GBK。针对中国设定的编码。[一般设置为UTF8,看应用需求而定]

Oracle安装14.png

选择专用服务器模式。

Oracle安装16.png

这里是数据库的所有文件:

  • 控制文件(Controlfile)

  • 数据文件(Datafiles)向上对应的逻辑关系:Tablespaces(表空间)

  • 重做日志组(Redo Log Groups),重做日志组大小可以设定为512M。避免日志组频繁刷新的弊端。

这里可以修改大小,位置,路径,添加,删除。后期也可以修改

Oracle安装15.png

数据库正在创建过程中…….

等待后,安装完成

安装成功后,显示Oracle的具体信息:

Global Database Name: arpdb

System Identifier(SID): arpdb

Server Parameter File name: /arp/oraarp/product/11.2.0/db_1/dbs/spfilearpdb.ora

2.3 安装Oracle监听器

一般有两种方式,一种是图形界面,一种直接复制和粘贴。方便的当然是复制粘贴

Oracle监听器,是用NetCA配置,配置的结果会以文档的格式保存在路径$ORACLE_HOME/network/admin下,配置保存于listener.ora文件中

[oraarp@arpdb-1310 admin]$ cat listener.ora 
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
      )
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = arpdb-1310)(PORT = 1523))
      )
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /arp/oraarp/product/11.2.0/db_1)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = arpdb)
      (ORACLE_HOME = /arp/oraarp/product/11.2.0/db_1)
      (SID_NAME = arpdb)
    )
  )

Oracle监听器启动和停止服务

lsnrctl stop
lsnrctl start
lsnrctl status

2.4 创建应用表空间【可选】

2.4.1查看表空间的使用情况

为找到表空间物理位置,建立表空间做准备

select
b.file_name,
b.tablespace_name,
b.bytes/1024/1024,
(b.bytes-sum(nvl(a.bytes,0)))/1024/1024,
substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5)
from dba_free_space a,dba_data_files b
where a.file_id=b.file_id
group by b.tablespace_name,b.file_name,b.bytes
order by b.tablespace_name

2.4.2 创建表空间

CREATE TABLESPACE ARP  DATAFILE '/arp/oraarp/oradata/arpdb/arp01.dbf'SIZE 1024M
AUTOEXTEND ON
NEXT 1024M
MAXSIZE 16384M;

2.4.3 创建用户

//红色标体为密码,可以根据你的需求进行设置。一般这个用户做为系统应用的连接用户。

create user arp identified by arp
  default tablespace ARP
  temporary tablespace TEMP
  profile DEFAULT
  quota unlimited on ARP;

2.4.4 赋予权限

####################赋予权限arp
-- Grant/Revoke role privileges
grant connect to arp;
grant resource to arp;
-- Grant/Revoke system privileges
-- Create the user
-- Grant/Revoke system privileges
grant alter profile to arp;
grant create materialized view to arp;
grant create procedure to arp;
grant create sequence to arp;
grant create session to arp;
grant create table to arp;
grant create trigger to arp;
grant create view to arp;
grant select any dictionary to arp;
grant unlimited tablespace to arp;


//分布式数据库相关的权限分配。
@$ORACLE_HOME/rdbms/admin/xaview.sql

grant execute on sys.dbms_system to arp;
grant select on sys.dba_pending_transactions to arp;
grant select on sys.pending_trans$ to arp;
grant select on sys.dba_2pc_pending to arp;
grant execute on sys.dbms_system to arp;
grant select on v$xatrans$ to arp;
grant select on pending_trans$ to arp;
grant select on dba_2pc_pending to arp;
grant select on dba_pending_transactions to arp;
grant execute on dbms_system to arp;
GRANT EXECUTE ON sys.dbms_xa TO arp;