数据库

Centos7安装oracle12c

2022-08-26  本文已影响0人  刘大坝

1.安装必要软件包

yum install      binutil* -y
yum install      compat* -y
yum install      gcc* -y
yum install      glibc* -y
yum install      ksh* -y
yum install      libaio* -y
yum install      libgcc* -y
yum install      libstd* -y
yum install      libXi* -y
yum install      libXtst* -y
yum install      make* -y
yum install      sysstat* -y

2.创建Oracle用户和用户组

[root@localhost ~]# groupadd dba
[root@localhost ~]# groupadd oinstall
[root@localhost ~]# useradd -g oinstall -G dba oracle
[root@localhost ~]# passwd oracle
image.png

3.创建安装目录

[root@localhost ~]# mkdir -p /u01/app/oracle
[root@localhost ~]# chown -R oracle:oinstall /u01/app/oracle
[root@localhost ~]# chmod -R 775 /u01/app/oracle

##同样把/u01 和/u01/app/也授权给oracle
 [root@localhost ~]#chown  -R oracle:oinstall /u01/
 [root@localhost ~]#chown   -R oracle:oinstall /u01/app/
image.png

4.CentOS7关闭防火墙和selinux

[root@localhost app]# setenforce 0
[root@localhost app]# /usr/sbin/sestatus
image.png
[root@localhost app]# systemctl stop firewalld
[root@localhost app]# systemctl disable firewalld
[root@localhost app]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)
[root@localhost app]# vi /etc/selinux/config
image.png

reboot重启

[root@localhost app]# reboot

查看结果:

[root@localhost app]#/usr/sbin/sestatus
[root@localhost app]#/usr/sbin/getenforce
image.png

5.修改系统内核参数

修改前先备份一下/etc/sysctl.conf

修改前先备份一下/etc/sysctl.conf
[root@localhost ~]# cp /etc/sysctl.conf /etc/sysctl.conf.bak

/etc/sysctl.conf文档下方增加上以下内容:

kernel.shmmax = 18446744073692774399
kernel.shmall = 18446744073692774399
kernel.shmmni = 4096
kernel.sem =250 32000 100 128
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.ip_local_port_range =32768    60999
fs.file-max=6815744
fs.aio-max-nr=1048576

修改完成后保存,然后运行sysctl -p命令使之生效。

[root@localhost ~]# sysctl -p 
image.png

6.扩大swap交换空间

若出现以下报错,则是swap空间不足,需要扩大交换空间

This is a prerequisite condition to test whether sufficient total swap space is available on the system. (more details)
Expected Value
: 15.64GB (1.6403472E7KB)  16400000
Actual Value
: 4.87GB (5111800.0KB)

解决步骤

1、使用dd命令创建一个swap分区

2、#dd if=/dev/zero of=/home/swap bs=1024 count=16400000

3、格式化刚才创建的分区

4、# mkswap /home/swap

5、再使用swapon命令把这个文件分区变成swap分区

6、#swapon /home/swap

7、(关闭SWAP分区的命令为:#swapoff /home/swap)

8、再用free -m 查看已经扩容的了swap分区。

9、为了能够让swap自动挂载,需要修改etc/fstab文件,用vi /etc/fstab

10、在文件末尾加上 /home/swap swap swap default 0 0

11、这样就算重启系统,swap分区也不用手动挂载了

12、但是我感觉好像我重启了系统 swap就没有了,然后我又百度了一下,要执行下面一段命令  #echo  "swapon  /home/swap" >> /etc/inittab

13、然后在看 vi 看下 /etc/inittab

14、最后一行是swapon  /home/swap,这样就万事大吉了。

完整操作如下:

[root@localhost app]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        1.9G     0  1.9G   0% /dev
tmpfs           1.9G     0  1.9G   0% /dev/shm
tmpfs           1.9G   17M  1.9G   1% /run
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda1        40G   12G   29G  30% /
overlay          40G   12G   29G  30% /var/lib/docker/overlay2/234b1b34bb70c1b60fe7bca6640e8012186f3c078600a3e20006819f9ef2398e/merged
overlay          40G   12G   29G  30% /var/lib/docker/overlay2/e8b54eefa1b4c1d6483a3835eafd731f07799c73a83a340f3b763978c100a9bb/merged
tmpfs           379M     0  379M   0% /run/user/0
[root@localhost app]# dd if=/dev/zero of=/home/swap bs=1024 count=16400000
16400000+0 records in
16400000+0 records out
16793600000 bytes (17 GB) copied, 161.571 s, 104 MB/s
[root@localhost app]# mkswap /home/swap
Setting up swapspace version 1, size = 16399996 KiB
no label, UUID=45b9c854-486b-4cf9-a012-4c8c887350ca
[root@localhost app]# swapon /home/swap
swapon: /home/swap: insecure permissions 0644, 0600 suggested.
[root@localhost app]# free -m 
              total        used        free      shared  buff/cache   available
Mem:           3789         580         132          11        3076        2929
Swap:         18063          55       18008
[root@localhost app]# /home/swap swap swap default 0 0
-bash: /home/swap: Permission denied
[root@localhost app]# echo   "swapon  /home/swap" >> /etc/inittab 
[root@localhost app]# 
image.png

7.设置用户限制

编辑 /etc/security/limits.conf

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

/etc/security/limits.conf中添加如下配置。

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 10240
Add the following line to the "/etc/pam.d/login" file,
if it does not already exist.
session required /lib/security/pam_limits.so
session required pam_limits.so
Add the following to
/etc/profile if Oracle user will use the bash shell.
if [ $USER = "oracle" ]; then
    ulimit -u 16384
    ulimit -n 65536
fi
image.png

8. 配置环境变量

首先切换到oracle账户su - oracle (特别注意:一定要加横杠) ,编辑修改主目录下 .bash_profile

[root@localhost security]# su - oracle
[oracle@localhost ~]$ pwd
/home/oracle
image.png

编辑.bash_profile文件,增加如下内容:

TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/12.1.0/db_1; export ORACLE_HOME
ORACLE_SID=epps; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

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

执行 source .bash_profile 使配置生效

[root@localhost security]# source .bash_profile

8.上传oracle12c安装文件

用root用户上传文件到目录/home/oracle/, 并修改权限

[root@localhost security]# chown oracle:oinstall linuxamd64_12102_database_*
image.png

切换到oracle用户,解压安装包

#切换到ORACLE用户
[root@localhost oracle]# su - oracle
Last login: Wed Nov 17 10:36:35 UTC 2021 on pts/0
[oracle@localhost ~]$
#解压第一个文件压缩包
[oracle@localhost ~]$ unzip linuxamd64_12102_database_1of2.zip 
#在解压完第一个压缩包后再来解压第二个压缩包
[oracle@localhost ~]$ unzip linuxamd64_12102_database_2of2.zip

文件解压完后都放在database文件中
创建一个目录,把zip包放起来


image.png

9.安装Xme30.exe 软件

从阿里云盘下载,然后在自己的电脑上安装


image.png

下载之后按照步骤一步一步安装即可

注册lic


image.png

点开Xbrowser之后,点击Help -> About Xbrowser -> Enter Product Key, 录入压缩包license.txt中的注册码即可


image.png
启动工具 Xmanager-Passive
image.png

如果出现错误:failed to get the installation date from the system registry
解决办法如下:

出现了这个问题后,各种可能的想法都想到了,但是,一直得不到解决,后来查到了这样一种办法 
1.打开Xbrowser

2.打开Help, 选择About Browser

3.点击Enter Product Key

Name : 3ddown.com

Organization: none

Serial:080807-116451-999766

就OK了

呵呵,Xmanager不让贴上去,就辛苦大家用手敲上去了。

10. 安装oracle

查看安装文件的权限信息

image.png

查看我们自己的pc的ip地址


image.png

确保安装oracle的机器可以ping 通我们自己的pc


image.png

启动调用自己pc的图形管理工具(也就是上一步安装的Xme30)并启动安装

[oracle@localhost database]$ export DISPLAY=192.168.1.35:0.0
image.png

启动之后注意观察,依次会出现如下图像界面


image.png image.png

取消勾选I wish to receive ...

image.png image.png image.png image.png image.png
/u01/app/oracle
/u01/app/oracle/product/12.1.0/db_1
image.png image.png image.png image.png

出现此情况是/u01 /u01/app的权限导致的


image.png

处理步骤:逐步赋权

 chown oracle:oinstall /u01/
 chown oracle:oinstall /u01/app/
image.png

点击OK ,再点击下图的NEXT 按钮


image.png

出现如下问题:

image.png

问题原因是swap空间不足导致,需要扩大交换空间

This is a prerequisite condition to test whether sufficient total swap space is available on the system. (more details)
Expected Value
: 15.64GB (1.6403472E7KB)  16400000
Actual Value
: 4.87GB (5111800.0KB)

问题原因是没有swap空间不足导致,需要扩大交换空间

解决:1、使用dd命令创建一个swap分区

2、#dd if=/dev/zero of=/home/swap bs=1024 count=16400000

3、格式化刚才创建的分区

4、# mkswap /home/swap

5、再使用swapon命令把这个文件分区变成swap分区

6、#swapon /home/swap

7、(关闭SWAP分区的命令为:#swapoff /home/swap)

8、再用free -m 查看已经扩容的了swap分区。

9、为了能够让swap自动挂载,需要修改etc/fstab文件,用vi /etc/fstab

10、在文件末尾加上 /home/swap swap swap default 0 0

11、这样就算重启系统,swap分区也不用手动挂载了

12、但是我感觉好像我重启了系统 swap就没有了,然后我又百度了一下,要执行下面一段命令  #echo  "swapon  /home/swap" >> /etc/inittab

13、然后在看 vi 看下 /etc/inittab

14、最后一行是swapon  /home/swap,这样就万事大吉了

完整操作如下

[root@localhost app]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        1.9G     0  1.9G   0% /dev
tmpfs           1.9G     0  1.9G   0% /dev/shm
tmpfs           1.9G   17M  1.9G   1% /run
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda1        40G   12G   29G  30% /
overlay          40G   12G   29G  30% /var/lib/docker/overlay2/234b1b34bb70c1b60fe7bca6640e8012186f3c078600a3e20006819f9ef2398e/merged
overlay          40G   12G   29G  30% /var/lib/docker/overlay2/e8b54eefa1b4c1d6483a3835eafd731f07799c73a83a340f3b763978c100a9bb/merged
tmpfs           379M     0  379M   0% /run/user/0
[root@localhost app]# dd if=/dev/zero of=/home/swap bs=1024 count=16400000
16400000+0 records in
16400000+0 records out
16793600000 bytes (17 GB) copied, 161.571 s, 104 MB/s
[root@localhost app]# mkswap /home/swap
Setting up swapspace version 1, size = 16399996 KiB
no label, UUID=45b9c854-486b-4cf9-a012-4c8c887350ca
[root@localhost app]# swapon /home/swap
swapon: /home/swap: insecure permissions 0644, 0600 suggested.
[root@localhost app]# free -m 
              total        used        free      shared  buff/cache   available
Mem:           3789         580         132          11        3076        2929
Swap:         18063          55       18008
[root@localhost app]# /home/swap swap swap default 0 0
-bash: /home/swap: Permission denied
[root@localhost app]# echo   "swapon  /home/swap" >> /etc/inittab 
[root@localhost app]# 
image.png

然后Check Again


image.png image.png

开始漫长的等待


image.png image.png
[root@localhost u01]# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
[root@localhost u01]# /u01/app/oracle/product/12.1.0/db_1/root.sh
Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/12.1.0/db_1

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 ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
image.png

最后安装成功


image.png

11.配置listener

(如果重启服务器了,启动Oracle的顺序是先启动监听:lsnrctl start)
还是在oracle用户~目录下,通过netca调用图形化配置(如果重启过客户端需要先执行命令:export DISPLAY=192.168.1.73:0.0)
先打开


image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png

12.安装数据库实例

还是在oracle用户~目录下 执行dbca 命令调用 数据库实例 图形安装界面

image.png

稍等,出现如下图像


image.png image.png

点击Next

image.png

创建数据库密码:Oracle12c,

image.png image.png image.png image.png image.png image.png

13.解决数据库启动问题

切换用户

su - oracle

然后连接

sqlplus / as sysdba

启动oralce

startup
启动报错,如图


image.png

解决:
把/u01/app/oracle/admin/orcl/pfile下的init.ora.XXXXXXXXX文件 拷贝到
/u01/app/oracle/product/12.1.0/db_1/dbs/,并重命名为initepps.ora

[oracle@localhost pfile]$ cp /u01/app/oracle/admin/orcl/pfile/init.ora.10172021113749 /u01/app/oracle/product/12.1.0/db_1/dbs/

[oracle@localhost pfile]$ cd  /u01/app/oracle/product/12.1.0/db_1/dbs/
[oracle@localhost dbs]$ ll
total 28
-rw-rw---- 1 oracle oinstall 1544 Nov 17 11:41 hc_orcl.dat
-rw-r--r-- 1 oracle oinstall 2992 Feb  3  2012 init.ora
-rw-r----- 1 oracle oinstall 1893 Nov 17 11:56 init.ora.10172021113749
-rw-r----- 1 oracle oinstall   24 Nov 17 11:28 lkORCL
-rw-r----- 1 oracle oinstall 7680 Nov 17 11:37 orapworcl
-rw-r----- 1 oracle oinstall 3584 Nov 17 11:56 spfileorcl.ora
[oracle@localhost dbs]$ mv init.ora.10172021113749 initepps.ora

然后再报错:ORA-00845 MEMORY_TARGET not supported on this system 解决方法

修改文件 /etc/fstab 将tmpfs 修改成以下值(修改后要重启系统):
 tmpfs            /dev/shm        tmpfs  defaults,size=14G        0 0
image.png

如果直接修改/etc/fstab,通过重启reboot 让参数生效。

注意:这个size 的大小需要设置为整数。

df -h 在查查修改后的/dev/shm的大小

image.png

再次启动切换到su - oracle
然后连接sqlplus / as sysdba
然后修改默认设置信息:

--修改密码规则策略为密码永不过期;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
-- 修改system用户账号密码;
alter user system identified by system;
-- 修改sys用户账号密码;
alter user sys identified by sys; 
--修改数据库最大连接数据;
alter system set processes=100 scope=spfile; 
image.png image.png

14.设置数据库字符集

首先通过sqlplus / as sysdba登录,查看当前字符集

select * from nls_database_parameters where parameter='NLS_CHARACTERSET';
image.png

默认字符集不是我们需要的
我们要设置为AL32UTF8
设置步骤如下:
第一 先关闭数据库:
shutdown immediate;
第二 启动数据库到mount状态
startup mount;

image.png

第三 限制session
alter system enable restricted session;


image.png

第四 查看相关参数并修改

show parameter job_queue_processes;  
设置为0
alter system set job_queue_processes=0;

show parameter aq_tm_processes; 
也设置为0
alter system set aq_tm_processes=0;
image.png
image.png

第五 打开数据库

alter database open;
image.png

第六 修改字符集

alter database character set internal_use AL32UTF8;
image.png

第七 修改完成之后,将相关参数还原

alter system set job_queue_processes=1000;
alter system set aq_tm_processes=1;

第八 重启数据库

14. 配置Local Net...

先试试15步,用PL/SQL能不能连接,不能再配置
配置中请注意如下两个参数:
Global service name -----> orcl.oracle.com
Sid ------>orcl

image.png
还是在oracle用户~目录下,通过netca调用图形化配置 image.png image.png image.png image.png image.png image.png image.png image.png image.png

配置完成后,/u01/app/oracle/product/12.1.0/db_1/network/admin下多出两个文件

image.png
然后在oracle用户下启动监听器
lsnrctl start
lsnrctl stop
lsnrctl reload
sqlplus / as sysdba

一定要在oracle用户下重启监听(特别注意:切换到oracle的时候,一定要加横杠)
启动服务 startup ;


image.png

(关闭oracle : shutdown immediate)

操作过程如下图:


image.png image.png

启动oracle报错:


image.png

找不到initepps.orga
解决:
把/u01/app/oracle/admin/orcl/pfile下的init.ora.10172021113749 拷贝到
/u01/app/oracle/product/12.1.0/db_1/dbs/

[oracle@localhost pfile]$ cp /u01/app/oracle/admin/orcl/pfile/init.ora.10172021113749 /u01/app/oracle/product/12.1.0/db_1/dbs/
[oracle@localhost pfile]$ cd  /u01/app/oracle/product/12.1.0/db_1/dbs/
[oracle@localhost dbs]$ ll
total 28
-rw-rw---- 1 oracle oinstall 1544 Nov 17 11:41 hc_orcl.dat
-rw-r--r-- 1 oracle oinstall 2992 Feb  3  2012 init.ora
-rw-r----- 1 oracle oinstall 1893 Nov 17 11:56 init.ora.10172021113749
-rw-r----- 1 oracle oinstall   24 Nov 17 11:28 lkORCL
-rw-r----- 1 oracle oinstall 7680 Nov 17 11:37 orapworcl
-rw-r----- 1 oracle oinstall 3584 Nov 17 11:56 spfileorcl.ora
[oracle@localhost dbs]$ mv init.ora.10172021113749 initepps.ora
image.png

15.远程连接oracle(PL/SQL Developer)

我的阿里云下载客户端:

image.png

解压后,在根目录,创建文件tnsnames.ora

内容为:

ichannel@192_168 =
    (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.111)(PORT = 1521)))
                   (CONNECT_DATA = (SERVICE_NAME = orcl.oracle.com))
)
image.png

打开PL/SQL Developer

image.png

一定要配置本机的4个环境变量:

变量名:ORACLE_HOME
变量值:D:\soft\instantclient_11_2
            
变量名:TNS_ADMIN
变量值:D:\soft\instantclient_11_2
            
变量名:NLS_LANG
变量值:AMERICAN_AMERICA.AL32UTF8
            
修改Path变量:在后面添加 D:\soft\instantclient_11_2

16.配置数据库自启动

(还未最后验证成功)
第一步:修改/u01/app/oracle/product/12.1.0/db_1/bin/dbstart
ORACLE_HOME_LISTNER=$1改为ORACLE_HOME_LISTNER=$ORACLE_HOME

image.png
第二步:修改/etc/oratab,启动数据库时启动实例
image.png

第三步:编辑/etc/rc.d/rc.local启动文件,并授权
因为在centos7中rc.local已经被逐渐废弃,在其文件中也说明建议使用systemd。我这里将就下,修改完rc.local后为其添加执行(x)权限,重启后才能执行成功。

vi /etc/rc.d/rc.local

文件末尾添加如下两行

su - oracle -lc /u01/app/oracle/product/12.1.0/db_1/bin/dbstart
su - oracle -lc "/u01/app/oracle/product/12.1.0/db_1/bin/lsnrctl start"

注意:第二个命令有空格,所以要用引号

授权:chmod +x /etc/rc.d/rc.local

重启主机,查看数据库和监听是否自启动

ps -ef | grep orcl
lsnrctl status
ps -ef | grep LISTEN | grep -v grep

17.创建用户表空间

-- 创建用户 用户名必须以c##开头

create user c##wangcen identified by wangcen;
image.png image.png

-- 创建表空间
-- tablespace_wangcen 是表空间的名称
-- /u01/oracle/data/ 数据文件存放路径(必须提前创建好)
-- wangcen_data.dbf 数据文件

create tablespace  tablespace_wangcen  datafile '/u01/oracle/data/wangcen_data.dbf' size 1024M;
image.png

18.服务器重启后如何启动oracle

分两步:

1 先切换到oracle用户su - oracle

2启动监听器 lsnrctl start

3 登录 sqlplus / as sysdb

然后执行 startup

完成。

关闭oracle:shutdown immediate;

另附其他版本安装教程:

https://www.cnblogs.com/xuzhaoyang/p/11264557.html

上一篇下一篇

猜你喜欢

热点阅读