ASM磁盘管理:从初始化参数到自动化管理的全面解析

文章目录

      • 一、引言
      • 二、ASM初始化参数
      • 三、ASM三大系统权限
      • 四、ASM实例的启停
        • 1.Oracle ASM的启停可以通过两种方式进行
        • 2.查看集群中的资源状态
        • 3.配置 ASM资源随着系统启动而启动
        • 4.配置数据库实例随着ASM启动而启动
      • 五、数据库实例与ASM的交互
      • 六、 启动策略详解
      • 七、 ASM后台进程
      • 八、ASMCMD命令使用
      • 九、图形化界面和手工创建磁盘组
        • 图像化创建磁盘组
        • 手工创建磁盘组
      • 十、ASM相关常用命令
      • 十一、向ASM磁盘组中添加磁盘

一、引言

ASM作为Oracle数据库的关键组件,提供了高性能、可靠性和便捷性的存储管理服务,解决了存储管理上的许多难题。它可以在不同的数据库环境中使用,并提供丰富的功能和选项来满足各种需求。

  1. 便于管理和高性能的集群文件系统:ASM提供了一个方便管理的文件系统,可以有效地管理大量的Oracle数据文件、日志文件和控制文件。它可以在集群环境中提供高性能的存储管理服务。

  2. 自动管理Oracle数据文件、日志文件、控制文件等:ASM可以自动管理数据库的各种文件,包括数据文件、日志文件和控制文件。它会自动将这些文件分散在不同的磁盘上,以提供更好的性能和可靠性。

  3. 自动将数据在不同的磁盘间负载均衡:ASM可以自动将数据在存储设备之间平衡分布,从而实现负载均衡。它会根据容量、性能等因素自动调整数据的分布,以提高存储效率。

  4. 提供完整的磁盘镜像(故障组 数据冗余):ASM通过使用故障组来提供数据冗余和高可用性。它会将数据文件复制到不同的磁盘上,以提供完整的磁盘镜像。如果一个磁盘出现故障,ASM可以自动将数据从镜像磁盘中恢复。

  5. 解决存储管理上的难题(共享存储、负载均衡):ASM解决了存储管理中的一些难题,比如共享存储和负载均衡。它可以在集群环境中实现共享存储,并根据负载情况自动调整数据的分布,提高系统的性能和可用性。

  6. 可用于单实例或RAC数据库:ASM可以用于单实例数据库或Real Application Cluster (RAC) 数据库。它能够适应不同的数据库环境,并提供相应的存储管理服务。

  7. 使用OMF模式:ASM支持使用Oracle Managed Files (OMF) 模式。OMF可以简化数据库管理操作,自动为数据库对象生成适当的文件名,并自动管理文件的位置和大小。

在这里插入图片描述

二、ASM初始化参数

Oracle Automatic Storage Management (ASM) 是 Oracle数据库的一个特性,它提供了一个统一、高性能的存储解决方案。在使用 ASM 进行磁盘管理之前,理解其初始化参数至关重要。这些参数决定了 ASM 的行为和性能。

1.INSTANCE_TYPE参数:当该参数设置为 ASM 时,表示这是一个 ASM 实例。当该参数设置为 RDBMS 时,则表示这是一个数据库实例。

如:
在这里插入图片描述
2.asm_power_limit参数:该参数控制 ASM 重新平衡操作速度。它的值范围为 1 到 11,其中 1 表示速度最慢,11 表示速度最快。默认值为 1。

3.asm_diskstring参数:该参数是一个与操作系统相关的值,在启动 ASM 实例时使用。它限制了 ASM 搜索磁盘时所考虑的磁盘集。磁盘集主要用于创建 ASM 磁盘组。在使用磁盘集里的磁盘创建 ASM DISK GROUP 时,需要满足一些条件,如属组、权限和磁盘映射是否正确等。
4.asm_diskgroups参数:该参数指定了 ASM 实例要装载的磁盘组的名称列表。当 ASM 实例启动时或使用 ALTER DISKGROUP ALL MOUNT 命令时,ASM 实例将装载这些磁盘组。该参数没有默认值,通常由 ASM 自动维护。
5.asm_preferred_read_failure_groups: 指定包含首选读取磁盘的故障组

6.large_pool_size: 该参数指定 ASM 实例用于大内存请求的内存池的大小,单位为字节。默认情况下,该参数的值为 12 MB,但是可以更改为一个较大的值以适应 ASM 实例的实际需求。
如:
ALTER SYSTEM SET asm_large_pool_size= SCOPE=SPFILE;
7.remote_login_passwordfile:指定ORACLE软件是否检查密码文件。默认值是’EXCLUSIVE’

8.ASM memory_max_target:该参数定义了 ASM 实例可以使用的最大内存量,单位为字节。这个参数可以控制 ASM 实例的整体内存使用,包括 SGA 和 PGA。ASM 实例将根据需要自动调整 SGA 和 PGA 的大小,以提供合适的内存资源。

9.memory_target:该参数定义了 ASM 实例对于所有 SGA 和 PGA 内存的总体分配目标,单位为字节。与 ASM memory_max_target 类似,memory_target 也可以自动调整 SGA 和 PGA 的大小,以适应实际的内存需求。

这两个参数可以在 ASM 实例启动时或者动态地进行修改。需要注意的是,修改这些参数可能需要对 ASM 实例进行重启或者重新启动相关的内存组件。

可以使用以下 SQL 命令来修改这些参数:

ALTER SYSTEM SET ASM_MEMORY_MAX_TARGET=<value> SCOPE=SPFILE; 静态参数
ALTER SYSTEM SET MEMORY_TARGET=<value> SCOPE=both;

三、ASM三大系统权限

在 Oracle ASM 中,有三个重要的系统权限,也被称为 ASM 三大系统权限,它们是:

SYSASM:SYSASM 是用于管理 ASM 实例和磁盘组的最高权限角色。持有 SYSASM 权限的用户可以创建、配置、启动和停止 ASM 实例,创建和管理磁盘组,以及执行涉及 ASM 实例和磁盘组的管理任务。

SYSDBA:SYSDBA 是数据库的最高权限角色,也拥有对 ASM 实例的管理权限。SYSDBA 用户具有与 SYSASM 相似的权限,可以执行对 ASM 实例和磁盘组的管理操作。

SYSOPER:SYSOPER 是一种较低级别的权限角色,用于执行一些常见的操作,如启动和关闭数据库、备份和恢复数据库等。SYSOPER 角色也可以访问 ASM 实例,并执行一些限制的 ASM 管理操作,如启动和关闭 ASM 实例,创建和删除磁盘组。

四、ASM实例的启停

1.Oracle ASM的启停可以通过两种方式进行

srvctl启动ASM实例
使用srvctl实用程序。这是Oracle Grid Infrastructure (GI) 提供的一个命令行工具,可以用来管理包括ASM在内的多个Oracle组件。
启动ASM实例的命令

srvctl start asm

srvctl停止ASM实例

srvctl stiop  asm

命令行来启停Oracle ASM
grid用户
sqlplus / as sysasm

ASM实例关闭:

shutdown immediate/transcational:ASM在关闭之前会nomount掉所有磁盘组并关闭实例。这种关闭模式将等待任何正在进行的SQL执行完成。ASM不等待当前与实例连接的用户断开连接。如果任何数据库实例与ASM实例连接。则SHUTDOWN将会关闭数据库。

shutdown normal(shutdown):ASM在关闭之前会nomount掉所有磁盘组并关闭实例。这种关闭模式将等待任何正在进行的SQL执行完成。ASM将等待所有当前连接的用户与该实例上断开。如果任何数据库实例与ASM实例连接。则SHUTDOWN将会关闭数据库。NOMAL是默认的关闭模式。

abort:ASM实例立即关闭。不按照顺序卸载(nomount)磁盘组。如果有任何数据库实例与ASM实例连接的话,则该数据库实例也将中止。

ASM实例启动:

startup nomount:启动ASM实例而不挂载任何磁盘组。只是读取初始化参数
startup mount:挂载ASM_DISKGOURPS下指定的磁盘组。
startup 正式开启实例

restrict:在受限模式下启动实例可以与startup (nomount/mount)相关语句连用
在受限模式下。数据库实例不能使用磁盘组。即数据库无法打开磁盘组中的文件
受限模式的主要作用就是去做一些相关检查工作

两种启动方式的区别
srvctl start asm 会带着数据库一起启动
sqlplus / as sysasm
startup 不会启动数据库

2.查看集群中的资源状态

crsctl stat res -t是 CRS (Cluster Ready Services) 控制命令,用于检查和显示整个集群中的资源状态。
该命令列出了当前集群中所有 CRS 资源的摘要信息,包括资源名称、资源类型、当前状态、目标状态和节点名称,以及其他关键信息。

命令输出的字段含义:

NAME:资源名称

TARGET:资源的目标状态

STATE:资源的当前状态

SERVER:资源所在的节点名称

STATE_DETAILS:描述当前资源状态的详细信息
在这里插入图片描述

3.配置 ASM资源随着系统启动而启动

crsctl enable has 是一个命令,用于启用 Oracle Clusterware 的高可用服务(High Availability Services,简称 HAS)。

在 Oracle Grid Infrastructure(先前称为 Oracle Clusterware)中,HAS 是负责管理和监控集群资源和服务的组件。当启用 HAS 后,它将负责监视和自动重新启动集群中的组件和服务,确保它们在发生故障或节点重启时保持可用。

要使用crsctl enable has 命令启用 HAS,请遵循以下步骤:

使用 root/grid户登录到集群中的任一节点。

打开终端窗口或命令行界面,并执行以下命令来启用 HAS:

crsctl enable has

运行此命令后,服务器在操作系统启动时自动启动HAS服务

您可以使用以下命令来检查 HAS 的状态:

crsctl check has

这将验证 HAS 的配置和启用状态,并显示相关信息。

禁用 Oracle 高可用性服务(HAS),使其不会在系统启动时自动启动。

crsctl disable has
4.配置数据库实例随着ASM启动而启动

下面是有关在ASM下配置数据库实例随着ASM启动而启动的步骤:

用以下命令查看资源或服务的当前状态:

crsctl stat res (资源或服务名称) -p

例如,要查看数据库资源的状态,可以运行:

crsctl stat res ora.orcl.db -p

在输出结果中查找参数 AUTO_START,该参数指示资源的启动策略。
可以运行以下命令过滤出 AUTO_START 参数的值:

crsctl stat res ora.orcl.db -p | grep AUTO_START

AUTO_START参数有三个可选值:

  • always:在HAS(集群管理服务)重启时启动资源,但不检查资源在停止时的状态。
  • restore:在HAS重启时启动资源,并检查资源在停止时的状态,并恢复到该状态。
  • never:资源不随HAS启动而启动。

如果要修改数据库的启动策略,具体步骤如下:

对于 Oracle 11g:
使用以下命令修改资源的 AUTO_START 属性:
crsctl modify resource ora.orcl.db -attr AUTO_START=never

请注意,在Oracle 19c中,执行以上命令会报错 CRS-4995: The command 'Modify resource' is invalid in crsctl. Use srvctl for this command.。下面是在Oracle 19c下修改数据库启动策略的步骤:

使用以下命令关闭数据库的自动启动,并修改相关启动策略:

 srvctl modify database -d orcl -policy MANUAL

如果要将数据库恢复为自动启停模式,可以运行以下命令:

 srvctl modify database -d orcl -policy AUTOMATIC

若要查询当前数据库资源的配置,可以使用以下命令:

srvctl config database -d orcl

五、数据库实例与ASM的交互

1 数据库实例通过o0nn进程向ASM实例发送文件创建请求,请求中包含以下信息:diskgroup(磁盘组) 名称,文件类型,文件块大小,文件大小,文件标签,还可以包含template(模板),文件别名。

注意:这一步主要是我的数据库实例向ASM实例发起创建表空间(创建表空间时也要指定对应的数据文件)或文件(数据文件 REDO文件 控制文件等)的请求。那么向ASM实例发送请求的过程相当于向由ASM实例下挂载的磁盘组请求创建的对应的文件的过程。

2 ASM实例将接收到的数据库实例的创建请求转换成区映射(extent map),随后ASM实例创建持续操作目录-COD(Continuing Operation Directory),用以记录和跟踪文件的创建,并在磁盘组中为新的文件分配空间。

3 ASMB进程通知数据库前台进程(serverprcess)接收新文件的区映射(extent map)信息。

4 数据库实例接到区映射后开始初始化文件,并选择合适的I/O去进行初始化。初始化完成后,数据库实例会向ASM实例发送并提交创建完成信息。此时文件处于OPEN状态

5 数据库实例向ASM实例提交创建完成信息。ASM实例收到信息后,其LGWR进程(ASM实例的)将更新动态改变目录-ACD(Active Change Directory)中的记录,DBWn(ASM实例的)进程将相关的分配表,文件目录,文件别名以异步的方式写回到磁盘进行持久化保存(数据写回到ASM实例所管理的磁盘组的元数据表上)。并将文件标记成已经创建且进入到待确认提交态。

6 文件提交确认后会隐式关闭该文件。将来发生 I/O 时,数据库实例需要重新打开该文件。

备注:如果文件创建过程中异常中断,ASM实例利用COD回滚文件的创建,并且回滚过程中相应的删除ACD中相关记录。

六、 启动策略详解

UTO_START 是 Oracle ASM 中用于设置资源的启动策略的一个属性。它用于定义 ASM 实例或磁盘组在集群启动时的自动启动行为。

在 Oracle ASM 中,AUTO_START 属性有以下三个可选值:

ALWAYS:表示资源将始终在集群启动时自动启动,无论其当前的状态如何。
RESTORE:表示资源将在集群启动时自动启动,并检查资源在停止时的状态,并恢复到该状态。这主要适用于 ASM 实例或磁盘组在故障后的恢复。
NEVER:表示资源不会在集群启动时自动启动。
通过设置 AUTO_START 属性,可以控制资源在集群启动时的自动行为。这样可以确保在启动集群时,所需要的 ASM 实例或磁盘组能够自动启动并处于正确的状态。

例如,如果将 AUTO_START 属性设置为 ALWAYS,那么 ASM 实例或磁盘组将始终在集群启动时自动启动。而如果将 AUTO_START 属性设置为 NEVER,那么 ASM 实例或磁盘组将不会在集群启动时自动启动,需要手动启动它们。

下面是有关在ASM下配置数据库实例随着ASM启动而启动的步骤:

1)使用以下命令查看资源或服务的当前状态:
crsctl stat res (资源或服务名称) -p

例如,要查看数据库资源的状态,可以运行:
crsctl stat res ora.orcl.db -p

2)在输出结果中查找参数 AUTO_START,该参数指示资源的启动策略。
可以运行以下命令过滤出 AUTO_START 参数的值:

crsctl stat res ora.orcl.db -p | grep AUTO_START

AUTO_START 参数有三个可选值:

  • always:在HAS(集群管理服务)重启时启动资源,但不检查资源在停止时的状态。
  • restore:在HAS重启时启动资源,并检查资源在停止时的状态,并恢复到该状态。
  • never:资源不随HAS启动而启动。

3) 如果要修改数据库的启动策略,具体步骤如下:

对于 Oracle 11g:

使用以下命令修改资源的 AUTO_START 属性:

crsctl modify resource ora.orcl.db -attr AUTO_START=never

请注意,在Oracle 19c中,执行以上命令会报错 CRS-4995: The command 'Modify resource' is invalid in crsctl. Use srvctl for this command.。下面是在Oracle 19c下修改数据库启动策略的步骤:

使用以下命令关闭数据库的自动启动,并修改相关启动策略:

srvctl modify database -d orcl -policy MANUAL

如果要将数据库恢复为自动启停模式,可以运行以下命令:

srvctl modify database -d orcl -policy AUTOMATIC

若要查询当前数据库资源的配置,可以使用以下命令:

srvctl config database -d orcl

需要注意的是,即使你将数据库配置为随HAS服务重启而自动启动(管理策略为AUTOMATIC),你也不能在数据库关闭的情况下重启HAS服务。否则,数据库仍不会随HAS的重启而启动。这是因为HAS会检测到数据库在其关闭时的状态是关闭的,因此HAS会假设数据库不会随其启动而启动(TARGET-OFFLINE)。

如果你想要数据库不随HAS服务重启而重新启动,一种简单的方法是在关闭HAS服务之前先关闭数据库。无论是使用grid用户通过srvctl命令关闭数据库,还是使用oracle用户通过shutdown immediate命令关闭数据库,效果都是一样的。

七、 ASM后台进程

在 Oracle ASM(Automatic Storage Management)中,有多个后台进程负责执行不同的功能。以下是几个常见的 ASM 后台进程:

  1. ASM Instance:

    • ASM Init Process(进程ID为0):ASM 实例的初始化进程,负责启动其他 ASM 后台进程。
    • ASM RBAL(Repair Balanced):负责监视磁盘故障,并在需要时执行磁盘恢复操作。
    • ASM GMON(Global Monitor):负责监视 ASM 实例和磁盘组的状态,并处理事件通知。
    • ASM WS*:负责处理后续 ASM Instance 的工作进程。
  2. ASM Disk Processes(ASM进程对应磁盘):

    • ASM Rebalance:负责在磁盘组中重平衡数据,以实现磁盘空间的均衡分布。
    • ASM Power Master:负责监视磁盘状态,并处理磁盘上的电源事件。
    • ASM File Metadata:负责处理与文件元数据相关的操作,例如读取和写入 ASM 文件的相关信息。
  3. Oracle Database Instance 和 ASM Instance 进程通信相关进程:

    • LMSn(Lock Manager Server):负责在数据库实例和 ASM 实例之间进行锁管理,并处理并发数据访问。
    • LGWR(Log Writer):负责将数据库日志写入 ASM 磁盘组。
    • DBWR(Database Writer):负责将数据库的数据块写入 ASM 磁盘组。
    • ARCn(Archiver Process):负责将数据库的归档日志写入 ASM 磁盘组。

通过这些后台进程的协作,ASM 能够提供高可用、可伸缩、自动管理的存储解决方案,并有效地管理数据库中的数据文件。

八、ASMCMD命令使用

ASMCMD(ASM Command)是一个用于管理 Oracle ASM(Automatic Storage Management)的命令行工具。它提供了一些有用的命令,用于执行各种 ASM 磁盘组和文件的管理操作。以下是一些常用的 ASMCMD 命令及其用法:

  1. ascmd:启动 ASMCMD 命令行界面。

  2. ls:列出指定路径下的文件和目录。

    • 示例:ASMCMD> ls DATA/
  3. pwd:显示当前所在的 ASM 路径。

    • 示例:ASMCMD> pwd
  4. cd:切换到指定的 ASM 路径。

    • 示例:ASMCMD> cd DATA/
  5. cp:将文件从本地系统复制到 ASM 磁盘组。

    • 示例:ASMCMD> cp /home/oracle/datafile.dbf +DATA/
  6. rm:删除指定的 ASM 文件。

    • 示例:ASMCMD> rm +DATA/DATAFILE.dbf
  7. du:显示指定路径或文件的磁盘使用情况。

    • 示例:ASMCMD> du +DATA
  8. lsct:列出当前ASM客户端的信息

    • 示例:ASMCMD> lsct
  9. lsdg:列出所有磁盘组及其详细信息。

    • 示例:ASMCMD> lsdg
  10. lsof:列出数据文件,控制文件等文件的信息

    • 示例:ASMCMD> lsof
  11. mkdg:创建一个新的磁盘组。

    • 示例:ASMCMD> mkdg DG_NAME DISK1, DISK2
  12. mkalias:创建一个路径别名。

    • 示例:ASMCMD> mkalias myalias +DATA/DATAFILE.dbf
  13. lsdsk:列出盘的信息(ASM DISK)

    • 示例:ASMCMD> lsdsk
  14. help:显示帮助信息。

    • 示例:ASMCMD> help cp
  15. ls -ls: 查看ASM磁盘占用情况

这些只是 ASMCMD 命令中的一部分,还有其他的命令可以用于执行更多操作,如查看磁盘组信息、移动文件、查询文件状态等。您可以在使用 ASMCMD> help 命令获取完整的命令列表和帮助信息。

九、图形化界面和手工创建磁盘组

ASM(Automatic Storage Management)有一个图形化界面工具称为 ASM Configuration Assistant(ASMCA),它提供了一个直观的界面,可用于管理和配置 ASM 实例和磁盘组

图像化创建磁盘组

1.添加磁盘
fdisk -l 检查所有磁盘

查到磁盘后修改文件

vi /etc/udev/rules.d/99-oracle-asmdevices.rules

KERNEL==“sdb”,NAME=“asmdisk1”,OWNER=“grid”,GROUP=“asmadmin”,MODE=“0660”
KERNEL==“sdc”,NAME=“asmdisk2”,OWNER=“grid”,GROUP=“asmadmin”,MODE=“0660”
KERNEL==“sdd”,NAME=“asmdisk3”,OWNER=“grid”,GROUP=“asmadmin”,MODE=“0660” --新加盘配置

重启服务让配置生效
udevadm control --reload-rules
udevadm trigger

2.asmca创建磁盘组

asmca调出图形界面
su - grid
export DISPLAY=:0
asmca

在 ASMCA 工具中,选择 “创建” 选项,然后选择 “磁盘组”。
在这里插入图片描述

在 “创建磁盘组” 对话框中,输入磁盘组的名称,并选择所需的存储类型(如外部冗余、高冗余等)。
在 “选取磁盘” 部分,选择要包含在磁盘组中的物理磁盘。您可以选择从列表中选择物理磁盘,也可以手动输入设备路径
确认创建磁盘组的设置,并单击 “创建” 按钮以开始创建。

在这里插入图片描述

查看ASM资源状态信息 ora.FRADG.dg 本地资源出些,并且状态是ONLINE 和状态可用即代表创建磁盘组FRADG成功
crsctl stat res -t
在这里插入图片描述

进入asmcmd查看磁盘组信息

在这里插入图片描述

手工创建磁盘组

步骤如下:

1.首先检查磁盘状态:看看哪些磁盘可以创建磁盘组用
set lines 200
col name for a20
col path for a30

select GROUP_NUMBER,free_mb,total_mb,HEADER_STATUS,name,PATH from v$asm_disk order by 1 desc;

如果HEADER_STATUS 出现MEMBER 代表已经被使用,不能够用于创建磁盘组
只有状态未HEADER_STATUS CANDIDATE(候选)才可用于创建磁盘组

案例如下:在这里插入图片描述
2.创建磁盘组的语法如下:
create diskgroup <磁盘组名称> external redundancy disk ‘<磁盘路径>’;

如:
create diskgroup fradg external redundancy disk ‘/dev/sdc’ ;
create diskgroup fradg external redundancy disk ‘/dev/sdc’ ATTRIBUTE ‘au_size’=‘4M’; 指定了 au_size 属性为 4M,即将每个分配单元的大小设置为 4MB

3.再次查看磁盘组状态:
set lines 200
col name for a20
select name,state,free_mb,total_mb,usable_file_mb from v$asm_diskgroup;

4.卸载磁盘组,从ASM实例上卸载
alter diskgroup fradg dismount force;

5.让磁盘组重新挂载
alter diskgroup fradg mount;

6.删除磁盘组
drop diskgroup fradg including contents;

注意:如果删除的磁盘组想要重新使用,需要格式化磁盘头
dd if=/dev/zero of=/dev/sdc bs=1M count=1024

十、ASM相关常用命令

1.显示集群节点列表
olsnodes

2.显示集群中每个节点的节点编号和节点名
olsnodes -n

3.查看监听状态
srvctl status listener

4.查看集群vip信息
srvctl config nodeapps -a

5.查看集群scan_ip
srvctl config scan

6.停掉集群(包含数据库)
crsctl stop crs

7.启动集群(包含数据库)
crsctl start crs

8.查看集群状态
crsctl status res -t

9.显示OCR中注册的所有数据库
srvctl config database

10.查看某个数据库配置
srvctl config database -d raw

十一、向ASM磁盘组中添加磁盘

可参考我的其它文章:Oracl ASM磁盘扩容
https://blog.csdn.net/m0_49929446/article/details/124084310

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/306503.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【前端】前后端的网络通信基础操作(原生ajax, axios, fetch)

概述 前后端网络请求工具 原生ajaxfetch apiaxios GET和POST请求 get只能发纯文本 post可以发不同类型的数据&#xff0c;要设置请求头&#xff0c;需要告诉服务器一些额外信息 测试服务器地址 有一些公共的测试 API 可供学习和测试用途。这些 API 允许你发送 HTTP 请求…

在 Flutter 中创建圆角图像和圆形图像有多少种方法?

使用 Container 、 ClipRRect 、 CircleAvatar 、 Card 和 PhysicalModel 实现具有视觉吸引力的图像效果。 在 Flutter 应用 UI 设计中&#xff0c;圆形图像是常见的视觉元素。本博客探讨了使用不同技术实现圆形图像效果的各种方法。无论是使用网络图像、本地文件还是资源&…

CSS渐变透明

文章目录 一、前言1.1、MDN 二、实现2.1、源码2.2、线上源码 三、最后 一、前言 使用场景&#xff1a;在做两个元素的连接处的UI适配时&#xff0c;图片的颜色不能保证一定跟背景颜色或者是主色调保持一致时&#xff0c;会显得比较突兀。 1.1、MDN MDN的文档&#xff0c;点击【…

【数据库系统概论】期末复习1

试述数据、数据库、数据库系统、数据库管理系统的概念。试述文件系统与数据库系统的区别和联系。试述数据库系统的特点。数据库管理系统的主要功能有哪些&#xff1f;试述数据库系统三级模式结构&#xff0c;这种结构的优点是什么&#xff1f;什么叫数据与程序的物理独立性&…

高光谱分类论文解读分享之基于多模态融合Transformer的遥感图像分类方法

IEEE TGRS 2023&#xff1a;基于多模态融合Transformer的遥感图像分类方法 题目 Multimodal Fusion Transformer for Remote Sensing Image Classification 作者 Swalpa Kumar Roy , Student Member, IEEE, Ankur Deria , Danfeng Hong , Senior Member, IEEE, Behnood Ras…

【办公类-19-01】20240108图书统计登记表制作(23个班级)EXCEL复制表格并合并表格

背景需求&#xff1a; 制作一个EXCEL模板&#xff0c;每个班级的班主任统计 班级图书量&#xff08;一个孩子10本&#xff0c;最多35个孩子350本&#xff09; EXCEL模板 1.0版本&#xff1a; 将这个模板制作N份——每班一份 项目:班级图书统计表 核心:一个EXCEL模板批量生成…

电子学会C/C++编程等级考试2020年09月(一级)真题解析

C/C++编程(1~8级)全部真题・点这里 第1题:输出整数 输入四个整数,把输入的第三、第四个整数输出。 时间限制:3000 内存限制:65536 输入 只有一行,共四个整数,整数之间由一个空格分隔。整数是32位有符号整数。 输出 只有一行,二个整数,即输入的第三、第四个整数,以一…

k8s-存储 11

一、configmapu存储 首先&#xff0c;确保集群正常&#xff0c;节点都处于就绪状态 Configmap用于保存配置数据&#xff0c;以键值对形式存储。configMap资源提供了向 Pod 注入配置数据的方法&#xff0c;旨在让镜像和配置文件解耦&#xff0c;以便实现镜像的可移植性和可复用…

Linux 网络设置与基础服务

一 配置网络设置 主机名 hostname IP地址/netmask ifconfig &#xff1b; ip a 路由&#xff1a;默认网关 route -n DNS服务器 cat /etc/resolv.conf 网络连接状态 ss netstat 域名解析 ns…

【OSG案例详细分析与讲解】之二:【着色文件转换为字符数组】

文章目录 一、【着色文件转换为字符数组】前言 二、【着色文件转换为字符数组】Shader转换 三、【着色文件转换为字符数组】转换函数 1.转换函数 2.字符替换函数 四、【着色文件转换为字符数组】示例 1.GLSL2Cpp.cpp文件&#xff1a; 2.Qt pro文件&#xff1a; 五、【着色文件转…

Spark与Cassandra的集成与数据存储

Apache Spark和Apache Cassandra是大数据领域中两个重要的工具&#xff0c;用于数据处理和分布式数据存储。本文将深入探讨如何在Spark中集成Cassandra&#xff0c;并演示如何将Spark数据存储到Cassandra中。将提供丰富的示例代码&#xff0c;以帮助大家更好地理解这一集成过程…

vue2源码解析之第一步(对数据进行劫持)

###环境搭建 第一步 创建项目&#xff1a; npm init -y 第二步 安装对应的插件&#xff1a; npm i rollup rollup-plugin-babel babel/core babel/preset-env --save-dev 第三步 全局下创建rollup配置文件 rollup.config.js import babel from rollup-plug…

mysql的导入导出

mysql的导入导出 1.使用navicat导入导出1.1导入1.2导出 2.使用.mysqldump命令导入导出2.1导出表结构和数据2.2导出表结构2.3导入 3..LOAD DATA INFILE命令导入导出3.1在mysqlini 文件的[mysqld] 代码下增加 secure_file_privE:/TEST 再重启 mysql3.2导出3.3导入 4.远程备份导入…

Ubuntu20二进制方式安装nginx

文章目录 1.下载nginx安装包2.安装nginx3.安装出现的问题及解决方案错误1&#xff1a;错误2&#xff1a;错误3&#xff1a; 4.常用命令5.知识扩展&#xff1a; 1.下载nginx安装包 nginx官网&#xff1a;http://nginx.org/en/download.html 选择稳定的nginx版本下载。 2.安装ngi…

[redis] redis主从复制,哨兵模式和集群

一、redis的高可用 1.1 redis高可用的概念 在web服务器中&#xff0c;高可用是指服务器可以正常访问的时间&#xff0c;衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。 高可用的计算公式是1-&#xff08;宕机时间&#xff09;/&#xff08;宕机时…

WPS或word中英文字母自动调整大小写,取消自动首字母大写,全部英文单词首字母大小写变换方法

提示&#xff1a;写英文论文时&#xff0c;如何实现英文字母大小写的自动切换&#xff0c;不用再傻傻的一个字母一个字母的编辑了&#xff0c;一篇文章搞定WPS与Word中字母大小写切换 文章目录 一、WPS英文单词大小写自动修改与首字母大写调整英文字母全部由大写变成小写 或 小…

Python进阶之元类

Python进阶之元类 目录 什么是元类&#xff1f; 元类的调用流程 根据类自定义元类 __new__方法以及参数 ----------cls ----------name ----------bases ----------attrs __call__方法 生成对象的完整代码 什么是元类&#xff1f; 在python面向对象中&#xff0c;我们知道所有…

【AI】Pytorch 系列:预训练模型使用

1. 模型下载 import re import os import glob import torch from torch.hub import download_url_to_file from torch.hub import urlparse import torchvision.models as modelsdef download_

jenkins构建git项目timeout

问题点&#xff1a; Started by user unknown or anonymous Running as SYSTEM Building in workspace /var/jenkins_home/workspace/test-one using credential f28d956-8ee1-4f20-a32b-06879b487c70 Cloning the remote Git repository Cloning repository http://git.cc.co…

TextDiffuser-2:超越DALLE-3的文本图像融合技术

概述 近年来&#xff0c;扩散模型在图像生成领域取得了显著进展&#xff0c;但在文本图像融合方面依然存在挑战。TextDiffuser-2的出现&#xff0c;标志着在这一领域的一个重要突破&#xff0c;它成功地结合了大型语言模型的能力&#xff0c;以实现更高效、多样化且美观的文本…