某单位开发了一套新的资产管理系统,由你们公司承接这个项目的建设。
现在你接到技术主管安排的任务是:
明天你去客户现场负责数据库环境的建设。
要求:
1.操作系统:RHEL/OEL/ Centos Linux 7.6x86_64
2.数据库版本:Oracle 19c
3.数据库名:fyszcdb
4.数据库字符集:UTF8
5.数据库块大小:16K
6.数据库空间需求:文件系统1TB+归档
资产管理系统
主机名: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
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列出系统中的物理卷,在慢慢创
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
在保存文件之后,运行 ulimit -a 来使更改生效。
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,以平衡性能和资源使用。
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_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—安装结束后关闭即可
从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
停止:
sqlplus "/as sysdba"
shutdown immediate;
lsnrctl stop
reboot
启动:
su - oracle
sqlplus '/as sysdba'
startup;
exit
lsnrctl start
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
在客户端操作就可以了
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;
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;
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
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