百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

记一次生产数据库二次扩容:Rac+ASM磁盘组扩容-Aix系统

sinye56 2024-10-03 00:40 13 浏览 0 评论

概述

分享下最近对数据库扩容的大致过程,仅供参考。


1、 扩容前准备

1.1. 提供设备清单

将设备的大小和个数给系统和存储工程师,要求在节点上增加新的磁盘,其中 RAC 需要共享磁盘。

1.2. 对数据库进行备份

因为每晚都有做备份,所以这里做个检查就可以了

rman target /
backup full database;

1.3. 检查备份及可恢复性

rman target / 
list?backup?summary;? --概述可用的备份

说明:B表示backup,F表示FULL,A表示archive?log,0?1表示incremental?backup,S说明备份状态(A?AVAILABLE???X?EXPIRED?)


1.4. 备份ASM磁盘头(两个节点的grid用户)

当前系统所有 asm 已使用的 pv 磁盘头均需进行备份

kfed read /dev/rhdisk1 >/home/grid/rhdisk1bak.txt 
kfed read /dev/rhdisk4 >/home/grid/rhdisk4bak.txt 
kfed read /dev/rhdisk6 >/home/grid/rhdisk6bak.txt 
kfed read /dev/rhdisk8 >/home/grid/rhdisk8bak.txt 
kfed read /dev/rhdisk10 >/home/grid/rhdisk10bak.txt 
kfed read /dev/rhdisk11 >/home/grid/rhdisk11bak.txt 
kfed read /dev/rhdisk12 >/home/grid/rhdisk12bak.txt 

2、 新设备调整(两个节点的root用户)

2.1 主机扫描新划的磁盘

cfgmgr
--确认新盘
lspv

2.2. 权限调整(两个节点的root用户)

 chmod 660 /dev/rhdisk13chown grid:dba /dev/rhdisk13ls -l /dev/rhdisk*

注意节点 2 也需要调整确认

2.3. 确认没有PVID(两个节点的root)

 # lspv |grep hdisk--都是NONE就对了

说明:PVID 全称 physical volume identifier,它非常重要,相当于软序列号,当把一个磁盘变成 PV 时, 就生成了 PVID , PVID 是由机器序列号 (uname -m的前

8位 ) 和它生成的时间组成,这种机制保证了 PVID 的唯一性。当系统启动时,磁盘配置程序会寻找磁 盘上的 PVID ,并把它跟 ODM 库中的 PVID 信息进行比对,如果在 ODM 中找到匹配的条目,则把和这个 PVID 相对应的 hdisk 号赋予这个 PV ,如果没有匹配 的条目,则赋予这个 PVID 新的 hdisk 号。

--如果存在 pvid ,需要清空(一定要慎重执行)
/usr/sbin/chdev -l hdisk<X> -a pv=clear 

2.3. 调整RESERVE_POLICY(两个节点的root执行)

如果是为 RAC 数据库添加新磁盘,还需要调整新磁盘的 reserve_policy 应为 no_reserve 或者 reserve_lock 应为no

lsattr -El hdisk13 | grep -E "reserve_policy|reserve_lock"
chdev -l hdisk13 -a reserve_policy=no_reserve
lsattr -El hdisk13 | grep -E "reserve_policy|reserve_lock"

3、 扩容

3.1. 扩容前ASM检查(其中一个节点的grid用户)

$sqlplus / as sysasm
set linesize 1000 pagesize 1000
col state for a20
col path for a50
col name for a30
select path,name,state from v$asm_disk where path like '/dev/rhdisk%' order by 1;
--冗余级别为EXTERNAL
select NAME,STATE,TYPE,TOTAL_MB,FREE_MB from v$asm_diskgroup;

PS:三种冗余方式

1) 外部冗余(external redundancy):

表示Oracle不帮你管理镜像,功能由外部存储系统实现,比如通过RAID技术;有效磁盘空间是所有磁盘设备空间的大小之和。

2) 默认冗余(normal redundancy):

表示Oracle提供2份镜像来保护数据(镜像数据一次),有效磁盘空间是所有磁盘设备大小之和的1/2 (使用最多)。

3) 高度冗余(high redundancy):

表示Oracle提供3份镜像来保护数据(镜像数据两次),以提高性能和数据的安全,最少需要三块磁盘(三个failure group);

有效磁盘空间是所有磁盘设备大小之和的1/3,虽然冗余级别高了,但是硬件的代价也最高。

3.2. 加入新磁盘到磁盘组(其中一个节点的grid用户)

sqlplus / as sysasm
alter diskgroup DATA add disk '/dev/rhdisk13' rebalance power 8;
--其中 power n 区间[0,11],n 越大 REBAL 越快,IO 压力也就越大。
--如果磁盘组是 NOMAL 冗余需要指定 FAILGROUP,如:
--alter diskgroup dgname add failgroup fgname1 disk '/dev/rhdiskpower453’ add failgroup fgname2 disk 
'/dev/rhdiskpower454' [ rebalance power n] ;

3.3、监控REBAL进度

sqlplus / as sysasm
set linesize 1000
col OPERATION format a15
col state for a15
--无记录表示 REBAL 完成
SQL> select * from gv$asm_operation;

3.4、监控告警日志

tail -200f alert_otmdb1.log


4、 扩容后检查

4.1. 扩容后ASM检查

SQL> select NAME,STATE,TYPE,TOTAL_MB,FREE_MB from v$asm_diskgroup;
SQL> select path,name,state from v$asm_disk where path like '/dev/rhdisk%' order by 1;

4.2. 备份新增加的设备

kfed read /dev/rhdisk13 >/home/grid/rhdisk13bak.txt


4.3、检查监听(两个节点)


到这里我们就完成了数据库的扩容了,觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

相关推荐

Linux环境变量设置与查看全攻略

Linux环境变量设置与查看全攻略在Linux系统中,环境变量是用于定义系统和用户级设置的一种方法,它可以影响程序的行为和系统的运行方式。了解如何设置和查看环境变量对于Linux用户来说是非常重要的技...

如何阅读Linux内核源码?Linux内存管理中SLAB分配器(源码分析)

注:本文讲述的SLAB相关代码是基于Linux内核v4.7,代码网址。一,SLAB分配器的由来在讲SLAB分配器之前先说两个概念:内部碎片和外部碎片。外部碎片指的是还没有被分配出去(不属于任何进程)...

Linux下C和C++程序中内存泄露检测

01.前言C/C++运行高效,不管是操作系统内核还是对性有要求的程序(比如游戏引擎)都要求使用C/C++来编写,其实C/C++强大的一点在于能够使用指针自由地控制内存的使用,适时的申请内存和释放内存...

虚拟内存设置、解决linux内存不够问题

虚拟内存设置(解决linux内存不够情况)背景介绍  Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存...

Linux内存管理有页表吗?深入Linux内存原理中页、页表和页框(块)

前言:我们知道,在Linux操作系统中,CPU在执行一个进程的时候,都会访问内存。但CPU并不是直接访问物理内存地址,而是通过虚拟地址空间来间接的访问物理内存地址。所谓的虚拟地址空间,是操作系统为...

Linux 内存分析工具——free命令

在Linux系统经常被用作服务器系统。当服务器内存吃紧的时候,free命令是我们最常使用的内存分析工具。free使用介绍#free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被...

Linux的虚拟内存详解(MMU、页表结构)

linux内核相关视频解析:90分钟了解Linux内存架构,numa的优势,slab的实现,vmalloc原理linux内核的那些坑儿,你遇到过吗内存是程序得以运行的重要物质基础。如何在有限的内存空间...

如何查看服务器配置:核数和内存

1、查看CPU核数cat/proc/cpuinfo|grep'process'|sort|uniq|wc-l1、cpu信息记录在/proc/cpuinfo中2、Linux中的Top相当于...

如何检查 Linux 中的 CPU、内存和交换利用率百分比?

1.核心监控指标解析为什么需要监控这些资源?CPU利用率:反映系统处理任务的繁忙程度,持续高负载可能导致服务延迟。内存占用:物理内存不足会触发Swap交换,显著降低性能。Swap使用率:频繁的Swa...

万字长文详解linux内存管理,值得收藏

一、Linux内存管理概述Linux内存管理是指对系统内存的分配、释放、映射、管理、交换、压缩等一系列操作的管理。在Linux中,内存被划分为多个区域,每个区域有不同的作用,包括内核空间、用户空间、缓...

手机内存扩展压力测试 三台旗舰一台测崩了

最近一段时间,内存扩展技术突然火了起来。几大主流品牌都在自家机型上搭载此技术,从中低端到旗舰机型都有覆盖。大小也从开始的2GB、3GB一直到现在的7GB,一技术真的能如厂商宣传所说的那样,让小内存手机...

关于 Linux中缓存清理的一些笔记

写在前面一个群里看到有小伙伴问,之前有没有遇到过。给了参考意见之后感觉好像不是特别对,有点误人子弟:(。所以总结下,博文的内容涉及Linux内存查看监控缓存清理及参数介绍一个定时清理的脚本归根结底,长...

如何在 Linux 上列出磁盘?这几条命令要会!

在Linux系统中,磁盘管理是系统管理员日常工作中非常重要的一环。了解如何列出系统中的磁盘,不仅有助于检查存储设备的状态,还能帮助管理磁盘分区、文件系统以及存储空间的使用情况。本文将深入介绍在L...

一文读懂Linux内存分配策略

本篇主要以问答的方式来探索Linux内存系统的分配策略Linux进程的内存分布长什么样?在Linux操作系统中,虚拟地址空间的内部又被分为内核空间和用户空间两部分,不同位数的系统,地址空间的范围...

Linux 系统内存不足导致服务崩溃的排查方法

当Linux系统内存不足导致服务崩溃时,以下是一些常见的排查方法:排查方法:查看系统日志:检查系统日志(如/var/log/messages或/var/log/syslog)以查看是否有内存相关的警告...

取消回复欢迎 发表评论: