-
线下DWS 8.1.1.5版本,VACUUM FULL 系统表时如果存在业务语句执行,除了会出现锁等待是否还有其他影响?业务数据不一致?元数据不一致?
-
上图为华为数据库 GaussDB与openGauss对比。仅供参考。作者:墨天轮通信员
-
10月13日,第一次线下讲解openGauss数据库相关的知识,并对去年的真题做了解析,如果有讲的不好,请指出。通过网盘分享的文件:Adovate7 链接: https://pan.baidu.com/s/1ElKV0WUXcG7E5Qm9L0Hc9g?pwd=6aqe 提取码: 6aqe
-
环境说明当前GaussDB部署主要为轻量化部署(TPOPS)和GaussDBInstaller(这个很重要,小本本记下来)本文采用TPOPS部署模式进行说明本文部署模式为:分布式三节点本文数据库内核版本为:503.1.0启动ssl并配置ssl适用范围注:当前演示信息ssl证书采用数据库预置证书使用Ruby用户登录数据库任意主机开启SSL认证模式gs_guc set -Z coordinator -D /var/chroot/var/lib/engine/data1/cn -c "ssl=on"注意:这里的-D指定路径信息,在TPOPS部署模式下为:/var/chroot/var/lib/engine/data1/cn,在GaussDBInstaller部署模式下该路径在install_cluster.conf中定义的cn_dir变量配置客户端接入认证gs_guc reload -Z coordinator -D /var/chroot/var/lib/engine/data1/cn -h "hostssl all all 10.10.10.0/24 cert"注:可根据实际需要设置ssl连接的网段信息,所有连接均需要ssl的话请将IP地址替换为0.0.0.0/0配置ssl相关的证书参数gs_guc set -Z coordinator -D /var/chroot/var/lib/engine/data1/cn -c "ssl_cert_file='server.crt'" gs_guc set -Z coordinator -D /var/chroot/var/lib/engine/data1/cn -c "ssl_key_file='server.key'" gs_guc set -Z coordinator -D /var/chroot/var/lib/engine/data1/cn -c "'ssl_ca_file='cacert.pem'"重启数据库tpops部署请前往控制台点击重启,GaussDBInstaller部署则使用gs_om -t stop && gs_om -t start本文作者:lalallalal
-
[环境搭建] 集群安装报错 Failed to verify nodes because Failed to verify oms nodes. because they are null or not avaliable.执行安装集群报错:集群定义已保存,但创建集群未完成,请修改后重试。详细错误信息如下:Failed to verify nodes because Failed to verify oms nodes. because they are null or not avaliable.日志附件已经上传
-
环境说明当前GaussDB部署主要为轻量化部署(TPOPS)和GaussDBInstaller(这个很重要,小本本记下来)本文采用TPOPS部署模式进行说明本文部署模式为:分布式三节点本文数据库内核版本为:503.1.0启动ssl并配置ssl适用范围注:当前演示信息ssl证书采用数据库预置证书使用Ruby用户登录数据库任意主机开启SSL认证模式gs_guc set -Z coordinator -D /var/chroot/var/lib/engine/data1/cn -c "ssl=on"注意:这里的-D指定路径信息,在TPOPS部署模式下为:/var/chroot/var/lib/engine/data1/cn,在GaussDBInstaller部署模式下该路径在install_cluster.conf中定义的cn_dir变量配置客户端接入认证gs_guc reload -Z coordinator -D /var/chroot/var/lib/engine/data1/cn -h "hostssl all all 10.10.10.0/24 cert"注:可根据实际需要设置ssl连接的网段信息,所有连接均需要ssl的话请将IP地址替换为0.0.0.0/0配置ssl相关的证书参数gs_guc set -Z coordinator -D /var/chroot/var/lib/engine/data1/cn -c "ssl_cert_file='server.crt'" gs_guc set -Z coordinator -D /var/chroot/var/lib/engine/data1/cn -c "ssl_key_file='server.key'" gs_guc set -Z coordinator -D /var/chroot/var/lib/engine/data1/cn -c "'ssl_ca_file='cacert.pem'"重启数据库tpops部署请前往控制台点击重启,GaussDBInstaller部署则使用gs_om -t stop && gs_om -t start
-
GTM 仅处理全局时间戳请求, 64位CSN递增,几乎都是CPU ++和消息收发操作。不是每次都写ETCD, 而是采用定期持久化到ETCD 里, 每次写ETCD的CSN要加上一个backup_step (100w), 一旦GTM故障,CSN从ETCD读取出来的值保证单调递增。当前GTM 只完成CSN++, 预估可以支持200M/s 请求。GTM处理获取csn消息和csn++的消息, TCP 协议栈消耗CPU会非常严重,采用用户态协议栈提高GTM单节点的处理能力。未来架构演进完全去中心化,采用高精度时钟解决扩展性问题。5.1 单节点的事务关键设计:GTM 只维护一个CSN++, snapshot 只包含CSNDN 本地维护事务id, 维护id到CSN的映射(CSN_LOG)DN 本地GC的过程中回填CSN单shared读事务使用local snapshot:get local latest CSN + get prepared_xidwait csn commit in process(same as before)如果row.csn < localsnapshot.csn || xid in prepared_xid list 可见, 否则不可见5.2 跨节点事务关键设计:第二阶段Commit 改为异步方式,只同步做prepare xact。(1.5 PC)DN 上行级别可见性判断:DN处于prepared状态的事务依赖对应CN上的事务是否提交,如果已经提交,且CSN比snapshot.CSN小,就可见对DN上处于prepared的事务,CN上的事务不处于提交状态,则必须判断是否残留状态,回滚。
-
9月28日,华为开发者布道师活动-鲲鹏聚数:openGuass数据库应用与实践在电子科技大学清水河校区学生活动中心201会议室成功举行。本次活动邀请了电子科技大学计算机科学与工程学院教授、华为开发者布道师生态发展计划教师布道师孙明老师作为主讲嘉宾。孙老师深入介绍了openGauss数据库的发展历史,电子科技大学数据库课程结合openGauss进行产教融合的历程,并在华为云上进行openGauss数据库的实践,包括从创建云服务器到安装、检查安装数据库、启动数据库、连接数据库、创建用户到数据库基本操作的全过程,最后向在场的开发者同学们全面展现了openGauss作为新一代企业级开源数据库的强大实力。孙老师表示,数据库是鲲鹏生态战略中不可或缺的关键支持,其中openGauss内核全开源,并围绕“商用+自用+开源”相结合,长期演进,为千行百业数字经济腾飞提供支持。孙老师指出数据库本土化发展是未来重要趋势之一,青年学生可以积极参与到openGauss数据库的实践与技术生态建设之中,参与相关项目开发,不断提升实战能力,为未来职业发展奠定坚实基础。
-
本文作者:薛双奇1、购买云环境经过安装发下:docker方式部署,只需要一个 / 目录,就可以,不必所有节点都挂载。当前也可以都挂载。挂很多盘浪费资源,测试环境,可以只挂一个目录。 / 119.3.233.237 192.168.0.165 第一台 gaussdb001119.3.226.231 192.168.0.140 第二台 gaussdb002114.116.242.223 192.168.0.149 第三台 gaussdb0032、修改主机名 hostnamectl set-hostname gaussdb001 hostnamectl set-hostname gaussdb002 hostnamectl set-hostname gaussdb003 vi /etc/hosts 192.168.0.165 gaussdb001192.168.0.140 gaussdb002192.168.0.149 gaussdb0033.磁盘检查[root@ecs-9c2b-0001 ~]# fdisk -l |grep /devDisk /dev/vda: 100 GiB, 107374182400 bytes, 209715200 sectors/dev/vda1 2048 2099199 2097152 1G EFI System/dev/vda2 2099200 209715166 207615967 99G Linux filesystem--除了根目录有8个盘。Disk /dev/vdb: 100 GiB, 107374182400 bytes, 209715200 sectorsDisk /dev/vdc: 100 GiB, 107374182400 bytes, 209715200 sectorsDisk /dev/vdd: 100 GiB, 107374182400 bytes, 209715200 sectorsDisk /dev/vde: 100 GiB, 107374182400 bytes, 209715200 sectorsDisk /dev/vdf: 100 GiB, 107374182400 bytes, 209715200 sectorsDisk /dev/vdg: 100 GiB, 107374182400 bytes, 209715200 sectorsDisk /dev/vdh: 100 GiB, 107374182400 bytes, 209715200 sectorsDisk /dev/vdi: 100 GiB, 107374182400 bytes, 209715200 sectors 不要做格式化。保持裸盘即可。4、Java检查[root@ecs-9c2b-0001 soft]# java -versionopenjdk version "1.8.0_242"OpenJDK Runtime Environment (build 1.8.0_242-b08)OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)5、安装 expect yum -y install expect[root@ecs-9c2b-0001 soft]# expect -vexpect version 5.45.46、ssl检查[root@ecs-9c2b-0001 soft]# openssl versionOpenSSL 1.1.1d 10 Sep 20197、安装dos2unixyum -y install dos2unix [root@ecs-9c2b-0001 soft]# dos2unix -Vdos2unix 7.4.0 (2017-10-10)With Unicode UTF-16 support.With native language support.With support to preserve the user and group ownership of files.LOCALEDIR: /usr/share/localehttp://waterlan.home.xs4all.nl/dos2unix.html8、字符集设置安装用户需使用locale命令检查操作系统字符集,必须为en_US.UTF-8。若不是, 执行以下命令进行修改或添加。 vi /etc/sysconfig/i18n修改LANG为en_US.UTF-8,执行source /etc/sysconfig/i18n即可 LANG=en_US.UTF-8source /etc/sysconfig/i18n9、libcgroup 检查yum -y install libcgroup10、注意时区[root@ecs-9c2b-0002 ~]# timedatectl Local time: Mon 2024-04-01 15:04:48 CST Universal time: Mon 2024-04-01 07:04:48 UTC RTC time: Mon 2024-04-01 07:04:47 Time zone: Asia/Shanghai (CST, +0800)System clock synchronized: yes NTP service: active RTC in local TZ: no --时区设置未UTC;timedatectl set-timezone UTC11、关闭GSSAPI认证vi /etc/ssh/sshd_config GSSAPIAuthentication no --这里修改未No; systemctl restart sshd12、python3 版本检查 [root@ecs-9c2b-0002 ~]# python3 --versionPython 3.7.413、关闭防火墙云环境默认已经关闭防火墙。 systemctl stop firewalld.service systemctl disable firewalld.service14、selinux配置修改 vi /etc/selinux/config SELINUX=permissive15、设置pam规则vi /etc/pam.d/system-auth在行末添加 “min_len=8”password requisite pam_pwquality.so try_first_pass local_users_only --修改为:password requisite pam_pwquality.so try_first_pass local_users_only min_len=8 16、开启安装步骤将包放在合适的位置。mkdir /datatar -xzvf DBS-docker-service*_all.tar.gz -C /data cp /root/soft/DBS* /data/docker-service/pkgscp GaussDB_OS_PATCH_2.23.07.260.20231226095856.zip* /data/docker-service/pkgs/ 微服务包(共12个): DBS-auth_*_all.tar.gz DBS-common-service_*_all.tar.gz DBS-GaussDB-backupmanager_*_all.tar.gz DBS-gaussdb-console_*_all.tar.gz DBS-GaussDB-instancemanager_*_all.tar.gz DBS-GaussDB-open-api_*_all.tar.gz DBS-luban_*_all.tar.gz DBS-monitor-service_*_all.tar.gz DBS-ots_*_all.tar.gz DBS-rds-ha-admin_*_all.tar.gz DBS-resource-manager_*_all.tar.gz DBS-workflow_*_all.tar.gz 数据包(共2个):DBS-GaussDB-feature-data_*_all.tar.gz DBS-platform-data_*_all.tar.gz GaussDB实例安装包(共6个): GaussDB_OS_PATCH_*.zip DBS-GaussDB-agent_*_all.tar.gz DBS-GaussDB-Manual_*.tar.gz DBS-DBMind-Manual_*.tar.gz DBS-tools_*_all.tar.gz DBS-OM-Agent-Manual_*.tar.gz17、修改参数cd /data/docker-service/configvi user_edit_file.conf 若user_edit_file.conf配置文件中指定的gauss_path、main_path、log_path、sftp_path、influx_path、docker_path、backup_path对应的目录未挂载磁盘,则需执 行以下命令创建指定目录。 vi /data/docker-service/config/user_edit_file.conf[user_edit]ssh_port = 22gauss_path = /opt/gaussdbnode1_ip = 192.168.0.165node2_ip = 192.168.0.140node3_ip = 192.168.0.149influxdb_install_ip1 = 192.168.0.165influxdb_install_ip2 = 192.168.0.140sftp_install_ip1 = 192.168.0.165sftp_install_ip2 = 192.168.0.140main_path = /opt/cloudnode1_ip2 = 192.168.0.165node2_ip2 = 192.168.0.140node3_ip2 = 192.168.0.149log_path = /opt/cloud/logssftp_path = /opt/sftphomeinflux_path = /opt/cloud/influxdbdocker_path = /opt/dockerbackup_path = /opt/backupservice_group_id = 1010service_user_id = 1010uninstall_all = nouse_cgroup = no --我们目前还没有挂载。--执行脚本创建目录。sh /data/docker-service/action/mainAction/create_install_dir.sh 'Root#123'18、以root用户进入上传软件包节点appctl.sh文件所在目录。cd /data/docker-servicesh appctl.sh install输入root密码:Root#123[root@gaussdb001 docker-service]# sh appctl.sh install请输入root用户密码:start check host: 192.168.0.165 root passwordcheck host: 192.168.0.165 root password successstart check host: 192.168.0.140 root passwordcheck host: 192.168.0.140 root password successstart check host: 192.168.0.149 root passwordcheck host: 192.168.0.149 root password success*** BUILD MICRO SERVICE IMAGES *** check docker status | OK check service origin packages | OK load docker base image | OK build & save zookeeper | OK build & save kafka | OK build & save common-service | OK build & save monitor-service | OK build & save rds-ha-admin | OK build & save resource-manager | OK build & save workflow | OK build & save auth | OK build & save gaussdb-console | OK build & save luban | OK build & save ots | OK build & save GaussDB-open-api | OK build & save GaussDB-instancemanager | OK build & save GaussDB-backupmanager | OK unload docker base image | OK *** DISTRIBUTE PACKAGES *** /data/docker-service left space | OK check packages | OK distribute gaussdb packages | OK distribute service packages | OK distribute data packages | OK distribute sftp packages | OK distribute remote ip | OK *** PREPARE *** 192.168.0.165 | OK 192.168.0.140 | OK 192.168.0.149 | OK Now doing precheck for 192.168.0.165Now doing precheck for 192.168.0.140Now doing precheck for 192.168.0.149[WARNING]-[check_drs]===>[192.168.0.140: The switch of use_cgroup is no.You are not allow to install drs together on this machine.][WARNING]-[check_dir_mount]===>[192.168.0.140: /opt/cloud was not mounted.][WARNING]-[check_dir_mount]===>[192.168.0.140: /opt/backup was not mounted.][WARNING]-[check_dir_mount]===>[192.168.0.140: /opt/cloud/logs was not mounted.][WARNING]-[check_dir_mount]===>[192.168.0.140: /opt/docker was not mounted.][WARNING]-[check_dir_mount]===>[192.168.0.140: /opt/gaussdb was not mounted.][WARNING]-[check_dir_mount]===>[192.168.0.140: /opt/cloud/influxdb was not mounted.][WARNING]-[check_dir_mount]===>[192.168.0.140: /opt/sftphome was not mounted.][WARNING]-[check_drs]===>[192.168.0.149: The switch of use_cgroup is no.You are not allow to install drs together on this machine.][WARNING]-[check_dir_mount]===>[192.168.0.149: /opt/cloud was not mounted.][WARNING]-[check_dir_mount]===>[192.168.0.149: /opt/backup was not mounted.][WARNING]-[check_dir_mount]===>[192.168.0.149: /opt/cloud/logs was not mounted.][WARNING]-[check_dir_mount]===>[192.168.0.149: /opt/docker was not mounted.][WARNING]-[check_dir_mount]===>[192.168.0.149: /opt/gaussdb was not mounted.][WARNING]-[check_drs]===>[192.168.0.165: The switch of use_cgroup is no.You are not allow to install drs together on this machine.][WARNING]-[check_docker]===>[192.168.0.165: docker has been installed on this machine.The docker data store path is /opt/docker.][WARNING]-[check_dir_mount]===>[192.168.0.165: /opt/cloud was not mounted.][WARNING]-[check_dir_mount]===>[192.168.0.165: /opt/backup was not mounted.][WARNING]-[check_dir_mount]===>[192.168.0.165: /opt/cloud/logs was not mounted.][WARNING]-[check_dir_mount]===>[192.168.0.165: /opt/docker was not mounted.][WARNING]-[check_dir_mount]===>[192.168.0.165: /opt/gaussdb was not mounted.][WARNING]-[check_dir_mount]===>[192.168.0.165: /opt/cloud/influxdb was not mounted.][WARNING]-[check_dir_mount]===>[192.168.0.165: /opt/sftphome was not mounted.][WARNING]-[check_users]===>[192.168.0.165: [dbadmin service sftpservice] will be used, if the users already exists, we will delete the user before creating it.]Precheck all completed.Start to init manifest...init manifest successful for 192.168.0.165.init manifest successful for 192.168.0.140.init manifest successful for 192.168.0.149.======== 192.168.0.165: patch ======== patch | complete base_env | complete ======== 192.168.0.140: patch ======== patch | complete base_env | complete ======== 192.168.0.149: patch ======== patch | complete base_env | complete ======== 192.168.0.165: base_enviornment ======== docker | complete InfluxDB | complete sftp | complete gaussdb | complete ======== 192.168.0.140: base_enviornment ======== docker | complete InfluxDB | complete sftp | complete gaussdb | complete ======== 192.168.0.149: base_enviornment ======== docker | complete InfluxDB | complete sftp | complete gaussdb | complete ======== 192.168.0.165: CommonbaseData ======== common-base | complete ======== 192.168.0.140: CommonbaseData ======== common-base | complete ======== 192.168.0.149: CommonbaseData ======== common-base | complete ======== 192.168.0.165: PlatformData ======== platform-data | complete ======== 192.168.0.140: PlatformData ======== platform-data | complete ======== 192.168.0.149: PlatformData ======== platform-data | complete ======== 192.168.0.165: Zookeeper ======== zookeeper | complete GaussDB-feature-data | complete ======== 192.168.0.140: Zookeeper ======== zookeeper | complete GaussDB-feature-data | complete ======== 192.168.0.149: Zookeeper ======== zookeeper | complete GaussDB-feature-data | complete ======== 192.168.0.165: Kafka ======== kafka | complete ======== 192.168.0.140: Kafka ======== kafka | complete ======== 192.168.0.149: Kafka ======== kafka | complete ======== 192.168.0.165: docker_service ======== common-service | complete monitor-service | complete rds-ha-admin | complete resource-manager | complete workflow | complete ======== 192.168.0.140: docker_service ======== common-service | complete monitor-service | complete rds-ha-admin | complete resource-manager | complete workflow | complete ======== 192.168.0.149: docker_service ======== common-service | complete monitor-service | complete rds-ha-admin | complete resource-manager | complete workflow | complete ======== 192.168.0.165: gaussdb_service ======== auth | complete gaussdb-console | complete luban | complete ots | complete GaussDB-open-api | complete GaussDB-instancemanager | complete GaussDB-backupmanager | complete ======== 192.168.0.140: gaussdb_service ======== auth | complete gaussdb-console | complete luban | complete ots | complete GaussDB-open-api | complete GaussDB-instancemanager | complete GaussDB-backupmanager | complete ======== 192.168.0.149: gaussdb_service ======== auth | complete gaussdb-console | complete luban | complete ots | complete GaussDB-open-api | complete GaussDB-instancemanager | complete GaussDB-backupmanager | complete install successful Upload sftp packages done for 192.168.0.165请登录「云数据库GaussDB管理平台-任务中心」查看安装包上传任务状态19、目录查看[root@gaussdb001 docker-service]# df -hFilesystem Size Used Avail Use% Mounted ondevtmpfs 32G 0 32G 0% /devtmpfs 32G 64K 32G 1% /dev/shmtmpfs 32G 19M 32G 1% /runtmpfs 32G 0 32G 0% /sys/fs/cgroup/dev/vda2 98G 55G 39G 60% /tmpfs 32G 192K 32G 1% /tmp/dev/vda1 1022M 5.8M 1017M 1% /boot/efitmpfs 6.4G 0 6.4G 0% /run/user/0tmpfs 6.4G 0 6.4G 0% /run/user/1013overlay 98G 55G 39G 60% /opt/docker/overlay2/a37b134c212e35a247f005a606d89e11ad5f92331982492e4a86061610bc03e2/mergedshm 64M 0 64M 0% /opt/docker/containers/ddedb8092f9601f20a8b527bf9c3f11d75656bf75606cf622222a8216062ddb7/mounts/shmoverlay 98G 55G 39G 60% /opt/docker/overlay2/8e17d61160e01f8acf29798adb152e36c22da39bcfa825f68e0b613f8011b62f/mergedshm 64M 0 64M 0% /opt/docker/containers/5151b4dbfa8ef4408dabd521932102cdaf0daf437c4fa8f0c1c0e8b61a8db62f/mounts/shmoverlay 98G 55G 39G 60% /opt/docker/overlay2/22bfdef20a295045974bc47b91d663a8a9f6aef77e974f310b7df183563f91bc/mergedshm 64M 0 64M 0% /opt/docker/containers/36b4eedc56392a7cf1333f94b009a4dbe3cb345a894d45920e4dd92cf5a7d31f/mounts/shmoverlay 98G 55G 39G 60% /opt/docker/overlay2/8630f5402552d3da3f0e35b351a3812be80c1516f91a0207ec8df1f109efda55/mergedshm 64M 0 64M 0% /opt/docker/containers/ba8a04f5fa17ff1fa1087a2dadb478786f7e1b38cbd067445b3b81fa17ea0899/mounts/shmoverlay 98G 55G 39G 60% /opt/docker/overlay2/10d48c0b3ff13c546650f13d6ee63d21dc3f7da7793d1863ffe22477b1f1aba7/mergedoverlay 98G 55G 39G 60% /opt/docker/overlay2/a2947937a45b5d7d006f473f2b13b023761ce156ae00f27fdc82d678a872fc2a/mergedshm 64M 0 64M 0% /opt/docker/containers/61f1252b21ad807538c29db2802603781b7192a1f4744f395431a1deebf9d20c/mounts/shmshm 64M 0 64M 0% /opt/docker/containers/b4336bab83796188f9303b1a6ea26916f489fb3f2ab87be2a016cdaa49281dc2/mounts/shmoverlay 98G 55G 39G 60% /opt/docker/overlay2/98e58dbc99df739e925fda545dc47462ea2efd7e5999ea362590a7b10c1c34c7/mergedshm 64M 0 64M 0% /opt/docker/containers/b64e0d40381110c1d50c5e0e7e48b07844c6e28ad398830f96226725253c025c/mounts/shmoverlay 98G 55G 39G 60% /opt/docker/overlay2/fa945f745cdbfc0f1d89e5c1f49f6822ac2e826289bb7a1bf81d9d30e0e9abff/mergedshm 64M 0 64M 0% /opt/docker/containers/2f4e00d797aaca829b3536f8f48bb053b7de33cdbe527023c26a49ddc6169549/mounts/shmoverlay 98G 55G 39G 60% /opt/docker/overlay2/177bb8714a1c200376294ce16924d2714f212f6f87a20649a9d7d33569e58abe/mergedshm 64M 0 64M 0% /opt/docker/containers/82e50faf9b7819d9ed4f52ce340f16848703ad620f751ad8541cdc31ea63cc8e/mounts/shmoverlay 98G 55G 39G 60% /opt/docker/overlay2/d5e6039e7f897fb7d627144c56e261900e9fa8b19f4f731f1f57c9405855ea72/mergedshm 64M 0 64M 0% /opt/docker/containers/7ae3af85c383e0eacaae4ee7bdcec47b18b192caa1c1f6b2ab5e780fc9abbd20/mounts/shmoverlay 98G 55G 39G 60% /opt/docker/overlay2/e77f37e155375dc53fa8771042e2252eb1550d45e7890689b69e89e8f0fbaa75/mergedshm 64M 0 64M 0% /opt/docker/containers/f70fc3c684c06d558b94a0cdbad3bcae75d9091366a69448207e750d34ec55b4/mounts/shmoverlay 98G 55G 39G 60% /opt/docker/overlay2/a267ff3dd24160533f64c03087a15b2c0548bf5e5549818446b62a8c5baeaf6d/mergedoverlay 98G 55G 39G 60% /opt/docker/overlay2/d8b35ef232fa025692f2c09c39cfc2c1a41065e8d3703ec7582a765a4f51f67a/mergedshm 64M 0 64M 0% /opt/docker/containers/09ef1b64ec44297e8bc1c2712f192f1de998fe8bb3f4bf05ac252dbc83375aac/mounts/shmoverlay 98G 55G 39G 60% /opt/docker/overlay2/c40e2be245b8b13aecaaf2a07e8fb00760e0ec2ce65e6ec06fd4e76a567190eb/mergedshm 64M 0 64M 0% /opt/docker/containers/d33bb4e66c9c76749b3f81cf3e61f4cfad88a4576e52b59e3bb37dda264c0555/mounts/shmshm 64M 0 64M 0% /opt/docker/containers/80f387ffe09b36272c574dd527ad3695f7b8d8183244cc25e54df33f31edd820/mounts/shm 可以看到docker版本的按照,不需要那么多目录。只需要一个根目录。20.集群进程查看 [root@gaussdb001 docker-service]# ps -ef |grep gaussdbadmin 142884 1 0 08:10 ? 00:00:10 /opt/gaussdb/core/app/bin/om_monitor -L /opt/gaussdb/logs/gaussdb/dbadmin/cm/om_monitordbadmin 168664 1 9 08:11 ? 00:02:38 /opt/gaussdb/core/app/bin/etcd -name etcd_7001 --data-dir /opt/gaussdb/data/etcd --client-cert-auth --trusted-ca-file /opt/gaussdb/core/app/share/sslcert/etcd/etcdca.crt --cert-file /opt/gaussdb/data/etcd/etcd.crt --key-file /opt/gaussdb/data/etcd/etcd.key --peer-client-cert-auth --peer-trusted-ca-file /opt/gaussdb/core/app/share/sslcert/etcd/etcdca.crt --peer-cert-file /opt/gaussdb/data/etcd/etcd.crt --peer-key-file /opt/gaussdb/data/etcd/etcd.key -initial-advertise-peer-urls https://192.168.0.165:31320 -listen-peer-urls https://192.168.0.165:31320 -listen-client-urls https://192.168.0.165:31300 -advertise-client-urls https://192.168.0.165:31300 --election-timeout 5000 --heartbeat-interval 1000 --log-outputs stdout --quota-backend-bytes 8589934592 --auto-compaction-mode periodic --auto-compaction-retention 1h -initial-cluster-token etcd-cluster-dbadmin --enable-v2=false -initial-cluster etcd_7001=https://192.168.0.165:31320,etcd_7002=https://192.168.0.140:31320,etcd_7003=https://192.168.0.149:31320 -initial-cluster-state newdbadmin 169804 142884 9 08:12 ? 00:02:41 /opt/gaussdb/core/app/bin/cm_agentdbadmin 169853 1 1 08:12 ? 00:00:17 /opt/gaussdb/core/app/bin/cm_serverdbadmin 169891 1 0 08:12 ? 00:00:00 gaussdb fenced UDF master processdbadmin 178732 1 41 08:12 ? 00:11:40 /opt/gaussdb/core/app/bin/gaussdb -D /opt/gaussdb/data/dn/dn_6001 -M standbyservice 433157 419764 1 08:23 ? 00:00:19 /opt/cloud/3rdComponent/jre/bin/java -Dnop -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager -DAPP_NAME=gaussdb-console -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/opt/cloud/gaussdb-console/logs/gc-20240401-162327.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/cloud/gaussdb-console/logs/oom-20240401-162327.log -Dorg.quartz.scheduler.skipUpdateCheck=true -Duser.timezone=UTC -XX:-OmitStackTraceInFastThrow -Dorg.terracotta.quartz.skipUpdateCheck=true -Dnet.sf.ehcache.skipUpdateCheck=true -Dorg.apache.catalina.security.SecurityListener.UMASK=0077 -Dfastjson.parser.safeMode=true -Dzookeeper.clientCnxnSocket=org.apache.zookeeper.ClientCnxnSocketNIO -Djdk.tls.ephemeralDHKeySize=4096 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dorg.apache.catalina.connector.RECYCLE_FACADES=true -Dfile.encoding=UTF-8 -Dorg.apache.catalina.STRICT_SERVLET_COMPLIANCE=false -server -Xss1m -Xms3000m -Xmx3000m -Xmn1500m -XX:SurvivorRatio=10 -XX:MaxTenuringThreshold=15 -XX:NewRatio=2 -XX:+DisableExplicitGC -Dignore.endorsed.dirs= -classpath /opt/cloud/gaussdb-console/bin/bootstrap.jar:/opt/cloud/gaussdb-console/lib/:/opt/cloud/gaussdb-console/server/:/opt/cloud/gaussdb-console/server/*:/opt/cloud/gaussdb-console/server/:/opt/cloud/gaussdb-console/server/*:/opt/cloud/gaussdb-console/bin/tomcat-juli.jar -Dcatalina.base=/opt/cloud/gaussdb-console -Dcatalina.home=/opt/cloud/gaussdb-console -Djava.io.tmpdir=/opt/cloud/gaussdb-console/temp org.apache.catalina.startup.Bootstrap start*/[root@gaussdb002 ~]# ps -ef |grep gaussdbadmin 38760 1 0 08:10 ? 00:00:08 /opt/gaussdb/core/app/bin/om_monitor -L /opt/gaussdb/logs/gaussdb/dbadmin/cm/om_monitordbadmin 50204 1 7 08:11 ? 00:02:16 /opt/gaussdb/core/app/bin/etcd -name etcd_7002 --data-dir /opt/gaussdb/data/etcd --client-cert-auth --trusted-ca-file /opt/gaussdb/core/app/share/sslcert/etcd/etcdca.crt --cert-file /opt/gaussdb/data/etcd/etcd.crt --key-file /opt/gaussdb/data/etcd/etcd.key --peer-client-cert-auth --peer-trusted-ca-file /opt/gaussdb/core/app/share/sslcert/etcd/etcdca.crt --peer-cert-file /opt/gaussdb/data/etcd/etcd.crt --peer-key-file /opt/gaussdb/data/etcd/etcd.key -initial-advertise-peer-urls https://192.168.0.140:31320 -listen-peer-urls https://192.168.0.140:31320 -listen-client-urls https://192.168.0.140:31300 -advertise-client-urls https://192.168.0.140:31300 --election-timeout 5000 --heartbeat-interval 1000 --log-outputs stdout --quota-backend-bytes 8589934592 --auto-compaction-mode periodic --auto-compaction-retention 1h -initial-cluster-token etcd-cluster-dbadmin --enable-v2=false -initial-cluster etcd_7001=https://192.168.0.165:31320,etcd_7002=https://192.168.0.140:31320,etcd_7003=https://192.168.0.149:31320 -initial-cluster-state newdbadmin 51300 38760 8 08:12 ? 00:02:29 /opt/gaussdb/core/app/bin/cm_agentdbadmin 51348 1 1 08:12 ? 00:00:18 /opt/gaussdb/core/app/bin/cm_serverdbadmin 51384 1 0 08:12 ? 00:00:00 gaussdb fenced UDF master processdbadmin 54877 1 16 08:12 ? 00:04:41 /opt/gaussdb/core/app/bin/gaussdb -D /opt/gaussdb/data/dn/dn_6002 -M standbyservice 113603 103391 1 08:24 ? 00:00:18 /opt/cloud/3rdComponent/jre/bin/java -Dnop -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager -DAPP_NAME=gaussdb-console -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/opt/cloud/gaussdb-console/logs/gc-20240401-162411.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/cloud/gaussdb-console/logs/oom-20240401-162411.log -Dorg.quartz.scheduler.skipUpdateCheck=true -Duser.timezone=UTC -XX:-OmitStackTraceInFastThrow -Dorg.terracotta.quartz.skipUpdateCheck=true -Dnet.sf.ehcache.skipUpdateCheck=true -Dorg.apache.catalina.security.SecurityListener.UMASK=0077 -Dfastjson.parser.safeMode=true -Dzookeeper.clientCnxnSocket=org.apache.zookeeper.ClientCnxnSocketNIO -Djdk.tls.ephemeralDHKeySize=4096 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dorg.apache.catalina.connector.RECYCLE_FACADES=true -Dfile.encoding=UTF-8 -Dorg.apache.catalina.STRICT_SERVLET_COMPLIANCE=false -server -Xss1m -Xms3000m -Xmx3000m -Xmn1500m -XX:SurvivorRatio=10 -XX:MaxTenuringThreshold=15 -XX:NewRatio=2 -XX:+DisableExplicitGC -Dignore.endorsed.dirs= -classpath /opt/cloud/gaussdb-console/bin/bootstrap.jar:/opt/cloud/gaussdb-console/lib/:/opt/cloud/gaussdb-console/server/:/opt/cloud/gaussdb-console/server/*:/opt/cloud/gaussdb-console/server/:/opt/cloud/gaussdb-console/server/*:/opt/cloud/gaussdb-console/bin/tomcat-juli.jar -Dcatalina.base=/opt/cloud/gaussdb-console -Dcatalina.home=/opt/cloud/gaussdb-console -Djava.io.tmpdir=/opt/cloud/gaussdb-console/temp org.apache.catalina.startup.Bootstrap start */[root@gaussdb003 ~]# ps -ef |grep gaussdbadmin 37666 1 0 08:10 ? 00:00:09 /opt/gaussdb/core/app/bin/om_monitor -L /opt/gaussdb/logs/gaussdb/dbadmin/cm/om_monitordbadmin 48727 1 8 08:11 ? 00:02:23 /opt/gaussdb/core/app/bin/etcd -name etcd_7003 --data-dir /opt/gaussdb/data/etcd --client-cert-auth --trusted-ca-file /opt/gaussdb/core/app/share/sslcert/etcd/etcdca.crt --cert-file /opt/gaussdb/data/etcd/etcd.crt --key-file /opt/gaussdb/data/etcd/etcd.key --peer-client-cert-auth --peer-trusted-ca-file /opt/gaussdb/core/app/share/sslcert/etcd/etcdca.crt --peer-cert-file /opt/gaussdb/data/etcd/etcd.crt --peer-key-file /opt/gaussdb/data/etcd/etcd.key -initial-advertise-peer-urls https://192.168.0.149:31320 -listen-peer-urls https://192.168.0.149:31320 -listen-client-urls https://192.168.0.149:31300 -advertise-client-urls https://192.168.0.149:31300 --election-timeout 5000 --heartbeat-interval 1000 --log-outputs stdout --quota-backend-bytes 8589934592 --auto-compaction-mode periodic --auto-compaction-retention 1h -initial-cluster-token etcd-cluster-dbadmin --enable-v2=false -initial-cluster etcd_7001=https://192.168.0.165:31320,etcd_7002=https://192.168.0.140:31320,etcd_7003=https://192.168.0.149:31320 -initial-cluster-state newdbadmin 50092 37666 9 08:12 ? 00:02:36 /opt/gaussdb/core/app/bin/cm_agentdbadmin 50140 1 1 08:12 ? 00:00:19 /opt/gaussdb/core/app/bin/cm_serverdbadmin 50169 1 17 08:12 ? 00:05:03 /opt/gaussdb/core/app/bin/gaussdb -D /opt/gaussdb/data/dn/dn_6003 -M pendingdbadmin 50178 1 0 08:12 ? 00:00:00 gaussdb fenced UDF master processservice 107147 99601 1 08:23 ? 00:00:17 /opt/cloud/3rdComponent/jre/bin/java -Dnop -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager -DAPP_NAME=gaussdb-console -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/opt/cloud/gaussdb-console/logs/gc-20240401-162350.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/cloud/gaussdb-console/logs/oom-20240401-162350.log -Dorg.quartz.scheduler.skipUpdateCheck=true -Duser.timezone=UTC -XX:-OmitStackTraceInFastThrow -Dorg.terracotta.quartz.skipUpdateCheck=true -Dnet.sf.ehcache.skipUpdateCheck=true -Dorg.apache.catalina.security.SecurityListener.UMASK=0077 -Dfastjson.parser.safeMode=true -Dzookeeper.clientCnxnSocket=org.apache.zookeeper.ClientCnxnSocketNIO -Djdk.tls.ephemeralDHKeySize=4096 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dorg.apache.catalina.connector.RECYCLE_FACADES=true -Dfile.encoding=UTF-8 -Dorg.apache.catalina.STRICT_SERVLET_COMPLIANCE=false -server -Xss1m -Xms3000m -Xmx3000m -Xmn1500m -XX:SurvivorRatio=10 -XX:MaxTenuringThreshold=15 -XX:NewRatio=2 -XX:+DisableExplicitGC -Dignore.endorsed.dirs= -classpath /opt/cloud/gaussdb-console/bin/bootstrap.jar:/opt/cloud/gaussdb-console/lib/:/opt/cloud/gaussdb-console/server/:/opt/cloud/gaussdb-console/server/*:/opt/cloud/gaussdb-console/server/:/opt/cloud/gaussdb-console/server/*:/opt/cloud/gaussdb-console/bin/tomcat-juli.jar -Dcatalina.base=/opt/cloud/gaussdb-console -Dcatalina.home=/opt/cloud/gaussdb-console -Djava.io.tmpdir=/opt/cloud/gaussdb-console/temp org.apache.catalina.startup.Bootstrap start */21.docker 进程查看 --三个节点都是一样的。[root@gaussdb003 ~]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES8aa93636c20d gaussdb-backupmanager:2.23.07.260.20231223170622 "bash start.sh" 21 minutes ago Up 20 minutes gaussdb-backupmanager2.23.07.260.20231223170622b5adcab0cb82 gaussdb-instancemanager:2.23.07.260.20231226234230 "bash start.sh" 21 minutes ago Up 21 minutes gaussdb-instancemanager2.23.07.260.20231226234230a5b64fc06612 gaussdb-open-api:2.23.07.260.20231226232138.70780102 "bash start.sh" 21 minutes ago Up 21 minutes gaussdb-open-api2.23.07.260.20231226232138.7078010269af8b093fcc ots:2.23.07.260.20231222133123.70415568 "bash start.sh" 21 minutes ago Up 21 minutes ots2.23.07.260.20231222133123.70415568f438b114984e luban:2.23.07.260.20231226220440.70776246 "bash start.sh" 21 minutes ago Up 21 minutes luban2.23.07.260.20231226220440.707762460ce56731fae6 gaussdb-console:2.23.07.260.70429885 "bash start.sh" 21 minutes ago Up 21 minutes gaussdb-console2.23.07.260.70429885b4a671c03d28 auth:2.23.07.260.20231221153212.70313242 "bash start.sh" 21 minutes ago Up 21 minutes auth2.23.07.260.20231221153212.70313242cb966b1addb0 workflow:2.23.07.200.202309092109.61758876 "bash start.sh" 23 minutes ago Up 23 minutes workflow2.23.07.200.202309092109.61758876a5bd32566f2d resource-manager:2.23.07.260.202311271720.68102008 "bash start.sh" 24 minutes ago Up 23 minutes resource-manager2.23.07.260.202311271720.68102008e9c3b7fd98d8 rds-ha-admin:2.23.07.260.202312112053.69373866 "bash start.sh" 24 minutes ago Up 23 minutes rds-ha-admin2.23.07.260.202312112053.69373866b4dd7a686670 monitor-service:2.23.07.260.202312211511.70310489 "bash start.sh" 24 minutes ago Up 23 minutes monitor-service2.23.07.260.202312211511.70310489c1592367b49e common-service:2.23.07.260.202312261914.70760277 "bash start.sh" 24 minutes ago Up 24 minutes common-service2.23.07.260.202312261914.70760277b4e3f3e1a7ab kafka:2.23.07.200.20230826182412 "bash start.sh" 24 minutes ago Up 24 minutes kafka2.23.07.200.20230826182412d37530427ad8 zookeeper:2.23.07.200.20230826182412 "bash start.sh" 25 minutes ago Up 25 minutes zookeeper2.23.07.200.20230826182412 119.3.233.237 192.168.0.165 第一台 gaussdb001119.3.226.231 192.168.0.140 第二台 gaussdb002114.116.242.223 192.168.0.149 第三台 gaussdb003https://119.3.233.237:8443/gaussdb/#/loginhttps://119.3.226.231:8443/gaussdb/#/loginhttps://114.116.242.223:8443/gaussdb/#/login22、由于是自动安装,无法找到密码,所以无法登录/gsql -p 8635 -U rdsadmin -W -d core -h 192.168.0.165 --docker方式安装后,不清楚端口是多少。目前无法登录。[root@gaussdb001 om]# netstat -anp |grep gausstcp 0 0 192.168.0.165:8635 0.0.0.0:* LISTEN 178732/gaussdb tcp 0 0 127.0.0.1:8635 0.0.0.0:* LISTEN 178732/gaussdb tcp 0 0 192.168.0.165:8636 0.0.0.0:* LISTEN 178732/gaussdb tcp 0 0 127.0.0.1:8636 0.0.0.0:* LISTEN 178732/gaussdb tcp 0 0 192.168.0.165:8640 0.0.0.0:* LISTEN 178732/gaussdb unix 2 [ ACC ] STREAM LISTENING 300719 169891/gaussdb fenc /opt/gaussdb/temp/.gaussUDF.socketunix 2 [ ACC ] STREAM LISTENING 322729 178732/gaussdb /opt/gaussdb/temp/.s.PGSQL.8635unix 2 [ ACC ] STREAM LISTENING 322730 178732/gaussdb /opt/gaussdb/temp/.s.PGSQL.8636 [root@gaussdb001 dbadmin]# gsql -p 8635 -U rdsadmin -W"Huawei#321" -d postgres -h 192.168.0.165gsql: ERROR: Invalid username/password,login denied.ERROR: Invalid username/password,login denied. gsql -p 30180 -U root -W "Huawei#321" -d postgres -h 192.168.0.165
-
数据库上云有多轻松?华为云技术专家带你玩转云数据库API,智能数据底座手到擒来。 本期直播内容聚焦在华为云数据库开发者平台能力展开,重点围绕GaussDB与GaussDB(for MySQL)服务,深入浅出产品核心能力,解读开发者指南,实践一站式可视化开发者平台,助力开发者快速上手数据库服务API。直播链接:cid:link_0Q:GaussDB是如何实现故障转移和高可用的?能否详细介绍一下其故障恢复机制?A:云数据库GaussDB服务是国内首个双集群强一致方案,核心业务高可用。 双集群强一致:基于存算分离,GaussDB+鲲鹏+NOF网络+Dorado存储,全栈组合调优,集群级故障完全隔离,双AZ双活,保障RPO=0 应用无损透明倒换:故障切换快速连接、SQL操作断点继续,实现数据库HA切换时连接不断、事务自动回放,业务无感知 数据可靠:数据持久性高达99.9999999999%,保证数据安全可靠,保护业务免受故障影响 详细请参考官网:cid:link_1Q:对于没有丰富数据库开发经验的开发者来说,华为云数据库 API 的学习曲线是怎样的?有哪些资源和工具可以帮助他们快速掌握?A:开放着官网丰富的API资源和开发者资料,可以满足开发者快速学习。 参考开发者官网:https://developer.huaweicloud.com/Q:华为云数据库服务API支持哪些类型的数据库?如MySQL、PostgreSQL、MongoDB等。A:华为云官网上的已提供服务的数据库均已提供丰富的api能力。Q:华为云数据库API支持哪些编程语言,并且如何进行接口调用?A:API是基于http对外提供接口请求,任何语言都可以支持。可参考GaussDB官网如何调用API章节:https://support.huaweicloud.com/productdesc-gaussdb/gaussdb_01_057.html Q:GaussDB在处理大规模数据时的性能优化方法有哪些?A:参考官网SQL调优指南:https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0246.htmlQ:华为云数据库服务API如何与云上其他服务(如云存储、云缓存)集成?A:数据库服务API由开发者进行编排和集成,可以和其他云服务集成配套。Q:在GaussDB中如何实现细粒度的访问控制和权限管理?A:云数据库GaussDB服务支持角色和策略权限管理,角色以服务为粒度。策略以API接口为粒度进行权限拆分,授权更加精细,可以精确到某个操作、资源和条件,能够满足企业对权限最小化的安全管控要求。 详细请参考官网:https://support.huaweicloud.com/api-gaussdb/gaussdb_api_190.htmlQ:GaussDB(for MySQL)支持并行查询的话,和MySQL的innodb的引擎最大的差异在哪里?A:并行查询是GaussDB(for MySQL)服务自研特性,将查询任务进行切分并分发到多个CPU核上进行计算,充分利用CPU的多核计算资源来缩短查询时间。并行查询的性能提升倍数理论上与CPU的核数正相关。 详细请参考官网:https://support.huaweicloud.com/kerneldesc-gaussdbformysql/gaussdbformysql_20_0005.htmlQ:在开发过程中,如何利用华为云数据库进行有效的性能测试和压力测试?A:可以使用业务通用的sysbench或者benchmark基准测试工具。Q:GaussDB数据库服务 API 可以支持哪些编程语言?A:数据库服务API是通用的Restful接口,允许不同软件系统之间进行交互,支持任何语言。数据库服务API为开发者提供了对应的SDK工具,支持主流的7种语言的能力。Q:如何通过华为云数据库服务API实现数据库实例的自动扩展?A:数据库服务API支持相关场景自动扩展,如:云数据库GaussDB(for MySQL)支持自动扩缩容(Autoscaling),按需实例支持根据cpu使用率自动扩大或者缩小规格,也可以支持增加或者减少只读节点,包周期实例支持根据cpu使用率自动扩大或者缩小规格。 详细请参考官网:https://www.huaweicloud.com/product/gaussdbformysql/features.html 云数据库GaussDB支持自动扩容实例磁盘,详细请参考官网:https://support.huaweicloud.com/usermanual-gaussdb/gaussdb_01_471.htmlQ:业务量提升后,GaussDB是如何扩展的A:这个需要看具体的场景,是需要扩规格还是需要扩分片。Q:华为云数据库服务API的调用费用是如何计算的?A:数据库服务按照开通资源用量收费,API调用不涉及费用。Q:GaussDB支不支持使用SQL命令修改全局参数?A:用户界面不支持。Q:发生故障以后,数据库服务的自动恢复机制是怎样的,备份恢复的操作流程是什么样的A:数据库服务提供强大的高可用能力,如部署时多副本部署,单个副本异常不影响服务正常使用等,即使数据库实例完全不可用,我们提供了丰富的恢复能力如基于时间点恢复等能力。 参考官网:https://www.huaweicloud.com/product/gaussdbformysql/features.htmlQ:如何获取华为云数据库服务API的访问权限?A:数据库服务API支持如下两种认证鉴权,可以选择其中一种进行认证鉴权。推荐使用AK/SK认证,其安全性比Token认证要高。 Token认证:通过Token认证通用请求。 AK/SK认证:通过AK(Access Key ID)/SK(Secret Access Key)加密调用请求。 详细请参考官网:https://support.huaweicloud.com/api-gaussdbformysql/gaussdbformysql_03_0001.htmlQ:GaussDB哪些监控工具可以检查数据库的健康状况?A:GaussDB云服务采集了丰富的指标并上报到了云监控服务。Q:多台弹性云服务器云主机是否可以使用同一个GaussDB数据库A:可以的。Q:华为云数据库如何支持SQL和NoSQL的混合使用?A:可以了解下HTAP数据库场景。Q:如何将现有的MySQL数据库迁移到GaussDB(for MySQL),是否有自动迁移工具?A:华为云数据复制服务(DRS)可以很方便的完成实例迁移,支持多种主流数据源,实现数据安全、稳定、实时、高速传输,提供极致交互体验。 详细请参考官网:https://www.huaweicloud.com/product/drs.htmlQ:如何使用华为云数据库服务API进行数据传输?A:数据库服务API针对数据库的管理场景提供接口服务,并不具备数据传输能力。Q:GaussDB是否兼容现有的MySQL应用?A:GaussDB的M兼容性,兼容MySQL协议。Q:华为云数据库服务API支持哪些编程语言?A:数据库服务API是通用的Restful接口,允许不同软件系统之间进行交互,支持任何语言。数据库服务API为开发者提供了对应的SDK工具,支持主流的7种语言的能力。Q:GaussDB支持自动扩展吗?如何配置?A:云数据库GaussDB服务API支持相关场景自动扩展,详细请参考官网:https://support.huaweicloud.com/usermanual-gaussdb/gaussdb_01_471.htmlQ:使用云数据库相比传统数据库,在成本上有哪些优势?A:云数据库服务相比传统的数据库,云数据库即用即买,随时退订。Q:GaussDB(for MySQL)垂直集成能力的具体实现方式是什么,它如何提升云环境下的扩展性和性能?A:包周期实例可以通过容量变更功能实现磁盘扩容可以通过规格变更到更高的CPU和内容提升性能可以通过添加只读节点的方式实现扩展性Q:在使用GaussDB时,有哪些最佳实践可以提升数据库性能?A:云数据库GaussDB服务性能调优过程需要综合考虑多方面因素,具体详情请参考GaussDB官网性能调优章节https://support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb_v5r2c10_0221.htmlQ:华为云如何保证数据的安全性?A:华为云数据库服务采用多重防护安全方案,如:身份认证、访问控制、数据保护、监控以及恢复等,是业务数据存储和使用更加放心。Q:如何将现有的数据库迁移到华为云数据库?A:华为云数据复制服务(DRS)可以很方便的完成实例迁移,支持多种主流数据源,实现数据安全、稳定、实时、高速传输,提供极致交互体验。 详细请参考官网:https://www.huaweicloud.com/product/drs.htmlQ:华为云的GaussDB有哪些独特的优势?A:云数据库GaussDB服务主要有四个优势。1、高安全GaussDB拥有TOP级的商业数据库安全特性,如下所示,能够满足政企和金融级客户的核心安全诉求。数据动态脱敏,行级访问控制,密态计算。2、健全的工具与服务化能力GaussDB已经拥有华为云,商用服务化部署能力,同时支持DAS、DRS等生态工具。有效保障用户开发、运维、优化、监控、迁移等日常工作需要。3、全栈自研GaussDB基于鲲鹏生态,是当前国内唯一能够做到全栈自主可控的国产品牌。同时GaussDB能够基于硬件优势在底层不断进行优化,提升产品综合性能。4、开源生态GaussDB已经支持开源社区,并提供主备版版本下载。Q:GaussDB(for MySQL)支持的最大存储容量是多少,与GaussDB相比如何实现这一目标?A:云数据库GaussDB(for MySQL)服务基于华为最新一代DFV 存储,采用计算存储分离架构,支持1主15只读的高扩展性、128T的海量存储。Q:华为云数据库服务API有哪些限制?A:每一个API使用的场景约束们在API文档上有详细的说明。Q:使用华为云数据库服务API时,如何确保数据的安全性和稳定性?A:华为云api提供了两种件鉴权方式,分别为token和ak,sk的方式。在版本迭代过程中api会做到100%向前兼容。Q:GaussDB的密态计算功能是如何实现的,与其他数据库相比有何优势?A:云数据库GaussDB服务支持全密态能力,密文数据检索计算。1、数据在存储、传输、查询整个生命周期过程中均以密文形态存在。2、密钥掌握在用户自己手上,数据库管理员无法获取,加解密过程仅在客户侧完成。3、语法自动解析,应用无感知,将语法解析内置到驱动中,不需要修改原有的SQL语句、数据类型等。4、通过软硬结合可以将部分算法不进行加解密过程传递,减少硬件IO。5、通过数学算法,直接对密文进行查询,极大减少加解密时的性能损耗。详细请参考官网:cid:link_1Q:华为云数据库服务API有哪些应用场景?A:能力和控制台齐平,控制台能做的能力,api可以代替。Q:如何解决GaussDB(for MySQL)中长事务导致的锁超时问题?A:云数据库GaussDB(for MySQL)服务通过非阻塞DDL对该问题进行了相关特性的优化,详细请参考官网: https://support.huaweicloud.com/kerneldesc-gaussdbformysql/gaussdbformysql_20_0015.htmlQ:默认是一主多备的话,数据都是多副本的对吧A:是的。GaussDB(for MySQL)跨3AZ高可用部署,集群内数据3副本。Q:有没有关于数据库监控的优化A:参考官网:https://support.huaweicloud.com/usermanual-gaussdb/gaussdb_01_238.htmlQ:有类似于oracle的“完全恢复”功能吗A:数据库服务支持PITR恢复,可以恢复到具体时间点。 参考官网:https://support.huaweicloud.com/usermanual-gaussdb/gaussdb_01_646.htmlQ:在性能方面,GaussDB 和 GaussDB (for MySQL) 有哪些突出表现?与传统数据库相比有何优势?还有这两个的区别和核心能力呢?A:采用计算与存储分离,日志即数据架构,性能提升至开源MySQL的7倍。详情请看文档:https://support.huaweicloud.com/productdesc-gaussdbformysql/introduction.htmlQ:GaussDB for mysql,如果要把mysql的实例迁移过来,有专属软件吗A:通过华为云DRS(数据复制服务)可以很方便的完成实例迁移。Q:能否通过API获取GaussDB的实时负载,以及同时多少个连接正在查询修改。以及当前服务器资源使用率A:GaussDB提供了丰富的指标堆在在华为云监控服务上,可调用云监控服务进行查询。Q:GaussDB的API是否支持完整的CRUD操作,以及是否能够通过API实现数据库的自动化运维?A:数据库服务API接口支持数据库管理操作,不支持数据类CRUD操作。Q:认证有考试报名费用吗?A:需要的想要了解更多数据库相关知识,欢迎观看DTSE Tech Talk 系列技术直播
-
华为云开发者日·武汉站来啦!参加“使用GaussDB(for MySQL)挑战数据业务汇报任务”体验项目提出你的建议或使用体验有机会获得开发者盲盒礼包惊喜不容错过,快叫上小伙伴一起来参加吧~【体验项目】使用GaussDB(for MySQL)挑战数据业务汇报任务【活动时间】2024年10月16日-10月20日【参与方式】直接在此活动帖下方回帖提建议/提建议即可比如对产品功能的改进建议、对活动流程的感想、对现场活动的感悟等等PS:不要少于30字哦~【获奖规则】奖项设置有效回复楼层评选条件获奖名额激励礼品优质建议奖20对产品功能有改进价值的建议1名开发者盲盒礼品价值50-100元积极反馈奖20优质建议奖轮空的情况下进行抽取每满20层抽取1名开发者盲盒礼品价值50元【活动规则】1、本帖的回帖建议不少于30字,仅限于对“使用GaussDB(for MySQL)挑战数据业务汇报任务”体验项目,其他项目建议不参与此次活动,否则将视为无效内容。2、本次活动将根据实际参与情况发放奖励,包括但不限于用户百分之百中奖或奖项轮空的情况;以上奖品均为实物奖品,具体发放视出库情况而定;3、活动预计于结束后七天内完成奖项公示,并于结束后15个工作日内完成邮寄。【温馨提示】1、请务必使用个人实名账号参与活动(IAM、企业账号等账号参与无效)。如一个实名认证对应多个账号,只有一个账号可领取奖励,若同一账号填写多个不同收件人或不同账号填写同一收件人,均不予发放奖励。2、所有获得奖品的获奖用户,请于获奖后3日内完成实名认证,否则视为放弃奖励。
-
现在使用quartz使用org.quartz.impl.jdbcjobstore.PostgreSQLDelegate这个驱动报错,boolean类型保存的时候参数为 'FALSE' 无法存储
-
[opengauss@vm-bead-ca4f28e7fd68 script]$ ./gs_install -X /data/opengauss/cluster_config.xml Parsing the configuration file. Successfully checked gs_uninstall on every node. Check preinstall on every node. Successfully checked preinstall on every node. Creating the backup directory. Last time end with Start cluster. Continue this step. Successfully created the backup directory. begin deploy.. Using opengauss:opengauss to install database. Using installation program path : /data/opengauss/opengaussdb_aee4abd5 $GAUSSHOME points to /data/opengauss/opengaussdb_aee4abd5, no need to create symbolic link. Traceback (most recent call last): File "/data/opengauss/om/script/local/Install.py", line 843, in <module> functionDict[g_opts.action]() File "/data/opengauss/om/script/local/Install.py", line 774, in startCluster dn.start(self.time_out) File "/data/opengauss/om/script/local/../gspylib/component/Kernel/Kernel.py", line 107, in start "failure details." + "\n" + output) Exception: [GAUSS-51607] : Failed to start instance. Error: Please check the gs_ctl log for failure details. [2024-10-11 16:42:05.267][20448][][gs_ctl]: gs_ctl started,datadir is /data/opengauss/data/dn [2024-10-11 16:42:05.395][20448][][gs_ctl]: waiting for server to start... .0 LOG: [Alarm Module]Host Name: vm-bead-ca4f28e7fd68 0 LOG: [Alarm Module]Host IP: vm-bead-ca4f28e7fd68. Copy hostname directly in case of taking 10s to use 'gethostbyname' when /etc/hosts does not contain <HOST IP> 0 LOG: [Alarm Module]Cluster Name: single 0 LOG: [Alarm Module]Invalid data in AlarmItem file! Read alarm English name failed! line: 58 0 WARNING: failed to open feature control file, please check whether it exists: FileName=gaussdb.version, Errno=2, Errmessage=No such file or directory. 0 WARNING: failed to parse feature control file: gaussdb.version. 0 WARNING: Failed to load the product control file, so gaussdb cannot distinguish product version. 0 LOG: SSE4.2 is not supported, disable codegen. 0 LOG: bbox_dump_path is set to /data/opengauss/corefile/ 2024-10-11 16:42:05.591 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: base_page_saved_interval is 400, ori is 400. 2024-10-11 16:42:05.600 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 DB010 0 [REDO] LOG: Recovery parallelism, cpu count = 8, max = 4, actual = 4 2024-10-11 16:42:05.600 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 DB010 0 [REDO] LOG: ConfigRecoveryParallelism, true_max_recovery_parallelism:4, max_recovery_parallelism:4 2024-10-11 16:42:05.613 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: [Alarm Module]Host Name: vm-bead-ca4f28e7fd68 2024-10-11 16:42:05.613 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: [Alarm Module]Host IP: vm-bead-ca4f28e7fd68. Copy hostname directly in case of taking 10s to use 'gethostbyname' when /etc/hosts does not contain <HOST IP> 2024-10-11 16:42:05.613 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: [Alarm Module]Cluster Name: single 2024-10-11 16:42:05.613 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: [Alarm Module]Invalid data in AlarmItem file! Read alarm English name failed! line: 58 2024-10-11 16:42:05.614 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: [Alarm Module]Alarm component does not exist. 2024-10-11 16:42:05.618 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: loaded library "security_plugin" 2024-10-11 16:42:05.633 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 01000 0 [BACKEND] WARNING: could not create any HA TCP/IP sockets 2024-10-11 16:42:05.633 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 01000 0 [BACKEND] WARNING: could not create any HA TCP/IP sockets 2024-10-11 16:42:05.636 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: InitNuma numaNodeNum: 1 numa_distribute_mode: none inheritThreadPool: 0. 2024-10-11 16:42:05.637 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: reserved memory for backend threads is: 340 MB 2024-10-11 16:42:05.637 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: reserved memory for WAL buffers is: 320 MB 2024-10-11 16:42:05.637 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: Set max backend reserve memory is: 660 MB, max dynamic memory is: 1423 MB 2024-10-11 16:42:05.637 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: shared memory 2012 Mbytes, memory context 2083 Mbytes, max process memory 5120 Mbytes 2024-10-11 16:42:05.637 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: shared memory that key is 15400001 is owned by pid 17746 2024-10-11 16:42:06.168 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [CACHE] LOG: set data cache size(805306368) 2024-10-11 16:42:06.455 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [SEGMENT_PAGE] LOG: Segment-page constants: DF_MAP_SIZE: 8156, DF_MAP_BIT_CNT: 65248, DF_MAP_GROUP_EXTENTS: 4175872, IPBLOCK_SIZE: 8168, EXTENTS_PER_IPBLOCK: 1021, IPBLOCK_GROUP_SIZE: 4090, BMT_HEADER_LEVEL0_TOTAL_PAGES: 8323072, BktMapEntryNumberPerBlock: 2038, BktMapBlockNumber: 25, BktBitMaxMapCnt: 512 2024-10-11 16:42:06.636 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: gaussdb: fsync file "/data/opengauss/data/dn/gaussdb.state.temp" success 2024-10-11 16:42:06.637 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: create gaussdb state file success: db state(STARTING_STATE), server mode(Normal), connection index(1) 2024-10-11 16:42:06.663 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: max_safe_fds = 974, usable_fds = 1000, already_open = 16 bbox_dump_path is set to /data/opengauss/corefile/ [2024-10-11 16:42:11.404][20448][][gs_ctl]: gaussDB state is Coredump [2024-10-11 16:42:11.404][20448][][gs_ctl]: stopped waiting [2024-10-11 16:42:11.404][20448][][gs_ctl]: could not start server Examine the log output. [GAUSS-51607] : Failed to start instance. Error: Please check the gs_ctl log for failure details. [2024-10-11 16:42:05.267][20448][][gs_ctl]: gs_ctl started,datadir is /data/opengauss/data/dn [2024-10-11 16:42:05.395][20448][][gs_ctl]: waiting for server to start... .0 LOG: [Alarm Module]Host Name: vm-bead-ca4f28e7fd68 0 LOG: [Alarm Module]Host IP: vm-bead-ca4f28e7fd68. Copy hostname directly in case of taking 10s to use 'gethostbyname' when /etc/hosts does not contain <HOST IP> 0 LOG: [Alarm Module]Cluster Name: single 0 LOG: [Alarm Module]Invalid data in AlarmItem file! Read alarm English name failed! line: 58 0 WARNING: failed to open feature control file, please check whether it exists: FileName=gaussdb.version, Errno=2, Errmessage=No such file or directory. 0 WARNING: failed to parse feature control file: gaussdb.version. 0 WARNING: Failed to load the product control file, so gaussdb cannot distinguish product version. 0 LOG: SSE4.2 is not supported, disable codegen. 0 LOG: bbox_dump_path is set to /data/opengauss/corefile/ 2024-10-11 16:42:05.591 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: base_page_saved_interval is 400, ori is 400. 2024-10-11 16:42:05.600 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 DB010 0 [REDO] LOG: Recovery parallelism, cpu count = 8, max = 4, actual = 4 2024-10-11 16:42:05.600 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 DB010 0 [REDO] LOG: ConfigRecoveryParallelism, true_max_recovery_parallelism:4, max_recovery_parallelism:4 2024-10-11 16:42:05.613 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: [Alarm Module]Host Name: vm-bead-ca4f28e7fd68 2024-10-11 16:42:05.613 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: [Alarm Module]Host IP: vm-bead-ca4f28e7fd68. Copy hostname directly in case of taking 10s to use 'gethostbyname' when /etc/hosts does not contain <HOST IP> 2024-10-11 16:42:05.613 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: [Alarm Module]Cluster Name: single 2024-10-11 16:42:05.613 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: [Alarm Module]Invalid data in AlarmItem file! Read alarm English name failed! line: 58 2024-10-11 16:42:05.614 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: [Alarm Module]Alarm component does not exist. 2024-10-11 16:42:05.618 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: loaded library "security_plugin" 2024-10-11 16:42:05.633 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 01000 0 [BACKEND] WARNING: could not create any HA TCP/IP sockets 2024-10-11 16:42:05.633 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 01000 0 [BACKEND] WARNING: could not create any HA TCP/IP sockets 2024-10-11 16:42:05.636 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: InitNuma numaNodeNum: 1 numa_distribute_mode: none inheritThreadPool: 0. 2024-10-11 16:42:05.637 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: reserved memory for backend threads is: 340 MB 2024-10-11 16:42:05.637 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: reserved memory for WAL buffers is: 320 MB 2024-10-11 16:42:05.637 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: Set max backend reserve memory is: 660 MB, max dynamic memory is: 1423 MB 2024-10-11 16:42:05.637 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: shared memory 2012 Mbytes, memory context 2083 Mbytes, max process memory 5120 Mbytes 2024-10-11 16:42:05.637 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: shared memory that key is 15400001 is owned by pid 17746 2024-10-11 16:42:06.168 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [CACHE] LOG: set data cache size(805306368) 2024-10-11 16:42:06.455 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [SEGMENT_PAGE] LOG: Segment-page constants: DF_MAP_SIZE: 8156, DF_MAP_BIT_CNT: 65248, DF_MAP_GROUP_EXTENTS: 4175872, IPBLOCK_SIZE: 8168, EXTENTS_PER_IPBLOCK: 1021, IPBLOCK_GROUP_SIZE: 4090, BMT_HEADER_LEVEL0_TOTAL_PAGES: 8323072, BktMapEntryNumberPerBlock: 2038, BktMapBlockNumber: 25, BktBitMaxMapCnt: 512 2024-10-11 16:42:06.636 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: gaussdb: fsync file "/data/opengauss/data/dn/gaussdb.state.temp" success 2024-10-11 16:42:06.637 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: create gaussdb state file success: db state(STARTING_STATE), server mode(Normal), connection index(1) 2024-10-11 16:42:06.663 6708e4dd.1 [unknown] 140433372355264 [unknown] 0 dn_6001 00000 0 [BACKEND] LOG: max_safe_fds = 974, usable_fds = 1000, already_open = 16 bbox_dump_path is set to /data/opengauss/corefile/ [2024-10-11 16:42:11.404][20448][][gs_ctl]: gaussDB state is Coredump [2024-10-11 16:42:11.404][20448][][gs_ctl]: stopped waiting [2024-10-11 16:42:11.404][20448][][gs_ctl]: could not start server Examine the log output.
-
6月25日-6月27日晚上对计算机科学与技术系56班同学的数据库课程实验进行了验收,同学们均能利用高级程序设计语言实现对Gauss DB数据库额增删改查,评选出最优一组。实验报告(48份),验收视频链接如下。通过网盘分享的文件:Adovate5 链接: https://pan.baidu.com/s/1HzOUI8M0XUbQ0Af4CAlPMQ?pwd=2vr1 提取码: 2vr1
-
7月1日-7月19日,大一学生开展了暑期实训,实训语言C++,开发环境是QT。实训中的数据存储采用GaussDB或者文件。最终杨锦熙、魏俊涛、李逸帆、吴妍均、闵灵熙、戴天奕这一组的同学实现了QT环境下利用C++语言实现GaussDB的访问,完成了数据存储、数据查询等操作。同学们在没有学习数据库的情形下,通过和老师交流,查阅文档等认真学习GaussDB相关的知识,圆满的完成实训任务。课程讲义,学生实践报告,作品演示视频链接如下。https://pan.baidu.com/s/1GSH08iAhGcpjSlLeM40MFg?pwd=dwdm
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签