Centos-7静默安装Oracle-11gr2

系统版本:

cat /etc/redhat-release
#CentOS Linux release 7.2.1511 (Core)
redhat 4

系统内存不要用4G,shm默认是系统的一半,2G,问题多多!手动建库啥的超级慢!!(最好大于等于8G)
官网下载安装包:
/data/linux.x64_11gR2_database_1of2.zip
/data/linux.x64_11gR2_database_2of2.zip

ssh登录root用户做以下配置

cd /data
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
解压命令会把两个包都解压到/data/database目录

查看hostname:

[oracle@VM_12_28_centos database]$ hostname
VM_12_28_centos

检查hosts文件,要在hosts里添加一行,本机IP跟hostname对应的

[oracle@VM_12_28_centos database]$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain VM_12_28_centos
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.28.12.28 VM_12_28_centos   ###hosts文件里添加这一行

确认hostname文件里跟/etc/hosts添加的这行的主机名是一样:

[oracle@VM_12_28_centos ~]$ cat /etc/hostname
VM_12_28_centos

vim /etc/sysctl.conf 修改内核参数:

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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=1048586

使内核参数马上生效:
/sbin/sysctl -p
在/etc/security/limits.conf 添加打开文件数限制:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 4096
oracle hard nofile 65536
oracle soft stack 10240
/etc/pam.d/login添加登录认证动态库:
session required pam_limits.so
把一些命令添加大pre_install.sh里面,执行bash pre_install.sh 安装必须的依赖库。

[oracle@VM_12_28_centos database]$ cat pre_install.sh
yum install binutils -y
yum install compat-libstdc++-33 -y
yum install compat-libstdc++-33.i686 -y
yum install gcc -y
yum install gcc-c++ -y
yum install glibc -y
yum install glibc.i686 -y
yum install glibc-devel -y
yum install glibc-devel.i686 -y
yum install ksh -y
yum install libgcc -y
yum install libgcc.i686 -y
yum install libstdc++ -y
yum install libstdc++.i686 -y
yum install libstdc++-devel -y
yum install libstdc++-devel.i686 -y
yum install libaio -y
yum install libaio.i686 -y
yum install libaio-devel -y
yum install libaio-devel.i686 -y
yum install libXext -y
yum install libXext.i686 -y
yum install libXtst -y
yum install libXtst.i686 -y
yum install libX11 -y
yum install libX11.i686 -y
yum install libXau -y
yum install libXau.i686 -y
yum install libxcb -y
yum install libxcb.i686 -y
yum install libXi -y
yum install libXi.i686 -y
yum install make -y
yum install sysstat -y
yum install unixODBC -y
yum install unixODBC-devel -y
yum install zlib-devel -y
yum install elfutils-libelf-devel -y

添加用户和用户组:

groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
useradd -g oinstall -G dba,oper oracle

执行命令修改用户密码: passwd oracle

查看selinux的状态:getenforce
返回Disable 或Permissive
如果不是就setenforce 0

关闭防火墙systemctl stop firewalld

在/etc/profile添加以下代码:


if [ $USER = "oracle" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
              ulimit -p 16384
              ulimit -n 65536
        else
              ulimit -u 16384 -n 65536
        fi
fi

切换到oracle 用户: su - oracle
下面的操作用oracle用户进行

新建oracle安装目录:
mkdir -p /data/oracle/
mkdir -p /data/oracle/product/11.2.0.4/db_1/

设置oracle用户的系统环境变量:cat .bashrc
export TMP=/tmp
export TMPDIR=TMPexportORACLEHOSTNAME=VM1228centosexportORACLEUNQNAME=PYFUNDexportORACLEBASE=/data/oracle/exportORACLEHOME=/data/oracle/product/11.2.0.4/db1/exportORACLESID=PYFUNDexportPATH=TMP export ORACLE_HOSTNAME=VM_12_28_centos export ORACLE_UNQNAME=PYFUND export ORACLE_BASE=/data/oracle/ export ORACLE_HOME=/data/oracle/product/11.2.0.4/db_1/ export ORACLE_SID=PYFUND export PATH=TMPexportORACLEHOSTNAME=VM1228centosexportORACLEUNQNAME=PYFUNDexportORACLEBASE=/data/oracle/exportORACLEHOME=/data/oracle/product/11.2.0.4/db1/exportORACLESID=PYFUNDexportPATH=ORACLE_HOME/bin:PATHexportLDLIBRARYPATH=PATH export LD_LIBRARY_PATH=PATHexportLDLIBRARYPATH=ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=ORACLEHOME/JRE:ORACLE_HOME/JRE:ORACLEHOME/JRE:ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

进入oracle解压目录:cd /data/databse
原文件做个备份:cp response/db_install.rsp response/db_install.rsp_bak
修改db_install.rsp文件(其他选项用默认的配置):
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=VM_12_28_centos
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/home/oracle/oraInventory/
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/data/oracle/product/11.2.0.4/db_1/
ORACLE_BASE=/data/oracle/
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=true
oracle.install.db.DBA_GROUP=oinstall
oracle.install.db.OPER_GROUP=oper
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=PYFUDN
oracle.install.db.config.starterdb.SID=PYFUND
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=4096
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=oracle902

****第二次用上面的配置安装,报错,电子邮件地址不存在,修改了下面的选项
DECLINE_SECURITY_UPDATES=true

oracle 用户创建文件夹和文件:
mkdir -p /home/oracle/oraInventory/
[oracle@BJDC-PYT-oracle-slave database]$ cat /home/oracle/oraInventory/oraInst.loc
inventory_loc=/data/oracle/oraInventory
inst_group=oinstall
这个文件到底需不需要?一开始建了,安装会报错,删掉才行

结果还报错:
INFO: Checking whether the given inventory location /home/oracle/oraInventory/ is user home or not…
SEVERE: [FATAL] [INS-32035] 无法在指定位置创建新的主产品清单。
原因: 提供的主产品清单位置不为空。
操作: 请为产品清单提供其他位置, 或者清除当前位置。
把oraInst.loc删除,OK

又报别的错:
SEVERE: [FATAL] [INS-35341] User is not a member of the following chosen OS groups: [null]
CAUSE: User is not a member of one or more of the chosen OS groups.
ACTION: Please choose OS groups of which user is a member.
INFO: Advice is ABORT
OPER_GROUP没设置,设置一下,OK

#####2018-11-28 系统还得有swap空间才行######
[oracle@VM_12_97_centos database]$ ./runInstaller -silent -force -responseFile /data/database/response/db_install.rsp
正在启动 Oracle Universal Installer…

检查临时空间: 必须大于 120 MB。 实际为 42852 MB 通过
检查交换空间: 可用的交换空间为 0 MB, 所需的交换空间为 150 MB。 未通过 <<<<

未通过某些要求检查。必须先满足这些 要求,

然后才能继续安装,
dd if=/dev/zero of=/boot/swap bs=1024 count=8192000
mkswap /boot/swap
chmod 0600 /boot/swap
[root@VM_12_97_centos database]# swapon /boot/swap
swapon: /boot/swap:不安全的权限 0644,建议使用 0600。
swapon: /boot/swap:swapon 失败: 设备或资源忙
chmod 0600 /boot/swap
swapoff /boot/swap
swapon /boot/swap

静默安装:
./runInstaller -silent -force -responseFile /data/database/response/db_install.rsp

安装过程会提示执行root.sh,切换到root用户执行改脚本即可。

安装过程如果出现FATEL ,就是出错了,查看出错日志。

安装完了还要手动建库

oracle 用户继续做建库的操作:
cd $ORACLE_HOME/dbs
cp init.ora initPYFUND.ora

修改initPYFUND.ora:
db_name=‘PYFUND’
memory_target=2G
processes = 150
audit_file_dest=‘/data/oracle/product/11.2.0.4/db_1/oradata/adump’
audit_trail =‘db’
db_block_size=8192
db_domain=‘’
db_recovery_file_dest=‘/data/oracle/product/11.2.0.4/db_1/oradata/flash_recover_area’
db_recovery_file_dest_size=2G
diagnostic_dest=‘/data/oracle/product/11.2.0.4/db_1/oradata/’
dispatchers=‘(PROTOCOL=TCP) (SERVICE=ORCLXDB)’
open_cursors=300
remote_login_passwordfile=‘EXCLUSIVE’
undo_tablespace=‘undotbs’
control_files = db(‘/data/oracle/product/11.2.0.4/db_1/oradata/pyfund01.ctl’,‘/data/oracle/product/11.2.0.4/db_1/oradata/pyfund02.ctl’)
compatible =‘11.2.0’

mkdir -p /data/oracle/product/11.2.0.4/db_1/oradata/adump
mkdir -p /data/oracle/product/11.2.0.4/db_1/oradata/flash_recover_area
(control_files的ctl文件不需要手动建)

启动Oracle进程:

$ lsnrctl start
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 14-NOV-2022 10:48:54

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

Starting /data/oracle/product/11.2.0.4/db_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Log messages written to /data/oracle/diag/tnslsnr/oracle-master/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                14-NOV-2022 10:48:54
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Log File         /data/oracle/diag/tnslsnr/oracle-master/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
The listener supports no services
The command completed successfully

建库脚本:/data/PYFUND.sql
CREATE DATABASE PYFUND
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
LOGFILE GROUP 1 (‘/data/oracle/product/11.2.0.4/db_1/oradata/PYFUND/redo01a.log’) SIZE 2000M BLOCKSIZE 512,
GROUP 2 (‘/data/oracle/product/11.2.0.4/db_1/oradata/PYFUND/redo02a.log’) SIZE 2000M BLOCKSIZE 512,
GROUP 3 (‘/data/oracle/product/11.2.0.4/db_1/oradata/PYFUND/redo03a.log’) SIZE 2000M BLOCKSIZE 512
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 1000
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL
DATAFILE ‘/data/oracle/product/11.2.0.4/db_1/oradata/PYFUND/system01.dbf’ SIZE 300M REUSE
SYSAUX DATAFILE ‘/data/oracle/product/11.2.0.4/db_1/oradata/PYFUND/sysaux01.dbf’ SIZE 300M REUSE
DEFAULT TABLESPACE users
DATAFILE ‘/data/oracle/product/11.2.0.4/db_1/oradata/PYFUND/users01.dbf’
SIZE 5M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE temp
TEMPFILE ‘/data/oracle/product/11.2.0.4/db_1/oradata/PYFUND/temp01.dbf’
SIZE 20M REUSE
UNDO TABLESPACE undotbs
DATAFILE ‘/data/oracle/product/11.2.0.4/db_1/oradata/PYFUND/undotbs01.dbf’
SIZE 20M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

sqlplus / as sysdba
>startup nomount;
>@/root/PYFUND.sql;

startup nomount如果报错,看日志
/home/oracle/oradiag_oracle/diag/clients/user_oracle/host_1200893338_76/alert/log.xml

Directory does not exist for read/write [/data/oracle/product/11.2.0.4/db_1/log] [/data/oracle/product/11.2.0.4/db_1/log/diag/clients]

mkdir -p /data/oracle/product/11.2.0.4/db_1/log/diag
mkdir -p  /data/oracle/product/11.2.0.4/db_1/log/diag/client

还报错,原来是前面执行的时候,创建了control文件
SQL> startup nomount;
ORACLE instance started.

Total System Global Area 4275781632 bytes
Fixed Size 2220200 bytes
Variable Size 2298482520 bytes
Database Buffers 1962934272 bytes
Redo Buffers 12144640 bytes
SQL> @/data/oracle/sql/pyfund.sql;
CREATE DATABASE PYFUND
*
ERROR at line 1:
ORA-01501: CREATE DATABASE failed
ORA-00200: control file could not be created
ORA-00202: control file: ‘/data/oracle/product/11.2.0.4/db_1/dbs/ora_control1’
ORA-27038: created file already exists
Additional information: 1
删掉即可


rm  /data/oracle/product/11.2.0.4/db_1/dbs/ora_control1
rm  /data/oracle/product/11.2.0.4/db_1/dbs/ora_control2

创建数字字典:

>@$ORACLE_HOME/rdbms/admin/catalog.sql
>@$ORACLE_HOME/rdbms/admin/catproc.sql
>conn system/manager
>@$ORACLE_HOME/sqlplus/admin/pupbld.sql

要自己创建一个spfile

create pfile from spfile

查看MEMROY_TARGET的大小:

>show parameter target; 

修改MEMORY_TARGET

ALTER SYSTEM SET MEMORY_TARGET = 16384M SCOPE = both

修改MEMORY_MAX_TARGET的值:

ALTER SYSTEM SET MEMORY_MAX_TARGET = 16G SCOPE = spfile

修改后重启收生效:

SQL> shutdown immediate
SQL> startup nomount;

startup nomount的时候,ORA-00845: MEMORY_TARGET not supported on this system
把 initPYFUND.ora文件里ORACLE MEMORY_TARGET参数设置超过了oracle服务器本身内存
改小即可,或者把shm改大:增加一行 /etc/fstab, mount -o remount /dev/shm即可

tmpfs    /dev/shm      tmpfs   defaults,size=24G        0 0

启动及报错日志:
cd $ORACLE_HOME
tail -f oradata/diag/rdbms/pyfund/PYFUND/alert/log.xml

ORA-09925: Unable to create audit trail file
ps -ef |grep smon
把这个进程kill了,再sqlplus / as sysdba即可

centos 7.2 安装KDE桌面环境,不然oracle 太多东西不能用了:

yum groupinstall “KDE Plasma Workspaces”

切换到图形界面:

systemctl get-default

安装GNOME也行,切换命令一样:

yum groupinstall “GNOME Desktop”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值