0%

Centos7安装Oracle 11gR2

1. 安装图形界面

yum groupinstall "X Window System"
yum groupinstall "GNOME Desktop"
xhost + #禁用访问控制,客户端可以用任何主机连接
查看已经安装以及可以安装的软件:yum grouplist
开启图形界面:init 5 或 startx
关闭图形界面:init 3
设置默认使用图形界面:systemctl set-default graphical.target
设置默认使用命令行界面:systemctl set-default multi-user.target

2. 安装xterm用于Xmanager远程连接图形界面

yum install xterm

3. 配置主机名(这里及以后的zzwork都是表示主机名)

1
2
3
4
5
6
7
8
9
vi /etc/sysconfig/network
# Created by anaconda
hostname=zzwork`

vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 zzwork
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

/etc/init.d/network restart #立即生效

4. 防火墙开放1521端口,这里根据实际情况操作

firewall-cmd --zone=public --permanent --add-port=1521/tcp
firewall-cmd --reload

5. 关闭selinux

sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
setenforce 0
查看selinux状态:getenforce 或 sestatus -v 显示Permissive或Disabled即为已关闭

6. 修改内核参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
vi /etc/sysctl.conf
# for oracle
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 -p #立即生效

7. 修改oracle用户限制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
vi etc/security/limits.conf #加入以下内容
#for oracle
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

vi /etc/pam.d/login #使limits.conf配置立即生效
session required pam_limits.so

vi /etc/profile #加入以下内容
#for oracle
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

source /etc/profile #使配置立即生效

8. 创建用户以及用户组

1
2
3
4
5
6
7
8
9
10
11
[root@centos ~]# groupadd oinstall    #创建用户组oinstall
[root@centos ~]# groupadd dba #创建用户组dba
[root@centos ~]# useradd -g oinstall -G dba -m oracle #创建oracle用户,并加入到oinstall和dba用户组
[root@centos ~]# passwd oracle #设置用户oracle的登陆密码,不设置密码,在CentOS的图形登陆界面没法登陆
更改用户 oracle 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@centos ~]# id oracle # 查看新建的oracle用户
uid=1000(oracle) gid=1000(oinstall) groups=1000(oinstall),1001(dba)
[root@centos ~]#

9. 创建数据库目录和数据文件存放目录,根据实际情况修改

1
2
3
4
5
mkdir -p /usr/oracle/product    #创建oracle安装目录
mkdir -p /usr/oracle/oradata #创建oracle数据文件存放目录
mkdir -p /usr/oracle/oraInventory #创建oracle数据库清单目录
chown -R oracle:oinstall /usr/oracle #设置oracle用户为目录的所有者
chmod -R 775 /usr/oracle/ #修改权限

10. 配置oracle用户环境变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
su oracle #切换为oracle用户
vi /home/oracle/.bash_profile #修改为以下内容
# for oracle
export ORACLE_BASE=/usr/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
#修改编码
export NLS_LANG=AMERICAN_AMERICA.UTF8
export LANG=en_US.UTF8

PATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/bin

export PATH

source /home/oracle/.bash_profile #使配置立即生效

11. 安装必须软件包

yum install binutils* compat-libcap1* compat-libstdc++* gcc* gcc-c++* glibc* glibc-devel* ksh* libaio* libaio-devel* libgcc* libstdc++* libstdc++-devel* libXi* libXtst* make* sysstat* elfutils* unixODBC* unzip lrzsz

12. 解压从oracle官网下载的zip压缩包

1
2
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip

13. 使用Xstart工具并通过oracle用户登录(也可用类似软件),命令选择xterm(Linux)

xdpyinfo #查看name of display的值,例如localhost:1.0
export DISPLAY=localhost:1.0 #上一步的值

14. 修改解压目录下的db_install.rsp并安装,这里为/usr/database,这里使用静默安装,因为安装界面会卡死

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
vi db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY        # 安装类型
ORACLE_HOSTNAME=zzwork     # 主机名称
UNIX_GROUP_NAME=oinstall # 安装组
INVENTORY_LOCATION=/usr/oracle/oraInventory # INVENTORY目录
SELECTED_LANGUAGES=en,zh_CN # 选择语言
ORACLE_HOME=/usr/oracle/product/11.2.0 # oracle_home
ORACLE_BASE=/usr/oracle # oracle_base
oracle.install.db.InstallEdition=EE # oracle版本
oracle.install.db.DBA_GROUP=dba # dba用户组
oracle.install.db.OPER_GROUP=oinstall # oper用户组
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE # 数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl # globalDBName
oracle.install.db.config.starterdb.SID=orcl # SID
oracle.install.db.config.starterdb.characterSet=AL32UTF8 # 默认数据库编码
oracle.install.db.config.starterdb.memoryLimit=800 # 自动管理内存的最小内存(M)
oracle.install.db.config.starterdb.password.ALL=oracle # 设定所有数据库用户使用同一个密码
DECLINE_SECURITY_UPDATES=true # 设置安全更新

./runInstaller -silent -responseFile /usr/database/db_install.rsp -ignorePrereq

1.如果出现/usr/bin/xdpyinfo或NoClassDefFoundError错误,检查步骤13
2.安装期间可以新建终端通过tail命令查看安装日志 tail -f filePath
3.出现图下提示时,若说安装已完成

1
2
3
4
5
6
7
8
9
10
11
12
The following configuration scripts need to be executed as the "root" user. 
#!/bin/sh
#Root scripts to run

/usr/oracle/product/11.2.0/root.sh
To execute the configuration scripts:
1. Open a terminal window
2. Log in as "root"
3. Run the scripts
4. Return to this window and hit "Enter" key to continue

Successfully Setup Software.

15. 使用root用户按上一步骤提示执行脚本

sh /usr/oracle/product/11.2.0/root.sh

16. 配置监听程序

1
2
3
4
5
6
7
8
9
10
vi /usr/database/response/netca.rsp
INSTALL_TYPE=""custom"" # 安装的类型
LISTENER_NUMBER=1 # 监听器数量
LISTENER_NAMES={"LISTENER"} # 监听器的名称列表
LISTENER_PROTOCOLS={"TCP;1521"} # 监听器使用的通讯协议列表
LISTENER_START=""LISTENER"" # 监听器启动的名称

/usr/oracle/product/11.2.0/bin/netca /slient /responseFile /usr/database/response/netca.rsp

netstat -tnulp | grep 1521 #查看监听程序是否执行

开启监听:/usr/oracle/product/11.2.0/bin/lsnrctl start
关闭监听:/usr/oracle/product/11.2/0/bin/lsnrctl stop

17. 添加数据库实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
vi /usr/database/response/dbca.rsp
RESPONSEFILE_VERSION ="11.2.0" // 不要修改
OPERATION_TYPE ="createDatabase" // 操作为创建实例
GDBNAME ="orcl" // 数据库实例名
SID ="orcl" // 实例名字
TEMPLATENAME = "General_Purpose.dbc" // 建库用的模板文件
SYSPASSWORD = "oracle" // SYS管理员密码
SYSTEMPASSWORD = "oracle" // SYSTEM管理员密码
SYSMANPASSWORD= "oracle"
DBSNMPPASSWORD= "oracle"
DATAFILEDESTINATION =/usr/oracle/oradata // 数据文件存放目录
RECOVERYAREADESTINATION=/usr/oracle/flash_recovery_area // 恢复数据存放目录
CHARACTERSET ="AL32UTF8" // 字符集
TOTALMEMORY ="3276" // 1638MB,物理内存2G*80%。根据实际情况修改

/usr/oracle/product/11.2.0/bin/dbca -slient -responseFile /usr/database/response/dbca.rsp

执行过程:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[oracle@oracledb ~]$ /usr/oracle/product/11.2.0/bin/dbca -slient -responseFile /usr/database/response/dbca.rsp
Copying database files
1% complete
3% complete
11% complete
18% complete
26% complete
37% complete
Creating and starting Oracle instance
40% complete
45% complete
50% complete
55% complete
56% complete
60% complete
62% complete
Completing Database Creation
66% complete
70% complete
73% complete
85% complete
96% complete
100% complete
Look at the log file "/usr/oracle/cfgtoollogs/dbca/orcl/orcl.log" for further details.

查看进程:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[oracle@oracledb ~]$ ps -ef | grep ora_ | grep -v grep
oracle 19304 1 0 18:33 ? 00:00:00 ora_pmon_orcl
oracle 19306 1 0 18:33 ? 00:00:00 ora_vktm_orcl
oracle 19310 1 0 18:33 ? 00:00:00 ora_gen0_orcl
oracle 19312 1 0 18:33 ? 00:00:00 ora_diag_orcl
oracle 19314 1 0 18:33 ? 00:00:00 ora_dbrm_orcl
oracle 19316 1 0 18:33 ? 00:00:00 ora_psp0_orcl
oracle 19318 1 0 18:33 ? 00:00:00 ora_dia0_orcl
oracle 19320 1 0 18:33 ? 00:00:00 ora_mman_orcl
oracle 19322 1 0 18:33 ? 00:00:00 ora_dbw0_orcl
oracle 19324 1 0 18:33 ? 00:00:00 ora_lgwr_orcl
oracle 19326 1 0 18:33 ? 00:00:00 ora_ckpt_orcl
oracle 19328 1 0 18:33 ? 00:00:00 ora_smon_orcl
oracle 19330 1 0 18:33 ? 00:00:00 ora_reco_orcl
oracle 19332 1 0 18:33 ? 00:00:00 ora_mmon_orcl
oracle 19334 1 0 18:33 ? 00:00:00 ora_mmnl_orcl
oracle 19336 1 0 18:33 ? 00:00:00 ora_d000_orcl
oracle 19338 1 0 18:33 ? 00:00:00 ora_s000_orcl
oracle 19361 1 0 18:34 ? 00:00:00 ora_qmnc_orcl
oracle 19376 1 0 18:34 ? 00:00:00 ora_cjq0_orcl
oracle 19396 1 0 18:34 ? 00:00:00 ora_q000_orcl
oracle 19398 1 0 18:34 ? 00:00:00 ora_q001_orcl

修改启动和关闭实例的程序

1
2
3
修改文件: /usr/oracle/product/11.2.0/bin/dbstart  /usr/oracle/product/11.2.0/bin/dbshut
将ORACLE_HOME_LISTNER=$1 修改为 ORACLE_HOME_LISTNER=/usr/oracle/product/11.2.0
修改 /etc/oratab 为 orcl:/usr/oracle/product/11.2.0:Y

启动或者关闭实例(以oracle用户执行)
启动实例: /usr/oracle/product/11.2.0/bin/dbstart
关闭实例: /usr/oracle/product/11.2.0/bin/dbshut

进入oracle命令行:/usr/oracle/product/11.2.0/bin/sqlplus / as sysdba

18. 设置开机自启

1
2
3
4
5
chmod +x /etc/rc.d/rc.local
vi /etc/rc.d/rc.local #加入以下内容
#for oracle
su oracle -lc "/usr/oracle/product/11.2.0/bin/lsnrctl start"
su oracle -lc "/usr/oracle/product/11.2.0/bin/dbstart"