Oracle 安装

下载安装包和安装依赖

32位

64位

安装依赖

1
yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel expat gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make pdksh sysstat unixODBC unixODBC-devel

检查依赖

1
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel expat gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make pdksh sysstat unixODBC unixODBC-devel | grep "not installed"

安装 compat-libstdc++-33

1
2
wget http://mirror.centos.org/centos/6.7/os/i386/Packages/compat-libstdc++-33-3.2.3-69.el6.i686.rpm
rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm

安装 pdksh

1
2
wget  http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm
rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm

优化OS内核参数 (可选)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
fs.aio-max-nr=1048576
fs.file-max=6815744
kernel.shmall=2097152
kernel.shmmni=4096
kernel.shmmax = 8589934592
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

sysctl -p

创建oracle用户和oracle目录

配置hosts

1
2
vi /etc/hosts
172.26.138.81 oracle

创建用户

1
2
3
4
5
6
7
8
9
10
11
12
13
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle -d /home/oracle
passwd oracle
id oracle

mkdir -p /opt/oracle/product
mkdir -p /opt/oracle/oradata
mkdir -p /opt/oracle/oraInventory
mkdir -p /opt/oracle/flash_recovery_area
mkdir -p /opt/oracle/etc
chown -R oracle:oinstall /opt/oracle
chmod -R 775 /opt/oracle/

配置环境变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
su oracle
vi ~/.bash_profile

export ORACLE_BASE=/opt/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 ~/.bash_profile

安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
su - oracle
cd ~/download
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
cp database/response/* /opt/oracle/etc/

vi /opt/oracle/etc/db_install.rsp

oracle.install.option=INSTALL_DB_SWONLY
DECLINE_SECURITY_UPDATES=true
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/opt/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOSTNAME=oracle
ORACLE_HOME=/opt/oracle/product/11.2.0
ORACLE_BASE=/opt/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=true
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba

cd ~/download/database
./runInstaller -silent -ignorePrereq -responseFile /opt/oracle/etc/db_install.rsp

exit

sh /opt/oracle/oraInventory/orainstRoot.sh
sh /opt/oracle/product/11.2.0/root.sh

su - oracle

netca /silent /responsefile /opt/oracle/etc/netca.rsp

vi /opt/oracle/etc/dbca.rsp
GDBNAME = "orcl"
SID = "orcl"
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
SYSMANPASSWORD = "oracle"
DBSNMPPASSWORD = "oracle"
DATAFILEDESTINATION = /opt/oracle/oradata
RECOVERYAREADESTINATION = /opt/oracle/flash_recovery_area
CHARACTERSET = "AL32UTF8" ? ZHS16GBK
TOTALMEMORY = "1638"

dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbName ORCL -sysPassword oracle -systemPassword oracle

lsnrctl status

cp /opt/oracle/admin/ORCL/pfile/init.ora.1124201914122 /opt/oracle/product/11.2.0/dbs/initorcl.ora

sqlplus / as sysdba
startup

启动

1
2
3
4
5
6
7
8
9
10
11
ps -ef | grep ora | awk '{print $2}' | xargs kill -9
echo 3 > /proc/sys/vm/drop_caches

lsnrctl start
sqlplus / as sysdba
startup

alter database mount;
alter database open;

shutdown immediate

字符编码

客户端

1
2
3
4
SIMPLIFIED CHINESE_CHINA.ZHS16GBK

echo $NLS_LANG
NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"

服务端

1
2
3
4
5
6
7
8
9
10
11
select userenv('language') from dual;

shutdown immediate
startup mount
alter system enable restricted session;
alter system set job_queue_processes=0;
alter system set aq_tm_processes=0;
alter database open;
alter database character set internal_use zhs16gbk;
shutdown immediate
startup

常见异常

Checking swap space: 0 MB available, 1535 MB required. Failed

1
2
3
4
5
6
7
8
9
10
11
12
swapon -s
df -hal
dd if=/dev/zero of=/swapfile bs=1024 count=512k
mkswap /swapfile
swapon /swapfile
swapon -s

vi /etc/fstab
/swapfile swap swap defaults 0 0

chown root:root /swapfile
chmod 0600 /swapfile

centos 安装oracle 报Checking swap space: 0 MB available, 150 MB required. Failed

ORA-00845: MEMORY_TARGET not supported on this system

https://blog.csdn.net/sunny05296/article/details/56495599
https://stackoverflow.com/questions/33366282/oracle-startup-not-possible-ora-00845-memory-target-not-supported-on-this-sys

1
2
3
4
5
6
7
8
9
mount -t tmpfs shmfs -o size=2G /dev/shm
mount -t tmpfs shmfs -o size=1500m /dev/shm

vi /etc/fstab
tmpfs /dev/shm tmpfs defaults,size=2G 0 0

ORA-01507: database not mounted
ORA-01102: cannot mount database in EXCLUSIVE mode
ORA-01081: cannot start already-running ORACLE - shut it down first

参考