Oracle数据库安装
适用于centos7-oracle11g数据库安装
需要的安装包
1.安装所需依赖包
务必多跑几遍
yum install -y libgcc.i686
yum install -y compat-glibc
yum install -y libXp.i686 libXp.x86_64 libXp-devel.i686 libXp-devel.x86_64
yum install –y libXtst-devel.i686 libXtst-devel.x86_64
yum install -y libgomp.i686 libgomp.x86_64
yum install -y libaio.i686 libaio-devel.i686 libaio.x86_64 libaio-devel.x86_64
yum install -y elfutils-libelf.x86_64 elfutils-libelf-devel.x86_64 elfutils-libelf.i686 elfutils-libelf-devel.i686
yum install -y compat-libtermcap.i686 compat-libtermcap.x86_64
yum install -y compat-db.i686 compat-db.x86_64
yum install -y libstdc++.i686 libstdc++.x86_64 libstdc++-devel.i686 libstdc++-devel.x86_64 compat-libstdc++-296.i686 compat-libstdc++-33.i686 compat-libstdc++-33.x86_64
yum install -y unixODBC.i686 unixODBC.x86_64 unixODBC-devel.i686 unixODBC-devel.x86_64
yum install -y readline.i686 readline.x86_64 readline-devel.i686 readline-devel.x86_64
yum install -y gcc-c++
yum install -y glibc.i686 glibc.x86_64 glibc-common.x86_64 glibc-devel.i686 glibc-devel.x86_64
yum install -y openmotif.i686 openmotif.x86_64 openmotif-devel.i686 openmotif-devel.x86_64
yum install -y sysstat
yum install -y xorg-x11-server-utils
yum install -y xorg-x11-utils
yum install -y xorg-x11-xauth
yum install -y xorg-x11-twm
yum install -y xterm
yum install -y tigervnc-server.x86_64
2.优化内核参数配置
vim /etc/sysctl.conf
-----------------------------------------------------------
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 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
----------------------------------------------------------
kernel.shmmax,kernel.shmall可以根据服务器配置调整,但是直接使用上面的配置,也没遇到问题,可以直接使用
下面的内容仅供参考
---增加PGA、SGA前务必确认/etc/sysctl.conf,shmmax是否符合,过小会引起数据库无法启动,4096是默认值
shmall 是全部允许使用的共享内存大小
shmmax 是单个段允许使用的大小。
这两个可以设置为内存的 90%。
例如 16G 内存
shmmax 的大小:16*1024*1024*1024*90% = 15461882265,
shmall 的大小: 15461882265/4096(getconf PAGESIZE可得到)= 3774873
生效配置
sysctl -p
3.修改系统其他配置
vim /etc/security/limits.conf
添加到最后
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
vim /etc/pam.d/login
添加到最后
session required /lib/security/pam_limits.so
4.创建oracle用户和组
[root@localhost ~] groupadd -g 1001 oinstall
[root@localhost ~] groupadd -g 2001 dba
[root@localhost ~] useradd -u 3001 -g oinstall -G dba oracle
[root@localhost ~] id oracle
uid=3001(oracle) gid=1001(oinstall) 组=1001(oinstall),2001(dba)
5.创建oracle目录和授权
mkdir -p /u01/app/oracle/product/11.2.0/db_1
chown -R oracle:oinstall /u01
chmod -R 775 /u01/app/oracle
6.配置oracle用户环境变量
root用户执行su – oracle切换到oracle,编辑配置文件vim ~/.bash_profile,加入如下内容
GBK配置如下
ORACLE_SID=orcl
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
PATH=$ORACLE_HOME/bin:$HOME/bin:$PATH
NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
export ORACLE_SID ORACLE_BASE ORACLE_HOME LD_LIBRARY_PATH
export PATH NLS_LANG
stty erase ^H
此处我安装的gbk的库,如需安装utf8的库,请选择下面的配置,等会儿建库的时候会选择字符集,也要对应上!
UTF8配置如下
ORACLE_SID=orcl
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
PATH=$ORACLE_HOME/bin:$HOME/bin:$PATH
export NLS_LANG="American_America.AL32UTF8"
export ORACLE_SID ORACLE_BASE ORACLE_HOME LD_LIBRARY_PATH
export PATH NLS_LANG
stty erase ^H
7.centos7.5配置VNC
7.1 安装 Gnome包,vnc软件包
yum groupinstall "GNOME Desktop" "Graphical Administration Tools" -y
yum -y install tigervnc-server
7.2关闭防火墙,或者开放5901端口
systemctl stop firewalld
firewall-cmd --zone=public --add-port=5901/tcp --permanent
firewall-cmd --reload
7.3复制修改配置文件
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver\@\:1.service
vim /etc/systemd/system/vncserver\@\:1.service
将<USER>修改为root
修改前
修改后
7.4 重新加载systemd服务
systemctl daemon-reload
7.5 设置VNC密码
vncpasswd
等会儿连接会用到
7.6 启动vnc服务
systemctl start vncserver@:1.service
7.7 检查服务启动状态和端口占用
systemctl status vncserver@:1.service
netstat -lnpt|grep 5901
7.8 用vnc连接
输入ip和端口5901
输入刚刚设置的密码
连接成功
8.下载准备好oracle软件,jdk环境
unzip -d /u01/soft/ p13390677_112040_Linux-x86-64_1of7.zip
unzip -d /u01/soft/ p13390677_112040_Linux-x86-64_2of7.zip
rpm -ivh jdk-8u65-linux-x64.rpm
9.设置环境变量
接下来的操作请在vnc界面操作
用root用查看DISPLAY变量
[root@tm-test ~] echo $DISPLAY
:1
[root@tm-test ~] xhost +
切换到oracle用户,执行
su - oracle
export DISPLAY=:1
此处是为了保持oracle用户和root用户环境变量保持一致
接下来开始安装oracle,请务必切换到oracle用户,若权限不足,请重新授权
chown -R oracle:oinstall /u01
su - oracle
10.安装oracle
cd /u01/soft/database
./runInstaller -jreLoc /usr/java/jdk1.8.0_65/jre
此时会弹出安装界面,接下来请跟着一步一步走,看图说话
正常情况会自动识别,/u01/app/oracle
缺少pdk的包,安装即可
rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm
然后选择check agein,剩下swap的问题可以直接勾选ignore all,若出现有其他的packge未安装,说明第一步时少安装包
中间会遇到这个错误
下面是解决步骤
1.修改$ORACLE_HOME/sysman/lib/ins_emagent.mk,将
$(MK_EMAGENT_NMECTL)修改为:$(MK_EMAGENT_NMECTL) -lnnz11
建议修改前备份原始文件
2.
su - oracle
cd $ORACLE_HOME/sysman/lib
cp ins_emagent.mk ins_emagent.mk.bak
vim ins_emagent.mk
进入vi编辑器后 命令模式输入/NMECTL 进行查找,快速定位要修改的行,在后面追加参数
-lnnz11
第一个是字母l 后面两个是数字1
保存退出后点击Retry按钮
在Linux中用root用户执行弹框中的2个sh文件,完成
sh /u01/app/oraInventory/orainstRoot.sh
sh /u01/app/oracle/product/11.2.0/db_1/root.sh
11.安装监听
在vnc中输入netca,会弹出安装界面,鼠标拖拽即可
netca
此处可以选择oracle的监听端口,默认是1521
12.创建数据库
在vnc中输入dbca
dbca
输入orcl
orcl
此处是oracle的sys密码,务必记住
不勾选,next
第一个是内存,如果是服务器只用来部署数据库,建议分配物理内存的80%,如果服务器16G内存,则可以分配12G。如果还部署其他应用,建议分配物理内存的60%
红框此处是字符集配置,因为我前面选择安装GBK的数据库,所以此处选择GBK,如果是UTF8,请对应选择,其他的不需要改变
此时3个配置后,选择下一步
这是UTF8的
下一步,创建4个日志文件组,每个给500M(记得更改单位为M),继续默认安装
13.配置netmgr
netmgr
配置完点击左上角File,点击Save Network Configuration,然后就可以关掉窗口了
自此oracle已经全部安装结束,VNC可以关掉了,VNC服务也可以停了
这是linux本机查看oracle情况
lsnrctl status
sqlplus / as sysdba
接下来看我们如何在windows去连接oracle
工具这里选择的是PLSQL
14. windows去连接linux的oracle
14.1 windows安装oracle环境
首先需要去安装windows的oracle环境,这时不需要装库了,需要下载安装软件,简单安装即可,和上面的步骤类似。好处是这次不需要vnc了,不容易啊!
这是安装软件,右键解压到当前文件夹(有目录,切勿新建目录)
下面的步骤和是前面一样的,请按前面的截图操作即可!
安装完成后,会出现下面软件,选择netmgr
最后点击左上角的文件,然后点击保存网络配置后,可以退出了
14.2 安装PLSQL
14.3 连接oracle
firewall-cmd --zone=public --add-port=1521/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-port
输入sys用户和密码,选择我们之前配置连接myself
14.4 oracle的初始化
调整数据库表空间
--oracle初始化
create temporary tablespace E3_TEMP tempfile '/u01/app/oracle/oradata/orcl/E3_TEMP01.dbf' size 5g autoextend on next 10m maxsize unlimited;
alter database datafile '/u01/app/oracle/oradata/orcl/system01.dbf' resize 5g;
alter database datafile '/u01/app/oracle/oradata/orcl/sysaux01.dbf' resize 5g;
alter database datafile '/u01/app/oracle/oradata/orcl/undotbs01.dbf' resize 10g;
alter database datafile '/u01/app/oracle/oradata/orcl/users01.dbf' resize 5g;
alter database datafile '/u01/app/oracle/oradata/orcl/system01.dbf' autoextend on next 10m maxsize unlimited;
alter database datafile '/u01/app/oracle/oradata/orcl/sysaux01.dbf' autoextend on next 10m maxsize unlimited;
alter database datafile '/u01/app/oracle/oradata/orcl/undotbs01.dbf' autoextend on next 10m maxsize unlimited;
alter database datafile '/u01/app/oracle/oradata/orcl/users01.dbf' autoextend on next 10m maxsize unlimited;
alter database default temporary tablespace E3_TEMP;
--数据存放在e3_data,索引存放在e3_indx,后续主要增加e3_data和e3_indx的数据文件即可
create tablespace E3_DATA datafile '/u01/app/oracle/oradata/orcl/e3_data01.dbf' size 10g autoextend on next 10m maxsize unlimited;
alter database default tablespace E3_DATA;
create tablespace E3_INDX datafile '/u01/app/oracle/oradata/orcl/e3_indx01.dbf' size 10g autoextend on next 10m maxsize unlimited;
--创建生产用户e3data,密码
create user e3data identified by 密码 default tablespace E3_DATA quota unlimited on E3_DATA;
grant connect,resource,imp_full_database,exp_full_database to e3data;
grant select on dba_data_files to e3data;
grant select on dba_free_space to e3data;
alter user e3data quota unlimited on SYSTEM;
alter user e3data quota unlimited on E3_DATA;
alter user e3data quota unlimited on E3_INDX;
grant execute on dbms_defer_sys to e3data;
grant execute on dbms_reputil to e3data;
grant execute on dbms_lock to e3data;
grant create session to e3data;
下面这些属于可选sql,根据实际情况执行
--创建e3web用户并授权
create user e3web identified by 密码 default tablespace E3_DATA;
grant create session to e3web;
--创建E3APP用户并授权
create user E3APP identified by 密码 default tablespace E3_DATA;
grant create session to E3APP;
--创建E3QUERY用户并授权
create user E3QUERY identified by 密码 default tablespace E3_DATA;
grant create session to E3QUERY;
--创建E3_VIP用户并授权
create user E3_VIP identified by 密码 default tablespace E3_DATA;
grant create session to E3_VIP;
--创建transfer_user用户并授权
create user transfer_user identified by 密码 default tablespace E3_DATA;
grant connect to transfer_user;
grant select any table to transfer_user;
grant delete any table to transfer_user;
grant insert any table to transfer_user;
grant update any table to transfer_user;
grant execute on dbms_defer_sys to transfer_user;
alter user e3data grant connect through transfer_user;
--修改默认密码存活时间
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
--system用户锁定
alter user system account lock;
--给debug权限(登录sys账户)
grant debug any procedure,debug connect session to e3data;