当前位置: 首页 > news >正文

银河麒麟V10 + Oracle 19c静默安装后,别忘了这几步:开机自启、RMAN备份与systemd服务配置全指南

银河麒麟V10环境下Oracle 19c生产级运维实战:从systemd集成到备份策略优化

当Oracle 19c在银河麒麟V10系统上完成静默安装后,真正的挑战才刚刚开始。许多DBA在基础安装环节投入大量精力,却往往忽视了将数据库转化为稳定生产系统的关键配置步骤。本文将揭示那些容易被忽略但至关重要的后期配置细节,帮助您构建一个具备企业级可靠性的数据库环境。

1. 深度集成systemd服务管理

传统rc.local方式管理Oracle服务早已不符合现代运维标准。银河麒麟V10作为systemd原生系统,为Oracle服务管理提供了更专业的解决方案。

1.1 服务单元文件深度定制

创建/usr/lib/systemd/system/oracle-19c.service文件时,需要特别注意麒麟系统的特性:

[Unit] Description=Oracle Database 19c Service After=syslog.target network.target auditd.service RequiresMountsFor=/u01 /arch [Service] Type=forking User=oracle Group=oinstall Environment="ORACLE_HOME=/u01/app/oracle/product/19.3.0/db" Environment="ORACLE_SID=oracle" Environment="LD_LIBRARY_PATH=/usr/lib64:/lib64:$ORACLE_HOME/lib" PIDFile=$ORACLE_HOME/dbs/lk$ORACLE_SID ExecStart=/u01/app/oracle/product/19.3.0/db/bin/dbstart $ORACLE_HOME ExecStop=/u01/app/oracle/product/19.3.0/db/bin/dbshut $ORACLE_HOME TimeoutSec=300 Restart=on-failure RestartSec=30s [Install] WantedBy=multi-user.target

关键配置要点:

  • After参数确保网络和存储挂载完成
  • RequiresMountsFor声明关键目录依赖
  • Type=forking适配Oracle的启动特性
  • TimeoutSec适当延长避免超时误判

1.2 环境变量隔离策略

银河麒麟的安全策略要求特别注意环境隔离:

# /etc/systemd/system/oracle-19c.service.d/env.conf [Service] EnvironmentFile=-/etc/sysconfig/oracle-19c ProtectSystem=full ReadWritePaths=/u01 /arch PrivateTmp=true NoNewPrivileges=true

1.3 服务健康检查机制

添加自定义健康检查脚本/usr/libexec/oracle-healthcheck

#!/bin/bash ORAENV_ASK=NO source /home/oracle/.bash_profile sqlplus -S / as sysdba <<EOF set heading off select status from v\$instance; EOF [ $? -eq 0 ] && exit 0 || exit 1

然后在service文件中添加:

[Service] ExecStartPost=/usr/libexec/oracle-healthcheck

2. RMAN备份体系全构建

备份不是简单的脚本编写,而是包含验证、监控、应急的完整体系。

2.1 多级备份策略设计

采用GFS(祖父-父亲-儿子)备份策略:

备份类型频率保留周期存储位置特点
全量备份每周日4周/arch/backup/full包含所有数据文件
增量1级每周三2周/arch/backup/incr1基于上周全量
增量2级每日7天/arch/backup/incr2基于最近增量
归档日志每小时3天/arch/backup/arch持续备份

2.2 智能备份脚本实现

改进版备份脚本/home/oracle/scripts/rman_backup.sh

#!/bin/bash # 环境检测 [ -f ~/.bash_profile ] && source ~/.bash_profile || exit 1 [ -z "$ORACLE_HOME" ] && exit 1 # 动态参数计算 DAY_OF_WEEK=$(date +%u) BACKUP_TYPE=$([ $DAY_OF_WEEK -eq 7 ] && echo "FULL" || \ [ $DAY_OF_WEEK -eq 3 ] && echo "INCR1" || echo "INCR2") TIMESTAMP=$(date +"%Y%m%d_%H%M%S") LOG_DIR="/home/oracle/scripts/log" [ -d "$LOG_DIR" ] || mkdir -p "$LOG_DIR" # RMAN执行块 $ORACLE_HOME/bin/rman target / log=$LOG_DIR/rman_${BACKUP_TYPE}_${TIMESTAMP}.log <<EOF run { configure retention policy to recovery window of 15 days; configure controlfile autobackup on; configure controlfile autobackup format for device type disk to '/arch/backup/ctl/ctl_%F'; $(case $BACKUP_TYPE in "FULL") echo "backup as compressed backupset database include current controlfile plus archivelog delete input format '/arch/backup/full/full_%d_%T_%s_%p';" ;; "INCR1") echo "backup as compressed backupset incremental level 1 database include current controlfile format '/arch/backup/incr1/incr1_%d_%T_%s_%p';" ;; *) echo "backup as compressed backupset incremental level 2 cumulative database include current controlfile format '/arch/backup/incr2/incr2_%d_%T_%s_%p';" ;; esac) crosscheck backup; crosscheck archivelog all; delete noprompt obsolete; delete noprompt expired backup; } EOF

2.3 备份验证自动化

创建验证脚本/home/oracle/scripts/verify_backup.sh

#!/bin/bash LAST_FULL=$(ls -t /arch/backup/full/* | head -1) $ORACLE_HOME/bin/rman target / <<EOF run { allocate channel for maintenance device type disk; restore validate database from '$LAST_FULL'; release channel; } EOF

3. 归档日志管理高级技巧

归档日志管理不当会导致存储爆炸,需要系统化解决方案。

3.1 智能归档清理策略

在RMAN中配置:

CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON ALL STANDBY BACKED UP 2 TIMES TO DISK;

配合操作系统级清理脚本/home/oracle/scripts/arch_clean.sh

#!/bin/bash # 保留最近3天归档 find /arch/oraarch -type f -name "*.arc" -mtime +3 -delete # 控制归档目录大小不超过80% ARCH_USAGE=$(df -h /arch | awk 'NR==2 {print $5}' | cut -d'%' -f1) [ $ARCH_USAGE -gt 80 ] && find /arch/oraarch -type f -name "*.arc" -delete

3.2 归档目录多路径配置

init.ora中设置:

log_archive_dest_1='LOCATION=/arch/oraarch1 MANDATORY' log_archive_dest_2='LOCATION=/arch/oraarch2 OPTIONAL' log_archive_dest_state_1=ENABLE log_archive_dest_state_2=ENABLE

4. 性能与稳定性调优

银河麒麟V10特有的优化点需要特别关注。

4.1 内核参数补充优化

/etc/sysctl.conf中添加:

# 麒麟特有参数 vm.dirty_ratio = 10 vm.dirty_background_ratio = 5 vm.swappiness = 5 kernel.sched_min_granularity_ns = 10000000 kernel.sched_wakeup_granularity_ns = 15000000

4.2 Oracle内存精细管理

采用混合内存管理模式:

ALTER SYSTEM SET memory_target=0 SCOPE=SPFILE; ALTER SYSTEM SET sga_target=12G SCOPE=SPFILE; ALTER SYSTEM SET pga_aggregate_target=4G SCOPE=SPFILE; ALTER SYSTEM SET db_cache_size=8G SCOPE=SPFILE; ALTER SYSTEM SET shared_pool_size=3G SCOPE=SPFILE;

4.3 存储I/O调度优化

针对银河麒麟的存储配置:

# 查看当前调度器 cat /sys/block/sd*/queue/scheduler # 永久修改为deadline echo 'ACTION=="add|change", KERNEL=="sd*", ATTR{queue/scheduler}="deadline"' \ > /etc/udev/rules.d/60-oracle-disk.rules
http://www.jsqmd.com/news/538904/

相关文章:

  • 终极指南:3招搞定Monaco Editor代码提示延迟,让编码如丝般顺滑
  • Phi-3-mini-4k-instruct开源大模型部署教程:零依赖、免conda、纯Ollama方案
  • 付费墙绕过工具深度解析:技术原理与合规使用指南
  • 颠覆式PS4游戏修改工具:GoldHEN Cheats Manager一站式开源作弊管理器详解
  • ESP32-C6固件烧录保姆级教程:从接线到上电时序,一次搞定所有硬件坑
  • 2026防脱精华液测评推荐:温和控油与强韧发根之选 - 品牌排行榜
  • 哔哩哔哩API架构深度解析:从客户端抽象到企业级应用实战
  • Lano Visualizer:3步打造你的专属桌面音乐视觉盛宴
  • 告别传统拍摄:THE LEATHER ARCHIVE低成本生成高质量皮衣展示图
  • 掘金下沉市场全品类家居赛道,七色纺打造四川转行优选项目品牌 - 深度智识库
  • STM32CubeMX生成的代码到底安不安全?深入HAL库GPIO初始化与while(1)循环的实战避坑指南
  • 轻松破解游戏资源加密难题:RPG Maker Decrypter使用指南
  • Qwen2.5-Coder-1.5B新手指南:如何用‘fill-in-the-middle’模式补全代码
  • 蜜雪冰城的冰鲜柠檬水外卖好吃吗?周末美团半价喝超划算 - 资讯焦点
  • 无代码自动化:OpenClaw+Qwen3.5-9B实现GUI操作录制
  • Sentinel+Docker实战:5分钟搭建微服务流量管控沙盒环境(2024最新镜像)
  • 基于Python的网上商城的设计与实现
  • ELF文件格式解析与Linux可执行文件实践
  • IPD决策引擎解析:如何用DCP构建产品开发的智能导航系统
  • YOLOv13改为单通道模型后,上传灰度图进行推理报通道错误
  • 如何高效实现DMG到IMG的跨平台转换?DMG2IMG实用工具完整指南
  • 如何在3秒内完成窗口应急管理?Boss-Key的隐形守护方案
  • 深入理解栈溢出:我是如何通过CSAPP的AttackLab实验重新认识缓冲区安全的
  • 影视渲染优化全攻略:30字速成指南
  • LLaVA-v1.6-7b真实反馈:开发者实测OCR准确率92.4%(标准测试集)
  • 如何突破音乐格式限制:音频爱好者的格式掌控指南
  • OpenClaw故障排查:QwQ-32B接口调用常见错误解决
  • 美团外卖点必胜客好吗?有什么必点的?|周末半价薅羊毛攻略,新手不踩雷 - 资讯焦点
  • Llama-3.2V-11B-cot效果对比:流式输出vs整块输出在用户理解效率上的差异
  • 从零到一:构建你的第一个智能体应用实战指南