-
环境说明当前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
-
书接上文GaussDB关键技术原理:高弹性(五)从日志多流和事务相关方面对hashbucket扩容技术进行了解读,本篇将从扩容实践方面继续介绍GaussDB高弹性技术。5 扩容实践 5.1 工具介绍 5.1.1 TPC-CTPC-C(全称Transaction Processing Performance Council Benchmark C),是一套衡量联机交易处理系统(OLTP系统)的基准测试集。它于1992年8月首次发布,最终取代了早先的TPC-A成为事实上的行业标准。当前的最新版本是5.11, 发布于2010年2月。TPC-C是以在线零售业公司为例设计的一种数据模型。每个仓库的数据量约为 76.823 MB。TPC-C涉及9张表,包含了新订单的生成(NewOrder)、支付操作(Payment)、订单状态查询(OrderStatus)、配送发货(Delivery)和库存状态查询(StockLevel)5类业务事务模型。5类业务的占比是可以由用户通过配置文件自定义的。TPC-C的评测指标是每分钟处理的业务量(transactions per minute, tpmC),又称作流量指标(throughput)。本指标越大表示系统性能越高。首次发布的评测记录是1992年11月由IBM AS/400系统创造的,当时的结果是54 tpmC。到2000年左右,高端机器的平均记录是240万tpmC。许多公司为了获得这样的记录而构建了大量机器组合而成的系统。当前的最新记录是在2020年由云计算创造的7.073亿tpmC。另外,TPC-C还可以通过系统性能价格比(cost-per-tpmC)的方式来体现,即测试系统报价(美元)与流量指标的比值。在获得相同的tpmC值的情况下,系统报价越低越好。当前许多小型本地系统旨在降低系统性能价格比而不懈努力。BenchmarkSQL是一款基于JDBC实现的类似于OLTP的TPC-C标准测试工具,目前支持的数据库有:PostgreSQL、Oracle、Firebird。由于openGauss的接口与PostgreSQL兼容性较好,所以也可以使用该工具对openGauss数据库进行TPC-C测试。 5.1.2 SysbenchSysbench是一款开源的多线程脚本工具,适用于Linux系统。Sysbench是C语言的二进制文件,使用Lua脚本执行基线测试,主要用于测试数据库系统。Sysbench允许在命令行中指定测试类型,包括:oltp_*.lua: 测试OLTP型数据库性能(使用自定义Lua脚本)cpu: 测试CPU性能fileio: 测试文件输入/输出性能memory: 测试内存函数运行速度threads: 测试多线程子系统性能mutex: 测试互斥锁性能下面我们主要关注第1种测试类型,即使用用户自定义Lua脚本。在sysbench执行过程中和结束时,可以查看统计数据。其中,主要关注的是每秒事务执行数量(transactions per second,tps),每秒查询执行数量(queries per second, qps), 时延毫秒数(latency)。其中,每秒查询执行数量又可以细分为读查询(read),写查询(write),其他查询(other)。每秒事务/查询执行数量越高,时延毫秒数越低,说明数据库性能越好。Sysbench目前已经内置了MySQL和PostgreSQL的驱动,由于GaussDB和PostgreSQL兼容性较好,所以可以通过指定pgsql的变量(包括host, port, user, password, db)来进行测试。5.2 扩容步骤 5.2.1 安装GaussDB集群安装GaussDB集群需要使用运维工具集(Operation Manager,OM)和配置集群XML文件。其中,XML文件负责声明GaussDB集群的具体配置情况。本文以3CN3DN集群配置为例,展示安装GaussDB的命令如下: # root身份执行sudo [your-location]/script/gs_preinstall -U [username] -G [usergroup] -X [xml-location] --alarm-type=1# 切换到普通用户su – [username]gs_install -X [xml-location]# 卸载clustergs_uninstall --delete-data图1为分布式3CN3DN集群的架构。图1 分布式3CN3DN集群架构图5.2.2 启动GaussDB集群通过cm_ctl命令,可以有效对GaussDB集群进行管控,命令如下:# 集群启动cm_ctl start # 集群停止cm_ctl stop# 查看集群信息cm_ctl query -Cvdpi # 查询集群信息cm_ctl query -Cv5.2.3 扩容GaussDB集群以3CN6DN集群配置为例,展示扩容GaussDB的命令如下: # 以root身份运行sudo [your-location]/script/gs_preinstall -U [username] -G [usergroup] -X [new-xml-location] --alarm-type=1# 切换到普通用户su – [username]# 扩容阶段1,添加新节点gs_expand -t dilatation -X [new-xml-location] --parallel-jobs=1# 扩容阶段2,数据重分布gs_expand -t redistribute --redis-mode=insert --parallel-jobs=1图2为分布式3CN6DN集群的GaussDB架构。图2 分布式3CN6DN集群架构图5.3 扩容期间的TPC-C测试 在数据库扩容期间对GaussDB集群使用TPC-C工具同步监控,可以获得hashbucket表在扩容期间对TPCC模型性能的影响。导入10000 warehorse的数据,3C3D,单DN 800GB数据,运行600并发TPCC,叠加hashbucket扩容(3DN扩6DN),业务运行情况如下图3所示, 可以看出整个扩容过程中,TPCC业务没有出现性能大幅度下降的情况,整体运行平稳。 图3 扩容期间TPCC性能测试结果图5.4 扩容期间的sysbench测试 在数据库扩容期间对GaussDB集群使用sysbench工具同步监控,可以获得普通表和hashbucket表在扩容期间的JOIN操作性能影响,图x为JOIN操作示意图。我们设定Lua脚本的测试场景为等值JOIN。JOIN操作的两张表分别具有Column A, Column B两个int类型。两张表的数据量为1千万条,其中,Column A为随机值,范围[1, 100,000];Column B为唯一递增值,范围[1, 10,000,000],两者的范围差距为100倍。完整的SQL语句为: select * from h1 left JOIN h2 on h1.b = h2.b and h1.a = h2.a where h2.a = $1 order by h2.b limit 1;图4 两张表JOIN操作示意图实验中每个物理节点的配置参数如表1所示:表1 物理节点的配置参数软硬件指标型号数值处理器64 核Intel(R) Xeon(R) CPU E5-2690 v3 @ 2.60GHz内存256 GB磁盘ssd磁盘网卡万兆网操作系统EulerOS 2.0 (SP5) x86_64普通表执行的是逻辑扩容,遍历所有库依次搬迁每个表。对于同一个库,同一个模式下的两张表:当表1完成扩容而表2未开始扩容时,两个表的位于在不同的组节点(NodeGroup)上,此时对表1,表2执行JOIN操作会造成CN无法利用分布式架构下推JOIN操作到各个DN上执行,而是会生成跨DN的stream计划进行数据重分布后在进行JOIN,大量的跨节点通信导致性能劣化严重,如图5所示。 图5 普通表扩容期间的tpshashbucket表执行的是物理扩容,以库(database)为单位进行库内所有表的bucket搬迁。对于同一个库内的两张表:除了JOIN期间同步上线的bucket之外,其他的绝大多数bucket位于同一个组节点(NodeGroup)上,此时CN可以利用分布式架构分发JOIN操作到各个DN上执行,性能不受影响,如图6所示。图6 hashbucket表扩容期间的tps- END -
-
数据库论坛2024年9月热门问题F&A汇总使用\copy导入CSV文件的任意几列数据,如何实现?在gsql命令行中,你可以使用\copy命令来导入CSV文件的任意几列数据到Greenplum数据库中。但是,\copy命令不支持直接指定导入列的功能。你需要在CSV文件中排除不需要的列,或者在导入后通过SQL语句来过滤或者修改数据。以下是一个使用\copy命令导入CSV文件的基本示例:\copy your_table_name FROM 'path_to_your_csv_file.csv' WITH (FORMAT csv, HEADER true, DELIMITER ',');如果你需要选择导入特定的几列,你可以在导入后通过DELETE或UPDATE语句来删除或修改不需要的数据列。例如,如果你想要导入CSV文件的第一列和第三列,你可以先导入所有列,然后删除第二列:-- 导入所有列\copy your_table_name (all_columns_including_unwanted) FROM 'path_to_your_csv_file.csv' WITH (FORMAT csv, HEADER true, DELIMITER ',');-- 删除第二列DELETE FROM your_table_name WHERE column_to_delete IS NOT NULL;或者,如果你需要更新数据,保留特定的几列:-- 导入所有列\copy your_table_name (all_columns_including_unwanted) FROM 'path_to_your_csv_file.csv' WITH (FORMAT csv, HEADER true, DELIMITER ',');-- 更新到特定的几列UPDATE your_table_name SET column_to_keep1 = temp.column_to_keep1, column_to_keep2 = temp.column_to_keep2FROM (SELECT column_to_keep1, column_to_keep2, column_to_matchFROM 'path_to_your_csv_file.csv'WITH (FORMAT csv, HEADER true, DELIMITER ',')AS tempWHERE your_table_name.column_to_match = temp.column_to_match;如果通过 UGO 做完表结构校验 , 并已将表结构迁移到 GaussDB 中 , 如何通过 UGO 导出已经成功的表结构 cid:link_0要通过 UGO 导出已经成功迁移到 GaussDB 的表结构,可以遵循以下步骤:1. 登录 UGO首先,确保你已登录 UGO 系统。2. 选择目标数据库在 UGO 中,选择你要导出的表结构所在的 GaussDB 数据库。3. 导出表结构在 UGO 中,通常会有一个选项用于导出数据库对象。以下是一般步骤:找到导出功能:在 UGO 界面中查找“导出”或“生成脚本”的选项。选择表结构:选择你需要导出的表(可以通过复选框或其他方式选择多个表)。选择导出格式:通常可以选择 SQL 脚本格式进行导出,确保选择合适的格式。执行导出:完成设置后,点击“导出”或“生成脚本”按钮。4. 保存导出文件导出完成后,系统会提示你下载生成的 SQL 文件或直接显示在界面上,保存该文件到本地。5. 验证导出内容打开导出的 SQL 文件,检查是否包含了所需的表结构信息,包括表的定义、索引、约束等。注意事项确保在导出时选中了正确的表和相关对象。如果 UGO 提供了日志功能,可以查看导出过程中的日志信息,确保没有错误发生。信创迁移,应用系统的mysql数据库业务数据迁移到高斯数据库迁移方案cid:link_2参考cid:link_1
-
在当今数字化时代,数据的存储和处理对于企业的发展至关重要。华为云 GaussDB 作为一款高性能、高可靠的企业级分布式数据库,为用户提供了强大的数据管理解决方案。本文将详细介绍华为云 GaussDB 的使用用法,帮助你更好地利用这款优秀的数据库产品。 一、注册与登录华为云 首先,你需要注册一个华为云账号。访问华为云官网,按照提示完成注册流程。注册成功后,使用账号和密码登录华为云控制台。 二、创建 GaussDB 实例 在华为云控制台中,找到 “数据库” 板块,点击 “GaussDB” 进入 GaussDB 管理页面。 点击 “创建数据库实例” 按钮,开始创建 GaussDB 实例。 在创建实例页面,你需要设置以下参数: 实例名称:为你的数据库实例取一个易于识别的名称。 数据库引擎:根据你的需求选择合适的数据库引擎,如 GaussDB (for MySQL)、GaussDB (for PostgreSQL) 等。 版本:选择数据库的版本号。 存储类型:可以选择本地盘存储或云盘存储。 存储容量:根据你的数据量预估,设置合适的存储容量。 网络类型:选择合适的网络类型,如公网访问或内网访问。 安全组:设置安全组规则,确保数据库的安全性。 点击 “立即购买” 按钮,完成支付后,数据库实例将开始创建。创建过程可能需要几分钟时间,请耐心等待。 三、连接 GaussDB 实例 当数据库实例创建成功后,在 GaussDB 管理页面可以看到实例的基本信息。点击实例名称,进入实例详情页面。 在实例详情页面,找到 “连接信息” 板块,可以获取数据库的连接地址、端口号、用户名和密码等信息。 根据你的使用场景,选择合适的连接方式。如果你是在本地开发环境中连接数据库,可以使用数据库客户端软件,如 MySQL Workbench、pgAdmin 等,输入连接信息进行连接。如果你是在云端的服务器上连接数据库,可以使用命令行工具或编程语言中的数据库驱动进行连接。 四、数据库操作 数据导入与导出 数据导入:可以使用数据库客户端软件或命令行工具将本地的数据文件导入到 GaussDB 数据库中。例如,对于 MySQL 数据库,可以使用LOAD DATA INFILE语句进行数据导入。 数据导出:同样可以使用数据库客户端软件或命令行工具将 GaussDB 数据库中的数据导出到本地文件中。例如,对于 PostgreSQL 数据库,可以使用COPY语句进行数据导出。 数据库查询与管理 使用 SQL 语句进行数据查询、插入、更新和删除等操作。熟悉数据库的基本 SQL 语法,能够高效地管理和操作数据库中的数据。 可以使用数据库客户端软件提供的图形界面工具进行数据库管理,如创建表、修改表结构、设置索引等。 数据库备份与恢复 华为云 GaussDB 提供了自动备份和手动备份功能。你可以设置自动备份策略,定期对数据库进行备份,以防止数据丢失。 在需要恢复数据时,可以使用备份文件进行数据库恢复。在 GaussDB 管理页面,找到 “备份恢复” 板块,选择相应的备份文件进行恢复操作。 五、性能优化与监控 性能优化 优化 SQL 语句:确保你的 SQL 语句高效执行,避免全表扫描、索引失效等问题。可以使用数据库的性能分析工具,如 MySQL 的EXPLAIN语句或 PostgreSQL 的EXPLAIN ANALYZE语句,分析 SQL 语句的执行计划,找出性能瓶颈并进行优化。 调整数据库参数:根据你的业务需求和硬件资源,调整数据库的参数,如缓存大小、连接数等,以提高数据库的性能。 数据分区与索引设计:合理设计数据库的表结构,进行数据分区和创建合适的索引,以提高数据查询和写入的性能。 监控与告警 华为云 GaussDB 提供了丰富的监控指标,如 CPU 利用率、内存使用率、磁盘 I/O、网络流量等。你可以在 GaussDB 管理页面的 “监控” 板块查看这些指标,实时了解数据库的运行状态。 设置告警规则:根据你的需求,设置告警规则,当数据库的某些指标超过预设的阈值时,系统会自动发送告警通知,以便你及时采取措施。 六、安全管理 用户管理 创建和管理数据库用户,设置用户的权限和密码策略。确保只有授权的用户才能访问数据库,提高数据库的安全性。 网络安全 如果选择公网访问数据库,设置安全组规则,限制访问数据库的 IP 地址范围。同时,使用 SSL 加密连接,确保数据在传输过程中的安全性。 数据加密 对于敏感数据,可以使用数据库的加密功能进行加密存储。华为云 GaussDB 支持多种加密方式,如透明数据加密(TDE)等。
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中
热门标签