211项目-生产环境 RHEL Linux7+Oracle19C集群项目

发布时间:2023年12月21日

项目调研与建设方案

1.0项目介绍

某单位开发了一套新的资产管理系统,由你们公司承接这个项目的建设。
现在你接到技术主管安排的任务是:
明天你去客户现场负责数据库环境的建设。
要求:
1.操作系统:RHEL/OEL/ Centos Linux 7.6x86_64
2.数据库版本:Oracle 19c
3.数据库名:fyszcdb
4.数据库字符集:UTF8
5.数据库块大小:16K
6.数据库空间需求:文件系统1TB+归档

1.1环境准备

资产管理系统
主机名:fyszcdb23
ip地址: 192.168.0.23
虛拟主机:4C、8G CPU一般双核或四核 15/17/E3/E5之类的
操作系统:RHEL/OEL/ Centos Linux 7.6x86_64
数据库版本:Oracle Database 19.7
数据库名:fyszcdb
数据库字符集:UTF8
数据库块大小:16k
数据库空问需求:文件系统1TB+归档
硬盘空间:
单机:(创建磁盘分成单个文件即可)
100g /
200G /oracle
500g /archive 归档
1024G /oradata 数据文件
3072G /backup 备份1024*3=3072

RHEL Linux 7. X服务器系统的安装

在这里插入图片描述

在这里插入图片描述

3.Oracle19c for Linux系统参数设置

3.1 host文件配置
echo “192.168.0.23 fyszcdb” >> /etc/hosts
cat /etc/hosts #检查一遍写入是否有问题
3.2配置语言环境
echo “export LANG=en_US” >> ~/.bash_profile
source ~/.bash_profile

3.2 准备文件系统
先用pvdisplay 查一下你的lvm列出系统中的物理卷,在慢慢创
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.创建用户,组、目录

在这里插入图片描述
在这里插入图片描述

配置yum软件安装环境及软件包安装

看上期206的yum安装

yum -y install autoconf
yum -y install automake
yum -y install binutils
yum -y install binutils-devel
yum -y install bison
yum -y install cpp
yum -y install dos2unix
yum -y install ftp
yum -y install gcc
yum -y install gcc-c++
yum -y install lrzsz
yum -y install python-devel
yum -y install compat-db*
yum -y install compat-gcc-34
yum -y install compat-gcc-34-c++
yum -y install compat-libcap1
yum -y install compat-libstdc++-33
yum -y install compat-libstdc++-33.i686
yum -y install glibc-*
yum -y install glibc-*.i686
yum -y install libXpm-*.i686

yum -y install libXp.so.6
yum -y install libXt.so.6
yum -y install libXtst.so.6
yum -y install libXext
yum -y install libXext.i686
yum -y install libXtst
yum -y install libXtst.i686
yum -y install libX11
yum -y install libX11.i686
yum -y install libXau
yum -y install libXau.i686
yum -y install libxcb
yum -y install libxcb.i686
yum -y install libXi
yum -y install libXi.i686
yum -y install libgcc_s.so.1
yum -y install libstdc++.i686
yum -y install libstdc++-devel
yum -y install libstdc++-devel.i686
yum -y install libaio
yum -y install libaio.i686
yum -y install libaio-devel
yum -y install libaio-devel.i686
yum -y install ksh
yum -y install libXp
yum -y install libaio-devel
yum -y install numactl
yum -y install numactl-devel
yum -y install make -y
yum -y install sysstat -y
yum -y install unixODBC
yum -y install unixODBC-devel
yum -y install elfutils-libelf-devel-0.97
yum -y install elfutils-libelf-devel
yum -y install redhat-lsb-core
yum -y install unzip
yum install  * vnc* -y

6. 启动级别

在这里插入图片描述
在保存文件之后,运行 ulimit -a 来使更改生效。

7. 控制给用户分配的资源

在这里插入图片描述

7.1 修改内核参数
cat >> /etc/sysctl.conf << EOF
#ORACLE SETTING
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmax = 3355443200
kernel.shmall = 819200
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
net.ipv4.ip_forward=1

net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
kernel.panic_on_oops = 1
vm.nr_hugepages = 1500
vm.swappiness=5
vm.min_free_kbytes=204800
EOF

sysctl --system

tips:适合的 vm.nr_hugepages 和 vm.swappiness 的值取决于系统的具体用途和硬件配置。以下是一些建议:

vm.nr_hugepages:

对于大页内存,通常建议配置的数量与系统内存大小成正比。一般来说,可以使用公式 vm.nr_hugepages = 系统总内存(GB)/ 每个大页的大小(GB) 来计算。例如,如果系统有 16GB 内存,而每个大页的大小是 2GB,那么可以设置 vm.nr_hugepages = 16GB / 2GB = 8。
vm.swappiness:

对于 vm.swappiness,一般建议在 0 到 100 之间选择一个合理的值,取决于系统用途。较低的值(例如 10)表示系统更倾向于使用物理内存,而较高的值(例如 60)表示系统更倾向于使用交换空间。对于具体的值,可以根据以下场景考虑:
服务器用途:如果是用于服务器,特别是数据库服务器等对性能要求较高的场景,可以选择较低的值,如 10。
桌面系统:对于桌面系统,可以选择中等值,如 30-50,以平衡性能和资源使用。

7.2 关闭透明页

cat >> /etc/rc.d/rc.local <<EOF
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

EOF

在 GRUB 配置中禁用 NUMA

GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet numa=off"
grub2-mkconfig -o /etc/grub2.cfg
numastat
numactl --show
numactl --hardware

配置grid/Oracle环境变量
第一台 grid/Oracle都是这个vi ~/.bash_profile文件
输入

PS1="[`whoami`@`hostname`:"'$PWD]$'
export PS1
export TMP=/tmp
export LANG=en_US.UTF8
export TMPDIR=$TMP
export ORACLE_UNQNAME=fyszcdb
ORACLE_SID=fyszcdb; export ORACLE_SID
ORACLE_BASE=/oracle/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/19c/db_1; export ORACLE_HOME
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT
NLS_LANG=AMERICAN_AMERICA.UTF8;export NLS_LANG
PATH=.:$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/bin; export PATH
THREADS_FLAG=native; export THREADS_FLAG
umask=022
cd /oracle/app/oracle/product/19c/db_1
unzip -q /backup/LINUX.X64_193000_db_home.zip
./runInstaller
rpm -ivh compat-libstdc-33-3.2.3-72.el7.x86_64.rpm
sqlplus "/as sysdba"
shutdown immediate;
exit;
cd /backup
unzip p6880880_190000_Linux-x86-64.zip
unzip p30783543_190000_Linux-x86-64-ojvm-db19.7.zip
db:
cd /backup/30783543/30869l56
/backup/OPatch/opatch apply
sqlplus "/as sysdba"
startup
quit
cd $ORACLE_HOME/OPatch
./datapatch -verbose
cd $ORACLE_HOME/rdbms/admin
sqlplus "/as sysdba"
@utlrp.sql
$ rman catalog username/password@alias

第一步:先解压

在这里插入图片描述

[oracle@fysczdb23:/oracle/app/oracle/product/19c/db_1]$unzip  /backup/LINUX.X64_193000_db_home.zip 

打开vnc

[oracle@fysczdb23 ~]$ cd $ORACLE_HOME
[oracle@fysczdb23 db_1]$ ./runInstaller 

步骤:
选择 set up software only-single instance database installtion–enterprise edition–next-后面都是下一步完成!然后最后把compat-libstdc+±33-3这个包,在这里插入图片描述
后面安装的时候会跳出两个脚本
/oracle/app/oraInventory/orainstRoot.sh
/oracle/app/oracle/product/19c/db_1/root.sh
打开终端root用户下输入即可
操作做如下:
在这里插入图片描述
监听配置方法
然后关闭,创建一个监听,在原db_1下输入 netca:

[oracle@fysczdb23 db_1]$ netca

接下来创建数据库:
dbca
create a database - advanced configutation-
选择Oracle Single Instance Database(表示你要安装单实例的Oracle数据库。这通常是指在一个物理服务器上运行的独立数据库实例,而不是一个集群环境)---------
Data Warehouse:

如果你的数据库主要用于数据仓库或分析型工作负载,选择 “Data Warehouse” 选项是合适的。数据仓库通常用于支持复杂的查询和报告,对大量数据进行分析。
General Purpose:

如果你的数据库将用于多种用途,包括在线事务处理(OLTP)和一些报表查询,选择 “General Purpose” 可能是一个合适的选择。这种配置通常是为了在性能和灵活性之间取得平衡。
Transaction Processing:

如果数据库的主要目标是支持在线事务处理(OLTP),例如处理业务交易,选择 “Transaction Processing” 是合适的。这种配置通常会优化短期事务处理性能。

------next --global database name(这里是你配置Oracle环境的数据库名字)-不要勾选create as container database----next–安装在(/oradata/{DB_UNIQUE_NAME})–next-(不要选择归档)–next–Oracle jvm–next—默认5500-选择字符集

请添加图片描述
字符集----下一步
在这里插入图片描述
下一步 一般都是8192 每个做完都要点Apply应用一下

在这里插入图片描述
下一步-生产环境是20G且不自动扩容,我这里测试环境没有那么大内存,设置600M,

在这里插入图片描述
在这里插入图片描述
—SYSTEM也是20G,而且一个system01.dbf文件不够,后期还得创建几个(生产环境)–
在这里插入图片描述
-----TEMP也是20个G,UNDOTBS1也是20个G,users设置为5G就可以了,关闭自动扩展

-----redo Log Groups这里一般都是200m/500m/1G,要设置五组,总共要一个G或者更高的。
在这里插入图片描述
在这里插入图片描述
总共五组,这是添加完的!然后点击OK-----

在这里插入图片描述
下一步----next-点击finiish—安装结束后关闭即可

接下来给19c数据库打补丁

从19.3-19.7升级

-----)

./datapatch -verbose
解压以后打开进到这个文件里面(把下面的挨个打完)
/backup/211020/OPatch/opatch apply(这个我是解压在backup/211020目录下)

oracle@fysczdb23:/backup/211020/33182768]$ls
32585572  33192793  33208107  33208123  33239955  automation  bundle.xml  README.html  README.txt
[oracle@fysczdb23:/backup/211020/33182768]$cd 33192793/
[oracle@fysczdb23:/backup/211020/33182768/33192793]$/backup/211020/OPatch/opatch apply

这个33192793的打补丁成功了:
请添加图片描述
然后

cd $ORACLE_HOME/rdms/admin
sqlplus  "/as sysydba"
@utlrp.sql

下面的一整套流程

cd /oracle/app/oracle/product/19c/db_1
unzip -q /backup/LINUX.X64_193000_db_home.zip
./runInstaller
rpm -ivh compat-libstdc-33-3.2.3-72.el7.x86_64.rpm
lsnrctl stop
sqlplus "/as sysdba"
shutdown immediate;
exit;
cd /backup
unzip p6880880_190000_Linux-x86-64.zip
unzip p30783543_190000_Linux-x86-64-ojvm-db19.7.zip
db:
cd /backup/30783543/30869l56
/backup/OPatch/opatch apply
sqlplus "/as sysdba"
startup
quit
cd $ORACLE_HOME/OPatch
./datapatch -verbose
cd $ORACLE_HOME/rdbms/admin
sqlplus "/as sysdba"
@utlrp.sql    #这是编译无效对象

编译无效对象,这里错误的为0,说明是没有问题的
在这里插入图片描述
查看补丁

[oracle@fysczdb23:/backup/211020/33182768/33192793]$/oracle/app/oracle/product/19c/db_1/OPatch/opatch lspatches
33192793;Database Release Update : 19.13.0.0.211019 (33192793)
29585399;OCW RELEASE UPDATE 19.3.0.0.0 (29585399)

在数据库里输入 select action, comments from registry$history;

registry$history 表是 Oracle 数据库中的一个系统表,用于记录数据库注册表中的更改历史。这个表通常位于 SYS 模式下。在 Oracle 数据库中,注册表包含数据库中的所有注册信息。

registry$history 表中的列,如 action 和 comments,用于记录对数据库注册表的更改,这些更改可能包括添加、修改或删除注册信息。具体而言,action 列表示执行的操作类型(例如,INSTALL、UPGRADE、ROLLBACK),而 comments 列通常包含有关操作的说明性注释。

执行类似于以下的 SQL 查询语句:
SELECT action, comments FROM registry$history;
将返回数据库注册表历史记录的相关信息,以便查看对注册表的更改。这对于跟踪数据库升级、安装或其他重要更改的历史记录非常有用

SQL> select action, comments from registry$history;

ACTION
--------------------------------------------------------------------------------
COMMENTS
--------------------------------------------------------------------------------
BOOTSTRAP
RDBMS_19.21.0.0.0DBRU_LINUX.X64_230923

RU_APPLY
Patch applied on 19.3.0.0.0: Release_Update - 190410122720

RU_APPLY
Patch applied from 19.3.0.0.0 to 19.13.0.0.0: Release_Update - 211004165050


ACTION
--------------------------------------------------------------------------------
COMMENTS
--------------------------------------------------------------------------------
RU_APPLY
Patch applied from 19.13.0.0.0 to 19.21.0.0.0: Release_Update - 230930151951


上面的是19.0升级到19.3.0.0.0
现在19.3.0.0.0升级到19.21.0.0.0
安装完成!

在这里插入图片描述
根据这个opatch里面的补丁信息,ocw是集群用的,暂时不需要。

[oracle@fysczdb23:/oracle/app/oracle/product/19c/db_1/OPatch]$./opatch lspatches
35643107;Database Release Update : 19.21.0.0.231017 (35643107)
29585399;OCW RELEASE UPDATE 19.3.0.0.0 (29585399)

OPatch succeeded.

打完补丁以后这里就要把监听启动:

lsnrctl start

这里有个问题,在sql里面不能回滚,需要安装

rlwrap-0.42.tar.gz

上传到backup, tar -xvf rlwrap-0.42.tar.gz ,在root权限下cd /etc/yum.repos.d 安装 yum install readline-devel
安装结束以后,返回到解压的包里面,输入 ./configure , 等待安装结束 在输入 make , make check测试测试的说明。这通常包括一些示例命令,以确保 rlwrap 正确工作。 make install 最后使用 make install 来安装 rlwrap , 最后输入 rlwrap --version 验证版本号。
然后要在oracle配置环境里面添加这两句话

cat ~/.bash_profile 
vi  ~/.bash_profile

alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'      #ps:在rman下也可运行
source  ~/.bash_profile

6.oracle19c for linux 数据库基础操作的后期配置:

6.1 Oracle 19c的启停

停止:

sqlplus "/as sysdba"
shutdown immediate;
lsnrctl stop
reboot

启动:

su - oracle
sqlplus '/as sysdba'
startup;
exit
lsnrctl start

6.2 Oracle 19c登录与使用

oracle 表空间创建(建立20m的)

CREATE TABLESPACE itpux
DATAFILE '/oracle/app/oracle/oradata/FYSZCDB/itpux01.dbf' SIZE 20M;

Oracle用户创建(创建了一个名为 “itpux” 的用户,密码为 “123456”,并将该用户授予了 “DBA”(数据库管理员)角色)

create user itpux identified by 123456  default tablespace itpux;
grant dba to itpux;


sqlplus "/as sysdba";
conn itpux/123456@fyszcdb;
create table itpuxt1(id number(12) primary key, name varchar(20)) ;
insert into itpuxt1 values(1,'itpux01');
insert into itpuxt1 values(2,'测试数据02');
commit;       #提交事务

select * from itpuxt1;

自己去安装客户端:
win client
oracle client 32/64bit
plsql 32/64bit
在客户端操作就可以了

6.3 180密码问题及关闭审计

select * from dba_profiles where profile='DEFAULT' and
resource_name='PASSWORD_LIFE_TIME';
alter profile default limit password_life_time unlimited;
show parameter audit
alter system set audit_trail=none scope=spfile;

6.4Oracle 数据库中的关键性能参数

sga_max_size
sga_target
db_files
processes
open_cursors


alter system set db_files=8192 scope=spfile;
alter system set processes=2000 scope=spfile;
alter system set open_cursors=2000 scope=spfile;

6.5 19c em管理器使用


SELECT DBMS_XDB.gethttpport FROM dual;
SELECT DBMS_XDB_CONFIG.gethttpsport FROM dual;
EXEC DBMS_XDB_CONFIG.sethttpsport(5500);
https://<hostname>:<port>/em/

使用的是 Oracle 19c,可以通过以下步骤启动 Database Express:

确保 Oracle 数据库实例正在运行。

打开 Web 浏览器,并访问以下 URL:

https://192.168.0.23:5500/em/shell

6.6 Oracle19C数据库归档与闪回设置

6.61配置归档
alter system set db_recovery_file_dest_size=100g;
alter system set db_recovery_file_dest='/archive';
shutdown immediate;
startup mount   #启动到mount状态才能去改归档
alter database archivelog;
alter database open;   #打开归档
archive log list;    #查看归档信息

启动闪回#alter database flashback ON;

shutdown immediate;
startup

archive log list;
alter system switch logfile;
SQL> archive log list;
Database log mode	       Archive Mode
Automatic archival	       Enabled
Archive destination	       USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     13
Next log sequence to archive   17
Current log sequence	       17

$ rman catalog username/password@alias

文章来源:https://blog.csdn.net/weixin_43798406/article/details/134859367
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。