返回首页

gbase数据、南大通用产品文档:GBase8a创建视图

更新日期:2024年09月11日

在Views 节点上点击右键选择“创建视图”命令或者执行Visual Studio
的“数据”菜单的“新增”子菜单下的“视图”命令,则会显示视图定义模板
(图9-14)
,输入视图定义的SQL 语句后,使用“Ctrl
+
S”保存定义,或者点
击Visual
Studio 的“标准”工具条上的
按钮保存。视图保存后会在Views
节点下新增一个视图子节点,以视图名命名。

GBase 8a 程序员手册ADO.NET 篇


- 74 -

南大通用数据技术股份有限公司

图 9-14 视图定义模板

操作场景
gs_restore 是GBase 8c 数据库提供的与gs_dump 配套的导入工具。通过该工具,可将
gs_dump 导出的文件导入至数据库。gs_restore 支持导入的文件格式包含自定义归档格式、
目录归档格式和tar 归档格式。
gs_restore 具备如下两种功能。

导入至数据库
如果指定了数据库,则数据将被导入到指定的数据库中。其中,
并行导入必须指定连接
数据库的密码。导入时生成列会自动更新,并像普通列一样保存。

导入至脚本文件
如果未指定导入数据库,则创建包含重建数据库所需的SQL 语句脚本,并将其写入至
文件或者标准输出。该脚本文件等效于gs_dump 导出的纯文本格式文件。
gs_restore 工具在导入时,允许用户选择需要导入的内容,并支持在数据导入前对等待
导入的内容进行排序。
操作步骤

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
319
gs_restore 默认是以追加的方式进行数据导入。为避免多次导入造成数据异常,在
进行导入时,建议选择使用"-c" 和"-e"参数。"-c"表示在重新创建数据库对象前,清理
(删除)
已存在于将要还原的数据库中的数据库对象;
"-e"表示当发送SQL 语句到数据
库时如果出现错误请退出,默认状态下会继续,且在导入后会显示一系列错误信息。
步骤1 以操作系统用户gbase 登录数据库主节点。
步骤2 使用gs_restore 命令,从postgres 整个数据库内容的导出文件中,将数据库的所有对
象的定义导入到backupdb。
gs_restore -U jack /home/gbase/backup/MPPDB_backup.tar -p 15432 -d backupdb -s -e -c
Password:
表9-6 常用参数说明
参数
参数说明
举例
-U
连接数据库的用户名。
-U jack
-W
指定用户连接的密码。
如果主机的认证策略是trust,则不会对数据库管理员进
行密码验证,即无需输入-W 选项;
如果没有-W 选项,
并且不是数据库管理员,
会提示用户
输入密码。
-W abcd@123
-d
连接数据库dbname,并直接将数据导入到该数据库中。-d backupdb
-p
指定服务器所侦听的TCP 端口或本地Unix 域套接字后
缀,以确保连接。
-p 15432
-e
当发送SQL 语句到数据库时如果出现错误,则退出。默
认状态下会忽略错误任务并继续执行导入,且在导入后
会显示一系列错误信息。
——
-c
在重新创建数据库对象前,清理(删除)已存在于将要
导入的数据库中的数据库对象。
——
-s
只导入模式定义,不导入数据。当前的序列值也不会被
导入。
——
其他参数说明请参见
《GBase 8c V5_3.0.x_工具参考》
中“服务端工具> gs_restore”章节。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
320
----结束
示例
示例一:执行gs_restore,导入指定MPPDB_backup.dmp 文件(自定义归档格式)中
postgres 数据库的数据和对象定义。
gs_restore backup/MPPDB_backup.dmp -p 15432 -d backupdb
Password:
gs_restore[2017-07-21 19:16:26]: restore operation successful
gs_restore: total time: 13053 ms
示例二:执行gs_restore,导入指定MPPDB_backup.tar 文件(tar 归档格式)中postgres
数据库的数据和对象定义。
gs_restore backup/MPPDB_backup.tar -p 15432 -d backupdb
gs_restore[2017-07-21 19:21:32]: restore operation successful gs_restore[2017-07-21 19:21:32]:
total time: 21203 ms
示例三:
执行gs_restore,
导入指定MPPDB_backup 目录文件
(目录归档格式)
中postgres
数据库的数据和对象定义。
gs_restore backup/MPPDB_backup -p 15432 -d backupdb
gs_restore[2017-07-21 19:26:46]: restore operation successful
gs_restore[2017-07-21 19:26:46]: total time: 21003 ms
示例四:
执行gs_restore,
将postgres 数据库的所有对象的定义导入至backupdb 数据库。
导入前,数据库存在完整的定义和数据,导入后,backupdb 数据库只存在所有对象定义,
表没有数据。
gs_restore /home/gbase/backup/MPPDB_backup.tar -p 15432 -d backupdb -s -e -c
Password:
gs_restore[2017-07-21 19:46:27]: restore operation successful
gs_restore[2017-07-21 19:46:27]: total time: 32993 ms
示例五:执行gs_restore,导入MPPDB_backup.dmp 文件中PUBLIC 模式的所有定义和
数据。
在导入时会先删除已经存在的对象,
如果原对象存在跨模式的依赖则需手工强制干预。
gs_restore backup/MPPDB_backup.dmp -p 15432 -d backupdb -e -c -n PUBLIC
gs_restore: [archiver (db)] Error while PROCESSING TOC:
gs_restore: [archiver (db)] Error from TOC entry 313; 1259 337399 TABLE table1 gaussdba
gs_restore: [archiver (db)] could not execute query:
ERROR: cannot drop table table1 because other objects depend on it
DETAIL: view t1.v1 depends on table table1
HINT: Use DROP ... CASCADE to drop the dependent objects too.

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
321
Command was: DROP TABLE public.table1;
手工删除依赖,导入完成后再重新创建。
gs_restore backup/MPPDB_backup.dmp -p 15432 -d backupdb -e -c -n PUBLIC
gs_restore[2017-07-21 19:52:26]: restore operation successful
gs_restore[2017-07-21 19:52:26]: total time: 2203 ms
示例六:
执行gs_restore,
导入MPPDB_backup.dmp 文件中hr 模式下表hr.staffs 的定义。
在导入之前,hr.staffs 表不存在,需要确保存在hr 的schema。
gs_restore backup/MPPDB_backup.dmp -p 15432 -d backupdb -e -c -s -n hr -t staffs
gs_restore[2017-07-21 19:56:29]: restore operation successful
gs_restore[2017-07-21 19:56:29]: total time: 21000 ms
示例七:
执行gs_restore,
导入MPPDB_backup.dmp 文件中hr 模式下表hr.staffs 的数据。
在导入之前,hr.staffs 表不存在数据,需要确保存在hr 的schema。
gs_restore backup/MPPDB_backup.dmp -p 15432 -d backupdb -e -a -n hr -t staffs
gs_restore[2017-07-21 20:12:32]: restore operation successful
gs_restore[2017-07-21 20:12:32]: total time: 20203 ms
示例八:执行gs_restore,导入指定表hr.staffs 的定义。在导入之前,hr.staffs 表的数据
是存在的。
human_resource=# select * from hr.staffs;
staff_id | first_name
|
last_name
|
email
|
phone_number
|
hire_date |
employment_id | salary | commission_pct | manager_id | section_id
----------+-------------+-------------+----------+--------------------+---------------------+---------------+-
---------+----------------+------------+----
200 | Jennifer | Whalen | JWHALEN | 515.123.4444 | 1987-09-17 00:00:00 | AD_ASST |

功能说明
列出在GBase 8a MPP Cluster 服务器主机上的数据库。除非拥有所有SHOW
DATABASES 权限,否则用户只能看到自己拥有权限的数据库。
语法格式
SHOW {DATABASES | SCHEMAS} [LIKE 'pattern']
表5- 121 参数说明
参数名称


pattern
一个可以包含SQL “%”和“_”通配符的字符串。
示例
gbase> SHOW DATABASES;
+--------------------+

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1113
| Database
|
+--------------------+
| information_schema |
| performance_schema |
| gbase
|
| gctmpdb
|
| demo
|
| gclusterdb
|
+--------------------+
6 rows in set (Elapsed: 00:00:00.00)
gbase> SHOW DATABASES LIKE 'd%';
+---------------+
| Database (d%) |
+---------------+
| demo
|
+---------------+
1 row in set (Elapsed: 00:00:00.00)