环境准备
- 操作系统:CentOS Linux release 7.6.1810 (Core)
- 数据库版本:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0
- 数据库安装包:p13390677_112040_Linux-x86-64_1of7.zip、p13390677_112040_Linux-x86-64_2of7.zip
- PL/SQL
注意:
Oracle 官网目前只能下载到 11.2.0.1 的安装包。
安装包:
- 链接:https://pan.baidu.com/s/1jRztfglYWg7l3puSetg7uw
- 提取码:ad3e
操作系统配置
在Root用户下执行以下步骤:
1)修改用户的 SHELL 的限制(资源限制),修改 /etc/security/limits.conf 文件
$ vi /etc/security/limits.conf
按i键进入编辑模式,将下列内容加入该文件:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
编辑完成后按Esc键,输入“:wq”存盘退出
2)修改 /etc/pam.d/login
文件
输入命令:
$ vi /etc/pam.d/login
按i键进入编辑模式,将下列内容加入该文件:
session required /lib/security/pam_limits.so
session required pam_limits.so
编辑完成后按Esc键,输入“:wq”存盘退出
3)修改 linux 内核,修改 /etc/sysctl.conf 文件
输入命令:
$ vi /etc/sysctl.conf
按i键进入编辑模式,将下列内容加入该文件
# 该参数决定了系统中所允许的文件句柄最大数目,文件句柄设置代表linux系统中可以打开的文件的数量
fs.file-max = 6815744
# 此参数限制并发未完成的请求,应该设置避免I/O子系统故障
fs.aio-max-nr = 1048576
# 可以使用的共享内存的总页数
kernel.shmall = 2097152
# 单个共享内存段的最大值(不能超过自己的内存大小,这里设置的值为2G)
kernel.shmmax = 2147483648
# 该参数是共享内存段的最大数量,建议用缺省值4096
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
# IP4的端口可使用范围
net.ipv4.ip_local_port_range = 9000 65500
# 套接字接收缓冲区大小的缺省值
net.core.rmem_default = 4194304
# 套接字接收缓冲区大小的最大值
net.core.rmem_max = 4194304
# 套接字发送缓冲区大小的缺省值
net.core.wmem_default = 262144
# 套接字发送缓冲区大小的最大值
net.core.wmem_max = 1048576
编辑完成后按Esc键,输入“:wq”存盘退出
4)要使 /etc/sysctl.conf
更改立即生效,执行以下命令
输入
$ sysctl -p
显示如下:
linux:~ $ sysctl -p
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
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
5)编辑 /etc/profile
输入命令:
$ vi /etc/profile
按i键进入编辑模式,将下列内容加入该文件
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
编辑完成后按 Esc 键,输入“:wq”存盘退出
6)创建相关用户和组,作为软件安装和支持组的拥有者
创建Oracle用户和密码,输入命令:
$ useradd -g oinstall -g dba -m oracle
$ passwd oracle
然后会让你输入密码,密码任意输入2次,但必须保持一致,回车确认。
创建数据库软件目录和数据文件存放目录,目录的位置,根据自己的情况来定,注意磁盘空间即可,这里我把其放到 oracle 用户下,输入命令
$ mkdir /home/oracle/app
$ mkdir /home/oracle/app/oracle
$ mkdir /home/oracle/app/oradata
$ mkdir /home/oracle/app/oracle/product
8)更改目录属主为Oracle用户所有,输入命令
$ chown -Rf oracle:oinstall /home/oracle/app
9)配置 oracle 用户的环境变量,首先,切换到新创建的 oracle 用户下,
输入:
$ su – oracle
然后直接在输入:
$ vi .bash_profile
按i编辑 .bash_profile
,进入编辑模式,增加以下内容:
export ORACLE_BASE=/home/oracle/app
export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
编辑完成后按 Esc 键,输入“:wq”存盘退出。
说明:这里指定的 ORACLE_SID
为数据库实例名
安装 Oracle
步骤一:当上述系统要求操作全部完成后,注销系统,在图形界面以 Oracle 用户登陆。首先将下载的 Oracle 安装包 使用 FTP 发送到 Linux系统中。
运行 unzip 命令解压 oracle 安装文件,输入命令:
$ unzip linux.x64_11gR2_database_1of2.zip
$ unzip linux.x64_11gR2_database_2of2.zip
解压完成后 cd 进入其解压后的目录 database 使用 ls 命令可以查看解压后 database 所包含的文件:
$ ls
install readme.html response rpm runInstaller sshsetup stage welcome.html
步骤二:Xmanager 配置远程图形化
使用 XShell 建立连接时,设置连接属性,在 SSH --> tunneling 选项下勾选 Forward X11 connections to: Xmanager
。
注意:登陆用户名为 oracle
设置 display 变量,设置的 IP 为安装 xmanager 的客户端IP
$ export DISPLAY=192.168.1.226:0.0
执行安装,输入命令:
$ ./runInstaller
取消勾选,下一步:
Skip software updates:
Install database software only(软件和创建数据库分开安装)
Single Instance database installation(单实例数据库安装)
添加语言:简体中文
选择 Enterprise Edtion(企业版)
Oracle会根据环境变量自动选择设置好的安装路径,直接下一步即可:
装到这一步,可以看到,可以查看到有很多的 rpm 包没有,我们可以从安装 linux 的光盘或ISO中(或去linux_oracle11g_Package)查找所缺的包,使用 ftp上传到linux中,然后使用 rpm –ivh xxx.rpm --nodeps --force
来进行安装(其中加上–nodeps – force 代表强制安装,是在直接使用 rpm –ivh xxx.rpm
安装不成功的情况下用的)等到把包全部都安装好的情况下,再次在 oracle 图形界面中,执行安装过程2,下来在环境检查过程中,就通过了
镜像文件挂,如/mnt:
$ mount -o loop CentOS-7-x86_64-DVD-1708.iso /mnt/
$ cd /mnt/Packages
$ rpm -ivh libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm --nodeps --force
件安装到最后一步,会跳出如下执行脚本的提示:
打开一个终端,使用root登录,执行要求执行的脚本。执行完毕后在图形界面点OK
$ cd /home/oracle/app/oracle/product/11.2.0/dbhome_1
$ ./root.sh
$ /home/oracle/oraInventory
$ ./orainstRoot.sh
数据库建库
还是在oracle用户的图形界面oracle用户中,新开启一个终端,直接输入命令dbca会弹出如下界面。我们这里采用定制数据库
$ dbca
据环境变量中设置的 ORACLE_SID 设置数据库名称和SID,这里设置的是:orcl
选择所有用户设置相同密码(正式业务中请为这些用户分别设置密码)
配置监听及本地服务
步骤一:在oracle用户的图形界面oracle用户中,新开启一个终端,输入命令 netca 会弹出如下界面
$ netca
步骤二:创建监听服务(充当oracle服务器,让别的oracle客户端连接本oracle服务器)
这样oracle服务器安装配置基本就完成了
$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 24-NOV-2019 18:29:00
Copyright (c) 1991, 2013, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date 24-NOV-2019 17:21:47
Uptime 0 days 1 hr. 7 min. 13 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /home/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File /home/oracle/app/diag/tnslsnr/localhost/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "orcl" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully
查看数据库状态:
$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Sun Nov 24 18:30:28 2019
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 status from v$instance;
STATUS
------------
OPEN
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ WRITE
初始化数据库
测试plsql登录:
创建表空间:
create tablespace rdc
logging
datafile '/home/oracle/app/oradata/orcl/rdc.dbf'
size 1112m
autoextend on
next 64m
extent management local;
创建普通用户:
-- Create the user
create user zuozewei
identified by "123456"
default tablespace rdc
temporary tablespace TEMP
profile DEFAULT;
-- Grant/Revoke role privileges
grant connect to zuozewei;
grant dba to zuozewei;
-- Grant/Revoke system privileges
grant unlimited tablespace to zuozewei;
切换到普通用户,导入数据:
至此,我们完成整个数据库的搭建。