系统版本:
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=
T
M
P
e
x
p
o
r
t
O
R
A
C
L
E
H
O
S
T
N
A
M
E
=
V
M
1
2
2
8
c
e
n
t
o
s
e
x
p
o
r
t
O
R
A
C
L
E
U
N
Q
N
A
M
E
=
P
Y
F
U
N
D
e
x
p
o
r
t
O
R
A
C
L
E
B
A
S
E
=
/
d
a
t
a
/
o
r
a
c
l
e
/
e
x
p
o
r
t
O
R
A
C
L
E
H
O
M
E
=
/
d
a
t
a
/
o
r
a
c
l
e
/
p
r
o
d
u
c
t
/
11.2.0.4
/
d
b
1
/
e
x
p
o
r
t
O
R
A
C
L
E
S
I
D
=
P
Y
F
U
N
D
e
x
p
o
r
t
P
A
T
H
=
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:
P
A
T
H
e
x
p
o
r
t
L
D
L
I
B
R
A
R
Y
P
A
T
H
=
PATH export LD_LIBRARY_PATH=
PATHexportLDLIBRARYPATH=ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=
O
R
A
C
L
E
H
O
M
E
/
J
R
E
:
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 太多东西不能用了:
切换到图形界面:
安装GNOME也行,切换命令一样: