在CentOS8上安装Oracle19c_19.3.0

(一) 操作系统相关参数的设置

配置YUM源
(1) 实体机直接放入操作系统安装光盘(VMware Workstation 虚拟机:虚拟机–>可移动设备–>CD/DVD–>连接)
–创建目录

#mkdir /mnt/cdrom      

–用下面的命令直接挂载ISO镜像文件

#mount /dev/cdrom /mnt/cdrom 

#卸载

umount /mnt/cdrom  
mount: block device /dev/sr0 is write-protected, mounting read-only

(2) 本地YUM源的配置

# vim /etc/yum.repos.d/CentOS-Local.repo

写入以下内容

[Local]  
name=Local Yum  
baseurl=file:///mnt/cdrom
gpgcheck=0  
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-8  
enabled=1

如果使用网络YUM源,主机能上网,则无需特殊配置。可直接执行下一步测试yum

(3) 安装一些必要的工具软件

yum  clean  all
yum   -y   install  net-tools  vim  wget  unzip  zip 

(4) 安装操作系统的图形界面(图形化安装oracle是需要图形界面的)

#  yum  groupinstall  'X Window System'  -y
#  yum  groupinstall  "GNOME Desktop"

(5) 设置操作系统运行级别

# systemctl get-default
# systemctl set-default graphical.target

(6) 主机名设置

# hostnamectl set-hostname --static yktDB

(7) 网卡配置
以现场环境的网卡名称为准

# vim  /etc/sysconfig/network-scripts/ifcfg-ens33      

重启网络服务
CentOS8下重启网络服务的命令如下:

–重启网络服务

#nmcli c reload   /   nmcli  d reapply ens33 

(8) /etc/hosts文件的配置

#  vim  /etc/hosts

(9) 防火墙配置
NOTE:22为SSH登录端口,注意仅指定的IP地址可以登录;
NOTE:1521为Oracle监听端口;
NOTE:在安装oracle软件与配置数据库阶段建议先关闭防火墙,数据库完全配置好后再开启防火墙。
–关闭防火墙

# systemctl  disable  firewalld 
--操作系统启动时不运行防火墙
# systemctl disable firewalld.service    

(10) 关闭SELinux

#  vim  /etc/selinux/config
SELINUX=disabled

NOTE:重启一次Linux主机。

(二) 配置内核参数

(1) 编辑/etc/sysctl.conf文件

#  cp /etc/sysctl.d/99-sysctl.conf /etc/sysctl.d/99-sysctl.conf.bak  
# vim /etc/sysctl.d/99-sysctl.conf

–增加如下内容

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

保存之后运行命令: # sysctl -p
//启用上述对操作系统内核参数的更改
(2) 编辑/etc/security/limits.conf文件

#  vim  /etc/security/limits.conf           --增加如下内容
oracle  soft nproc 2048
oracle  hard nproc 16384
oracle  soft nofile 4096
oracle  hard nofile 65536

(3) 编辑/etc/pam.d/login文件

#  vim  /etc/pam.d/login                            --增加如下内容
session  required  /lib64/security/pam_limits.so
session  required  pam_limits.so

(4) 编辑/etc/profile文件

#  vim  /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

保存文件后运行命令:# source /etc/profile

(三) 创建oracle数据库属组、用户及环境变量

(1) 利用YUM安装oracle数据库需要的依赖包
在默认安装带GUI操作系统情况下,发现安装以下依赖包能安装通过。具体哪些需要哪些不需要,不详。本文安装时,在这一步没有多安装依赖包,一步一步安装中需要的时候才安装。最终暂确认Oracle19c版本要通过安装需要以下依赖包:

yum -y install make
yum -y install libnsl
yum -y install compat-libcap1
yum -y install libstdc++-devel
yum -y install gcc-c++
yum -y install ksh
yum -y install glibc-devel
yum -y install libaio-devel

(2) 创建组(oinstall,dba)、用户(oracle) 以及用户密码

#  groupadd  oinstall
#  groupadd  dba
#  useradd  -g  oinstall  -G  dba  -p  'oracle'  -d  /home/oracle   oracle
#  echo  'oracle:oracle'  |  chpasswd

(3) 创建Oracle数据库相关的目录并赋予相对应的权限

#  mkdir  -p  /u01/app/oracle/product/19.3.0
#  mkdir  -p  /home/{OracleData,OracleArch/ArchiveLog,OracleBackup/{rmanbak,expdpbak,ArchiveLogBak}}
#  chown  -R  oracle:oinstall  /u01/app/   /home/Oracle*
#  chmod  -R  775  /u01/app/   /home/Oracle*

(4) 配置oracle用户的环境变量

#  su  -  oracle
$  vim  ~/.bash_profile                      --增加如下内容
#alias sqlplus='rlwrap sqlplus'  
#alias rman='rlwrap rman'      
export TMP=/tmp    
export TMPDIR=$TMP      
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0
export EDITOR=/usr/bin/vim
export ORACLE_SID=easytongDB
export PATH=$ORACLE_HOME/bin:/usr/bin:$PATH
export PATH=$PATH:/usr/bin/:/bin:/usr/bin/X11:/usr/local/bin 
export PATH=$PATH:$ORACLE_BASE/common/oracle/bin
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS10=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib:/usr/lib:/usr/local/lib:$ORACLE_HOME/oracm/lib:$ORACLE_HOME/lib
export LIBPATH=$LIBPATH:$ORA_CRS_HOME/lib:$ORACLE_HOME/lib 
export CLASSPATH=$CLASSPATH:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/jlib:$ORACLE_HOME/network/jlib:$ORACLE_HOME/JRE 
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_DATE_FORMAT='yyyy-MM-dd hh24:mi:ss'

保存文件后运行命令: # source ~/.bash_profile

(四) 上传Oracle介质并解压

NOTE:oracle安装软件版本为19.3.0,文件名为:LINUX.X64_193000_db_home.zip
解压oralce安装软件

19c安装要注意:
解压安装包的时候就已经指定了其数据目录,否则安装时候会发现主目录不是你环境变量指定的目录。
$ unzip LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19.3.0/

或者

$ mv LINUX.X64_193000_db_home.zip /u01/app/oracle/product/19.3.0/  

之后

$ unzip LINUX.X64_193000_db_home.zip

(五) 安装Oracle软件

NOTE:建议在操作系统上安装VNC软件进行oracle软件的安装

[root@yktdatabase ~]# xhost +
access control disabled, clients can connect from any host
[root@yktdatabase ~]# su – oracle
[oracle@yktdatabase ~]$ export LANG=en_us     --建议使用英文安装 

如果想看到中文界面的话请设置 $ export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
并且要下载一种中文字体,如仿宋: zysong.ttf,进行如下操作:

# mkdir  -p  /usr/share/fonts/zh_CN/TrueType
# mv zysong.ttf  /usr/share/fonts/zh_CN/TrueType/
如果出现中文是方框,进行如下操作:
# vi /etc/sysconfig/i18n
LANG="zh_cn.UTF-8"

以下为安装图示:

./runInstaller 

/u01/app/oracle/product/19.3.0/perl/bin/perl: error while loading shared libraries: libnsl.so.1: cannot open shared object file: No such file or directory
可能是缺少库文件,尝试# yum -y install libnsl 如果之前执行过yum安装,应该不会出现
之后可以出现安装界面,提示操作系统兼容性问题:
在这里插入图片描述

配置环境变量,设置操作系统兼容。重新运行安装,就不再出现。
本文的过程主要是记录图形化安装时,Oracle安装过程中每一步的配置。理论上在RHEL系类似版本操作系统均可参考。
所以此处操作系统兼容配置,也可以配置其他,例如RHEL7OL7

export CV_ASSUME_DISTID=CentOS7

在这里插入图片描述
选择 仅设置软件 下一步
在这里插入图片描述
选择“单实例数据库安装”,点击“下一步”;

在这里插入图片描述

选择“企业版”,点击“下一步”;
在这里插入图片描述
设定oracle软件的安装位置,点击“下一步”;
在这里插入图片描述
设定产品清单目录位置,我们设置为 /u01/app /oraInventory ,点击“下一步”:
之后选择按需要的配置要求选择,设置密码。之后先决条件检查。
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
出现这个 yum -y install make能通过
在这里插入图片描述
出现这个,yum安装(三)(1)步骤中记录的依赖包,不过未确定具体是哪个。
全部通过后,点击“安装”,进入安装页面中,等待,直到安装完成。

(六) 创建oracle数据库

安装数据库之前要考虑数据文件、日志文件、备份文件的位置:
本文依次为先前步骤中创建的/home下
OracleData,OracleArch/ArchiveLog,OracleBackup

进行数据库创建操作:

[root@yktbakdatabase ~]# xhost +
access control disabled, clients can connect from any host
[root@yktbakdatabase ~]# su – oracle
 [oracle@ yktbakdatabase database]$ dbca

创建数据库,点击“下一步”: 在这里插入图片描述
选择“高级配置”,点击“下一步”:在这里插入图片描述

选择“Oracle单实例数据库”、“一般用途或事务处理”,点击“下一步”:在这里插入图片描述

本文要测试、尝试Oracle的pdb容器数据库,所以勾选创建为容器数据库。输入全局数据库名,如easytongDB,点击“下一步”:
在这里插入图片描述

设定数据文件存放位置,我们选择“/home/OracleData”,点击“下一步”:
在这里插入图片描述

设定快速恢复区位置,我们选择“/home/OracleArch/ArchiveLog”,设置快速恢复区的大小是自动默认选择的,没有修改。(实际要视现场环境的磁盘大小而定),(可能后面会报建议值,所以设置时建议为3倍数据库大小)
在这里插入图片描述

创建一个监听,默认端口为1521,点击“下一步”:
NOTE:这里是和11gR2区别明显的一个地方,监听无需再单独创建。
在这里插入图片描述

无需配置Data Vault,点击“下一步”:
在这里插入图片描述
在这里插入图片描述
NOTE:内存小于4GB以下用自动内存管理,4GB以上使用自动共享内存管理。
在这里插入图片描述在这里插入图片描述
确认数据库字符集,我需要使用ZHS16GBK,点击“下一步”;
在这里插入图片描述在这里插入图片描述在这里插入图片描述
是否启用“EM”管理,我选择不启用,点击“下一步”:
在这里插入图片描述
输入sys 用户和system用户的管理密码,点击“下一步”:在这里插入图片描述
点击“下一步”;
在这里插入图片描述
最后的确认,点击“完成”:
在这里插入图片描述

创建数据库进行中……
在这里插入图片描述

完成数据库实例的安装。

(七) 设置数据库软件开机自启动

#  su  -  oracle
$ vim /etc/oratab
easytongDB:/u01/app/oracle/product/19.3.0:Y
$  su  -  root
# chmod +x /etc/rc.d/rc.local
# vim  /etc/rc.d/rc.local                --增加如下内容
su - oracle <<EOF
lsnrctl start LISTENER
sqlplus /nolog<<EOS
connect  / as sysdba
startup
alter system register;
EOS
EOF

(八) 防止11g客户端接入时提示ORA-28040错误

修改 $ORACLE_HOME/network/admin/sqlnet.ora文件:
增加如下内容:
--login as oracle
$  vim  $ORACLE_HOME/network/admin/sqlnet.ora                --增加如下内容
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
SQLNET.AUTHENTICATION_SERVICES= (BEQ,NONE)
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8

(九) 修改数据库用户密码的生命周期

Oracle数据库用户密码的默认生命周期为180天,现将其改为无限制:

SQL> alter profile "DEFAULT" limit PASSWORD_GRACE_TIME UNLIMITED;
SQL> alter profile "DEFAULT" limit PASSWORD_LIFE_TIME UNLIMITED;
SQL> alter profile "DEFAULT" limit PASSWORD_LOCK_TIME UNLIMITED;
SQL> alter profile "DEFAULT" limit FAILED_LOGIN_ATTEMPTS UNLIMITED;
Profile altered.

发现用户有锁定时候,解锁用户和修改密码:

SQL> alter user easytong account unlock;
SQL> alter user easytong identified by easytong;

NOTE:CDN公共用户名必须用户名前加 C##
在这里插入图片描述
我们是要使用PDB,所以先登录pdb会话,再建用户,再登录pdb建表
在这里插入图片描述

(十) PDB使用的记录

PDB重命名

SQL> select name,open_mode from v$pdbs;    
NAME
--------------------------------------------------------------------------------
OPEN_MODE
----------
PDB$SEED
READ ONLY

PDB
READ WRITE
SQL> alter session set container=PDB;

Session altered.

SQL> shutdown immediate;
Pluggable Database closed.

#以restrict模式打开
SQL> startup open restrict;
Pluggable Database opened.

SQL> alter pluggable database PDB rename global_name to etDB;

Pluggable database altered.

SQL> show con_name;

CON_NAME
------------------------------
ETDB
SQL>  

之后就可以使用ETDB

使得PDB随CDB 开机启动:

sqlplus / as sysdba
SQL> CREATE TRIGGER open_all_pdbs
   AFTER STARTUP
   ON DATABASE
BEGIN
   EXECUTE IMMEDIATE 'alter pluggable database all open';
END open_all_pdbs;
/
Trigger created.

方式二:
sqlplus / as sysdba
   alter pluggable database mypdb open;
   alter pluggable database mypdb save state;

创建一个PDB的数据库:

SQL> create pluggable database zytk admin user zytk identified by hzsun310012 ROLES = (dba) file_name_convert=('/home/OracleData/EASYTONGDB/pdbseed','/home/OracleData/ZYTK');

alter  pluggable database ZYTK open;

expdp出现ora-12170,tnsping发现不通,需要把每个PDB加入tnsnames.ora

# tnsnames.ora Network Configuration File: /u01/app/oracle/product/19.3.0/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

EASYTONGDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = yktDB)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = easytongDB)
    )
  )

LISTENER_EASYTONGDB =
  (ADDRESS = (PROTOCOL = TCP)(HOST = yktDB)(PORT = 1521))

ETDB=
  (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = yktDB)(PORT = 1521))
        (CONNECT_DATA =
        (SERVER = DEDICATED)
        (SERVICE_NAME = ETDB)
  )
)

ZYTK=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = yktDB)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = yktDB)
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值