一、环境准备

1、正确无误的CentOS 7系统环境

CentOS 7安装:http://www.cnblogs.com/VoiceOfDreams/p/8043958.html

2、正确的JDK环境

CentOS 7安装JDK:http://www.cnblogs.com/VoiceOfDreams/p/8376978.html

3、Oracle11g安装包

下载地址:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

安装包包含两个文件

linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip

二、  安装前准备

1、创建oracle数据库的系统用户和用户组

[admin @localhost ~]$ su root
Password:
[root@localhost admin]# groupadd oinstall   #创建用户组oinstall
[root@localhost admin]# groupadd dba   #创建用户组dba
[root@localhost admin]# useradd -g oinstall -G dba -m oracle   #创建oracle用户,并加入到oinstall和dba用户组
[root@localhost admin]# passwd oracle   #设置用户oracle的登陆密码
Changing password for user oracle.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:    #确认密码
passwd: all authentication tokens updated successfully.
[root@localhost admin]# id oracle #查看新建的oracle用户
uid=1001(oracle) gid=1002(dba) groups=1002(dba)
[root@localhost admin]#
-g:指定用户所属的群组
-G:指定用户所属的附加群组
-m:自动建立用户的登入目录

2、创建oracle数据库安装目录

[root@localhost admin]# mkdir -p /usr/oracle                                   #安装目录
[root@localhost admin]# mkdir -p /usr/oraInventory   #配置文件目录
[root@localhost admin]# mkdir -p /usr/orapackage   #软件包解压目录
[root@localhost admin]# cd /usr
[root@localhost usr]# ls 
orapackage oracle oraInventory ...
[root@localhost usr]# chown -R oracle:oinstall /usr/oracle   #设置目录所有者为oinstall用户组的oracle用户
[root@localhost usr]# chown -R oracle:oinstall /usr/oraInventory
[root@localhost usr]# chown -R oracle:oinstall /usr/orapackage
[root@localhost usr]#

3、安装包准备

由于使用U盘安装,首先进行U盘挂载,再将安装包拷贝到对应目录

查看文件系统的磁盘空间占用情况:

[root@localhost admin]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 50G 22G 29G 43% /
devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs 1.9G 6.3M 1.9G 1% /dev/shm
tmpfs 1.9G 9.0M 1.8G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 494M 227M 267M 46% /boot
/dev/mapper/centos-home 412G 4.3G 407G 2% /home
tmpfs 370M 32K 370M 1% /run/user/1000
/dev/sdb1 15G 7.3G 7.3G 51% /run/media/admin/4291-25E5
[root@localhost admin]#

红色为U盘信息

创建U盘挂载目录,进行U盘挂载

[root@localhost admin]# mkdir –p /mnt/usb
[root@localhost admin]# mount /dev/sdb1 /mnt/usb

将U盘中的安装包拷贝到自己指定目录

[root@localhost admin]# cp –r /mnt/usb/oracle/* /usr/orapackage
[root@localhost admin]# cd /usr/orapackage
[root@localhost orapackage]# ls
linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip

解压缩到当前目录

[root@localhost orapackage]# unzip linux_11gR2_database_1of2.zip
[root@localhost orapackage]# unzip linux_11gR2_database_2of2.zip
[root@localhost orapackage]# ls
database linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip

U盘使用完成后卸载U盘挂载点

[root@localhost admin]# umount /dev/sdb1

4、修改OS系统标识

oracle默认不支持CentOS系统安装,修改文件 /etc/RedHat-release

[root@localhost admin]# cat /proc/version
Linux version 3.10.0-327.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) )
[root@localhost admin]# cat /etc/redhat-release  
CentOS Linux release 7.2.1511 (Core)
[root@localhost admin]# vi /etc/redhat-release #进入编辑界面,将内容更改为redhat-7
[root@localhost admin]# cat /etc/redhat-release
redhat-7
[root@localhost admin]#

5、安装oracle数据库所需要的软件包

参考:https://docs.oracle.com/cd/E11882_01/install.112/e47689/pre_install.htm

Oracle Linux 7 and Red Hat Enterprise Linux 7

The following packages (or later versions) must be installed:

binutils-2.23.52.0.1-12.el7.x86_64
compat-libcap1-1.10-3.el7.x86_64
compat-libstdc++-33-3.2.3-71.el7.i686
compat-libstdc++-33-3.2.3-71.el7.x86_64
gcc-4.8.2-3.el7.x86_64
gcc-c++-4.8.2-3.el7.x86_64
glibc-2.17-36.el7.i686
glibc-2.17-36.el7.x86_64
glibc-devel-2.17-36.el7.i686
glibc-devel-2.17-36.el7.x86_64
ksh
libaio-0.3.109-9.el7.i686
libaio-0.3.109-9.el7.x86_64
libaio-devel-0.3.109-9.el7.i686
libaio-devel-0.3.109-9.el7.x86_64
libgcc-4.8.2-3.el7.i686
libgcc-4.8.2-3.el7.x86_64
libstdc++-4.8.2-3.el7.i686
libstdc++-4.8.2-3.el7.x86_64
libstdc++-devel-4.8.2-3.el7.i686
libstdc++-devel-4.8.2-3.el7.x86_64
libXi-1.7.2-1.el7.i686
libXi-1.7.2-1.el7.x86_64
libXtst-1.2.2-1.el7.i686
libXtst-1.2.2-1.el7.x86_64
make-3.82-19.el7.x86_64
sysstat-10.1.5-1.el7.x86_64

To use ODBC on Linux x86-64, the following additional ODBC RPMs are required:

On Oracle Linux 7, and Red Hat Enterprise Linux 7:

unixODBC-2.3.1-6.el7.x86_64 or later
unixODBC-2.3.1-6.el7.i686 or later
unixODBC-devel-2.3.1-6.el7.x86_64 or later
unixODBC-devel-2.3.1-6.el7.i686 or later

安装所需安装包

[root@localhost admin]# yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.devel compat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686

检测是否31个包都有安装

[root@localhost admin]# rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst  make sysstat  unixODBC unixODBC-devel
binutils-2.23.52.0.1-12.el7.x86_64
compat-libcap1-1.10-3.el7.x86_64
compat-libstdc++-33-3.2.3-71.el7.i686
compat-libstdc++-33-3.2.3-71.el7.x86_64
gcc-4.8.2-3.el7.x86_64
gcc-c++-4.8.2-3.el7.x86_64
glibc-2.17-36.el7.i686
glibc-2.17-36.el7.x86_64
glibc-devel-2.17-36.el7.i686
glibc-devel-2.17-36.el7.x86_64
ksh
libaio-0.3.109-9.el7.i686
libaio-0.3.109-9.el7.x86_64
libaio-devel-0.3.109-9.el7.i686
libaio-devel-0.3.109-9.el7.x86_64
libgcc-4.8.2-3.el7.i686
libgcc-4.8.2-3.el7.x86_64
libstdc++-4.8.2-3.el7.i686
libstdc++-4.8.2-3.el7.x86_64
libstdc++-devel-4.8.2-3.el7.i686
libstdc++-devel-4.8.2-3.el7.x86_64
libXi-1.7.2-1.el7.i686
libXi-1.7.2-1.el7.x86_64
libXtst-1.2.2-1.el7.i686
libXtst-1.2.2-1.el7.x86_64
make-3.82-19.el7.x86_64
sysstat-10.1.5-1.el7.x86_64
unixODBC-2.3.1-6.el7.x86_64
unixODBC-2.3.1-6.el7.i686
unixODBC-devel-2.3.1-6.el7.x86_64
unixODBC-devel-2.3.1-6.el7.i686

版本号只能大于规定的版本,不能小于

6、关闭防火墙

CentOS 7默认使用的是firewall作为防火墙

[root@localhost admin]# systemctl status firewalld.service                    #查看防火墙状态
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2016-04-07 18:54:29 PDT; 2h 20min ago
[root@localhost admin]# systemctl stop firewalld.service   #关闭防火墙
[root@localhost admin]# systemctl status firewalld.service   #再次查看防火墙状态
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Thu 2016-04-07 21:15:34 PDT; 9s ago
[root@localhost admin]# systemctl disable firewalld.service   #关闭开机制动启动

7、关闭selinux(需重启生效)

[root@localhost /]# vi /etc/selinux/config
[root@localhost /]# cat /etc/selinux/config # This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled #此处修改为disabled
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

8、修改内核参数

[root@localhost admin]# vi /etc/sysctl.conf
[root@localhost admin]# cat /etc/sysctl.conf
# System default settings live in /usr/lib/sysctl.d/00-system.conf.
# To override those settings, enter new settings here, or in an /etc/sysctl.d/<name>.conf file
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
fs.file-max = 6815744 #设置一个进程可以打开的最大打开文件数
fs.aio-max-nr = 1048576 #限制未完成的并发请求,避免I/O系统故障
kernel.shmall = 2097152 #共享内存的总量,应不小于shmmax/page_size缺省值就是2097152
kernel.shmmax = 2147483648 #最大共享内存的段大小,不小于物理内存的一半
kernel.shmmni = 4096 #整个系统共享内存端的最大数
kernel.sem = 250 32000 100 128 #设置的信号量
net.ipv4.ip_local_port_range = 9000 65500 #可使用的IPv4端口范围
net.core.rmem_default = 262144 #默认接收缓冲区大小
net.core.rmem_max= 4194304 #接收缓冲区最大值
net.core.wmem_default= 262144 #默认的发送缓冲区大小
net.core.wmem_max= 1048576 #发送缓冲区最大值
[root@localhost admin]#

使配置参数生效

[root@localhost admin]# sysctl –p

9、设置用户限制,提高软件运行性能

[root@localhost admin]# vi /etc/security/limits.conf
[root@localhost admin]# cat /etc/security/limits.conf

#@student - maxlogins 4 oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
# End of file

10、配置用户的环境变量

[root@localhost /]# vi /home/oracle/.bash_profile
[root@localhost /]# cat /home/oracle/.bash_profile

export PATH export ORACLE_BASE=/usr/oracle #oracl安装目录
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 #oracle路径
export ORACLE_SID=orcl #oracle启动数据库实例名
export ORACLE_TERM=xterm #xterm窗口模式安装
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH #添加系统环境变量
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib #添加系统环境变量
export LANG=C #防止安装过程出现乱码
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #设置Oracle客户端字符集,必须与Oracle客户端安装时设置的字符集保持一致。有的是设为AL32UTF8,根据需要自行设定。

使配置生效

[root@localhost admin]# source /home/oracle/.bash_profile

三、oracle安装

1、使用Oracle账户登录

2、为了防止安装时提示框出错无法显示,启动安装时添加本地JDK路径

查看配置文件
[oracle@localhost ~]$ vi + /etc/profile

#Path JDK1.8
JAVA_HOME=/usr/java/jdk1.8
JRE_HOME=/usr/java/jdk1.8/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
[oracle@localhost ~]$ cd /usr/orapackage/database
[oracle@localhost database]$ ls
doc install response rpm runInstaller sshsetup stage welcome.html
[oracle@localhost database]$ ./runInstaller –jreLoc /usr/java/jdk1.8

3、安装界面安装流程

去除选中,不自动接收Oracle的安全更新,next。

确定,next

第一项为企业级应用

第二项只安装数据库

第三项为升级现有数据库

第一项为桌面类:一般适用于台式机和笔记本,包含最小数据库和最低配置要求,安装时只有基本选项。

第二项为服务类:适用于服务器,例如,它会向您提供数据中心和用于支持企业级的应用程序。

会自动根据配置的环境变量获取路径,设置orcl用户的密码,确认密码

默认选择

这几个系统报错是因为现有的包的版本比检测要高,忽略即可

若有需要可以保存一下文件,Finish

当安装进度达到68%时,会出现如上图所示报错

查找安装目录下该文件:/usr/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk

[admin @localhost ~]$ su root
Password:
[root@localhost admin]# vim /usr/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk

修改如下文件内容(11行左右)

ctxhx: $(CTXHXOBJ)
$(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)
修改为:
ctxhx: $(CTXHXOBJ)
-static $(LINK_CTXHX) $(CTXHXOBJ)$(INSO_LINK) /usr/lib64/libc.a

保存(:wq)后,点击Retry继续安装

有如下图所示报错

打开此安装目录下文件:/usr/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk

修改如下内容(190行左右)

$(MK_EMAGENT_NMECTL)
修改为
$(MK_EMAGENT_NMECTL) -lnnz11

保存(:wq)后,点击Retry继续安装

点击OK

打开控制端,以root权限执行所示两个脚本

[root@localhost /]# sh /usr/oraInventory/orainstRoot.sh
[root@localhost /]# sh /usr/oracle/product/11.2.0/db_1/root.sh
此处输入红色部分的路径回车:
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...

点击OK,安装完成,关闭界面

4、创建Oracle监听

[oracle@localhost ~]$ netca

选择监听器协议,默认TCP,点击Next

配置监听端口,默认1521,点击Next

配置完成,提示是否增加另外的监听器,选择No,点击Next

点击Next

点击Finish结束配置程序,命令行界面会提示配置的信息并将新的监听器启动

Listener configuration complete.
Oracle Net Listener Startup:
Running Listener Control:
/usr/oracle/product/11.2.0/db_1/bin/lsnrctl start LISTENER
Listener Control complete.
Listener started successfully.
Oracle Net Services configuration successful. The exit code is 0

监听器的启动和停止

lsnrctl start LISTENER            #启动名为LISTENER的监听器
lsnrctl stop LISTENER #关闭名为LISTENER的监听器

查看监听器运行状态

lsnrctl status LISTENER           #查看名为LISTENER的监听器的运行状态

5、安装oracle数据库实例

[oracle@localhost ~]$ dbca

默认选择,点击Next

默认为普通的事务数据库,点击Next

填写数据的全局名称和数据库id

默认,点击Next

设置密码,所有用户使用同一密码,点击Next

选择用本地的数据文件模版地址,点击Next

设置数据恢复路径,默认,点击next

设置创建实例方案表空间,可以不创建,点击Next

设置数据库内存,作为服务器数据库设置为70%,切换到连接数设置的时候会报以下错误

如果使用自动内存管理,默认设置的/dev/shm 大小不够用,此时需要去修改/dev/shm的空间大小。

1)、在/etc/fstab中明确指定/dev/shm的挂载sizes大小参数

查看/dev/shm的大小

[oracle@localhost ~]$ df –h /dev/shm
Filesystem Size Used Avail Use% Mounted on
tmpfs 1.9G 29M 1.8G 2% /dev/shm

可以看到/dev/shm的大小为1.9G,设置为70%的时候所需空间的大小为2582M,已经超出其最大空间。/dev/shm默认为物理内存大小的一半,根据需要我将其设为3G,以root权限执行以下命令:

[root@localhost oracle]# vi /etc/fstab
tmpfs                   /dev/shm                tmpfs   defaults        0 0
修改为
tmpfs /dev/shm tmpfs defaults,size=3G 0 0

如果没有就直接添加上去,保存退出(:wq)

2)、将/dev/shm重新挂载

[root@localhost oracle]# mount -o remount /dev/shm
[root@localhost oracle]# df –h /dev/shm
Filesystem Size Used Avail Use% Mounted on
tmpfs 3.0G 25M 3.0G 1% /dev/shm

此种方式是永久更改/dev/shm 的空间大小,如果只要临时更改(重启无效),执行如下命令:

[oracle@localhost ~]$ sudo mount -o size=3G -o remount /dev/shm

设置连接数,默认为150,根据需要设置

设置字符集,选择与安装Oracle时的设置相同的字符集,ZHS16GBK。如果Oracle用的字符集为AL32UTF8,就选择AL32UTF8。当然,如果这里字符集选错了,安装好了也是可以修改的,只是稍有麻烦。

设置连接类型,共享内存或者独享内存,也可以默认,点击Next

点击Next

选择Generate Database Creation Scripts(生成数据库创建脚本),可以为手工建库脚本提供参考

点击Finish,完成创建

创建数据库,创建完成后点击Exist退出

6、创建表空间和用户授权

1)、连接数据库

[oracle@localhost ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Fri Jan 19 10:23:13 2018
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> conn / as sysdba
Connected.
SQL>

2)、创建数据表空间

SQL> CREATE TABLESPACE ALS LOGGING DATAFILE '/usr/oracle/oradata/orcl/ALS.DBF' SIZE 50M AUTOEXTEND ON NEXT 50M MAXSIZE 20480M EXTENT MANAGEMENT LOCAL;

说明:

CREATE TABLESPACE 表空间名 LOGGING DATAFILE '存放路径' SIZE 50M AUTOEXTEND ON NEXT 50M MAXSIZE 20480M EXTENT MANAGEMENT LOCAL;

3)、创建用户并指定表空间

SQL> CREATE USER sa IDENTIFIED BY kcsm111 DEFAULT TABLESPACE ALS;

说明:

CREATE USER 用户名 IDENTIFIED BY 密码 DEFAULT TABLESPACE 表空间名;

4)、给用户授予权限

SQL>grant connect,resource,dba to sa;

说明:

grant connect,resource,dba to 用户名;

5)、删除表空间

SQL> drop tablespace ALS including contents and datafiles cascade constraints;

说明:

drop tablespace 表空间名 including contents and datafiles cascade constraints;
including contents   删除表空间中的内容,如果删除表空间之前表空间中有内容,而未加此参数,表空间无法删除。
including datafiles 删除表空间中的数据文件
cascade constraints 同时删除表空间中表的外键参照

至此所有安装完成

四、  设置数据库自启动

方法一:

1、安装好Oracle数据库后: 执行 dbstart和dbshut

[oracle@localhost ~]$ dbstart
ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener
Usage: /usr/oracle/product/11.2.0/db_1/bin/dbstart ORACLE_HOME

错误原因:dbstart和dbshut脚本文件中ORACLE_HOME_LISTNER的设置有问题

[oracle@localhost ~]$ vim $ORACLE_HOME/bin/dbstart
[oracle@localhost ~]$ vim $ORACLE_HOME/bin/dbshut

分别打开两个文件修改(50行左右)

ORACLE_HOME_LISTNER=$1
修改为:
ORACLE_HOME_LISTNER=$ORACLE_HOME

修改后保存退出,问题解决

2、Linux启动时自动启动Oracle监听和实例

第一步:修改/etc/oratab文件

[oracle@localhost ~]$ vim /etc/oratab
找到:   orcl:/usr/oracle/product/11.2.0/db_1:N
修改为: orcl:/usr/oracle/product/11.2.0/db_1:Y
(这个路径跟安装路径有关,$ORACLE_SID:$ORACLE_HOME:<N|Y>)

第二步:把lsnrctl start和dbstart添加到rc.local文件中:

root权限执行

[root@localhost oracle]# vim /etc/rc.d/rc.local

添加:

su - oracle -lc "/usr/oracle/product/11.2.0/db_1/bin/lsnrctl start"
su - oracle -lc "/usr/oracle/product/11.2.0/db_1/bin/dbstart"

说明:

第一行为开机启动数据库监听服务,第二行为开机启动数据库。(路径跟安装路径相关)。

注意:CentOs7中/etc/rc.d/rc.local不会开机执行,需添加执行权限。

查看/etc/rc.d/rc.local的权限

[root@localhost oracle]# ll /etc/rc.d/rc.local

添加执行权限

[root@localhost oracle]# chmod +x /etc/rc.d/rc.local

3、重启电脑后查看是否自启动成功

查看监听是否自启动成功

[oracle@localhost ~]$ lsnrctl status LISTENER

查看Oracle服务状态

[oracle@localhost ~]$ ps –ef | grep oracle

4、oracle的启动或关闭管理

[root@localhost oracle]# dbstart                   #启动
[root@localhost oracle]# dbshut #停止

方法二:

1、修改/etc/oratab文件

root权限执行

[root@localhost oracle]# vim /etc/oratab
找到:    orcl:/usr/oracle/product/11.2.0/db_1:N
修改为: orcl:/usr/oracle/product/11.2.0/db_1:Y
(这个路径跟安装路径有关,$ORACLE_SID:$ORACLE_HOME:<N|Y>)

2、新建Oracle服务自启动脚本

[root@localhost oracle]# vim /etc/init.d/oracle

将以下脚本复制到文件中,保存退出(:wq)

#!/bin/sh
# chkconfig: 2345 61 61
# description: Oracle 11g R2 AutoRun Servimces
# /etc/init.d/oracle
#
# Run-level Startup script for the Oracle Instance, Listener, and
# Web Interface
export ORACLE_BASE=/usr/oracle #oracle安装位置
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 #Oracle安装路径
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
ORA_OWNR="oracle"
# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi
# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
su $ORA_OWNR -lc $ORACLE_HOME/bin/dbstart
echo "Oracle Start Succesful!OK."
;;
stop)
# Oracle listener and instance shutdown
su $ORA_OWNR -lc $ORACLE_HOME/bin/dbshut
echo "Oracle Stop Succesful!OK."
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo $"Usage: `basename $0` {start|stop|reload|reload}"
exit 1
esac
exit 0

3、检查脚本能否执行

[root@localhost oracle]# /etc/init.d/oracle start            #启动oracle脚本
[root@localhost oracle]# /etc/init.d/oracle stop #关闭oracle脚本
[root@localhost oracle]# /etc/init.d/oracle restart #重启oracle脚本

4、添加执行权限并建立链接

更改oracle脚本的执行权限

[root@localhost oracle]# chmod a+x /etc/init.d/oracle

建立链接

将启动脚本添加到系统服务并设置自启动

[root@localhost oracle]# chkconfig --add oracle

当这个命令被执行的时候,会去脚本文件oracle中寻找# chkconfig: 2345 61 61这行注释,并解析这行注释,根据解析结果分别在

/etc/rc.d/rc2.d

/etc/rc.d/rc3.d

/etc/rc.d/rc4.d

/etc/rc.d/rc5.d

中创建符号连接文件S61oracle,此文件在系统启动时根据运行级别执行,此文件是指向/etc/init.d/oracle文件。启动时系统向此文件发送一个start参数,执行oracle文件中的start分支。另外还会在

/etc/rc.d/rc0.d

/etc/rc.d/rc1.d

/etc/rc.d/rc6.d

中创建符号连接文件K61oracle,此文件在系统关闭时执行,此文件也指向/etc/init.d/oracle文件,关闭时系统向此文件发送一个stop参数,执行oracle文件中的stop分支。

# chkconfig: 2345 61 61

# 表明脚本应该在运行级 2, 3, 4, 5 启动,启动优先权为61,停止优先权为 61。

修改服务运行等级(虽然脚本里写过,但还是重新设置一下),可以自行设置oracle脚本的运行级别

[root@localhost oracle]# chkconfig --level 2345 oracle on

说明:设置oracle脚本在运行级别为2、3、4、5时,都是on(开启)状态,off为关闭

查看oracle自动启动设置

[root@localhost oracle]# chkconfig –list oracle
Oracle 0:off 1:off 2:on 3:on 4:on 5:on 6:off
等级0表示:表示关机
等级1表示:单用户模式
等级2表示:无网络连接的多用户命令行模式
等级3表示:有网络连接的多用户命令行模式
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:重新启动

手动创建符号链接文件(执行效果和执行chkconfig --add oracle是一样,作为知识笔记记录,可以不执行)

[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc0.d/K61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc1.d/K61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc2.d/S61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc3.d/S61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc4.d/S61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc5.d/S61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc6.d/K61oracle

5、oracle的启动或关闭管理

启动
[root@localhost oracle]# service oracle start
停止
[root@localhost oracle]# service oracle stop
重启
[root@localhost oracle]# service oracle restart

五、  数据库字符集修改

注意事项:修改字符集前先将数据库进行备份

此处演示将ZHS16GBK字符集修改为AL32UTF8

1、修改server端字符集

登录sqlpus查看字符集设置

[oracle@localhost ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Wed Jan 24 13:55:51 2018
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> conn /as sysdba
Connected to an idle instance. #数据库未启动,先启动数据库。最好将数据库设未开机启动
SQL> startup
SQL> conn /as sysdba
Connected. #连接成功
SQL> select userenv('language') from dual; #server端字符集查询 USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK

依次执行如下命令

SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP MOUNT;
SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;
SQL>ALTER DATABASE OPEN;
SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE AL32UTF8;
SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP;
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.AL32UTF8
SQL>

2、修改client端字符集

查看系统环境变量设置的字符集(client端字符集)

[oracle@localhost ~]$ cat /home/oracle/.bash_profile
...
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH export ORACLE_BASE=/usr/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export LANG=C
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #客户端字符集
进入编辑界面,将ZHS16GBK改为AL32UTF8,保存退出
[oracle@localhost ~]$ vim /home/oracle/.bash_profile
使配置生效
[oracle@localhost ~]$ source /home/oracle/.bash_profile

修改完成

CentOS 7安装Oracle 11gR2以及设置自启动的更多相关文章

  1. CentOS 7安装Oracle 11gR2以及设置自启动(2)

    6.创建表空间和用户授权 (1).连接数据库 $ sqlplus / as sysdba (2).创建数据库表空间 语法: create tablespace 表空间名 datafile ‘物理地址( ...

  2. CentOS 7安装Oracle 11gR2以及设置自启动(1)

    一.环境准备 1.正确无误的CentOS 7系统环境 虚拟机要求: 内存至少2G 处理器至少2个 根分区要大于20G(安装oracle很占空间,空闲空间要足够) 2.正确的JDK环境 CentOS 7 ...

  3. CentOS 7 安装Oracle 11gR2

    概述 Oracle 在Linux和window上的安装不太一样,公司又是Linux系统上的Oracle,实在没辙,研究下Linux下Oracle的使用,oracle默认不支持CentOS系统安装,所以 ...

  4. CentOS静默安装Oracle 11gR2(x64)

    环境 OS: CentOS 7.4; hosts: L134; IP: 192.168.1.134 DB: linux.x64_11gR2_database 安装依赖包 yum install -y ...

  5. CentOS 6安装Oracle 11gR2数据库

    1.安装环境--- 操作系统:CentOS release 6.8 (Final) oracle:Oracle Database 11g Enterprise Edition Release 11.2 ...

  6. Centos 6下安装Oracle 11gR2

    一.安装环境 CentOS release 6.7 (Final) Oracle Database 11g Release 2 二.安装前准备 #修改主机名 修改/etc/sysconfig/netw ...

  7. CentOS 7 安装 Oracle 11.2.0.4

    一.安装环境 CentOS Linux release 7.2.1511 (Core) Oracle Database 11g Release 2 (11.2.0.4) 二.安装前准备 2.1 修改主 ...

  8. CentOS 7 之安装 Oracle 11gR2

    一.准备工作 1.下载Oracle安装包:linux.x64_11gR2_database_1of2.zip 和 linux.x64_11gR2_database_2of2.zip ,可以下载到本地, ...

  9. CentOS安装Oracle 11gR2(x64)

    本文主要步骤是参考:https://www.linuxidc.com/Linux/2014-02/97374.htm 后来自己加入了一些安装过程中遇到的问题和解决方法.使用图形界面安装Oracle已经 ...

随机推荐

  1. TPYBoard—MicroPython开发板免费试用!你最想抱走哪款?

    TPYBoard开发板自上市开售以来,受到了广大硬件及MicroPython爱好者的一致好评,许多人提出想试用开发板的申请.为此,TPYBoard特推出多款开发板免费试用活动,感兴趣的朋友抓紧申请吧! ...

  2. 初用MssqlOnLinux 【1】

    https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-red-hat 使用 Centos7,NetCore2.0, ...

  3. java 数据格式验证类

    作为一个前端,懂一点java,php之类的,甚好. 我所在的项目前端采用的就是java的spring mvc框架,所以我们也写java,掐指一算,也快一年了. 前端而言,验证是一个坎,绕不过去的,前面 ...

  4. yield next和yield* next的区别

    yield next和yield* next之间到底有什么区别?为什么需要yield* next?经常会有人提出这个问题.虽然我们在代码中会尽量避免使用yield* next以减少新用户的疑惑,但还是 ...

  5. 机器学习小记——KNN(K近邻) ^_^ (一)

    为了让绝大多数人都可以看懂,所以我就用简单的话语来讲解机器学习每一个算法 第一次写ML的博文,所以可能会有些地方出错,欢迎各位大佬提出意见或错误 祝大家开心进步每一天- 博文代码全部为python 简 ...

  6. WKWebView强大的新特性

    iOS11对WKWebView的功能进一步完善,新增如下功能: Manager Cookies Fileter unwanted content Provide custom resources 下面 ...

  7. Qt用Zip压缩文件夹的一些坑

    环境: QT3.3.8 vs2005 QDir dir("/home/Blinux/html"); if ( !dir.exists() ) { //目录不存在 } QString ...

  8. vscode运行前端代码

    vscode 可安装静态web服务器  Live Server用于运行前端代码,方便调试.最新的 Live Server已支持php动态页面. 安装方法是,点击左侧第五个图标,打开"扩展&q ...

  9. 给 Android 开发者的一点福利:免费模拟面试

    写在前面 大家好,我是「南尘」,一个爱分享爱学习的 Android 技术控.目前在 GitHub 上有着差不多 6k 的个人项目 Star 数,之前也为其他开源库贡献过大量的源码.在各大博客网站上也有 ...

  10. Oracle误删数据文件后出现oracle initialization or shutdown in progress解决

    一.错误分析 1.首先本人在出现这种情况的背景是执行如下SQL语句后生成的表空间 --自定义表空间 数据表空间 临时表空间 CREATE TEMPORARY TABLESPACE HOUSE_TEMP ...