华为云用户手册

  • 在Linux下使用ODBC连接数据库 获取unixODBC源码包。 获取参考地址:https://www.unixodbc.org/unixODBC-2.3.7.tar.gz 下载后请先按照社区提供的完整性校验算法进行完整性校验。下载https://www.unixodbc.org/unixODBC-2.3.7.tar.gz.md5,查看MD5值,对比MD5值是否与源码包一致。 安装unixODBC。如果机器上已经安装了其他版本的unixODBC,可以直接覆盖安装。 以unixODBC-2.3.7版本为例,在客户端执行如下命令安装unixODBC。 tar zxvf unixODBC-2.3.7.tar.gz cd unixODBC-2.3.7 ./configure --enable-gui=no #如果要在ARM服务器上编译,请追加一个configure参数: --build=aarch64-unknown-linux-gnu make #安装可能需要root权限 make install 目前不支持unixODBC-2.2.1版本。 默认安装到“/usr/local”目录下,生成数据源文件到 “/usr/local/etc”目录下,库文件生成在“/usr/local/lib”目录。 通过编译带有--enable-fastvalidate=yes选项的unixODBC来获得更高性能。但此选项可能会导致向ODBC API传递无效句柄的应用程序发生故障,而不是返回SQL_INVALID_HANDLE错误。 替换客户端GaussDB驱动程序。 将GaussDB-Kernel_数据库版本号_操作系统版本号_64bit_Odbc.tar.gz解压。解压后会得到两个文件夹:lib与odbc,在odbc文件夹中还会有一个lib文件夹。将解压后得到的/lib文件夹与/odbc/lib文件夹中的所有动态库都复制到“/usr/local/lib”目录下。 配置数据源。 配置ODBC驱动文件。 在“/usr/local/etc/odbcinst.ini”文件中追加以下内容。 [GaussMPP] Driver64=/usr/local/lib/gsqlodbcw.so setup=/usr/local/lib/gsqlodbcw.so odbcinst.ini文件中的配置参数说明如表3所示。 表3 odbcinst.ini文件配置参数 参数 描述 示例 [DriverName] 驱动器名称,对应数据源DSN中的驱动名。 [DRIVER_N] Driver64 驱动动态库的路径。 Driver64=/usr/local/lib/gsqlodbcw.so setup 驱动安装路径,与Driver64中动态库的路径一致。 setup=/usr/local/lib/gsqlodbcw.so 配置数据源文件。 在“/usr/local/etc/odbc.ini”文件中追加以下内容。 [MPPODBC] Driver=GaussMPP Servername=127.0.0.1 #数据库Server IP Database=db1 #数据库名 Username=omm #数据库用户名 Password= #数据库用户密码 Port=8000 #数据库侦听端口 Sslmode=allow odbc.ini文件配置参数说明如表4 odbc.ini文件配置参数所示。 表4 odbc.ini文件配置参数 参数 描述 示例 [DSN] 数据源的名称。 [MPPODBC] Driver 驱动名,对应odbcinst.ini中的DriverName。 Driver=DRIVER_N Servername 服务器的IP地址。可配置多个IP地址。支持IPv4和IPv6。 Servername=127.0.0.1 Database 要连接的数据库的名称。 Database=db1 Username 数据库用户名称。 Username=omm Password 数据库用户密码。 说明: ODBC驱动本身已经对内存密码进行过清理,以保证用户密码在连接后不会再在内存中保留。 但是如果配置了此参数,由于UnixODBC对数据源文件等进行缓存,可能导致密码长期保留在内存中。 推荐在应用程序连接时,将密码传递给相应API,而非写在数据源配置文件中。同时连接成功后,应当及时清理保存密码的内存段。 注意: 配置文件中填写密码时,需要遵循http规则: 字符应当采用URL编码规范,如"!"应写作"%21","%"应写作"%25",因此应当特别注意字符。 "+"会被替换为空格" "。 Password=******** Port 服务器的端口号。 Port=8000 Sslmode 开启SSL模式。 Sslmode=allow 其中关于Sslmode的选项的允许值,具体信息如表3 Sslmode的可选项及其描述所示。 表5 Sslmode的可选项及其描述 Sslmode 是否会启用SSL加密 描述 disable 否 不使用SSL安全连接。 allow 可能 如果数据库服务器要求使用,则可以使用SSL安全加密连接,但不验证数据库服务器的真实性。 prefer 可能 如果数据库支持,那么首选使用SSL安全加密连接,但不验证数据库服务器的真实性。 require 是 必须使用SSL安全连接,但是只做了数据加密,并不验证数据库服务器的真实性。 verify-ca 是 必须使用SSL安全连接,并且验证数据库是否具有可信证书机构签发的证书。 verify-full 是 必须使用SSL安全连接,在verify-ca的验证范围之外,同时验证数据库所在主机的主机名是否与证书内容一致。GaussDB不支持此模式。 SSL模式。具体操作请联系数据库管理员。 配置数据库服务器。具体操作请联系数据库管理员。 在客户端配置环境变量。 vim ~/.bashrc 在配置文件中追加以下内容。 export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH export ODBCSYSINI=/usr/local/etc export ODBCINI=/usr/local/etc/odbc.ini 执行如下命令使设置生效。 source ~/.bashrc 执行以下命令,开始连接数据库。 isql -v GaussODBC GaussODBC为数据源名称 如果显示如下信息,表明配置正确,连接成功。 +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ 若显示ERROR信息,则表明配置错误。请检查上述配置是否正确。
  • SQL使用入门 创建数据库用户。 默认只有集群安装时创建的管理员用户可以访问初始数据库,还可以创建其他数据库用户账号。 CREATE USER joe WITH PASSWORD "xxxxxxxxx"; 当结果显示为如下信息,则表示创建成功。 图4 创建数据库用户 如上创建了一个用户名为joe,密码为xxxxxxx的用户。 引申信息:关于数据库用户的更多信息请参考用户及权限。 创建数据库。 CREATE DATABASE db_tpcds; 当结果显示为如下信息,则表示创建成功。 图5 创建数据库 创建完db_tpcds数据库后,可以在左上方切换到新创建的库中。 图6 切换至新建数据库 创建表。 执行如下命令来创建一个schema。 CREATE SCHEMA myschema; 创建一个名称为mytable,只有一列的表。字段名为firstcol,字段类型为integer。 CREATE TABLE myschema.mytable (firstcol int); 向表中插入数据: INSERT INTO myschema.mytable values (100); 查看表中数据: SELECT * FROM myschema.mytable; 引申信息: 默认情况下,新的数据库对象是创建在“$user”模式下的,例如刚刚新建的表。关于模式的更多信息请参考创建和管理schema。 关于创建表的更多信息请参见创建和管理表。 除了创建的表以外,数据库还包含很多系统表。这些系统表包含集群安装信息以及GaussDB上运行的各种查询和进程的信息。可以通过查询系统表来收集有关数据库的信息。请参见查看系统表。 在db_tpcds库中,root用户下执行如下语句,将新创建的库db_tpcds的所有权限赋予新用户joe。 GRANT ALL ON DATABASE db_tpcds TO joe; GRANT USAGE ON schema myschema TO joe; GRANT ALL ON TABLE myschema.mytable TO joe; 新增joe用户登录数据库db_tpcds。 登录之后,在表中插入数据并验证。 INSERT INTO myschema.mytable values (200); SELECT * FROM myschema.mytable; 图7 插入数据并验证
  • 加载驱动 在创建数据库连接之前,需要先加载数据库驱动程序。 加载驱动有两种方法: 在代码中创建连接之前任意位置隐含装载:Class.forName("com.huawei.gaussdb.jdbc.Driver") 在JVM启动时参数传递:java -Djdbc.drivers=com.huawei.gaussdb.jdbc.Driver jdbctest 上述jdbctest为测试用例程序的名称。
  • 驱动类 在创建数据库连接之前,需要加载数据库驱动类“com.huawei.gaussdb.jdbc.Driver”。 由于GaussDB在JDBC的使用上与PG的使用方法保持兼容,所以同时在同一进程内使用两个JDBC驱动的时候,可能会造成类名冲突。 本版本JDBC不再支持IAM认证功能。 GaussDB JDBC驱动主要做了以下特性的增强: 支持SHA256加密方式登录。 支持对接实现sf4j接口的第三方日志框架。 支持连接级别的分布式负载均衡。 支持容灾切换。
  • 环境类 客户端需配置JDK1.8。JDK是跨平台的,支持Windows、Linux等多种平台,下面以Windows为例,介绍JDK配置流程: DOS窗口(windows下的命令提示符)输入“java -version”,查看JDK版本,确认为JDK1.8版本。如果未安装JDK,请下载安装包并安装。 右键单击“我的电脑”,选择“属性”。 在“系统”页面左侧导航栏单击“高级系统设置”。 在“系统属性”页面,“高级”页签上单击“环境变量”。 在“环境变量”页面上,“系统变量”区域单击“新建”或“编辑”,设置如下变量名和变量值。变量说明如表2所示。 表2 变量说明 变量名 操作 变量值 JAVA_HOME 若存在,则单击“编辑”。 若不存在,则单击“新建”。 JAVA的安装目录。 例如:C:\Program Files\Java\jdk1.8.0_131。 Path 单击“编辑”。 若配置了JAVA_HOME,则在变量值的最前面加上: %JAVA_HOME%\bin。 若未配置JAVA_HOME,则在变量值的最前面加上 JAVA安装的全路径: C:\Program Files\Java\jdk1.8.0_131\bin。 CLASSPATH 单击“新建”。 %JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar。 单击“确定”,并依次关闭各窗口。
  • 获取驱动包 根据不同版本的实例,下载不同版本的发布包,如表1所示。 表1 驱动包下载列表 版本 下载地址 8.x 驱动包 驱动包校验包 3.x 驱动包 驱动包校验包 2.x 驱动包 驱动包校验包 为了防止软件包在传递过程或存储期间被恶意篡改,下载软件包时需下载对应的校验包对软件包进行校验,校验方法如下: 上传软件包和软件包校验包到虚拟机(Linux操作系统)的同一目录下。 执行如下命令,校验软件包完整性。 cat GaussDB_driver.zip.sha256 | sha256sum --check 如果回显OK,则校验通过。 GaussDB_driver.zip: OK
  • GaussDB入门实践 当用户购买并连接到GaussDB数据库实例后,可以根据自身的业务需求使用GaussDB提供的一系列常用实践。 表1 GaussDB常用最佳实践 实践 描述 使用规范 数据库设计规范 介绍在使用GaussDB时,需要遵循的数据库对象命名规范、数据库设计规范、权限设计规范、表设计规范、字段设计规范、索引设计规范、函数/存储过程设计规范。 数据库编程规范 介绍在使用GaussDB时,需要遵循的GUC参数编程规范、 对象访问编程规范、WHERE、SELECT、INSERT、UPDATE、DELETE、关联查询、子查询、事务规范。 客户端编程规范 介绍在使用JDBC连接GaussDB时,需要遵循的编程规范。 数据库使用 创建数据库用户 介绍如何使用CREATE USER和ALTER USER语法创建和管理数据库用户。不同用户之间的数据并不共享。 创建和管理数据库 介绍使用CREATE DATABASE和ALTER DATABASE语法创建和管理数据库。 创建和管理表空间 通过使用表空间,管理员可以控制一个数据库安装的磁盘布局。介绍如何同SQL语法创建和管理表空间。 创建和管理表 表是建立在数据库中的,在不同的数据库中可以存放相同的表。可以通过使用模式在同一个数据库中创建相同名称的表。介绍如何使用SQL语法创建表。 查看系统表 除了创建的表以外,GaussDB还包含很多系统表。这些系统表包含集群安装信息以及GaussDB上运行的各种查询和进程的信息。介绍通过查询系统表来收集有关数据库的信息。 数据迁移 使用DRS迁移Oracle至GaussDB 介绍如何使用DRS将数据从Oracle迁移至GaussDB。 数据备份 设置自动备份策略 介绍如何在数据库实例的备份时段中创建数据库实例的自动备份,系统根据用户指定的备份保留期保存数据库实例的自动备份。 手动创建全量备份 介绍如何手动为数据库实例备份数据,用户可以通过手动备份恢复数据,从而保证数据可靠性。 删除手动备份 GaussDB支持对实例级和表级手动备份进行删除,从而释放相关存储空间。介绍如何删除实例手动备份。 数据恢复 通过指定备份文件恢复GaussDB实例数据 介绍如何使用已有的自动备份和手动备份,将实例数据恢复到备份被创建时的状态。该操作恢复的为整个实例的数据。 通过指定时间点恢复GaussDB实例 介绍如何使用已有的自动备份,恢复实例数据到指定时间点。
  • 步骤四:连接数据库 在DBeaver客户端单击,打开创建连接界面。 搜索步骤三中创建的驱动,选中驱动,单击“下一步”。 图1 选择驱动 输入主机IP地址,端口,数据库名,用户名和密码。 表3 参数说明 参数 描述 主机 目标实例的内网地址。查看目标实例的内网地址及端口信息的步骤如下: 登录云数据库GaussDB的管理控制台。 选择目标实例所在区域。 单击目标实例名称,进入“基本信息”页面。 在“连接信息”模块,查看“弹性公网IP”信息。 如果未绑定弹性公网IP,则需要为数据库实例绑定弹性公网IP。具体操作请参考绑定弹性公网IP。 端口 需要连接的数据库端口。创建实例时自定义的端口,GaussDB实例的默认端口为8000。 数据库/模式 需要连接的数据库名。实例创建成功后,会默认生成名称为postgres的数据库。 用户名 需要访问GaussDB实例的账号名称。默认root。 密码 要访问GaussDB实例的账号所对应的密码。 单击“测试链接”。若弹框中显示“已连接”,则说明可正常连接,单击“确定”。 单击“完成”,即可连接到数据库。在“数据库导航”栏可查看到连接的数据库信息。
  • 步骤一:获取驱动包 获取驱动包和驱动包校验包。 根据不同版本的实例,下载对应版本的驱动包和驱动包校验包到本地任意目录,如表1所示。 表1 驱动包下载列表 版本 下载地址 8.x 驱动包 驱动包校验包 3.x 驱动包 驱动包校验包 2.x 驱动包 驱动包校验包 校验驱动包。 为了防止驱动包在传递过程或存储期间被恶意篡改,需要对驱动包进行校验,校验方法如下: 使用快捷键“Win+R”打开“运行”窗口。 在“打开”栏,输入“cmd”,按“Enter”回车,打开命令行页面。 执行以下命令,获取驱动包的Hash值。 certutil -hashfile {驱动包本地目录}\{驱动包名} sha256 {驱动包本地目录}:请根据实际下载目录进行替换。例如:C:\Users {驱动包名}:请根据实际下载的驱动包名进行替换。例如:GaussDB_driver.zip 示例:certutil -hashfile C:\Users\GaussDB_driver.zip sha256 将2.b获取到的Hash值和1中获取到的驱动包校验包的Hash值进行比较。 若一致则通过校验。 若不一致,请重新下载驱动包,重复2.a~2.c进行校验。 解压驱动包。 将1中获取到的驱动包解压到本地, 找到gsjdbc4.jar包,放在本地任意目录下。
  • 环境配置 配置GaussDB开发环境。 准备好基本的 GaussDB 开发环境,获取数据库连接参数,例如: gsql -h ***.***.***.*** -p 20000 -U *** -W ****** -d test 参数说明: -h:GaussDB服务器IP。 -p:GaussDB连接端口。 -U:连接用户名。 -W:用户密码。 -d:连接的DATABASE名。 安装JayDeBeApi驱动。 在计算机上安装Java JDK 8版本以及Python3版本,可以通过如下命令确认版本: java -version python --version pip --version 如果服务器能连接到Python源(Python的软件包索引PyPI),可以通过pip命令安装JayDeBeApi: pip install jaydebeapi 如果不能,可以通过下载离线安装包然后进行本地安装的方式安装JayDeBeApi。 获取GaussDB驱动程序安装包。 根据不同版本的实例,下载不同版本的发布包,如表1所示。 表1 驱动包下载列表 版本 下载地址 3.x 驱动包 驱动包校验包 2.x 驱动包 驱动包校验包 为了防止软件包在传递过程或存储期间被恶意篡改,下载软件包时需下载对应的校验包对软件包进行校验,校验方法如下: 上传软件包和软件包校验包到虚拟机(Linux操作系统)的同一目录下。 执行如下命令,校验软件包完整性。 cat GaussDB_driver.zip.sha256 | sha256sum --check 如果回显OK,则校验通过。 GaussDB_driver.zip: OK
  • 使用示例 新建脚本文件。 新建一个test_jaydebeapi.py文件,写入代码如下: #!/usr/bin/env python3.x # -*- coding: UTF-8 -*- encoding = "utf8" import jaydebeapi def test_jaydebeapi(): #需要配置的参数 url = 'jdbc:opengauss://***.***.***.***:20000/test' user = '***' password = '******' driver = 'com.huawei.opengauss.jdbc.Driver' jarFile = './opengaussjdbc.jar' conn = jaydebeapi.connect(driver, url, [user, password], jarFile) cur = conn.cursor() #创建表students sql = 'create table students (id int, name varchar(20))' cur.execute(sql) #往students表中插入三组数据 sql = "insert into students values(1,'xiaoming'),(2,'xiaohong'),(3,'xiaolan')" cur.execute(sql) #查询students表中的所有数据 sql = 'select * from students' cur.execute(sql) ans = cur.fetchall() print(ans) #更新students表中的数据 sql = 'update students set name = \'xiaolv\' where id = 1' cur.execute(sql) #再次查询students表中的所有数据 sql = 'select * from students' cur.execute(sql) ans = cur.fetchall() print(ans) #删除表students sql = 'drop table students' cur.execute(sql) cur.close() conn.close() test_jaydebeapi() 配置代码中的参数: #连接url,设置数据库服务器IP、端口、数据库名 url = 'jdbc:opengauss://***.***.***.***:20000/test' #设置用户名 user = '***' #设置密码 password = '******' #JDBC驱动类路径 driver = 'com.huawei.opengauss.jdbc.Driver' #JDBC驱动jar包路径(默认放在与test_jaydebeapi.py文件同目录下) jarFile = './opengaussjdbc.jar' 执行程序。 使用以下命令执行test_jaydebeapi.py文件: python ./test_jaydebeapi.py 预期结果。 成功连接GaussDB数据库,并返回两次查询结果,如下所示: 图1 返回两次查询结果
  • 连接数据库 准备相关驱动和依赖库。可以从发布包中获取,包名为GaussDB-Kernel_数据库版本号_操作系统版本号_64bit_Python.tar.gz。 解压后有两个文件夹: psycopg2:psycopg2库文件。 lib:lib库文件。 加载驱动。 在使用驱动之前,需要做如下操作: 先解压版本对应驱动包。 tar zxvf xxxx-Python.tar.gz 使用root用户将psycopg2复制到python安装目录下的site-packages文件夹下。 su root cp psycopg2 $(python3 -c 'import site; print(site.getsitepackages()[0])') -r 修改psycopg2目录权限为755。 chmod 755 $(python3 -c 'import site; print(site.getsitepackages()[0])')/psycopg2 -R 将psycopg2目录添加到环境变量$PYTHONPATH,并使之生效。 export PYTHONPATH=$(python3 -c 'import site; print(site.getsitepackages()[0])'):$PYTHONPATH 对于非数据库用户,需要将解压后的lib目录,配置在LD_LIBRARY_PATH中。 export LD_LIBRARY_PATH=path/to/lib:$LD_LIBRARY_PATH 在创建数据库连接之前,需要先加载如下数据库驱动程序: 1 import psycopg2 连接数据库。 非SSL方式连接数据库: 使用psycopg2.connect函数获得connection对象。 使用connection对象创建cursor对象。 SSL方式连接数据库: 用户通过psycopy2连接GaussDB服务器时,可以通过开启SSL加密客户端和服务器之间的通讯。在使用SSL时,默认用户已经获取了服务端和客户端所需要的证书和私钥文件,关于证书等文件的获取请参见Openssl相关文档和命令。 使用*.ini文件(python的configparser包可以解析这种类型的配置文件)保存数据库连接的配置信息。 在连接选项中添加SSL连接相关参数:sslmode、sslcert、sslkey、sslrootcert。 sslmode:可选项见表3。 sslcert:客户端证书路径。 sslkey:客户端密钥路径。 sslrootcert:根证书路径。 使用psycopg2.connect函数获得connection对象。 使用connection对象创建cursor对象。 使用SSL安全连接数据库,需保证所使用的python解释器为生成动态链接库(.so)文件的方式编译,可通过如下步骤确认python解释器的连接方式。 在python解释器命令行中输入import ssl,导入SSL。 执行ps ux查询python解释器运行的pid(假设pid为******)。 在shell命令行中执行pmap -p ****** | grep ssl,查看返回结果中是否包含libssl.so的相关路径。如果有,则python解释器为动态链接方式编译。 表3 sslmode的可选项及其描述 sslmode 是否会启用SSL加密 描述 disable 否 不使用SSL安全连接。 allow 可能 如果数据库服务器要求使用,则可以使用SSL安全加密连接,但不验证数据库服务器的真实性。 prefer 可能 如果数据库支持,那么首选使用SSL连接,但不验证数据库服务器的真实性。 require 是 必须使用SSL安全连接,但是仅进行数据加密,而并不验证数据库服务器的真实性。 verify-ca 是 必须使用SSL安全连接,并且校验服务端CA有效性。 verify-full 是 必须使用SSL安全连接,目前GaussDB暂不支持。
  • 获取驱动包 根据不同版本的实例,下载不同版本的发布包,如表2所示。 表2 驱动包下载列表 版本 下载地址 8.x 驱动包 驱动包校验包 3.x 驱动包 驱动包校验包 2.x 驱动包 驱动包校验包 为了防止软件包在传递过程或存储期间被恶意篡改,下载软件包时需下载对应的校验包对软件包进行校验,校验方法如下: 上传软件包和软件包校验包到虚拟机(Linux操作系统)的同一目录下。 执行如下命令,校验软件包完整性。 cat GaussDB_driver.zip.sha256 | sha256sum --check 如果回显OK,则校验通过。 GaussDB_driver.zip: OK
  • 获取驱动包 根据不同版本的实例,下载不同版本的发布包,如表2所示。 表2 驱动包下载列表 版本 下载地址 8.x 驱动包 驱动包校验包 3.x 驱动包 驱动包校验包 2.x 驱动包 驱动包校验包 为了防止软件包在传递过程或存储期间被恶意篡改,下载软件包时需下载对应的校验包对软件包进行校验,校验方法如下: 上传软件包和软件包校验包到虚拟机(Linux操作系统)的同一目录下。 执行如下命令,校验软件包完整性。 cat GaussDB_driver.zip.sha256 | sha256sum --check 如果回显OK,则校验通过。 GaussDB_driver.zip: OK
  • 连接数据库 准备相关驱动和依赖库。可以从发布包中获取,包名为GaussDB-Kernel_数据库版本号_操作系统版本号_64bit_Python.tar.gz。 解压后有两个文件夹: psycopg2:psycopg2库文件。 lib:lib库文件。 加载驱动。 在使用驱动之前,需要做如下操作: 先解压版本对应驱动包。 tar zxvf xxxx-Python.tar.gz 使用root用户将psycopg2复制到python安装目录下的site-packages文件夹下。 su root cp psycopg2 $(python3 -c 'import site; print(site.getsitepackages()[0])') -r 修改psycopg2目录权限为755。 chmod 755 $(python3 -c 'import site; print(site.getsitepackages()[0])')/psycopg2 -R 将psycopg2目录添加到环境变量$PYTHONPATH,并使之生效。 export PYTHONPATH=$(python3 -c 'import site; print(site.getsitepackages()[0])'):$PYTHONPATH 对于非数据库用户,需要将解压后的lib目录,配置在LD_LIBRARY_PATH中。 export LD_LIBRARY_PATH=path/to/lib:$LD_LIBRARY_PATH 在创建数据库连接之前,需要先加载如下数据库驱动程序: 1 import psycopg2 连接数据库。 非SSL方式连接数据库: 使用psycopg2.connect函数获得connection对象。 使用connection对象创建cursor对象。 SSL方式连接数据库: 用户通过psycopy2连接GaussDB服务器时,可以通过开启SSL加密客户端和服务器之间的通讯。在使用SSL时,默认用户已经获取了服务端和客户端所需要的证书和私钥文件,关于证书等文件的获取请参见Openssl相关文档和命令。 使用*.ini文件(python的configparser包可以解析这种类型的配置文件)保存数据库连接的配置信息。 在连接选项中添加SSL连接相关参数:sslmode、sslcert、sslkey、sslrootcert。 sslmode:可选项见表3。 sslcert:客户端证书路径。 sslkey:客户端密钥路径。 sslrootcert:根证书路径。 使用psycopg2.connect函数获得connection对象。 使用connection对象创建cursor对象。 使用SSL安全连接数据库,需保证所使用的python解释器为生成动态链接库(.so)文件的方式编译,可通过如下步骤确认python解释器的连接方式。 在python解释器命令行中输入import ssl,导入SSL。 执行ps ux查询python解释器运行的pid(假设pid为******)。 在shell命令行中执行pmap -p ****** | grep ssl,查看返回结果中是否包含libssl.so的相关路径。如果有,则python解释器为动态链接方式编译。 表3 sslmode的可选项及其描述 sslmode 是否会启用SSL加密 描述 disable 否 不使用SSL安全连接。 allow 可能 如果数据库服务器要求使用,则可以使用SSL安全加密连接,但不验证数据库服务器的真实性。 prefer 可能 如果数据库支持,那么首选使用SSL连接,但不验证数据库服务器的真实性。 require 是 必须使用SSL安全连接,但是仅进行数据加密,而并不验证数据库服务器的真实性。 verify-ca 是 必须使用SSL安全连接,并且校验服务端CA有效性。 verify-full 是 必须使用SSL安全连接,目前GaussDB暂不支持。
  • 获取驱动包 根据不同版本的实例,下载不同版本的发布包,如表1所示。 表1 驱动包下载列表 版本 下载地址 8.x 驱动包 驱动包校验包 3.x 驱动包 驱动包校验包 2.x 驱动包 驱动包校验包 为了防止软件包在传递过程或存储期间被恶意篡改,下载软件包时需下载对应的校验包对软件包进行校验,校验方法如下: 上传软件包和软件包校验包到虚拟机(Linux操作系统)的同一目录下。 执行如下命令,校验软件包完整性。 cat GaussDB_driver.zip.sha256 | sha256sum --check 如果回显OK,则校验通过。 GaussDB_driver.zip: OK
  • 加载驱动 在创建数据库连接之前,需要先加载数据库驱动程序。 加载驱动有两种方法: 在代码中创建连接之前任意位置隐含装载:Class.forName("com.huawei.gaussdb.jdbc.Driver");。 在JVM启动时参数传递:java -Djdbc.drivers=com.huawei.gaussdb.jdbc.Driver jdbctest。 上述jdbctest为测试用例程序的名称。
  • 环境类 客户端需配置JDK1.8。JDK是跨平台的,支持Windows、Linux等多种平台,下面以Windows为例,配置方法如下: DOS窗口(windows下的命令提示符)输入“java -version”,查看JDK版本,确认为JDK1.8版本。如果未安装JDK,请从官方网站下载安装包并安装。 根据如下步骤配置系统环境变量。 右键单击“我的电脑”,选择“属性”。 在“系统”页面左侧导航栏单击“高级系统设置”。 在“系统属性”页面,“高级”页签上单击“环境变量”。 在“环境变量”页面上,“系统变量”区域单击“新建”或“编辑”配置系统变量。变量说明如表2所示。 表2 变量说明 变量名 操作 变量值 JAVA_HOME 若存在,则单击“编辑”。 若不存在,则单击“新建”。 JAVA的安装目录。 例如:C:\Program Files\Java\jdk1.8.0_131。 Path 单击“编辑”。 若配置了JAVA_HOME,则在变量值的最前面加上: %JAVA_HOME%\bin。 若未配置JAVA_HOME,则在变量值的最前面加上 JAVA安装的全路径: C:\Program Files\Java\jdk1.8.0_131\bin。 CLASSPATH 单击“新建”。 %JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar。
  • 获取驱动包 根据不同版本的实例,下载不同版本的发布包,如表1所示。 表1 驱动包下载列表 版本 下载地址 8.x 驱动包 驱动包校验包 3.x 驱动包 驱动包校验包 2.x 驱动包 驱动包校验包 为了防止软件包在传递过程或存储期间被恶意篡改,下载软件包时需下载对应的校验包对软件包进行校验,校验方法如下: 上传软件包和软件包校验包到虚拟机(Linux操作系统)的同一目录下。 执行如下命令,校验软件包完整性。 cat GaussDB_driver.zip.sha256 | sha256sum --check 如果回显OK,则校验通过。 GaussDB_driver.zip: OK
  • 使用示例 新建脚本文件。 新建一个test_jaydebeapi.py文件,写入代码如下: #!/usr/bin/env python3.x # -*- coding: UTF-8 -*- encoding = "utf8" import jaydebeapi def test_jaydebeapi(): #需要配置的参数 url = 'jdbc:opengauss://***.***.***.***:20000/test' user = '***' password = '******' driver = 'com.huawei.opengauss.jdbc.Driver' jarFile = './opengaussjdbc.jar' conn = jaydebeapi.connect(driver, url, [user, password], jarFile) cur = conn.cursor() #创建表students sql = 'create table students (id int, name varchar(20))' cur.execute(sql) #往students表中插入三组数据 sql = "insert into students values(1,'xiaoming'),(2,'xiaohong'),(3,'xiaolan')" cur.execute(sql) #查询students表中的所有数据 sql = 'select * from students' cur.execute(sql) ans = cur.fetchall() print(ans) #更新students表中的数据 sql = 'update students set name = \'xiaolv\' where id = 1' cur.execute(sql) #再次查询students表中的所有数据 sql = 'select * from students' cur.execute(sql) ans = cur.fetchall() print(ans) #删除表students sql = 'drop table students' cur.execute(sql) cur.close() conn.close() test_jaydebeapi() 配置代码中的参数: #连接url,设置数据库服务器IP、端口、数据库名 url = 'jdbc:opengauss://***.***.***.***:20000/test' #设置用户名 user = '***' #设置密码 password = '******' #JDBC驱动类路径 driver = 'com.huawei.opengauss.jdbc.Driver' #JDBC驱动jar包路径(默认放在与test_jaydebeapi.py文件同目录下) jarFile = './opengaussjdbc.jar' 执行程序。 使用以下命令执行test_jaydebeapi.py文件: python ./test_jaydebeapi.py 预期结果。 成功连接GaussDB数据库,并返回两次查询结果,如下所示: 图1 查询结果
  • 环境配置 配置GaussDB开发环境。 准备好基本的 GaussDB 开发环境,获取数据库连接参数,例如: gsql -h ***.***.***.*** -p 20000 -U *** -W ****** -d test 参数说明: -h:GaussDB服务器IP。 -p:GaussDB连接端口。 -U:连接用户名。 -W:用户密码。 -d:连接的DATABASE名。 安装JayDeBeApi驱动。 在计算机上安装Java JDK 8版本以及Python3版本,可以通过如下命令确认版本: java -version python --version pip --version 如果服务器能连接到Python源(Python的软件包索引PyPI),可以通过pip命令安装JayDeBeApi: pip install jaydebeapi 如果不能,可以通过下载离线安装包然后进行本地安装的方式安装JayDeBeApi。 获取GaussDB驱动程序安装包。 根据不同版本的实例,下载不同版本的发布包,如表1所示。 表1 驱动包下载列表 版本 下载地址 3.x 驱动包 驱动包校验包 2.x 驱动包 驱动包校验包 为了防止软件包在传递过程或存储期间被恶意篡改,下载软件包时需下载对应的校验包对软件包进行校验,校验方法如下: 上传软件包和软件包校验包到虚拟机(Linux操作系统)的同一目录下。 执行如下命令,校验软件包完整性。 cat GaussDB_driver.zip.sha256 | sha256sum --check 如果回显OK,则校验通过。 GaussDB_driver.zip: OK
  • WAL归档配置 WAL(Write Ahead Log)即预写式日志,也称为Xlog 。wal_level决定了写入WAL的信息量。为了在备机上开启只读查询,wal_level需要在主机上设置成hot_standby,并且备机设置hot_standby参数为on。对于分布式环境,不支持设置hot_standby为off,因此wal_level不可设置为archive或minimal,否则数据库将无法启动。建议设置wal_level参数为默认值hot_standby。 父主题: 安全介绍
  • 资源规划 表1 资源规划 类别 子类 规划 备注 VPC VPC名称 vpc-src-172 自定义,易理解可识别。 所属Region 测试Region 现网实际选择时建议选择和自己业务区最近的Region,减少网络时延。 可用区 可用区3 - 子网网段 172.16.0.0/16 子网选择时建议预留足够的网络资源。 子网名称 subnet-src-172 自定义,易理解可识别。 本地Oracle数据库 名称 orcl 自定义,易理解可识别。 规格 16vCPUs | 32GB - 数据库版本 11.2.0.1 - 数据库用户 test_info 可以自定义用户,但是迁移时最小权限为:CREATE SESSION,SELECT ANY TRANSACTION, SELECT ANY TABLE, SELECT ANY DICTIONARY, EXECUTE_CATALOG_ROLE GaussDB 实例名 Auto-drs-gaussdbv5-tar-1 自定义,易理解可识别。 数据库版本 GaussDB 3.226企业版 - 实例类型 分布式版,3CN,3DN,3副本 本示例中为分布式实例。 部署形态 独立部署 - 事务一致性 强一致性 - 分片数量 3 - 协调节点数量 3 - 存储类型 超高IO - 可用区 可用区2 本示例中选择了单可用区,实际建议选择多可用区,以提高实例的高可用性。 性能规格 通用增强Ⅱ型 8 vCPUs | 64GB 本示例中为测试实例,选择较小的测试规格,实际选择规格以业务诉求为准。 存储空间 480G 本示例中为测试实例,选择较小的存储空间,实际选择存储空间大小以业务诉求为准。 加密磁盘 不加密 本示例中选择磁盘不加密,选择加密后会提高数据安全性,但对数据库读写性能有少量影响,实际请按照业务使用策略进行选择。 DAS登录数据库 数据库引擎 GaussDB - 数据库来源 GaussDB 勾选本示例中创建的GaussDB实例 数据库名称 postgres - 登录用户名 root - 密码 - 本示例中创建的GaussDB实例root用户密码 DRS迁移任务 迁移任务名 DRS-test-info 自定义。 目标库名称 test_database_info 自定义,易理解可识别,但是需要确保兼容模式为Oracle模式。 源数据库引擎 Oracle - 目标数据库引擎 GaussDB - 网络类型 公网网络 本示例中采用公网网络。 父主题: Oracle迁移至GaussDB最佳实践
  • 如何创建终端节点? ICAgent目前支持通过创建终端节点和AOM/LTS服务打通网络,然后进行ICAgent心跳以及日志上报。 要通过终端节点的方式打通网络,需要分别购买2个终端节点,一个终端节点用来打通和AOM的网络,用于ICAgent的上报心跳和指标上报,一个终端节点用来打通和LTS的网络,用于ICAgent上报日志。 目前此功能仅支持西南-贵阳一局点,其他局点暂不支持。 创建AOM/LTS终端节点的方法: 登录华为云VPC终端节点 VPCEP控制台,进入终端节点页面。 单击“购买终端节点”。 在购买终端节点页面,选择ICAgent所在的区域,“服务类别”选择“云服务”,在“选择服务”下方查找并选择AOM的云服务,并且勾选“创建内网域名”,选择ICAgent所在节点的虚拟私有云和子网,其他参数默认设置,更多操作请参考购买终端节点。 设置完成后,单击“立即购买”。购买成功后,即可完成AOM终端节点的创建。 重复上面步骤,需要再购买1个终端节点,选择ICAgent所在的区域,“服务类别”选择“云服务”,在“选择服务”下方查找并选择LTS的云服务,并且勾选“创建内网域名”,选择ICAgent所在节点的虚拟私有云和子网,其他参数默认设置。 设置完成后,单击“立即购买”。购买成功后,即可完成了LTS终端节点的创建。 父主题: 主机管理
  • 如何创建终端节点? 当前支持通过创建终端节点和AOM/LTS服务打通网络,进行心跳和指标上报,以及日志上报。如果要通过终端节点的方式打通AOM/LTS的网络,需要为AOM和LTS各自购买1个终端节点。 目前此功能仅支持西南-贵阳一局点,其他局点暂不支持。 创建AOM/LTS终端节点的方法: 登录华为云VPC终端节点 VPCEP控制台,进入终端节点页面。 单击“购买终端节点”。 在购买终端节点页面,选择终端节点所在的区域,“服务类别”选择“云服务”,在“选择服务”下方查找并选择AOM的云服务,并且勾选“创建内网域名”,选择终端节点所在的虚拟私有云和子网,其他参数默认设置,更多操作请参考购买终端节点。 设置完成后,单击“立即购买”。购买成功后,即可完成AOM终端节点的创建。 重复上面步骤,需要再购买1个终端节点,选择终端节点所在的区域,“服务类别”选择“云服务”,在“选择服务”下方查找并选择LTS的云服务,并且勾选“创建内网域名”,选择终端节点所在的虚拟私有云和子网,其他参数默认设置。 设置完成后,单击“立即购买”。购买成功后,即可完成了LTS终端节点的创建。 父主题: 采集管理
  • 2023年03月 序号 功能名称 功能描述 阶段 相关文档 1 RDS实例将按照整机出账 数据库服务RDS实例主资源以及子资源的产品类型、产品以及资源ID信息在账单中均以主资源的产品类型、产品以及资源ID信息进行显示,已出的历史账单信息不变。 商用 华为云数据库服务RDS整机出账变更通知 2 账单呈现用量单位按照定价量纲转换 账单页面列表中,使用量按照产品上架时定价采用的使用量单位进行展示,账单导出xlsx文件中新增如下字段:使用量(定价量纲)、使用量单位(定价量纲)、套餐内用量(定价量纲)、预留实例内用量(定价量纲)、使用量转换比率。 转换后的使用量最多保留小数点后10位,截断处理。 账单概览页面 按“产品规格”导出“月账单”,PDF中的使用量换为定价的使用量单位显示。xlsx文件中新增上述字段。 汇总表格(按产品规格)列表中,新增上述字段。 汇总表格(按产品规格)导出的xlsx文件中新增上述字段。 明细账单页面 “统计维度”选择“按使用量”,“统计周期”选择“按账期”、“按天”或“明细”。 账单列表中,新增上述字段。 导出的xlsx文件中新增上述字段。 OBS文件订阅 使用量明细账单,添加账单上述字段。 商用 概览 流水和明细账单 账单字段说明 使用量类型明细账单文件格式介绍 3 电子章的对账单支持根据产品类型单独导出 按产品和产品规格导出月账单时,支持按“产品类型”导出,“产品类型”可多选。 客户设置了“产品类型”参数时,“导出记录”页面展示产品类型。内容过多时,截取展示部分,后边显示…。鼠标悬停在…时,展示全部内容。 客户设置了“产品类型”参数时,导出文件中展示“导出产品类型”。 选择指定产品类型导出时均按照预付费账单格式导出账单,不提供后付费相关内容:后付费账单列表、本期应还金额、本期剩余应还金额、总信用额度、到期还款日。 商用 概览 导出记录
  • 2022年08月 序号 功能名称 功能描述 阶段 相关文档 1 DDS实例将按照整机计费 文档数据库服务DDS实例主资源以及子资源的产品类型、产品以及资源ID信息在账单中均以主资源的产品类型、产品以及资源ID信息进行显示。 原主资源ID的“instanceId.cluster”变更为“instanceId”,与DDS云服务控制台列表中显示的实例ID保持一致(例:订单、账单中9521482c50b42c5a6eab8cb1df9df55in02.cluster变更为69521482c50b42c5a6eab8cb1df9df55in02),已出的历史账单信息不变。 商用 -- 2 充值页面中增加提示,提升用户感知及体验 充值页面中增加“如您有未还清账单,充值后优先抵扣未还清账单”提示,提升用户感知及体验。 商用 账户充值 3 降配订单账单类型优化 降配订单对应账单的账单类型由“退款-退订”优化为“退款-变更”。历史已出账的降配账单类型保持不变,仍为“退款-退订”。 商用 流水账单文件格式介绍 资源按账期账单文件格式介绍 使用量类型明细账单文件格式介绍 4 客户在索取发票时可自行切换普票与专票 客户在索取发票时,可进行普票和专票的切换。 发票抬头是“个人”时,只支持普票,不支持切换。 发票抬头是“企业”时,从专票切换成普票,直接从下拉框选择即可。 发票抬头是“企业”时,从普票切换成专票,从下拉框选择专票时,如果专票信息不完整,需要根据页面提示补充相关信息。 商用 开具华为云发票 5 框架合同条款增加订单退订免手续费履行 若客户有已生效的框架合同且框架合同有退订免手续费条款,则在退订资源时免除退订手续费。 商用 包年/包月资源退订规则 6 大额退订增加审核时间提示 退订资源时,当退订金额认定为大额退订,弹窗增加“审核时间、了解大额退订”提示。 系统默认退订金额超过5万元为大额退订,需要客户经理审批,默认审核时间为24小时,超过24小时未审批,则自动审批通过。 退订订单费用归属退订成功的当月账单;如果是月末大额退订,下月审核退订成功,退订订单费用归属下月账单。 商用 大额退订定义以及注意事项
  • 2022年07月 序号 功能名称 功能描述 阶段 相关文档 1 提现交互体验优化,展示提现进度、新增预计到账时间 登录费用中心,提现页面优化点如下: 提现交互方式由弹窗step步骤化样式改为新页面,基本逻辑不变。 提示信息增加“提现规则”和“更多问题”,分别链接到现有资料。 增加可提现金额的公式构成,欠票金额增加文案描述。 提现记录列表和提现申请提交结果页面,增加“预计到账时间”,提升用户对提现进度的感知。 商用 余额提现 提现规则 更多问题 2 账单字段优化 从2022/08/01 00:00:00开始,按需产品按使用量查看和导出费用账单时,“按账期”和“按天”维度的账单新增“优惠类型”和“优惠信息”字段。 2022/08/01 00:00:00以前的历史数据中不展示“优惠类型”和“优惠信息”字段取值,统一设置为“--” 商用 -- 3 退订资源流程优化 新购资源开通存在部分成功部分失败的场景,开通失败的资源自动退订,退订开通成功的资源有如下三种情况: 若账号有五天无理由退订次数,则五天内退订开通成功的资源属于五天无理由退订,且占用五天无理由退订次数; 若账号没有五天无理由退订次数,则五天内退订开通成功的资源仍属于非五天无理由退订,需要收取手续费、已消费金额,不退还已使用代金券和折扣券。 超过五天后退订开通成功的资源,为非五天无理由退订,需要收取手续费、已消费金额,不退还已使用代金券和折扣券。 商用 退订使用中的资源说明
  • 2024年04月 序号 功能名称 功能描述 阶段 相关文档 1 资源包默认自动续费周期调整 资源包购买页设置自动续费,自动续费周期=产品的最小可售卖周期,通常为1个月或1年(按月购买:自动续费周期为1个月;按年购买:自动续费周期为1年),与包年/包月资源默认自动续费周期保持一致。 商用 自动续费规则说明 2 五天无理由退订接入风控 如客户存在恶意退订行为,华为云有权取消其五天无理由退订权利并收取相应费用。 因恶意退订被风控的客户,不能再使用五天无理由退订。“五天无理由退订”页签展示提示“当前账号存在安全风险,暂时无法使用五天无理由退订。若有疑问请联系客服。前往非五天无理由退订”。 被风控客户仍可以通过非五天无理由退订资源,非五天无理由退订需扣除已消费金额,收取手续费。 商用 可五天无理由退订 3 云商店发票支持服务商开具不同介质不同类型的发票 开具云商店发票时,支持服务商开具不同介质不同类型的发票,包括:“增值税普通发票-数电发票”、“增值税普通发票-电子发票”、“增值税普通发票-纸质发票”以及“增值税专用发票-数电发票”、“增值税专用发票-电子发票”、“增值税专用发票-纸质发票”。 每个服务商会支持开具前述发票类型中的若干种类型,由云商店服务商自行设置。 商用 开具云商店发票 4 发票抬头名称长度限制不超过100个字节 发票信息维护页面 新增、修改发票信息时,当发票抬头可编辑时,限制长度不能超过100个字节。 索取华为云发票页面 当前用户是企业用户,提示:您的发票抬头长度超过100个字节(50个汉字),暂不支持开票,请您联系华为云的客户经理,帮您新增合规的发票抬头。 当前用户是个人用户,提示:您的发票抬头长度超过100个字节(50个汉字),暂不支持开票,请您重新填写发票抬头。 单击“修改”,在编辑发票信息页面,限制发票抬头长度不能超过100个字节。 商用 开具华为云发票
  • 2023年05月 序号 功能名称 功能描述 阶段 相关文档 1 费用中心的页面操作接入到CTS 客户开启云审计服务后,费用中心支持上报客户的关键操作请求记录到云审计服务CTS,以便于日后的查询、审计和回溯。 登录云审计服务,可以通过“云服务”、“资源类型”筛选费用中心的相关操作。 商用 支持云审计的关键操作 2 费用中心提现页面放开可提现金额公式,并增加相关提示和帮助链接。 放开展示可提现金额公式限制,无论客户可提现金额是否大于0,都固定展示该公式。 公式中的实际欠票金额增加相关FAQ跳转链接。 温馨提示增加:3.因历史退款等原因导致的欠票金额,不可提现。您可以进入“发票管理”页面进行欠票处理操作。 商用 提现页面的实际欠票金额如何计算? 提现时有欠票怎么办? 3 华为云纸质发票邮寄费用规则更改 华为云纸质发票,开票金额小于10元时,客户自行承担快递费用。 商用 发票邮寄费用由谁来支付? 4 续费资源/再次购买资源包/按需转包年包月资源页面增加展示支持使用的代金券信息 客户对资源操作续费/再次购买资源包/按需转包年包月资源时,如果客户账号下有可使用的代金券,且代金券适用于该资源,则页面增加“本商品支持使用代金券 查看详情”字段,通过单击“查看详情”查看可用代金券信息。 商用 --
共100000条