- 创建用户
依据业界约定的运维规范和权限隔离原则,创建应用用户和数据库用户。应用用户是除数据库外的应用程序运行的用户,
1.1. 应用用户
创建应用用户和组:pico
groupadd pico
useradd -m pico -G pico
passwd pico # 设置pico用户的密码
1.2. 数据库用户
创建数据库用户和组,Orcle的安装用户需要使用多个组:dba、oinstall
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle # 设置oracle用户主组为dba,副组为oinstall
passwd oracle # 设置oracle用户的密码
- 准备工作
2.1. 程序准备
打开终端操作软件(例如Xshell,puty等),使用对应的账户登录远程服务器,使用FTP工具上传应用程序安装包到对应路径。需准备的软件资源如下表:
2.2. 系统准备
如果运维人员提供的服务器已经分配好挂载点,则略过本小节内容。
① 切换到root账户:
- 在根目录创建orahome和swap文件夹
cd /
mkdir orahome
mkdir swap
- 在/use/local/文件夹下创建java和tomcat文件夹
cd /usr/local
mkdir tomcat
mkdir java
- 在/dev/文件夹下创建datavg文件夹
cd /dev
mkdir datavg
② 创建挂载点:分区大小根据实际可用空间调整,公式为:分区大小(G)*1024/16(M)
Vgdisplay # 查看分卷详细信息,主要查看Free PE /Size,此为可用PE大小,再参见上述公式进行计算
lvcreate -l 2240 -n tomcat_lv datavg. # 设置了35g
lvcreate -l 1024 -n swap_lv datavg # 设置大小为 16G
lvcreate -l 6080 -n oradata_lv datavg # 设置大小为95G
③ 格式化为 ext4格式:
mkfs -t ext4 /dev/datavg/tomcat_lv
mkfs -t ext4 /dev/datavg/oradata_lv
mkfs -t ext4 /dev/datavg/swap_lv
④ 挂载
mount /dev/datavg/oradata_lv /orahome
mount /dev/datavg/swap_lv /swap
mount /dev/datavg/tomcat_lv /usr/local/tomcat
⑤ 保存为永久挂载点,并且开机自启动,修改文件/ect/fstab
vi /etc/fstab #修改为永久挂载点
/dev/datavg/tomcat_lv /usr/local/tomcat ext4 defaults 1 2
/dev/datavg/oradata_lv /orahome ext4 defaults 1 2
/dev/datavg/swap_lv swap ext4 defaults 1 2
/swap/swap swap swap default 0 0 #该条记录在后续会创建
- 程序安装
3.1. 安装JDK
使用Root账户安装JDK
① 创建安装目录
cd /usr/local
mkdir java
cd java
② 将jdk安装包移到该目录
mv /homt/pico/software/jdk-8u191-linux-x64.tar.gz /user/local/java
③ 解压安装包
tart -zxvf jdk-8u191-linux-x64.tar.gz
④ 配置环境变量
vi /etc/profile
export PATH=/usr/local/java/jdk.1.8.0_191/bin:$PATH
export JAVA_HOME=/usr/local/java/ jdk.1.8.0_191
export CLASSPATH=.
source /etc/profile # 使修改的配置文件生效
⑤ 检查JDK是否安装正常
java -version # 正确打印Jdk版本,则安装成功
3.2. 安装Oracle
3.2.1. 安装前准备
3.2.1.1 配置swap
Oracle推荐安装database RAM>2GB,且swap大小与RAM大小满足如下要求:
RAM | SwapSpace |
---|---|
1GB<RAM<2GB | 1.5 * RAM |
- | - |
2GB<RAM<16GB | RAM |
- | - |
>16GB | 16G |
① 检查swap分区
free -m #首先查看当前的内存和swap 空间大小(默认单位为k, -m 单位为M)
② 若没有分区信息,我们就需要手动添加交换分区。
③ 增加swap交换文件
#在根目录的swap文件夹下,增加一个大小为12G的交换文件
dd if=/dev/zero of=/swap/swap bs=1024 count=12582912
④ 将swap文件夹下的swap文件创建成swap格式的文件
mkswap /swap/swap
⑤ 挂载swap分区
swapon /home/swap
⑥ 修改/etc/fstab将分区永久保存,并设置为开机启动
vi /etc/fstab
/swap/swap swap swap default 0 0 #将左边的复制到/etc/fstab文件末尾
3.2.1.2 selinux配置
编辑文件/etc/selinux/config禁用selinux(默认为enforcing模式)
#vi /etc/selinux/config
SELINUX=disabled #将selinux设置为禁止
3.2.1.3 修改内核参数
① 编辑 Linux内核配置文件
#vi /etc/sysctl.conf
② 将下列内容加入文件
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
③ 要使 /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
3.2.1.4 修改profile文件
编辑 /etc/profile ,输入命令:vi /etc/profile
,按i
键进入编辑模式,将下列内容加入该文件。
ORACLE_BASE=/orahome/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
ORACLE_SID=orcl; export ORACLE_SID
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
3.2.1.5 修改限制配置
① 增加oracle用户资源限制参数
#vi /etc/security/limits.conf
添加如下内容
Oracle soft nproc 65535
oracle hard nproc 65535
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
注意:注销用户oracle用户,重新登陆后生效
② 确认加载PAM模块,在/etc/pam.d/login中添加如下
#vi /etc/pam.d/login
添加如下内容,注意64位机器是的lib64
session required pam_limits.so
session required /lib64/security/pam_limits.so 确保该文件存在,否则不添加
③ 在/etc/pam.d/su中添加如下
#vi /etc/pam.d/login
添加如下内容,注意64位机器是的lib64[下面的例子时64位的]
session required /lib64/security/pam_limits.so
3.2.1.6 创建Oracle安装路径
以root用户创建如下路径
#mkdir -p /orahome/app/oracle 即:Oracle安装
#mkdir -p /orahome/app/oracle/oraInventory 即:oracle日志文件夹
#chown -R oracle:oinstall /orahome/app 即:授权 Oracle程序文件夹
#chown -R oracle:oinstall /orahome/data 即:授权 Oracle数据文件夹
#chown -R oracle:oinstall /orahome/app/oracle/oraInventory 即:授权 oracle日志文件夹
#chmod -R 775 /orahome/app/oracle 即:授予Oracle文件夹权限
3.2.1.7 安装依赖rpm
#yum -y install binutils.x86_64 compat-libcap1.x86_64 compat-libstdc++-33.x86_64 compat-libstdc++-33.i686 gcc-c++.x86_64 glibc.x86_64 glibc.i686 glibc-devel.x86_64 glibc-devel.i686 ksh.x86_64 libgcc.x86_64 libgcc.i686 libstdc++.x86_64 libstdc++.i686 libstdc++-devel.x86_64 libstdc++-devel.i686 libaio.x86_64 libaio.i686 libaio-devel.x86_64 libaio-devel.i686 unixODBC.x86_64 unixODBC.i686 unixODBC-devel.x86_64 unixODBC-devel.i686 libXext.x86_64 libXext.i686 libXtst.x86_64 libXtst.i686 libX11.x86_64 libX11.i686 libXau.x86_64 libXau.i686 livxcb.x86_64 libxcb.i686 libXi.x86_64 libXi.i686 make.x86_64 sysstat.x86_64 nfs-utils.x86_64 pdksh unzip smartmontools net-tools elfutils-libelf-devel
① 注意:此处的依赖包可根据检测安装过程中缺少的包在安装。
如果yum没有安装上compat-libstdc++和compat-libstdc++.i686的话,需要将附件中的compat-libstdc++-33-3.2.3-72.el7.i686.rpm
和compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
拷贝到/root目录,并在/root目录执行:
#rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
#rpm -ivh compat-libstdc++-33-3.2.3-72.el7.i686.rpm
② 安装rpm包cvuqdisk的依赖
另外:需要注意,rpm包cvuqdisk需要从oracle安装包中单独安装
#cd /home/oracle/software/database/rpm #切换到rpm存放路径
#rpm -ivh cvuqdisk-1.0.7-1.rpm
3.2.2. 安装中
3.2.2.1 解压安装软件
① 以oracle用户解压安装软件:
$ unzip linux.x64_11gR2_database_1of2.zip
$ unzip linux.x64_11gR2_database_2of2.zip
② 拷贝Response文件到用户目录,在此基础上修改
# cp -R /home/oracle/database/response /home/oracle
3.2.2.2 修改db_install.rsp文件
① 修改db_install.rsp文件内容为:
参见附件 db_install.rsp
② 可查看oracle文件夹的大小的变化
# watch -d -n 2 'du -sh /orahome/app/oracle
③ 在/home/oracle/database文件夹,执行静默安装命令:
./runInstaller -silent -responseFile /home/oracle/response/db_install.rsp
④ 如下图则表示安装成功:
⑤ 切换到root账户,执行如下命令:
/orahome/oraInventory/orainstRoot.sh --若没有生成这个文件,可以把直接之前使用过的放进去,
/orahome/app/oracle/product/11.2.0/dbhome_1/root.sh
3.2.2.3配置Net监听
根据需要修改/home/oracle/response/netca.rsp
的相关参数,也可以不修改,默认创建的监听名称为 LISTENER
。静默安装 NET Listener:
#cd $ORACLE_HOME
#netca /silent /responseFile /home/oracle/response/netca.rsp
出现以上,着代表监听成功
3.2.2.4创建dbca实例
拷贝dbca.rsp文件到/home/oracle下,并编辑为:[下面的黄色部分是必须要修改的,代表的是想要创建额数据库实例,未标黄的部分,可以用文件中自带的]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
GDBNAME = "orcl" --文件中的此处,修改为orcl
SID = "orcl" --实例orcl
TEMPLATENAME = "General_Purpose.dbc"
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
DATAFILEDESTINATION = /u01/app/oradata --路径修改为真实的
CHARACTERSET = "ZHS16GBK" --字符集,修改,否则需要安装好之后再修改,不修改,着对于“中文乱码”
然后使用$ORACLE_HOME/bin里面的dbca执行命令:【闪屏让输入密码,输入好一个,然后回车,在输入下一个再回车,即可】
#dbca -silent -responseFile /home/oracle/response/dbca.rsp
然后,输入命令:
# vi /u01/app/oracle/cfgtoollogs/dbca/orcl/orcl.log
查看创建日志里面有没有异常信息,没有则说明数据库和实例创建成功了。【若是没有已存在或提示错误代码的信息】,若提示已经存在,则必须将创建的数据库实例删除掉,所有相关的都删除
3.2.2.5 验证
# lsnrctl status
表示数据库监听正在运行,数据库实例正在运行。
输入命令:
# sqlplus / as sysdba 进入oracle的命令界面
# startup 启动数据库程序
Shutdown abort 关闭数据库程序指令,一般不需要操作,在此附上需要时用
3.2.3. 安装完成
3.2.3.1创建用户
SQL> Create user username identified by 123456;
3.2.3.2创建表空间,大小10G
SQL>create tablespace tablespacename datafile '/orahome/data/hrbbcf.dbf' size 102400;
3.2.3.3 将表空间分配给用户
SQL>alert user username default tablespace tablespacename;
3.2.3.4 授权
SQL>grant connect,resource to username;
–此处无授权dba权限