跳到主要内容

1、oracle

更新于:2023年12月25日

Oracle

img

目录

[toc]

方法:物理数据库服务器扫描hba卡识别共享磁盘命令

2023.1.4(测试成功)

1、问题背景

默认情况,在扩容完1套物理rac共享存储后,rac主机是不能识别共享存储的。那么该怎么办呢?

2、解决办法

例如,在扩容完1套物理rac共享存储后,如果rac主机不能识别共享存储的话(一般需要执行命令后,才可以识别到新增加的共享磁盘!!!),可以执行如下命令。

方法1:#推荐使用次命令,次命令经过工作实践的,是不会影响业务的。
1. 查看主机总线号
root@node /]# ls /sys/class/scsi_host/
host0 host1
2.重新扫描SCSI总线来添加设备
[root@node /]# echo "- - -" > /sys/class/scsi_host/host0/scan
[root@node /]# echo "- - -" > /sys/class/scsi_host/host1/scan


方法2:(这里只做记录,未在实际测试过!)
echo "1" > /sys/class/fc_host/host8/issue_lip #某些存储或系统没有scan文件,可以通issue_lip文件识别

方法3:重启主机。

具体操作过程如下:

1、我侧提供刚扩容上去的硬盘id号,用于业务核对新扩容的磁盘

img

2、业务侧通过如下2条命令在rac的2个节点上刷新hba

🔱 注意:

注意:一般先是通过ls /sys/class/fc_host/查看到rac节点是哪2个hba,然后再到具体的/sys/class/scsi_host/hostx/scan里刷新即可!

(1)查看当前rac节点活动的2个hba口是哪个

cat /sys/class/fc_host/host0/port_name #查看hba的wnn号
cat /sys/class/fc_host/host0/port_state #查看hba的状态 (看下哪2个是online的)


#批量执行命令
cat /sys/class/fc_host/host0/port_name
cat /sys/class/fc_host/host0/port_state

cat /sys/class/fc_host/host1/port_name
cat /sys/class/fc_host/host1/port_state

cat /sys/class/fc_host/host2/port_name
cat /sys/class/fc_host/host2/port_state

cat /sys/class/fc_host/host3/port_name
cat /sys/class/fc_host/host3/port_state

cat /sys/class/fc_host/host4/port_name
cat /sys/class/fc_host/host4/port_state

cat /sys/class/fc_host/host5/port_name
cat /sys/class/fc_host/host5/port_state

cat /sys/class/fc_host/host6/port_name
cat /sys/class/fc_host/host6/port_state

img

img

(2)执行hba刷新命令

记得是要进/sys/class/scsi_host/目录下找到上面找到的2个hba对应scan里进行扫描才行。

记得2个rac节点都要刷新才行

[root@node /]# echo "- - -" > /sys/class/scsi_host/host7/scan
[root@node /]# echo "- - -" > /sys/class/scsi_host/host9/scan

3、验证

通过 multipath -ll命令进行确认:

会发现此时新增的2块2t的硬盘和我侧提供的硬盘id是一致的。

img

img

fdisk sday和fdisk sdaz 是本次新扩容的2块2t盘。

  • 业务这边看到盘才算是rac识到盘:
grid用户:
asmcmd lsdsk --candidate

asmcmd lsdg

刷新hba前:

img

img

刷新hba后:

img

查看表空间

2023年11月8日更新

🍀 正确版:

su - oracle
sqlplus / as sysdba


select f.tablespace_name,a.total,f.free,round((f.free/a.total)*100) "% Free"
from
(select tablespace_name, sum(bytes/(1024*1024)) total from dba_data_files group by tablespace_name) a,
(select tablespace_name, round(sum(bytes/(1024*1024))) free from dba_free_space group by tablespace_name) f
WHERE a.tablespace_name = f.tablespace_name(+)
order by "% Free";

image-20231119112100523

或者:

gpt

oracle查询表空间的命令?

要查询Oracle数据库中的表空间信息,您可以使用以下SQL查询命令:

sql
SELECT tablespace_name, file_name, bytes, maxbytes
FROM dba_data_files;
此查询会从dba_data_files视图中检索表空间的相关信息,包括表空间名称、数据文件名、分配的空间(字节数)以及数据文件的最大大小。这个查询将返回有关每个数据文件的表空间信息。

如果您想要获取更多有关表空间的信息,您可以执行以下查询:

sql
SELECT tablespace_name, status, contents, extent_management, allocation_type, initial_extent, next_extent
FROM dba_tablespaces;
这个查询从dba_tablespaces视图中检索有关表空间的详细信息,包括表空间的状态、内容类型、范围管理方式、分配类型以及初始范围和下一个范围的大小。

请注意,要执行这些查询,您需要具有足够的数据库权限,通常需要具有DBA级别的权限或至少具有表空间查看权限。如果您没有这些权限,您可能需要与数据库管理员联系以获取所需的权限或请求执行这些查询的支持。

FAQ

注意:rac库节点不能轻易重启

对于某一个共享lun,rac 2边的multipath盘符可以是不一致的,multipah这个盘符是可以在udev里控制的;

注意:rac库节点不能轻易重启。

如果在/etc/fstab文件里没做好uuid绑定,或者udev里没做好配置,重启某个节点后,会有问题的。之前的盘符会有问题。

注意:rac库尽量使用一些小盘

注意:业务侧dba说,尽量把4t的盘分成4个1t的小盘,这样性能会好一些

关于我

我的博客主旨:

  • 排版美观,语言精炼;
  • 文档即手册,步骤明细,拒绝埋坑,提供源码;
  • 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!

🍀 微信二维码 x2675263825 (舍得), qq:2675263825。

image-20230107215114763

🍀 微信公众号 《云原生架构师实战》

image-20230107215126971

🍀 语雀

https://www.yuque.com/xyy-onlyone

image-20230912072007284

🍀 csdn https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421

image-20230107215149885

🍀 知乎 https://www.zhihu.com/people/foryouone

image-20230107215203185

最后

好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!

image-20230911210157421

1