某市驾驶培训监管服务平台 GreatSQL 数据库适配之旅

某市驾驶培训监管服务平台 GreatSQL 数据库适配之旅

一、项目背景

某市驾培系统主要为社会公众提供驾培单位查询和学车报名,为相关合作单位提供某市驾培监管、某市驾培考核等功能。业务信息教练车培训过程视频信息、包括培训机构基本信息、教练员基本信息和学员个人等信息,其服务范围为社会公众。信息系统定级为第三级。

某市驾培系统部署在某市政务云平台互联网区域和政务外网区域,采用 B/S 结构,使用 JAVA 语言开发。使用 JAVA 语言开发。租用了十多台台虚拟化服务器,其中应用类虚拟化服务器十多台,数据库虚拟化服务器两台,十多台虚拟化服务器的操作系统均为 CentOS v7.4,应用中间使用 Tomcat 9.0 数据库使用 MySQL v5.7.29。

file

某市驾驶培训监管服务平台系统拓扑

二、渗透测试、系统漏洞、专家建议(等保测评后)

根据渗透测试及漏洞扫描结果,某市驾培系统平台某市云机房所使用的十多台服务器中共发现紧急漏洞三个,高风险漏洞十三个,发现安全问题四十多个,中风险问题二十多个等,其服务器漏洞已与开发单位沟通确认并制定整改计划,将持续进行整改。

序号名称(地址)漏洞类型漏洞数量危险级别整改情况
1https://..cn/订单金额可被篡改1已整改
跨站脚本漏洞2已整改
不安全的SSL协议1已整改
点击劫持:X-Frame-Options头缺失1已整改
2http://124.*.*.40:6002/文件上传接口越权1已整改
跨站脚本漏洞2已整改
不安全的SSL协议1已整改
JQuery版本过低1已整改
Cookie未设置HttpOnly1已整改
序号端口号漏洞名称风险IP整改情况
15353 udpmDNS服务检测中风险192.166..整改中
23306MySQL 5.7.x < 5.7.30存在多个漏洞(2020年04月CPU)中风险192.166..整改中
33306MySQL 5.7.x < 5.7.31存在多个漏洞(2020年7月CPU)中风险192.166..整改中
43306MySQL 5.7.x < 5.7.32存在多个安全漏洞(2020年10月CPU)中风险192.166..整改中
55353 udpmDNS服务检测中风险192.166..整改中
68080ServletExec 4.1 ISAPI 物理路径暴露中风险192.166..整改中
75672AMQP明文验证中风险192.166..整改中
880Web 服务器 HTTP 头文件信息披露中风险192.166..整改中
98080Web 服务器 HTTP 头文件信息披露中风险192.166..整改中
105353 udpmDNS服务检测中风险192.166..整改中
115353 udpmDNS服务检测中风险192.166..整改中
125353 udpmDNS服务检测中风险192.166..整改中
13443Web 服务器 HTTP 头文件信息披露中风险192.166..整改中
146003Web 服务器 HTTP 头文件信息披露中风险192.166..整改中
1580Web 服务器 HTTP 头文件信息披露中风险192.166..整改中
168080Web 服务器 HTTP 头文件信息披露中风险192.166..整改中
178081Web 服务器 HTTP 头文件信息披露中风险192.166..整改中
185353 udpmDNS服务检测中风险192.166..整改中
1922OpenSSH < 7.5 漏洞中风险192.166..整改中
2022OpenSSH < 7.6 文件创建限制绕过漏洞中风险192.166..整改中
2122OpenSSH 用户枚举漏洞(CVE-2018-15919)中风险192.166..整改中
2222OpenSSH < 7.5 漏洞中风险192.166..整改中
2322OpenSSH < 7.6 文件创建限制绕过漏洞中风险192.166..整改中
2422OpenSSH 用户枚举漏洞(CVE-2018-15919)中风险192.166..整改中
255353 udpmDNS服务检测中风险192.166..整改中
2622OpenSSH < 7.5 漏洞中风险192.166..整改中
2722OpenSSH < 7.6 文件创建限制绕过漏洞中风险192.166..整改中
2822OpenSSH 用户枚举漏洞(CVE-2018-15919)中风险192.166..整改中
295353 udpmDNS服务检测中风险192.166..整改中
3099Web 服务器 HTTP 头文件信息披露中风险192.166..整改中
31Nginx range 过滤器整形溢出漏洞(CVE-2017-7529)中风险192.166..整改中
3299nginx < 1.13.2 整形溢出漏洞中风险192.166..整改中
333306MySQL 5.7.x < 5.7.30存在多个漏洞(2020年04月CPU)中风险192.166..整改中
343306MySQL 5.7.x < 5.7.31存在多个漏洞(2020年7月CPU)中风险192.166..整改中
353306MySQL 5.7.x < 5.7.32存在多个安全漏洞(2020年10月CPU)中风险192.166..整改中
序号问题类别问题描述风险级别整改措施整改情况
1安全区域边界未限制无线网络的使用中风险建议严格限制无线网络的使用因政务云服务商环境所限,暂不具备整改条件。需向云服务商咨询确认。
2安全计算环境某市驾驶培训监管服务平台前台、服务器操作系统和数据库未采用两种或两种以上组合的鉴别技术。中风险建议采用两种或两种以上组合的鉴别技术实现用户身份鉴别,如数字证书、令牌等将通过该系统升级改造等方式实施整改。需向云服务商询问情况
3安全计算环境未采用密码技术保证重要业务数据、重要审计数据、主要配置数据和部分个人信息在存储过程中的保密性中风险建议对系统管理数据、鉴别信息及重要业务数据采用经国家密码主管部门认可的密码技术,保证其在存储过程中数据的私密性将通过申请该系统密评改造等方式进行整改。
4安全计算环境未对服务器操作系统配置文件进行异地备份,未提供业务数据异地实时备份功能中风险建议利用通信网络将关键数据实时传送至备用场地,实现异地数据异地备份建议承建单位按照整改措施进行整改。建议每周为周期整体备份系统数据,异地保存。建议政务云服务商提供虚拟主机备份的形式。
5安全计算环境某市驾驶培训监管服务平台管理后台、服务器操作系统和数据库未授予不同账户为完成各自承担任务所需的最小权限中风险建议系统授予不同用户为完成各自承担的任务所需的最小权限,将系统管理员和业务操作员权限分离,并设置独立的安全审计员角色,对各类用户的操作行为进行审计监督建议系统开发单位于12月底前完成整改。

三、项目目标

将某市驾培系统目前的版本 MySQL v5.7.29 数据库升级到 GreatSQL v8.0.32(数据库名为TYU&……*IO), 某市驾培系统目前的数据量1T,备份完的数据量 20G(进行压缩且无备份TY_tra库及日志表),备份时间 202408192200

3.1 数据库基本信息

基本信息
版本源端目标端
数据库MySQL v5.7.29GreatSQL v8.0.32
OSCentOS v7.4CentOS v7.4
数据量1T1T
存储本地文件系统本地文件系统

3.2 某市驾培系统源库相关情况

a) 源库库表
库名
TY_ApolloConfigDB
TY_ApolloPortalDB    TY_Longan
TY_Mysql
TY_yg_ass
TY_yg_ins
TY_yg_site
TY_yg_ssj
TY_yg_sys
TY_yg_tra
TY_yg_tra_test
b)源库库索引:见表格
c)源库库同义词:无
d)源库库序列:无
e)源库库触发器:无
f)源库库存储过程:见表格
g)源库库视图:无
h)源库库function:无
i)源库库package:无
j)源库库package body:无
k)其他

3.3 数据量情况

数据量为订单900左右/天,培训数8w左右/天,车载数电子日志8k左右/天,分钟学时数200w左右/天,培训照片20w左右/天

3.4 迁移停机时间

24小时内完成迁移停机。

四、项目目标上线数据迁移的步骤

file

五、项目服务运行拓扑

服务软件安装包

-rw-r--r-- 1 root root 121M Feb 4 03:02 greatsql-8.0.32-25.1.el7.x86_64.rpm-bundle.tar.xz  
-rw-r--r-- 1 root root 19M Feb 2 15:51 greatsql-client-8.0.32-25.1.el7.x86_64.rpm
-rw-r--r-- 1 root root 1.9M Feb 2 15:51 greatsql-devel-8.0.32-25.1.el7.x86_64.rpm
-rw-r--r-- 1 root root 2.1M Feb 2 15:51 greatsql-icu-data-files-8.0.32-25.1.el7.x86_64.rpm
-rw-r--r-- 1 root root 5.0M Feb 2 15:51 greatsql-mysql-router-8.0.32-25.1.el7.x86_64.rpm
-rw-r--r-- 1 root root 93M Feb 2 15:51 greatsql-server-8.0.32-25.1.el7.x86_64.rpm
-rw-r--r-- 1 root root 1.5M Feb 2 15:51 greatsql-shared-8.0.32-25.1.el7.x86_64.rpm
-rw-r--r-- 1 root root 1.5M Feb 2 15:51 greatsql-shell-8.0.32-16-Linux-glibc2.17-x86_64.tar.xz

file

某市驾培系统数据库运行拓扑

六、某市驾培系统数据库环境搭建

7.1、安装目标端操作系统并且优化

A、解决ssl的问题

安装 SSL 的相关包

openssh-9.8p1-1.el7.x86_64.rpm
openssh-clients-9.8p1-1.el7.x86_64.rpm
openssh-debuginfo-9.8p1-1.el7.x86_64.rpm
openssh-server-9.8p1-1.el7.x86_64.rpm
openssl-1.1.1h.tar,zlib-1.2.11

B、优化系统参数配置文件sysctl.conf、limits.conf、selinux

sysctl.conf:

fs.aio-max-nr = 3145728
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.shmmax = 68719476736
#kernel.shmall = 8388608
kernel.shmall = 16777216
kernel.sem = 250 32000 100 128
kernel.panic_on_oops = 1
kernel.numa_balancing= 0
kernel.pid_max = 131072
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144   
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
vm.min_free_kbytes= 4048576
vm.hugetlb_shm_group =1000
vm.nr_hugepages =21845
net.ipv4.ipfrag_low_thresh=15728640
net.ipv4.ipfrag_high_thresh=16777216
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.msgmni = 2878
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.accept_source_route =0
net.ipv4.tcp_syncookies = 1
kernel.core_uses_pid = 1  

limits.conf:

mysql soft  nproc  65536
mysql hard  nproc  65536
mysql soft  nofile 65536
mysql hard  nofile 65536  

selinux:

SELINUX=disabled

C、系统加固

加强账号及口令安全策略

编号Linux-02001
名称加强账号及口令安全策略
系统当前状态系统当前的账号及口令没有配置安全策略
实施方案建议按照如下方式进行账号及口令安全策略的配置,修改/etc/login.defs文件,将相应的字段修改为以下内容:PASS_MAX_DAYS 90 //口令最长存留期PASS_MIN_DAYS 30 //口令最短存留期PASS_MIN_LEN 8 //口令最少字符数PASS_WARN_AGE 15 //口令到期提醒时间 (以上仅对实施完这条策略后,新增加的用户有效)
实施目的增加Linux系统登陆账号的安全性
实施风险
回滚方案加固前创建备份目录,按照日期命名:mkdir /root/backup2021 将需要修改的配置文件复制保存在备份目录:cp /etc/login.defs /root/backup2021/需要回退的时候将修改前的备份文件覆盖回配置文件即可:cp/root/backup2021/login.defs /etc/security/login.defs
是否实施(客户填写)

登陆失败锁定

编号Linux-02002
名称登陆失败锁定
系统当前状态登录失败无处理手段
实施方案建议按照如下方式进行账号及口令安全策略的配置,修改/etc/pam.d/system-auth文件,将相应的字段修改为以下内容:auth required pam_tally.so deny=5 unlock_time=20 (以上仅对实施完这条策略后,新增加的用户有效)
实施目的增加Linux系统登陆账号的安全性
实施风险
回滚方案加固前创建备份目录,按照日期命名:(不用重复创建) mkdir /root/backup2021将需要修改的配置文件复制保存在备份目录:cp /etc/pam.d/system-auth /root/backup2021/需要回退的时候将修改前的备份文件覆盖回配置文件即可:cp /root/backup2021/system-auth /etc/pam.d/system-auth
是否实施(客户填写)

7.2、搭建目标端 GreatSQL 环境,安装最新补丁

A、调整数据库参数

1)配置hugepage

# /etc/sysctl.conf中添加如下一行
vm.nr_hugepages=46082

# 对/etc/security/limits.conf文件进行修改
mysql soft memlock unlimited
mysql hard memlock unlimited

B、数据库实例配置文件 my.cnf 如下例所示

[client]
no-beep
socket =/usr/local/mysql/data/mysql.sock
# pipe
# socket=0.0
port=3306
[mysql]
default-character-set=utf8
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
pid-file=/usr/local/mysql/data/mysqld.pid
#skip-grant-tables
#skip-name-resolve
socket = /usr/local/mysql/data/mysql.sock
character-set-server=utf8
default-storage-engine=INNODB
slow_query_log = 1
slow_query_log_file = /usr/local/mysql/log/slow_query.log
general_log = 0
general_log_file = /usr/local/mysql/log/general_query.log
expire-logs-days = 14

validate_password_dictionary_file='/usr/local/mysql/lib/plugin'
validate_password_check_user_name=on
plugin-load-add=validate_password.so
validate-password=FORCE_PLUS_PERMANENT
#default_password_lifetime=0

skip-external-locking = 1
skip-name-resolve = 1
explicit_defaults_for_timestamp = true
# Server Id.
server-id=22611
log_timestamps=system
log_bin =/usr/local/mysql/log/mysql-bin
log_bin_index=/usr/local/mysql/log/mysql-bin.index
binlog_format = row
relay_log_recovery=ON
relay_log=/usr/local/mysql/log/mysql-relay-bin
relay_log_index=/usr/local/mysql/log/mysql-relay-bin.index
log-error = /usr/local/mysql/data/mysqld.log

#### replication ####
replicate_wild_ignore_table = information_schema.%,performance_schema.%,sys.%
#### semi sync replication settings #####
plugin_dir=/usr/local/mysql/lib/pluginplugin_load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
loose_rpl_semi_sync_master_enabled = 1
loose_rpl_semi_sync_slave_enabled = 1
loose_rpl_semi_sync_master_timeout = 5000
#binlog-do-db=cfdi,cloudcp
#binlog-ignore-db=mysql

max_connections=2000
query_cache_size=0
max_heap_table_size = 64
Mnet_buffer_length = 8K
table_open_cache=2000
tmp_table_size=246M
thread_cache_size=300 #限定用于每个数据库线程的栈大小。默认设置足以满足大多数应用
thread_stack = 192k
key_buffer_size=512M
read_buffer_size=4M
read_rnd_buffer_size=32M
binlog_cache_size = 16m
max_binlog_cache_size = 128m
max_binlog_size = 128m

innodb_data_home_dir = /usr/local/mysql/data/
#innodb_data_file_path = libdata1:1024M:autoextend
innodb_flush_log_at_trx_commit=0
innodb_log_buffer_size=16M
innodb_buffer_pool_size=256M
innodb_log_file_size=128M
innodb_log_files_in_group =6
#innodb_log_group_home_dir = /usr/local/mysql/log/redo-log
innodb_thread_concurrency=128
innodb_autoextend_increment=1000
innodb_buffer_pool_instances=8
innodb_concurrency_tickets=5000
innodb_old_blocks_time=1000
innodb_open_files=300
innodb_stats_on_metadata=0
innodb_file_per_table=1
innodb_checksum_algorithm=0
back_log=80
flush_time=0
join_buffer_size=128M
max_allowed_packet=1024M
max_connect_errors=2000
open_files_limit=4161
query_cache_type=0
sort_buffer_size=32M
table_definition_cache=1400
binlog_row_event_max_size=8K
sync_master_info=10000
sync_relay_log=10000
sync_relay_log_info=10000
sync_binlog = 1
#innodb_flush_logs_at_trx_commit=2
innodb_support_xa=ture
#innodb_safe_binlog=1
#批量插入数据缓存大小,可以有效提高插入效率,默认为8
Mbulk_insert_buffer_size = 64M
interactive_timeout = 120
wait_timeout = 120
log-bin-trust-function-creators=1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

C、数据库修改 server-id参数 每台服务器的参数ID不能相同

server-id=22611
server-id=22617
server-id=22618

重启数据库数据库实例,使如上配置生效

D、安装密码插件,密码重用限制,密码验证,双密码验证

greatsql> SELECT * FROM mysql.plugin;
#在线添加
greatsql> INSTALL PLUGIN validate_password SONAME 'validate_password.so';
greatsql> SET GLOBAL validate_password_dictionary_file = "/usr/local/mysql/lib/plugin/";
greatsql> SET GLOBAL  validate_password_check_user_name= ON;
greatsql> SHOW GLOBAL VARIABLES LIKE '%validate_password%';
greatsql> SHOW STATUS LIKE 'validate_password%';
greatsql> SET GLOBAL validate_password_policy=0;
greatsql> SELECT plugin_name,plugin_status,plugin_type,load_option,plugin_library FROM information_schema.plugins;

7.3、搭建目标端greatsql-mysql-router-8.0.32-25环境,安装最新补丁

A 、Profile文件

在 PATH= 添加 mysqlrouter 所在路径

/usr/local/greatsql-mysql-router-8.0.32/bin/,如:

PATH=$PATH:$JAVA_BIN:$ES_HOME:

/usr/local/greatsql-mysql-router-8.0.32/bin/

验证是否安装成功:

$ mysqlrouter --help

B、服务配置

$ mkdir /usr/local/greatsql-mysql-router-8.0.32/log
$ mkdir /usr/local/greatsql-mysql-router-8.0.32/data
$ chown mysql:mysql /etc/mysqlrouter.conf
$ chown -R mysql:mysql /usr/local/greatsql-mysql-router-8.0.32 

C、创建配置文件

#可参考
/usr/local/ greatsql-mysql-router-8.0.32/share/doc/mysqlrouter/sample_mysqlrouter.conf

$ cat mysqlrouter.conf

[DEFAULT]
logging_folder = /usr/local greatsql-mysql-router-8.0.32/log
plugin_folder = /usr/local/greatsql-mysql-router-8.0.32/lib/mysqlrouter
data_folder=/usr/local/greatsql-mysql-router-8.0.32/data

[logger]
level = INFO

[routing:primary]
bind_address = 0.0.0.0
bind_port = 7001
destinations = 192.166.*.*:3306, 192.166.*.*:3306
routing_strategy = first-available

[routing:secondary]
bind_address = 0.0.0.0
bind_port = 7002
destinations = 192.166.*.*:3306
routing_strategy = round-robin

七、迁移测试

7.1 生产库数据导出

1)查看数据库表

$ mysql -uroot -p
greatsql> USE TYU&……*IO
greatsql> SELECT * FROM test1;    

2)生产库数据导出

$ /usr/local/mysql/bin/mysqldump -uroot -h192.166.*.*-P3306 -plezhiyun@lzx -d TYU&……*IO> TYU&……*IO20240819.sql

-- 导出数据库为dbname某张表(test)结构

$ /usr/local/mysql/bin/mysqldump -uroot -plezhiyun@lzx -d TYU&……*IO > TYU&……*IO.sql   

7.2 数据导入

A、创建用户

$ mysql -uroot -h192.166.*.* -P3306 -plezhiyun@lzx -A
greatsql> DROP DATABASE TYU&……*IO;
greatsql> CREATE DATABASE IF NOT EXISTS TYU&……*IO DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

B、导入数据

数据库导入:

greatsql> connect TYU&……*IO
greatsql> SOURCE /home/TYU&……*IO.sql

八、项目目标上线数据迁移的项目计划

序号阶段工作项预计起始时间执行方执行人备注
1环境搭建操作系统的申请安装
测试环境集群数据库安装
2迁移测试数据导入测试数据库
压力测试
功能测试
3正式割接正式割接实施
4割接后数据库保障

九、回退方案

割接窗口内迁移失败,则方案进入回退。操作步骤如下;

1) 迁移停止;

2) 修改原生产库的IP地址;

3) 将原生产库的监听打开;

4) 应用程序重新连接至原库;

十、满足渗透测试、系统漏洞、专家建议

安全计算环境未采用密码技术保证重要业务数据、重要审计数据、主要配置数据和部分个人信息在存储过程中的保密性中风险建议对系统管理数据、鉴别信息及重要业务数据采用经国家密码主管部门认可的密码技术,保证其在存储过程中数据的私密性将通过申请该系统密评改造等方式进行整改。
安全计算环境未对服务器操作系统配置文件进行异地备份,未提供业务数据异地实时备份功能中风险建议利用通信网络将关键数据实时传送至备用场地,实现异地数据异地备份建议承建单位按照整改措施进行整改。建议每周为周期整体备份系统数据,异地保存。建议政务云服务商提供虚拟主机备份的形式。
安全计算环境某市驾驶培训监管服务平台管理后台、服务器操作系统和数据库未授予不同账户为完成各自承担任务所需的最小权限中风险建议系统授予不同用户为完成各自承担的任务所需的最小权限,将系统管理员和业务操作员权限分离,并设置独立的安全审计员角色,对各类用户的操作行为进行审计监督建议系统开发单位于12月底前完成整改。
安全计算环境数据库设置登录连接超时自动退出时间为8小时,时间过长中风险建议数据库设置合理的登录连接超时自动退出时间建议系统开发单位于12月底前完成整改。
安全计算环境服务器操作系统和数据库未重命名或删除系统默认账户中风险建议服务器操作系统和数据库重命名或删除系统默认账户建议系统开发单位于12月底前完成整改。不要使用Root账户远程登录
安全计算环境服务器操作系统和数据库存在共享账户的情况中风险建议根据实际需求,为不同的用户分配不同权限的账号,避免共用同一个账号对系统进行操作建议系统开发单位于12月底前完成整改。
安全计算环境未对重要主体和客体设置安全标记低风险建议对重要主体和客体设置安全标记,并控制用户对已标记的敏感信息的操作建议后期逐步完成敏感信息的分类分级后逐步完成整改。
安全计算环境未基于可信根对计算设备的系统引导程序、系统程序、重要配置参数和应用程序等进行可信验证低风险建议基于可信根对计算设备的系统引导程序、系统程序、重要配置参数和应用程序等进行可信验证,并在应用程序的关键执行环节进行动态可信验证,在检测到其可信性受到破坏后进行报警,并将验证结果形成审计记录送至安全管理中心暂不具备整改条件,测评中心建议可接受此风险。
安全管理中心未对安全策略配置、恶意代码防范措施升级、补丁升级等安全相关事项进行集中管理中风险建议对安全策略配置、恶意代码防范措施升级、补丁升级等安全相关事项进行集中管理将根据云服务商的安全策略进行整改。询问政务云服务商具体措施。
安全管理机构未定期审查审批事项,及时更新需授权和审批的项目、审批部门和审批人等信息低风险建议定期审查审批事项,及时更新需授权和审批的项目、审批部门和审批人等信息将于2023年开展测评工作前进行整改。
---

Enjoy GreatSQL :)

关于 GreatSQL

GreatSQL是适用于金融级应用的国内自主开源数据库,具备高性能、高可靠、高易用性、高安全等多个核心特性,可以作为MySQL或Percona Server的可选替换,用于线上生产环境,且完全免费并兼容MySQL或Percona Server。

相关链接: GreatSQL社区 Gitee GitHub Bilibili

GreatSQL社区:

image

社区有奖建议反馈: https://greatsql.cn/thread-54-1-1.html

社区博客有奖征稿详情: https://greatsql.cn/thread-100-1-1.html

(对文章有疑问或者有独到见解都可以去社区官网提出或分享哦~)

技术交流群:

微信&QQ群:

QQ群:533341697

微信群:添加GreatSQL社区助手(微信号:wanlidbc )好友,待社区助手拉您进群。

内容概要:本文围绕列车-轨道-桥梁交互仿真研究,基于Matlab平台构建数值模型,系统分析列车运行过程中轨道桥梁结构间的动态相互作用机制。研究涵盖多体动力学建模、耦合系统运动方程求解、边界条件设定及仿真结果可视化等关键环节,重点揭示高速行车条件下基础设施的振动传递规律力学响应特征。该仿真方法可有效评估结构安全性、舒适性指标及疲劳寿命,为轨道交通工程的设计优化运维管理提供理论支撑和技术路径。文中配套提供了完整的Matlab代码实现方案及操作说明,便于用户复现、验证和拓展相关研究。; 适合人群:具备Matlab编程基础和结构动力学、车辆动力学等相关专业知识的研究生、科研人员及从事铁路工程、桥梁工程交通系统安全评估的工程技术人才,尤其适合开展轨道交通耦合振动课题的研究者。; 使用场景及目标:①用于高校科研机构进行列车-轨道-桥梁耦合系统动力学特性的教学演示科学研究;②支撑高速铁路桥梁的设计优化、运营安全性评估减振降噪方案验证;③为复杂交通基础设施的多物理场耦合仿真提供建模思路代码参考。; 阅读建议:建议读者结合所提供的Matlab代码逐模块深入研读,重点关注系统建模假设、质量-刚度-阻尼矩阵构建方法及数值积分算法的实现细节,同时可通过调整参数进行敏感性分析,进一步掌握仿真模型的适用范围优化方向。
内容概要:本文系统研究了非线性薛定谔方程的物理信息神经网络(PINN)求解方法,提出一种将物理规律嵌入深度学习模型的科学计算新范式。通过构建全连接神经网络架构,将非线性薛定谔方程及其初始/边界条件作为损失函数的核心组成部分,实现了在无须大量标注数据的前提下对复值偏微分方程的高精度数值求解。该方法充分利用自动微分技术精确计算方程残差,有效融合了数据驱动模型驱动的优势,在光学孤子传播、量子系统演化等典型场景中展现出优异的逼近能力泛化性能。文中配套提供了完整的Python实现代码,涵盖网络搭建、损失定义、训练优化结果可视化全流程。; 适合人群:具备Python编程能力深度学习基础知识,熟悉偏微分方程理论及科学计算的理工科研究生、科研人员,以及从事光学、量子物理、流体力学等领域建模仿真的工程技术人员。; 使用场景及目标:① 掌握PINN方法的基本原理实现技巧;② 学习如何将复杂物理方程转化为可训练的神经网络损失项;③ 应用于非线性光学、玻色-爱因斯坦凝聚、水波动力学等问题的仿真预测;④ 为相关科研课题提供可复现的算法原型代码参考。; 阅读建议:建议读者结合所提供的Python代码进行动手实践,重点理解神经网络对微分算子的近似机制、损失函数的多任务加权策略以及训练过程中的超参数调优方法,进而可迁移至其他非线性偏微分方程的求解任务,拓展其在交叉学科中的应用边界。
源码下载地址: https://pan.quark.cn/s/a4b39357ea24 微软推出的【AZ-900微软认证】是一项针对初学者的基础级云服务资格认证,其目的在于帮助学习者掌握云概念、微软Azure服务的运作机制以及云解决方案的核心知识。获得这一认证后,考生将能够清晰地理解云计算领域的基础术语、服务模式(包括IaaS、PaaS、SaaS等)以及这些服务在Azure平台上的实际应用方式。 在【必过考题】部分,我们可以观察到两个重点议题,它们分别聚焦于PaaS(平台即服务)的概念阐释和云成本的计算方式。 在第一个议题中,考生被要求辨别关于PaaS的正确性描述。PaaS平台提供了一个开发环境,但并不允许用户直接访问操作系统(Box 1: No)。比如,Azure Web Apps服务可以用来部署web应用,但用户无法直接管理虚拟机或IIS系统。另一方面,PaaS确实具备自动扩展的功能(Box 2: Yes),这表示可以根据实际需求自动增加负载均衡的虚拟机以支持web应用的运行。PaaS框架还为开发人员提供了构建和调整云端应用的工具,预置的应用组件能够有效缩短新应用的编程周期(Box 3: Yes)。 第二个议题同样关注云计算理念的理解,尤其强调IT支出从资本性支出(CapEx)向运营性支出(OpEx)的转型思想。传统的IT投资通常被视为CapEx,而云计算的按需付费机制使企业能够将这部分开支转化为OpEx,从而在财务规划上获得更大的自由度。 在为AZ-900考试做准备时,考生需要特别关注以下几个核心知识点: 1. **云服务模式**:深入理解IaaS(基础设施即服务)、PaaS和SaaS(软件即服务)之间的差异及其各自的应用情境。 2. **Azure服务*...
源码下载地址: https://pan.quark.cn/s/239a0d536a1e 依据所提供的文件资料,可以归纳出以下核心内容:由清华大学计算机系邓俊辉教授精心编纂的算法训练营题目合集,对于CSP(中国软件专业人才设计创业大赛)及PAT(程序设计能力测试)这类编程竞赛具有极高的参考价值,堪称一份极具价值的参考资料。此类竞赛普遍对参赛者的算法功底和编程技巧提出严苛要求。该合集中的题目算法领域紧密相连,其中包含了“最大红矩形”这一典型题目。所谓最大红矩形题目,其核心任务是针对一个由红色绿色方格构成的棋盘,寻觅出最大的纯红矩形区域。要攻克这一问题,必须运用数据结构算法的相关知识,特别是栈这一数据结构的应用。 “最大红矩形”问题能够被抽象转化为“直方图最大面积”问题。具体转化方法是将棋盘的每一列视为一个独立的直方图单元,其中红色方格的贡献体现为当前位置前一个绿色方格所在行数的差值,从而保证每个直方图的基宽恒定为1。随后,借助扫描直方图的技术手段来探寻最大矩形面积。这一过程需要对每个直方图进行系统性遍历,并利用栈来记录各直方图的下标信息。一旦检测到当前直方图的高度小于栈顶元素所记录的高度,则意味着遭遇了一个“高点”,此时需计算以该“高点”为右边界条件的最大矩形面积。 在编程实践环节,必须高度关注栈的操作细节,以及如何精确地初始化和操纵栈来应对直方图问题。代码实现中,通常配置两个栈,一个用于储存直方图的高度值,另一个用于标记直方图的下标位置。当面对新高度时,需审慎判断当前高度栈顶高度的相对关系,并据此抉择是执行入栈操作还是计算面积。针对“低点”(即当前高度小于栈顶),应直接将当前高度纳入栈中;而对于“高点”,则需执行弹出栈顶元素的操作,并基于该栈顶元素的高...
源码链接: https://pan.quark.cn/s/3af847fbbec7 在计算机科学编程领域中,十六进制(Hexadecimal)以及二进制(Binary)是两种关键性的数值表示方法。十六进制属于一种基于16的计数系统,它运用0至9的数字以及字母A至F(分别象征10至15的数值)来呈现数值,此同时,二进制则是一种基于2的计数系统,仅采用0和1两个符号。掌握这两种进制之间的相互转换对于深入理解计算机内部运作机制具有决定性意义,因为计算机在底层数据的存储处理环节通常都是以二进制的形式来进行的。将十六进制转换成二进制的过程可以通过以下几个环节得以完成: 1. **单个十六进制符号的转换**:每一个十六进制符号对应着4位二进制序列。具体而言: - 十六进制中的`0`在二进制表达为`0000` - 十六进制中的`1`在二进制表达为`0001` - 十六进制中的`2`在二进制表达为`0010` - 依此类推 - 十六进制中的`9`在二进制表达为`1001` - 十六进制中的`A`或`a`在二进制表达为`1010` - 十六进制中的`B`或`b`在二进制表达为`1011` - 十六进制中的`C`或`c`在二进制表达为`1100` - 十六进制中的`D`或`d`在二进制表达为`1101` - 十六进制中的`E`或`e`在二进制表达为`1110` - 十六进制中的`F`或`f`在二进制表达为`1111` 2. **多位十六进制符号的转换**:针对一个由多个十六进制符号组成的数值,我们可以逐个符号进行转换,并将得到的二进制序列依次拼接。例如,十六进制数`3F`转换成二进制形式为`00111111`。 3. **编程实现方法**:在编程实践过程中,众多编程语言提...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值