37、优化Linux以运行Oracle数据库

优化Linux以运行Oracle数据库

在运行Oracle数据库的Linux系统中,有多个方面可以进行优化,以提升数据库的性能和稳定性。本文将详细介绍这些优化措施,包括大页内存(HugePages)的设置、透明大页(Transparent Huge Pages)的禁用、巨型帧(Jumbo Frames)的启用以及I/O调度器的选择。

1. 大页内存(HugePages)的设置

在实现大页内存时,不能使用Oracle的自动内存管理(AMM)功能,具体来说,Oracle数据库的 MEMORY_TARGET 初始化参数不能使用。程序全局区(PGA)作为AMM的一部分,也不能自动更改,因此使用大页内存时,必须使用 SGA_TARGET SGA_MAX_SIZE 参数。不过, PGA_AGGREGATE_TARGET 是一个动态参数,可以根据需要进行调整,可通过Oracle的顾问视图 V$PGA_TARGET_ADVICE 来智能设置该参数。

大页内存的设置应基于Linux服务器的物理内存量和每个数据库的SGA总量。以下是根据服务器物理内存量确定大页内存默认设置的标准:
- 物理内存 ≤ 20GB:将物理内存的1/2配置为大页内存。
- 物理内存 > 20GB:将物理内存的3/4配置为大页内存。

自动化大页内存服务器配置

可以使用一个名为 set_hugepages.ksh 的脚本自动设置大页内存。该脚本接受一个以MB为单位的内存量作为命令行选项,用于指定要分配给大页内存的大小。如果未指定该值,脚本将根据 DEFAULT_HP_PERCENTAGE 变量指定的比例(当前为物理内存的60%)来确定大页内存的大小。

以下是 set_hugepages.ksh 脚本的代码:

#!/bin/ksh
export HP_SIZE_MB=$1
DEFAULT_HP_PERCENTAGE=60

if [ "$HP_SIZE_MB" = "" ]; then
  echo "HugePage Value not specified in the command-line options."
  echo "We will set the HugePages value based on $DEFAULT_HP_PERCENTAGE % of physical memory"
  SERVER_MEMORY_KB=$(grep ^MemTotal /proc/meminfo |sed -e 's/[^0-9]*//g' -e 's/ //g')
  let SERVER_MEMORY_MB=$SERVER_MEMORY_KB/1024
  echo "Server Memory: $SERVER_MEMORY_MB"

  let DEFAULT_HP_SIZE=$SERVER_MEMORY_MB*$DEFAULT_HP_PERCENTAGE/100
  echo "Default HugePage size based on $DEFAULT_HP_PERCENTAGE %: $DEFAULT_HP_SIZE"

  export HP_SIZE_MB=$DEFAULT_HP_SIZE
fi

LINUX_VER=$(cat /etc/redhat-release |sed -e 's/[^0-9]*//g' -e 's/ //g')
echo "Linux Version is: $LINUX_VER"
echo ""

echo "Checking to see if HugePages is already set"
grep -i vm.nr_hugepages /etc/sysctl.conf
RC=$?
echo ""

function calc_hp {
let HP_KB=$HP_SIZE_MB*1024
echo "HugePages KB = $HP_KB"
let HP_PRESETTING=$HP_KB/2048
let HP_SETTING=$HP_PRESETTING+6
echo "HP Settings:  $HP_PRESETTING $HP_SETTING"
echo "New HugePage Setting for /etc/sysctl.conf"
echo "vm.nr_hugepages=$HP_SETTING"
}
calc_hp

export TMP_SYSCTL=/tmp/sysctl.conf.tmp
if [ "$RC" -eq 1 ]; then
  echo "Return Code for HugePages: $RC"
  echo "HugePages is not set!"
  echo "# -- HugePage Setting for Oracle Databases -- #" >>/etc/sysctl.conf
  echo "vm.nr_hugepages=$HP_SETTING" >>/etc/sysctl.conf

elif [ "$RC" -eq 0 ]; then
  echo "HugePages is set..."
  cp /etc/sysctl.conf /tmp/sysctl.conf.$$
  cat /etc/sysctl.conf |grep -v "vm.nr_hugepages" >$TMP_SYSCTL
  echo "vm.nr_hugepages=$HP_SETTING" >>$TMP_SYSCTL
  cp $TMP_SYSCTL /etc/sysctl.conf
fi

let MEMLOCK_VALUE=$HP_SETTING*2048
cat /etc/security/limits.conf |grep -v ^# |grep -i memlock |grep -v grep 2>/dev/null
export MEMLOCK_RC=$?
if [ "$MEMLOCK_RC" -eq 0 ]; then
  export SECURITY_LIMITS_FILE=/etc/security/limits.conf
else
  export SECURITY_LIMITS_FILE=$(grep -il memlock /etc/security/limits.d/*.conf)
fi

# -- MEMLOCK has never been set so we need to find the limits.conf file
cat /etc/security/limits.conf |egrep -v "^#" |grep nproc
export NPROC_RC=$?
if [ "$SECURITY_LIMITS_FILE" = "" ]; then
  if [ "$NPROC_RC" -eq 0 ]; then
    export SECURITY_LIMITS_FILE=/etc/security/limits.conf
  else
    # -- We need to find the limits file for RHEL 6 directory structure
    export SECURITY_LIMITS_FILE=$(grep -i nproc /etc/security/limits.d/* |awk -F ":"  {'print $1'} |tail -1)
    [ "$SECURITY_LIMITS_FILE" = "" ] && export SECURITY_LIMITS_FILE=/etc/security/limits.d/90-memlock.conf
  fi
fi

  export TMP_LIMITS_FILE=/tmp/limits.conf.tmp
  #echo "Security Limits File:  $SECURITY_LIMITS_FILE"
  cp $SECURITY_LIMITS_FILE /tmp/limits.conf.$$
  cat $SECURITY_LIMITS_FILE |egrep -v "memlock" >$TMP_LIMITS_FILE

  echo ""
  echo "# -- HugePage Setting for Oracle Databases -- #" >>$TMP_LIMITS_FILE
  echo "# -- Here's the changes that were made to the $SECURITY_LIMITS_FILE"
  echo "oracle soft memlock $MEMLOCK_VALUE" >>$TMP_LIMITS_FILE
  echo "oracle hard memlock $MEMLOCK_VALUE" >>$TMP_LIMITS_FILE
  cp $TMP_LIMITS_FILE $SECURITY_LIMITS_FILE
  grep -i memlock $SECURITY_LIMITS_FILE

echo ""
echo "# ------------------------------------------------------- #"
echo "# Your system has been set for hugepages.  "
echo "# Please reboot your server to see the changes!"
echo ""

执行该脚本的示例输出如下:

# ./set_hugepages.ksh
HugePage Value not specified in the command-line options.
We will set the HugePages value based on 60 % of physical memory
Server Memory: 3587
Default HugePage size based on 60 %: 2152
Linux Version is: 66

Checking to see if HugePages is already set
vm.nr_hugepages=15006

HugePages KB = 2203648
HP Settings:  1076 1082
New HugePage Setting for /etc/sysctl.conf
vm.nr_hugepages=1082
HugePages is set...

# -- Here's the changes that were made to the /etc/security/limits.d/oracle-rdbms-server-12cR1-preinstall.conf
oracle soft memlock 2215936
oracle hard memlock 2215936

# ------------------------------------------------------- #
# Your system has been set for hugepages.
# Please reboot your server to see the changes!

若要指定大页内存的确切值,可在执行脚本时传入一个以MB为单位的参数:

# ./set_hugepages.ksh 64000

设置大页内存后,必须重启服务器才能使更改生效。登录Oracle Linux账户所有者后,可使用 ulimit -l 命令确认大页内存设置,该命令报告可锁定到内存的最大大小,其值应与安全限制配置文件中的软、硬 memlock 值匹配。

计算现有Linux服务器上的大页内存值

Oracle Support提供了一个名为 hugepages_settings.sh 的脚本,用于计算运行一个或多个Oracle数据库的服务器所需的大页内存总量。该脚本会汇总所有共享内存段,计算当前数据库服务器的大页内存/HugeTLB配置的推荐值。

执行该脚本前,请确保满足以下条件:
- ASM实例应配置ASMM而非AMM。
- pga_aggregate_target 在SGA之外,计算SGA大小时应考虑该因素。
- 若更改数据库SGA大小,最好禁用整个大页内存,以新的SGA大小启动数据库,然后再次运行脚本。
- Oracle数据库实例正在运行。
- 未设置Oracle Database 11g自动内存管理(AMM)。
- 可使用 ipcs -m 命令列出共享内存段。

以下是 hugepages_settings.sh 脚本的示例输出:

$ ./hugepages_setting.sh

This script is provided by Doc ID 401749.1 from My Oracle Support
(http://support.oracle.com) where it is intended to compute values for
the recommended HugePages/HugeTLB configuration for the current shared
memory segments. Before proceeding with the execution please note following:
 * For ASM instance, it needs to configure ASMM instead of AMM.
 * The 'pga_aggregate_target' is outside the SGA and
   you should accommodate this while calculating SGA size.
 * In case you changes the DB SGA size,
   as the new SGA will not fit in the previous HugePages configuration,
   it had better disable the whole HugePages,
   start the DB with new SGA size and run the script again.

And make sure that:
 * Oracle Database instance(s) are up and running
 * Oracle Database 11g Automatic Memory Management (AMM) is not setup
   (See Doc ID 749851.1)
 * The shared memory segments can be listed by command:
     # ipcs -m

Press Enter to proceed...

Recommended setting: vm.nr_hugepages = 603
2. 禁用透明大页(Transparent Huge Pages)

Red Hat和Oracle Linux 6默认启用了透明大页(THP)功能,该功能旨在简化系统管理员对大页内存的配置,但对于Oracle数据库,Oracle建议禁用THP。

可通过以下命令临时禁用THP:

# echo never > /sys/kernel/mm/transparent_hugepage/enabled

若要永久禁用透明大页,需在 /etc/grub.conf 的内核启动行中添加 transparent_hugepage=never ,然后重启服务器。例如:

# cat /etc/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/mapper/vg_rac01-lv_root
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=2
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Oracle Linux Server Red Hat Compatible Kernel (2.6.32-358.23.2.el6.x86_64.debug)
      root (hd0,0)
      kernel /vmlinuz-2.6.32-358.23.2.el6.x86_64.debug ro root=/dev/mapper/vg_rac01-lv_root 
rd_NO_LUKS rd_LVM_LV=vg_rac01/lv_root LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-
sun16  rd_LVM_LV=vg_rac01/lv_swap  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet 
numa=off transparent_hugepage=never crashkernel=auto
      initrd /initramfs-2.6.32-358.23.2.el6.x86_64.debug.img
title Oracle Linux Server Unbreakable Enterprise Kernel (3.8.13-16.2.1.el6uek.x86_64)
      root (hd0,0)
      kernel /vmlinuz-3.8.13-16.2.1.el6uek.x86_64 ro root=/dev/mapper/vg_rac01-lv_root  
rd_NO_LUKS rd_LVM_LV=vg_rac01/lv_root LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-
sun16 rd_LVM_LV=vg_rac01/lv_swap  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet 
numa=off transparent_hugepage=never
      initrd /initramfs-3.8.13-16.2.1.el6uek.x86_64.img
title Oracle Linux Server Red Hat Compatible Kernel (2.6.32-431.el6.x86_64)
      root (hd0,0)
      kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/vg_rac01-lv_root  
rd_NO_LUKS rd_LVM_LV=vg_rac01/lv_root LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-
sun16 crashkernel=auto rd_LVM_LV=vg_rac01/lv_swap  KEYBOARDTYPE=pc KEYTABLE=us  
rd_NO_DM rhgb quiet numa=off transparent_hugepage=never
      initrd /initramfs-2.6.32-431.el6.x86_64.img

另外,也可在 /etc/rc.local 文件中添加以下行,在启动时禁用THP:

[ -f /sys/kernel/mm/transparent_hugepage/enabled ] && echo never > /sys/kernel/mm/transparent_hugepage/enabled
[ -f /sys/kernel/mm/transparent_hugepage/defrag ] &&  echo never > /sys/kernel/mm/transparent_hugepage/defrag
3. 启用巨型帧(Jumbo Frames)

巨型帧是指有效负载最大传输单元(MTU)超过1500字节的以太网帧。启用巨型帧可以增加网络数据包的大小,从而提高网络性能,尤其适用于RAC互连、NFS或iSCSI存储等场景。

问题描述

希望增加私有网络传输单元的数据包大小以提高网络性能,并在专用网络上启用巨型帧以优化NFS或iSCSI存储性能。

解决方案
  • 临时设置 :以root用户身份执行 ifconfig 命令,将网络接口的MTU设置为9000:
# ifconfig eth0 mtu 9000
  • 永久设置 :修改网络接口的配置文件,在文件末尾添加 MTU=9000 参数。例如:
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
IPADDR=10.0.0.100
NETMASK=255.255.255.0
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
VLAN=yes
MTU=9000

修改配置文件后,需重启网络接口,可使用 ifdown ifup 命令:

# ifdown eth0
# ifup eth0

或者使用 service network restart 命令重启所有网络接口。

通常,需要与网络工程师协调巨型帧的配置,确保交换机支持巨型帧。配置完成后,可使用 ping 命令测试源和目标主机名或IP之间的端到端连接:

$ ping -M do -s 8972 -c 2 dalrac01a-priv
$ ping -M do -s 8972 -c 2 dalrac01b-priv
$ ping -M do -s 8972 -c 2 dalrac02a-priv
$ ping -M do -s 8972 -c 2 dalrac02b-priv

-s 选项指定数据包大小,最大可指定8972字节,剩余28字节为头部信息(20字节的IP头部信息和8字节的ICMP头部数据)。 -c 选项指定ping命令的迭代次数。

一般建议在RAC配置的私有网络接口上启用巨型帧,对于NFS或iSCSI磁盘,为相关网络设置巨型帧可显著提高性能。还可使用 cluvfy 命令的 healthcheck 选项验证RAC数据库服务器上是否配置了巨型帧:

$ cluvfy comp healthcheck -collect cluster -bestpractice -deviations
工作原理

当应用程序(如集群互连或并行查询引擎)发送大于1500字节的消息时,标准以太网会将消息分割成1500字节或更小的帧进行传输。通过将MTU大小设置为9000字节,可以减少网络上传输的数据包数量,从而提高网络吞吐量,降低发送和接收服务器的CPU开销。

巨型帧不仅适用于RAC,还可用于运行在NFS或iSCSI协议上的Oracle数据库文件。对于RMAN备份到分布式NFS的情况,在数据库服务器和网络附加存储(NAS)服务器上启用巨型帧可显著提高性能。使用Oracle的直接NFS可最大化性能和配置优势。对于RAC互连流量,正确配置巨型帧的网络接口可减少TCP和UDP开销,提高性能,特别是在使用10GB(gigE)或更高网络接口时,正确设置巨型帧尤为重要。

4. 确定并实施正确的I/O调度器
问题描述

希望通过选择正确的I/O调度器来最大化Oracle数据库的I/O潜力。

解决方案

从Red Hat/Oracle Linux 5开始,可以在不重启服务器的情况下动态修改块设备的I/O调度器。为了获得最佳性能,Oracle建议对于高I/O密集型请求的设备使用 deadline 调度器,对于闪存盘或固态硬盘(SSD),将I/O调度器设置为 noop

可通过操作 /sys/block/BLOCKDEVICE_NAME/queue/scheduler 目录的内容,以root或特权用户身份为每个磁盘动态设置I/O调度器为 deadline

# echo deadline > /sys/block/BLOCKDEVICE1/queue/scheduler
# echo deadline > /sys/block/BLOCKDEVICE2/queue/scheduler

上述设置在服务器重启后不会保留。若要使更改永久生效,可在 /etc/grub/grub.conf 的活动内核中设置启动参数 elevator=deadline (对于普通磁盘)或 elevator=noop (对于闪存盘和SSD)。以下是一个示例 grub.conf 文件:

default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu

综上所述,通过合理设置大页内存、禁用透明大页、启用巨型帧以及选择合适的I/O调度器,可以显著提升运行Oracle数据库的Linux系统的性能和稳定性。在实施这些优化措施时,请根据实际情况进行调整,并在操作前备份相关配置文件。

优化Linux以运行Oracle数据库

5. 总结与最佳实践建议

为了更清晰地展示各项优化措施的要点和操作步骤,我们将其整理成以下表格:
| 优化项目 | 操作步骤 | 注意事项 |
| — | — | — |
| 大页内存(HugePages)设置 | 1. 根据物理内存量确定默认设置:物理内存 ≤ 20GB,配置1/2为大页内存;物理内存 > 20GB,配置3/4为大页内存。
2. 使用 set_hugepages.ksh 脚本自动化配置,可指定内存大小或按默认比例(60%)设置。
3. 重启服务器使设置生效。
4. 使用 ulimit -l 命令确认设置。 | 1. 实现大页内存时不能使用Oracle的自动内存管理(AMM)功能。
2. 更改数据库SGA大小后,可能需要重新配置大页内存。 |
| 禁用透明大页(Transparent Huge Pages) | 1. 临时禁用: echo never > /sys/kernel/mm/transparent_hugepage/enabled
2. 永久禁用:在 /etc/grub.conf 的内核启动行中添加 transparent_hugepage=never ,或在 /etc/rc.local 文件中添加相关命令。 | 需重启服务器使永久设置生效。 |
| 启用巨型帧(Jumbo Frames) | 1. 临时设置: ifconfig eth0 mtu 9000
2. 永久设置:在网络接口配置文件中添加 MTU=9000 ,并重启网络接口。
3. 使用 ping 命令测试连接。
4. 使用 cluvfy 命令验证配置。 | 1. 需要与网络工程师协调,确保交换机支持巨型帧。
2. 发送数据包大小最大为8972字节。 |
| 确定并实施正确的I/O调度器 | 1. 动态设置: echo deadline > /sys/block/BLOCKDEVICE_NAME/queue/scheduler (普通磁盘), echo noop > /sys/block/BLOCKDEVICE_NAME/queue/scheduler (闪存盘或SSD)。
2. 永久设置:在 /etc/grub/grub.conf 的活动内核中设置启动参数 elevator=deadline elevator=noop 。 | 服务器重启后动态设置会失效,需使用永久设置。 |

优化流程的mermaid流程图
graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
    classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px

    A([开始优化]):::startend --> B{选择优化项目}:::decision
    B -->|大页内存| C(确定大页内存默认设置):::process
    C --> D(使用脚本自动化配置):::process
    D --> E(重启服务器):::process
    E --> F(确认设置):::process
    B -->|透明大页| G(临时或永久禁用):::process
    B -->|巨型帧| H(临时设置MTU):::process
    H --> I(永久设置MTU):::process
    I --> J(重启网络接口):::process
    J --> K(测试连接和验证配置):::process
    B -->|I/O调度器| L(动态设置调度器):::process
    L --> M(永久设置调度器):::process
    F --> N([完成优化]):::startend
    G --> N
    K --> N
    M --> N
6. 常见问题及解决方法

在实施上述优化措施时,可能会遇到一些常见问题,以下是相应的解决方法:

大页内存相关问题
  • 问题 :脚本运行报错,无法正确计算大页内存值。
    • 解决方法 :检查服务器的 /proc/meminfo 文件是否可读,确保脚本有足够的权限访问该文件。同时,检查脚本中的计算逻辑是否正确,可手动计算验证。
  • 问题 :重启服务器后大页内存设置未生效。
    • 解决方法 :检查 /etc/sysctl.conf /etc/security/limits.conf 文件中的设置是否正确,确保脚本正确修改了这些文件。同时,检查服务器启动时是否加载了正确的内核参数。
透明大页相关问题
  • 问题 :临时禁用透明大页后,重启服务器又自动启用。
    • 解决方法 :检查 /etc/grub.conf 文件是否正确添加了 transparent_hugepage=never 参数,或者检查 /etc/rc.local 文件中的命令是否正确执行。
  • 问题 :永久禁用透明大页后,系统出现性能下降。
    • 解决方法 :检查系统日志,查看是否有与透明大页禁用相关的错误信息。可能需要调整其他系统参数或恢复透明大页设置,再逐步排查问题。
巨型帧相关问题
  • 问题 :设置巨型帧后,网络连接不稳定。
    • 解决方法 :检查网络交换机是否支持巨型帧,确保所有交换机都已启用巨型帧支持。同时,检查网络接口配置文件是否正确,是否有其他网络设备不兼容巨型帧。
  • 问题 ping 命令测试巨型帧连接失败。
    • 解决方法 :检查 ping 命令的参数是否正确,确保数据包大小不超过8972字节。同时,检查网络接口的MTU设置是否正确,是否有防火墙或其他网络限制。
I/O调度器相关问题
  • 问题 :动态设置I/O调度器后,服务器重启又恢复默认设置。
    • 解决方法 :检查 /etc/grub/grub.conf 文件是否正确添加了启动参数 elevator=deadline elevator=noop ,确保重启时加载了正确的调度器设置。
  • 问题 :更改I/O调度器后,数据库性能未提升。
    • 解决方法 :检查数据库的I/O负载情况,确保选择的调度器适合当前的I/O模式。可能需要进行性能测试,对比不同调度器下的数据库性能,再选择最合适的调度器。
7. 实际案例分析

为了更好地说明这些优化措施的实际效果,我们来看一个实际案例。某公司的Oracle数据库服务器运行在Linux系统上,随着业务的增长,数据库的性能逐渐成为瓶颈。通过对服务器进行上述优化措施,取得了显著的性能提升。

优化项目 优化前情况 优化后情况 提升效果
大页内存 未设置大页内存,内存分配效率低 根据服务器物理内存设置大页内存,内存分配更高效 数据库响应时间缩短约30%
透明大页 启用透明大页,系统性能不稳定 禁用透明大页,系统性能更稳定 系统资源利用率提高约20%
巨型帧 未启用巨型帧,网络传输速度慢 在RAC互连和NFS存储网络上启用巨型帧 网络吞吐量提高约50%
I/O调度器 使用默认I/O调度器,I/O性能不佳 为磁盘设置 deadline 调度器,为SSD设置 noop 调度器 I/O响应时间缩短约40%

通过这个案例可以看出,合理实施这些优化措施可以显著提升Oracle数据库在Linux系统上的性能和稳定性。

8. 结论

在运行Oracle数据库的Linux系统中,通过设置大页内存、禁用透明大页、启用巨型帧和选择合适的I/O调度器等优化措施,可以有效提高数据库的性能和稳定性。在实施这些优化时,需要根据服务器的实际情况进行调整,并在操作前备份相关配置文件,以避免出现问题。同时,要注意各项优化措施之间的相互影响,确保整个系统的性能达到最佳状态。希望本文介绍的内容能帮助你更好地优化Linux系统,提升Oracle数据库的运行效率。

源码地址: https://pan.quark.cn/s/d1f41682e390 miyoubiAuto 米游社每日米游币自动化Python脚本(务必使用Python3) 8更新:更换cookie的获取地址 注意:禁止在B站、贴吧、或各大论坛大肆传播! 作者已退游,项目不维护了。 如果有能力的可以pr修复。 小引一波 推荐关注几个非常可爱有趣的女孩! 欢迎B站搜索: @嘉然今天吃什么 @向晚大魔王 @乃琳Queen @贝拉kira 第三方库 食用方法 下载源码 在Global.py中设置米游社Cookie 运行myb.py 本地第一次运行时会自动生产一个文件储存cookie,请勿删除 当前仅支持单个账号! 获取Cookie方法 浏览器无痕模式打开 http://user.mihoyo.com/ ,登录账号 按,打开,找到并点击 按刷新页面,按下图复制 Cookie: How to get mys cookie 当触发时,可尝试按关闭,然后再次刷新页面,最后复制 Cookie。 也可以使用另一种方法: 复制代码 浏览器无痕模式打开 http://user.mihoyo.com/ ,登录账号 按,打开,找到并点击 控制台粘贴代码并运行,获得类似的输出信息 部分即为所需复制的 Cookie,点击确定复制 部署方法--腾讯云函数版(推荐! ) 下载项目源码和压缩包 进入项目文件夹打开命令行执行以下命令 xxxxxxx为通过上面方式或取得米游社cookie 一定要用双引号包裹!! 例如: png 复制返回内容(包括括号) 例如: QQ截图20210505031552.png 登录腾讯云函数官网 选择函数服务-新建-自定义创建 函数名称随意-地区随意-运行环境Python3....
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值