返回首页

gbase数据、南大通用产品文档:GBase8a

更新日期:2024年09月11日

gbase_thread_id
...............................
48

语法格式
CREATE TABLE [IF NOT EXISTS] table_nam
(col_name type,...)
NOCOPIES;
参数说明
NOCOPIES:在创建表时,使用关键词NOCOPIES 可以创建一张不带副本的表。
功能
nocopies 表和分布表(随机分布表和哈希分布表)一样,数据分布存储,支持表的
DDL 语法和DML 语法;与分布表的区别是,不产生副本,所以无法提供数据的高
可用性。
nocopies 表支持使用gcdump 工具导出表结构。
nocopies 表支持使用SELECT INTO OUTFILE 和rmt: SELECT INTO OUTFILE 语句
导出数据。
GBase UP 支持nocopies 表到非nocopies 表的转换。
使用约束
nocopies 表不支持使用数据加载工具进行数据加载。
nocopies 表不支持数据同步、重分布、备份与恢复。

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 616
示例
示例1:从系统库的表中查看nocopies 表信息。
gbase> USE test;
Query OK, 0 rows affected
gbase> CREATE TABLE t_1 (a int) NOCOPIES;
Query OK, 0 rows affected
gbase> CREATE TABLE t_2 (a int) NOCOPIES;
Query OK, 0 rows affected
gbase> CREATE TABLE t_3 (a int) NOCOPIES;
Query OK, 0 rows affected
gbase> SELECT * FROM gbase.table_distribution WHERE is_nocopies='YES';
+------------+--------+--------+-------------+-------------+
| index_name | dbName | tbName | isReplicate | hash_column |
+------------+--------+--------+-------------+-------------+
| test.t_1 | test | t_1 | NO | NULL |
| test.t_2 | test | t_2 | NO | NULL |
| test.t_3 | test | t_3 | NO | NULL |
+------------+--------+--------+-------------+-------------+
+------------------+--------------------+-------------+
| lmt_storage_size | table_storage_size | is_nocopies |
+------------------+--------------------+-------------+
| NULL | NULL | YES |
| NULL | NULL | YES |
| NULL | NULL | YES |
+------------------+--------------------+-------------+
3 rows in set
示例2:创建nocopies 表。
gbase> CREATE TABLE t1 (a int) NOCOPIES;
Query OK, 0 rows affected
gbase> SHOW CREATE TABLE t1;
+-------+--------------------------------------------------+
| Table | Create Table |
+-------+--------------------------------------------------+
| t1 | CREATE TEMPORARY TABLE "t1" (
"a" int(11) DEFAULT NULL
)ENGINE=EXPRESS NOCOPIES DEFAULT CHARSET=utf8 TABLESPACE='sys_tablespace'
|+-------+--------------------------------------------------+
1 row in set
示例3:创建nocopies 表,使用DISTRIBUTED BY 关键字。

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 617
gbase> CREATE TABLE t1 (a int,b varchar(10)) DISTRIBUTED BY ('a') NOCOPIES;
Query OK, 0 rows affected
gbase> SHOW CREATE TABLE t1;
+-------+----------------------------------------------------------+
| Table | Create Table |
+-------+----------------------------------------------------------+
| t1 | CREATE TABLE "t1" (
"a" int(11) DEFAULT NULL,
"b" varchar(10) DEFAULT NULL
) ENGINE=EXPRESS DISTRIBUTED BY('a') NOCOPIES DEFAULT CHARSET=utf8
TABLESPACE='sys_tablespace' |
+-------+----------------------------------------------------------+
1 row in set
示例4:创建nocopies 表,使用TEMPORARY 关键字。
gbase> CREATE TABLE t1 (a int,b varchar(10)) DISTRIBUTED BY ('a') NOCOPIES;
Query OK, 0 rows affected
gbase> SHOW CREATE TABLE t1;
+-------+----------------------------------------------------------+
| Table | Create Table |
+-------+----------------------------------------------------------+
| t1 | CREATE TEMPORARY TABLE "t1" (
"a" int(11) DEFAULT NULL,
"b" varchar(10) DEFAULT NULL
) ENGINE=EXPRESS DISTRIBUTED BY('a') NOCOPIES DEFAULT CHARSET=utf8
TABLESPACE='sys_tablespace' |
+-------+----------------------------------------------------------+
1 row in set
示例5 :复制全表表结构及数据来创建nocopies 表。(CREAET TABLE
NOCOPIES…AS SELECT…)

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 618
gbase> CREATE TABLE t7(a INT, b DECIMAL, c FLOAT, d DATETIME);
Query OK, 0 rows affected
gbase> INSERT INTO t7 VALUES(1,2,3.345,'2011-11-11 11:11:11'),(3,5,5.678,'2011-11-11
22:22:22');
Query OK, 2 rows affected
Records: 2 Duplicates: 0 Warnings: 0
gbase> DROP TABLE IF EXISTS t8;
Query OK, 0 rows affected
gbase> CREATE TABLE t8 NOCOPIES AS SELECT * FROM t7;
Query OK, 2 rows affected
gbase> SELECT * FROM t8;
+------+------+-------+---------------------+
| a | b | c | d |
+------+------+-------+---------------------+
| 1 | 2 | 3.345 | 2011-11-11 11:11:11 |
| 3 | 5 | 5.678 | 2011-11-11 22:22:22 |
+------+------+-------+---------------------+
2 rows in set

(1)
以gbase 用户登录客户端机器。
(2)
创建安装目录。例如/tmp/tools:
[gbase@10.10.0.30 ~]$ sudo mkdir -p /tmp/tools
(3)
获取软件安装包,并上传到安装路径下,以/tmp/tools 为例。

GBase 8c V5 安装部署手册(主备式)
南大通用数据技术股份有限公司
29
说明

软件包相对位置为安装时所放位置,根据实际情况填写。

不同的操作系统,
工具包文件名称会有差异。
请根据实际的操作系统类型选择对应
的工具包。
(4)
解压文件。
[gbase@10.10.0.30 ~]$ cd /tmp/tools
[gbase@10.10.0.30 tools]$ tar -zxvf ******.tar.gz
(5)
登录数据库主节点所在的服务器,
并拷贝数据库运行目录下的bin 目录到客户端主
机的安装路径下。使用的主机IP 和目录,根据实际情况填写。
[gbase@gbase8c ~]$ scp -r /home/gbase/deploy/app/bin
gbase@10.10.0.30:/tmp/tools
(6)
登录客户端所在主机,设置环境变量。打开“~/.bashrc”文件。
[gbase@10.10.0.30 tools]$ vi ~/.bashrc
在其中输入如下内容后,使用“:wq!”命令保存并退出
export PATH=/tmp/tools/bin:$PATH
export LD_LIBRARY_PATH=/tmp/tools/lib:$LD_LIBRARY_PATH
(7)
使环境变量配置生效。
[gbase@10.10.0.30 ~]$ source ~/.bashrc
步骤3 连接数据库。
登录客户端所在主机,连接到此数据库。
gsql -d dbname -p port <-U user_name> <-h hostip>
参数与本地连接章节描述相同。
说明

客户端登录时,可能需要数据库用户的登录密码,请联系服务端获取。

当连接机器与数据库所在主机不在同一网段时,-h 指定的IP 地址应为Manager 界
面上所设的coo.cooListenIp2(应用访问IP)的取值。

GBase 8c V5 安装部署手册(主备式)
南大通用数据技术股份有限公司
30

执行连接数据库步骤可能报错,显示“gsql:error while loading shared libraries:
libssl.so.1.1: cannot open shared object file: No such file or directory”,则请检查客户
端目录下是否已拷贝bin 目录,以及环境变量和安装目录是否一致。可在数据库主
节点执行命令:
gha_ctl deploy client_host -l dcslist <-c cluster_name>
----结束