Oracle Linux 8.10安装Oracle19c(19.3.0)完整教程

一给  金牌会员 | 2024-9-10 02:15:01 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 541|帖子 541|积分 1623

安装前请仔细将文档通读一遍,安装过程中根据安装命令仔细核对,特别留意一些字体加粗或标红的字样,遇到问题请及时咨询公司
  1、基础环境
1.1、利用系统
cat /etc/redhat-release

1.2、主机名
医院默认分配的主机名可能跟其他主机会有重复,以是分配给聪明护理的数据库服务器建议欺压改下名。
1.2.1、查询主机名
hostnamectl
1.2.2、修改主机名
vi /etc/hostname
修改主机名为:ZHHL-DB
1.2.3、重启
主机名修改后需要重启才华生效,执行reboot命令后,正常启动,可以看到命令左侧的主机名已变更:

1.2.4、主机名与IP绑定
输入ifconfig查询当前服务器的IP所在,IP所在较为敏感,大家自行获取,获取到IP后编辑系统主机署理文件:
vi /etc/hosts

2、环境准备
2.1、创建Oracle用户和用户组
以下命令在root用户下执行:
  1. groupadd oinstall
  2. groupadd dba
  3. groupadd oper
  4. useradd -g oinstall -G dba,oper oracle
复制代码
修改oracle用户的密码:
passwd oracle
修改oracle用户的密码为:12345678
一连两次输入重复密码确认即可(忽略中心密码规则复杂度校验的提示)

2.2、创建文件夹并赋予权限
以下命令在root用户下执行:
  1. mkdir -p /home/oracle/product/19.3.0/dbhome_1
  2. mkdir -p /home/oracle/oraInventory
  3. mkdir -p /home/oracle/oradata
  4. mkdir -p /home/oracle/oradatabak
  5. chown -R oracle:oinstall /home/oracle/* chmod -R 775 /home/oracle/*
复制代码
2.3、安装Oracle依赖包
2.3.1、下载依赖包和Oracle安装包

2.3.2、安装依赖包
以下命令在root用户下执行:
  1. unzip oracle-preinstall-oraclelinux8.zip
  2. cd oracle-preinstall-oraclelinux8/
  3. rpm -Uvh ./* --nodeps --force
复制代码
2.3.3、放置安装包
将oracle19C安装包拷贝到/home/oracle/product/19.3.0/dbhome_1目录下面,然后分配用户组,授权。以下命令在oracle用户下执行:
  1. su - oracle
  2. cd /home/oracle/product/19.3.0/dbhome_1/
  3. unzip Oracle_19c_LINUX.X64_193000_db_home.zip
复制代码
2.3.4、配置利用系统limits限制参数
在2.3.2步调中,只要正确执行了安装依赖包的步调,在Oracle Linux8.10利用系统中,安装这些依赖会默认修改利用系统的部门参数配置,包括以下利用系统Limits限制参数,相应修改的配置文件在:/etc/security/limits.d/oracle-database-preinstall-19c.conf 中,可作为参考。
以下命令在root用户下执行:
  1. vi /etc/security/limits.conf
  2. * soft nproc 16384
  3. * hard nproc 16384
  4. * soft nofile 65535
  5. * hard nofile 65535
  6. * soft memlock 3145728
  7. * hard memlock 3145728
复制代码
调整利用系统层面硬限制:
  1. vi /etc/systemd/system.conf
  2. DefaultLimitNOFILE=65535
复制代码
2.3.5、配置登录PAM验证
以下命令在root用户下执行:
  1. vi /etc/pam.d/login
  2. session required pam_limits.so
复制代码

2.3.6、修改利用系统内核参数
假如确定已执行2.3.2提前已安装oracle-preinstall依赖包,则在安装依赖包时会自动设置利用系统内核参数。不外最好核验下,防止安装依赖时未自动设置的情况
  1. vi /etc/sysctl.conf
  2. # 以下内容时编辑sysctl.conf配置文件的内容
  3. fs.file-max = 6815744
  4. kernel.sem = 250 32000 100 128
  5. # kernel.shmmax是共享内存,用内存 * 1024 * 1024 * 1024 * 0.9 算出结果,详细的对照表参考下方表格
  6. kernel.shmmax = 123695058124
  7. # kernel.shmall=kernel.shmmax / 4KB 算出来
  8. kernel.shmall = 30923764531
  9. kernel.shmmni = 4096
  10. kernel.panic_on_oops = 1
  11. net.core.rmem_default = 4194304
  12. net.core.rmem_max = 4194304
  13. net.core.wmem_default = 262144
  14. net.core.wmem_max = 1048576
  15. fs.aio-max-nr = 1048576
  16. net.ipv4.ip_local_port_range = 9000 65500
复制代码
修改完系统内核参数后,执行“sysctl -p”使之生效。
以下是根据部门服务器内存可参考的配置快查表:
内存
kernel.shmall
kernel.shmmax
4GB
1932735283
7730941132
16GB
3865470566
15461882265
32GB
7730941132
30923764531
64GB
15461882265
61847529062
128GB
30923764531
123695058124
2.3.7、扩展虚拟内存(可选)
如是内存小于4G,才需要执行此步调,否则背面会报内存不足的问题,有些虚拟机会报,购买的云服务器如果小于4G,则必须执行此步调,如果大于4G,则跳过此步直接执行下一步。
以下命令在root用户下执行:
  1. # 使用dd命令创建名为swapfile 的swap交换文件,count指定扩展4G虚拟内存
  2. dd if=/dev/zero of=/var/swapfile bs=1024 count=4194304
  3. # 对交换文件格式化并转换为swap分区
  4. mkswap /var/swapfile
  5. # 挂载并且激活分区
  6. swapon /var/swapfile
  7. # 查看新swap分区是否激活
  8. free -h
  9. # 修改 fstab 配置,设置开机自动挂载该分区,添加如下代码
  10. vim /etc/fstab
  11. /var/swapfile swap swap defaults 0 0
复制代码
2.3.8、设置Oracle用户环境变量
以下命令在oracle用户下执行:
  1. vi /home/oracle/.bash_profile
  2. # 以下内容可直接粘贴至这个配置文件中
  3. export CV_ASSUME_DISTID=OL7
  4. export PATH
  5. export TMP=/tmp
  6. export LANG=en_US
  7. export TMPDIR=$TMP
  8. export ORACLE_UNQNAME=orcl
  9. export ORACLE_SID=orcl
  10. export ORACLE_BASE=/home/oracle
  11. export ORACLE_HOME=/home/oracle/product/19.3.0/dbhome_1
  12. export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS" PATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/bin
  13. # 配置文件中粘贴内容截止到此
  14. source /home/oracle/.bash_profile
复制代码
需要注意的是,每次登录oracle都需要应用一次环境变量,如果想让他永世生效,则需要把上面的内容同步添加到 /home/oracle/.bashrc 这个配置文件中
3、摆设安装
3.1、安装数据库软件
以下命令在oracle用户下执行:
  1. cd /home/oracle/product/19.3.0/dbhome_1/install/response/
  2. cp db_install.rsp db_install.rsp.bak
  3. vi db_install.rsp
  4. # 以下在db_install.rsp配置文件中修改编辑
  5. oracle.install.option=INSTALL_DB_SWONLY
  6. UNIX_GROUP_NAME=oinstall
  7. INVENTORY_LOCATION=/home/oracle/oraInventory
  8. ORACLE_HOME=/home/oracle/product/19.3.0/dbhome_1
  9. ORACLE_BASE=/home/oracle
  10. oracle.install.db.InstallEdition=EE
  11. oracle.install.db.OSDBA_GROUP=dba
  12. oracle.install.db.OSOPER_GROUP=dba
  13. oracle.install.db.OSBACKUPDBA_GROUP=dba
  14. oracle.install.db.OSDGDBA_GROUP=dba
  15. oracle.install.db.OSKMDBA_GROUP=dba
  16. oracle.install.db.OSRACDBA_GROUP=dba
  17. oracle.install.db.rootconfig.executeRootScript=false
  18. # 以上db_install.rsp配置文件截止编辑
  19. # 以下命令开始执行安装
  20. $ORACLE_HOME/runInstaller -silent -responseFile $ORACLE_HOME/install/response/db_install.rsp
复制代码
重新开一个xshell窗口,登录root账号,以root用户执行下面2个脚本,第一个脚本是对目录和用户组权限的一些修改,第二个是查抄日志是否有错误。
/home/oracle/oraInventory/orainstRoot.sh
/home/oracle/product/19.3.0/dbhome_1/root.sh

3.1.1 异常情况处置惩罚
若出现如下错误,
CAUSE: Some of the mandatory prerequisites are not met. See logs for details. /u01/app/oraInventory/logs/InstallActions2021-08-20_11-08-55PM/installActions20 21-08-20_11-08-55PM.log
需要忽略报错,再执行两个脚本(没有报错忽略此利用)
  1. $ORACLE_HOME/runInstaller -ignorePrereq -silent -responseFile $ORACLE_HOME/install/response/db_install.rsp
复制代码
注意:在这里会有有一个问题,如果只天生了root.sh,没有orainstroot.sh脚本,分析你之前装过oracle,且卸载的时间没有删除/etc/oraInst.loc文件,此时就只会天生root.sh一个脚本, 只执行者一个即可。
3.2、启动监听
以下命令在oracle用户下执行:
  1. lsnrctl status
  2. # 若是遇到“bash: lsnrctl: command not found...”的问题,需要使用“source /home/oracle/.bash_profile”重新应用环境变量
  3. # 打开监听 lsnrctl start
复制代码
3.3、创建监听(可选)
假如3.2启动监听时发现没有找到监听,使用以下命令创建监听,使用oracle用户执行以下命令:
  1. # 执行创建监听命令
  2. netca /silent /responseFile $ORACLE_HOME/assistants/netca/netca.rsp
  3. # 查看监听
  4. lsnrctl status
  5. # 打开监听
  6. lsnrctl start
复制代码
3.4、创建数据库
以下命令在oracle用户下执行:
  1. cd /home/oracle/product/19.3.0/dbhome_1/assistants/dbca/
  2. cp dbca.rsp dbca.rsp.bak
  3. # 修改dbca.rsp配置文件
  4. vi dbca.rsp
  5. # 以下是配置文件中的需要调整的配置项
  6. gdbName=orcl
  7. sid=orcl
  8. databaseConfigType=SI
  9. templateName=General_Purpose.dbc
  10. # 数据库默认管理员密码DBA123456
  11. sysPassword=ZHHL1234
  12. systemPassword=ZHHL1234
  13. datafileDestination={ORACLE_BASE}/oradata
  14. characterSet=AL32UTF8
  15. nationalCharacterSet=UTF8
  16. listeners=LISTENER
  17. # 原则上是sga_target占物理内存的75%,pga_aggregate_target占物理内存的25%。以下是依据128GB内存设置
  18. # 可以自行根据实际内存设定换取更好的性能 initParams=processes=3000,sga_target=98304MB,pga_aggregate_target=32768MB
复制代码
执行以下命令开始安装数据库:
  1. dbca -silent -createDatabase -responseFile /home/oracle/product/19.3.0/dbhome_1/assistants/dbca/dbca.rsp
复制代码
开始安装数据库,安装数据库持续时间较长。
3.4.1、异常情况一

出现此错误,则在oracle用户下执行:
lsnrctl start
3.4.2、异常情况二
若出现以下报错:
[FATAL] [DBT-50000] Unable to check for available memory. [FATAL] [DBT-50001] Unable to check the value of kernel parameter {0}
则执行安装脚本添加一个参数,去掉内存查抄:
  1. dbca -silent -createDatabase -J-Doracle.assistants.dbca.validate.ConfigurationParams=false -responseFile /home/oracle/product/19.3.0/dbhome_1/assistants/dbca/dbca.rsp
复制代码
到此数据库安装就已经完成了,下面开始举行测试和调优设置。
若数据库未自动启动,以下命令在oracle用户下执行:
  1. sqlplus / as sysdba
  2. startup
复制代码
使用plsql连接数据库后,执行select * from v$instance查看实例状态:

3.5、数据库调优
3.5.1、配置开机自启动
通过各步调已完成数据库的安装,但存在数据库实例不会开机自启动的问题,即服务器重新启动后,数据库服务自动启动,但数据库实例不会自动,需要单独配置才华开机自启动。
dbca建库时都会自动创建/etc/oratab文件
以下命令在root用户下执行:
  1. vi /etc/oratab
  2. # 以下是oratab配置文件中的需要修改的内容
  3. # 将“orcl:/home/oracle/product/19.3.0/dbhome_1:N”,改为“orcl:/home/oracle/product/19.3.0/dbhome_1:Y”
  4. # orcl为实例名;/home/oracle/product/19.3.0/dbhome1为oracle安装目录;会因安装的情况不同而有所不同
  5. orcl:/home/oracle/product/19.3.0/dbhome_1:Y
复制代码

编辑/etc/rc.d/rc.local启动文件,添加数据库启动脚本dbstart
  1. vi /etc/rc.d/rc.local
  2. # 以下是rc.local配置文件中的内容
  3. # 末尾添加:
  4. su - oracle -lc "/home/oracle/product/19.3.0/dbhome_1/bin/lsnrctl start"
  5. su - oracle -lc /home/oracle/product/19.3.0/dbhome_1/bin/dbstart
  6. # 如果实例名SID不是orcl,则可以添加以下命令,替换实例名ORCL部分
  7. su - oracle -lc"/home/oracle/product/19.3.0/dbhome_1/bin/lsnrctl start ORCL"
  8. su - oracle -lc /home/oracle/product/19.3.0/dbhome_1/bin/dbstart
  9. # 以上配置文件截止,命令中-c代表执行脚本,脚本dbstart中指定启动的实例,脚本lsnrctl中启动配置的监听
复制代码
为使得rc.local配置文件生效,记得执行以下命令使这个配置文件生效:
chmod +x /etc/rc.d/rc.local
最后使用“reboot”命令验证下数据库服务和监听是否自动启动(上线前务须要验证至少一遍)。
3.5.2、初始化表空间
以下脚本需要用SYSTEM用户登录PL/SQL_Developer的SQL窗口执行。
创建表空间,用于存放业务用户干系对象,包括表、视图、存储过程等数据库对象及业务数据,创建原则为:硬盘满意医院病历业务数据库存储需求,包括空间巨细,读写速度,安全性等,服务器挂有硬盘柜且原设计用于数据存储的,要把数据存储目录创建到盘符上。
创建DBF文件前,先查抄下当前服务器的“数据盘”(也就是容量最大)的盘符在哪个目录下,牢记务必在盘符最大的目录下创建,不要在系统盘里创建数据文件,很容易上线没多久就磁盘被占满,引发线上事故。
这里,假设以“/home”路径就是当前服务器的数据库挂载路径为例举行创建:
  1. # 以下以创建DEMO(DEMO)关联的数据文件为例:
  2. CREATE TABLESPACE DEMO_DATA DATAFILE '/home/oracle/oradata/DEMO_DATA01.DBF' SIZE 30G AUTOEXTEND ON NEXT 200M;
复制代码
增加表空间数据文件,每个数据文件最大为32G容量,不同规模医院配置的数据文件数量不同,可在摆设摆设服务器时,一次性增加完成,也可后期增加,一样平常是在摆设服务器数据库时一次增加满意未来1~2年的使用,增加时数据文件定名安照名称+序号的定名方式,具体巨细参考值:二级医院200G以上,需要7个数据文件,即32G*7=224G,三级医院300G以上,需要10个数据文件,即32G*10=320G。
增加第二个数据文件脚本:
  1. ALTER TABLESPACE HLBL_DATA ADD DATAFILE '/home/oracle/oradata/HLBL_DATA02.DBF' SIZE 30G AUTOEXTEND ON NEXT 200M;
复制代码
依次类推,逐步增加到本身需要的数据文件数量。
3.5.3、初始化用户
以下脚本需要用SYSTEM用户登录PL/SQL_Developer的SQL窗口执行。
创建用户脚本 :
  1. CREATE USER DEMO IDENTIFIED BY USER1234 DEFAULT TABLESPACE DEMO_DATA
  2. # 用户名称:DEMO
  3. # 用户赋值权限:
  4. GRANT CONNECT,RESOURCE,DBA TO DEMO;
复制代码
3.5.4、参数调优
以下脚本需要用SYSTEM用户登录PL/SQL_Developer的SQL窗口执行。
  1. # 修改用户密码默认有效期不限制
  2. ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
  3. # 修改账户密码错误次数限制
  4. alter PROFILE default limit failed_login_attempts unlimited;
  5. # 关闭审计
  6. alter system set audit_trail=none scope=spfile;
  7. # 关闭延迟段创建
  8. alter system set deferred_segment_creation=FALSE;
  9. # 禁用基数反馈和LGWR日志自适应切换
  10. alter system set "_optimizer_use_feedback"=FALSE scope=spfile sid='*';
  11. alter system set "_use_adaptive_log_file_sync"=false scope=spfile sid='*';
  12. alter system set "_optimizer_adaptive_cursor_sharing"=FALSE scope=spfile;
  13. alter system set "_optimizer_extended_cursor_sharing"=NONE scope=spfile;
  14. alter system set "_optimizer_extended_cursor_sharing_rel"=NONE scope=spfile;
  15. alter system set "_undo_autotune"=FALSE scope=spfile;
  16. alter system set "_optimizer_null_aware_antijoin"=FALSE scope=spfile;
  17. alter system set "_partition_large_extents"=FALSE scope=spfile;
  18. alter system set "_memory_imm_mode_without_autosga"=false sid='*' scope=spfile;
  19. alter system set "_b_tree_bitmap_plans"=false sid='*' scope=spfile;
  20. alter system set "_optimizer_reduce_groupby_key"=off scope=spfile sid='*';
  21. alter system set "_PX_use_large_pool"=TRUE scope=spfile;
  22. # 修改数据库允许最大连接数
  23. alter system set processes = 3000 scope = spfile;
  24. # 以上设置项需要重启数据库服务才能生效:
  25. shutdown immediate;
  26. startup;
复制代码
由于系统数据库一部门数据使用CLOB数据类型存储,在导出备份时用时较长,数据库系统在导出查询数据时,超出UNDO_RETENTION设置的长时,容易造成读取数据不一致,造成导出数据时包罗CLOB数据类型的表无法正常导出,备份文件缺少个别表的问题。
修改数据库系统级undo_retention参数值脚本:
  1. ALTER SYSTEM SET UNDO_RETENTION=1800;
  2. # 查询出所有clob数据类型的字段及所属表,并拼接成修改retention属性值的字符串
  3. select 'ALTER TABLE ' ||TABLE_NAME||' MODIFY LOB ('||column_name||')(RETENTION);' from user_TAB_columns where data_type='CLOB' ORDER BY TABLE_NAME;
复制代码

执行修改各个表参数脚本:
  1. ALTER TABLE BB_AGI_CON MODIFY LOB (MR_TYPE_SET)(RETENTION);
  2. ALTER TABLE BB_AGI_EVE MODIFY LOB (EVENT_SQL_XML)(RETENTION);
  3. ALTER TABLE BB_BAS_KB MODIFY LOB (BLOB_CONT)(RETENTION);
  4. ALTER TABLE BB_CERT_INFO MODIFY LOB (CERT_PIC)(RETENTION);
  5. ALTER TABLE BB_CON_ELEM MODIFY LOB (MON_ELEM)(RETENTION);
  6. ALTER TABLE BB_CON_RELA MODIFY LOB (CON_UNIT)(RETENTION);
  7. ALTER TABLE BB_CON_XOR MODIFY LOB (KEY_WORD)(RETENTION);
  8. ALTER TABLE BB_CON_XOR MODIFY LOB (REJE_ELEM)(RETENTION);
  9. ALTER TABLE BB_MR_MARK MODIFY LOB (QC_EMPH)(RETENTION); ……
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

一给

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表