安装完毕
安装指南
[[VASTDATA]Vastbase+G100+V2.2+安装升级指南.pdf](/usr/uploads/2024/12/571749712.pdf)
[[VASTDATA]Vastbase+Data+Studio+V3.3.1+用户手册.pdf](/usr/uploads/2024/12/629516846.pdf)
[[VASTDATA]exBase+V4.4+安装说明文档.pdf](/usr/uploads/2024/12/2793356904.pdf)
启用、停止、重启数据库:
切换到vastbase用户
vb_ctl <start/stop/restart>

{/collapse-item}
{collapse-item label="使用"}
连接数据库
切换到vastbase用户
[root@KylinV10 ~]# su vastbase
[vastbase@KylinV10 root]$ vsql -r
vsql ((Vastbase G100 V2.2 (Build 15) Release) compiled at 2024-09-26 15:32:03 commit 22518 last mr )
非SSL连接(安全性要求高时,建议使用SSL连接)
输入 "help" 来获取帮助信息。
vastbase-# \q
[vastbase@KylinV10 root]$ vsql -d vastbase -p 5432
vsql ((Vastbase G100 V2.2 (Build 15) Release) compiled at 2024-09-26 15:32:03 commit 22518 last mr )
非SSL连接(安全性要求高时,建议使用SSL连接)
输入 "help" 来获取帮助信息。创建库
vastbase=# CREATE USER test123 WITH PASSWORD "test@123456";
CREATE ROLE
vastbase=# GRANT ALL PRIVILEGES TO admin;
ALTER ROLE
vastbase=# CREATE DATABASE a_test OWNER admin;
CREATE DATABASE
vastbase=# CREATE DATABASE a_test OWNER admin;
CREATE DATABASE
vastbase=#{/collapse-item}
{collapse-item label="数据库的备份和恢复"}
1.备份
vb_dump工具备份
示例
vb_dump -U username -W password -h hostname -p port -F c -f /home/bak/xj_zssj_backup.dmp xj_zssj-U:数据库用户名(需有备份权限)
-W:用户密码
-h:数据库服务器地址(本地可省略)
-p:数据库端口(默认5432可省略)
-F c:指定自定义格式(压缩格式)
-f:指定输出文件路径
最后参数为要备份的数据库名
实际操作
vb_dump -U vastbase -W Xj@123456 -p 5432 -F c -f /home/vastbase/backup_test/xj_zssj_backup.dmp xj_zssj2.恢复
默认情况下,vb_restore不会自动覆盖现有数据库
如果需要完全覆盖,需要先清理目标数据库
推荐的安全操作步骤:
a) 首先删除现有数据库(确保已备份重要数据):
vsql -U vastbase -W Xj@123456 -p 5432 -c "DROP DATABASE xj_zssj;"b) 创建新数据库:
vsql -U vastbase -W Xj@123456 -p 5432 -c "CREATE DATABASE xj_zssj;"c) 执行恢复
vb_restore -U vastbase -W Xj@123456 -p 5432 -F c -d xj_zssj /home/vastbase/backup/xj_zssj_backup.dmp- 先断开所有连接到目标数据库的会话vsql -U vastbase -W Xj@123456 -p 5432 -c "clean connection to all force for database xj_zssj;"
- 再删除数据库vsql -U vastbase -W Xj@123456 -p 5432 -c "DROP DATABASE xj_zssj;"
- 创建新数据库vsql -U vastbase -W Xj@123456 -p 5432 -c "CREATE DATABASE xj_zssj;"
- 执行恢复vb_restore -U vastbase -W Xj@123456 -p 5432 -F c -d xj_zssj /home/vastbase/backup/xj_zssj_backup.dmp
其他可能有用的参数:
-e 显示执行的SQL命令
-v 详细模式
-c 在恢复前清理数据库对象(但不包括数据库本身)
3.测试操作记录
vsql -c -d xj_test -p 5432 -f backup_all.sql
vsql -d xj_test -p 5432 -f backup_all.sql
vb_probackup init -B /home/vastbase/backup_test
vb_probackup show-config -B /home/vastbase/backup_test -D /home/vastbase/data/vastbase/base --instance=my_vastbase_backup_test
全库备份:
pg_dump -U ixjkj -W Xj@123456 -h 192.168.0.204 -p5432 -f /home/vastbase/backup_test/backup_A xj_hzgdd
全库恢复
pg_restore -U ixjkj -h 192.168.0.204 -p5432 -C -1 -t xj_hzgdd /home/vastbase/backup_test/backup_A
vb_restore -d xj_hzgdd /home/vastbase/backup_test/backup_A -c
vb_restore -d vastbase -C /home/vastbase/backup_test/backup_A
vsql -d xj_hzgdd -p 5432 -f /home/vastbase/backup_test/backup_A
vsql -d xj_lssj -p 5432 -f /home/vastbase/backup_test/backup_A{/collapse-item}
{collapse-item label="成员关系调整"}
让 ixjkj 继承 vastbase 权限的方法
方法一:将 ixjkj 加入 vastbase 角色组
GRANT vastbase TO ixjkj;执行后,ixjkj 就成为 vastbase 的成员,可以继承 vastbase 的权限。
方法二:将 vastbase 的权限授予 ixjkj(不推荐,因为权限太多)
如果不想让 ixjkj 成为 vastbase 的成员,而只是想授予部分特定权限,可以单独授权,但由于 vastbase 权限太多,通常不这样做。
如果只是想给 ixjkj 更多权限
直接授予特定权限而不是通过角色继承,比如:
ALTER USER ixjkj WITH SUPERUSER; -- 授予超级用户权限如果只是想管理某个数据库
如果您的目的不是让 ixjkj 获得全部超级管理员权限,而只是想让它能管理某个特定数据库(比如 xj_hzgdd),更安全的做法是:
-- 将数据库的所有权转移给 ixjkj(如果还没拥有)
ALTER DATABASE xj_hzgdd OWNER TO ixjkj;
-- 或者授予特定权限
GRANT ALL PRIVILEGES ON DATABASE xj_hzgdd TO ixjkj;
转移后
vastbase=# ALTER DATABASE xj_tzdh OWNER TO ixjkj;
ALTER DATABASE
vastbase=# ALTER DATABASE xj_zsdh OWNER TO ixjkj;
ALTER DATABASE
vastbase=# ALTER DATABASE xj_zssj OWNER TO ixjkj;
ALTER DATABASE
vastbase=# \l
数据库库列表
名称 | 拥有者 | 字元编码 | 校对规则 | Ctype | 存取权限
--------------+----------+----------+------------+------------+-----------------------
postgres | vastbase | UTF8 | en_US.utf8 | en_US.utf8 |
template0 | vastbase | UTF8 | en_US.utf8 | en_US.utf8 | =c/vastbase +
| | | | | vastbase=CTc/vastbase
template1 | vastbase | UTF8 | en_US.utf8 | en_US.utf8 | vastbase=CTc/vastbase+
| | | | | =c/vastbase
vastbase | vastbase | UTF8 | en_US.utf8 | en_US.utf8 |
xj_demo | ixjkj | UTF8 | en_US.utf8 | en_US.utf8 |
xj_dqxj | ixjkj | UTF8 | en_US.utf8 | en_US.utf8 |
xj_hzbj | ixjkj | UTF8 | en_US.utf8 | en_US.utf8 |
xj_hzgdd | ixjkj | UTF8 | en_US.utf8 | en_US.utf8 |
xj_jxjx | ixjkj | UTF8 | C | C |
xj_jxsj | ixjkj | UTF8 | en_US.utf8 | en_US.utf8 | =Tc/ixjkj +
| | | | | ixjkj=C*T*c*/ixjkj
xj_lssj | ixjkj | UTF8 | en_US.utf8 | en_US.utf8 |
xj_sync | ixjkj | UTF8 | C | C |
xj_test | ixjkj | UTF8 | en_US.utf8 | en_US.utf8 |
xj_tzdh | ixjkj | UTF8 | en_US.utf8 | en_US.utf8 |
xj_tzsj | ixjkj | UTF8 | C | C |
xj_zsdh | ixjkj | UTF8 | en_US.utf8 | en_US.utf8 |
xj_zsptfj | ixjkj | UTF8 | C | C |
xj_zssj | ixjkj | UTF8 | en_US.utf8 | en_US.utf8 |
xj_zssj_sync | ixjkj | UTF8 | C | C |
(19 行记录)
vastbase=#修改中。。。
vastbase=# GRANT vastbase TO ixjkj;
ERROR: role "vastbase" is a member of role "ixjkj"
vastbase=#这句话的意思是:vastbase 已经是 ixjkj 的成员了。也就是说,当前的角色关系是 vastbase → ixjkj(vastbase 继承了 ixjkj 的权限),而您想要的是 ixjkj → vastbase(ixjkj 继承 vastbase 的权限)。
Vastbase/PostgreSQL 不允许循环嵌套的成员关系,所以系统拒绝了您的 GRANT 命令。
解决方案
-- 1. 撤销原有关系
vastbase=# REVOKE ixjkj FROM vastbase;
REVOKE ROLE
-- 2. 建立新关系
vastbase=# GRANT vastbase TO ixjkj;
GRANT ROLE
-- 3. 验证
vastbase=# \du{/collapse-item}
{collapse-item label="日常运维和操作的常用命令速查表"}
一、连接与退出
命令 说明
vsql -d 数据库名 -U 用户名 连接指定数据库(会提示输入密码)
vsql -d 数据库名 -U 用户名 -W 密码 直接带密码连接(不安全,仅测试用)
vsql -h 主机IP -p 端口 -U 用户名 -d 数据库名 远程连接数据库
vsql -r 以受限模式连接(连接同名的数据库和用户)
\q 退出 vsql 交互界面
\help 或 \? 查看所有可用命令的帮助二、数据库操作
命令 说明
\l 或 \list 列出所有数据库
\l+ 列出所有数据库(含大小等详细信息)
\c 数据库名 切换到指定数据库
\c 数据库名 用户名 以指定用户切换到指定数据库
SELECT current_database(); 查看当前连接的数据库
CREATE DATABASE 库名 OWNER 用户名; 创建数据库并指定所有者
DROP DATABASE 库名; 删除数据库(谨慎!)
ALTER DATABASE 库名 RENAME TO 新库名; 重命名数据库三、表操作
命令 说明
\d 列出当前数据库中的所有表、视图、序列
\dt 只列出所有表
\dv 只列出所有视图
\ds 只列出所有序列
\d 表名 查看表结构(字段、类型、约束等)
\d+ 表名 查看表结构(含更多详细信息)
\di 列出所有索引
SELECT * FROM 表名 LIMIT 10; 查询表的前10条数据
\copy 表名 TO '/路径/文件.csv' CSV HEADER; 导出表数据为CSV文件
\copy 表名 FROM '/路径/文件.csv' CSV HEADER; 从CSV文件导入数据四、用户/角色管理
命令 说明
\du 列出所有角色/用户
\du+ 列出所有角色/用户(含更多信息)
\du 用户名 查看指定用户的详细信息
SELECT current_user; 查看当前用户
SELECT session_user; 查看会话用户
CREATE USER 用户名 WITH PASSWORD '密码'; 创建用户
CREATE ROLE 角色名; 创建角色(默认无LOGIN)
ALTER USER 用户名 WITH PASSWORD '新密码'; 修改用户密码
ALTER USER 用户名 WITH LOGIN; 允许用户登录
ALTER USER 用户名 WITH NOLOGIN; 禁止用户登录
DROP USER 用户名; 删除用户
GRANT 角色名 TO 用户名; 将角色授予用户(用户继承角色权限)
REVOKE 角色名 FROM 用户名; 撤销用户的角色权限
GRANT ALL ON DATABASE 库名 TO 用户名; 授予用户对数据库的全部权限
GRANT SELECT ON TABLE 表名 TO 用户名; 授予用户对表的查询权限五、权限管理(常用)
命令 说明
GRANT SELECT ON 表名 TO 用户名; 授予查询权限
GRANT INSERT ON 表名 TO 用户名; 授予插入权限
GRANT UPDATE ON 表名 TO 用户名; 授予更新权限
GRANT DELETE ON 表名 TO 用户名; 授予删除权限
GRANT ALL ON 表名 TO 用户名; 授予所有权限
REVOKE SELECT ON 表名 FROM 用户名; 撤销查询权限
GRANT SELECT ON ALL TABLES IN SCHEMA public TO 用户名; 授予某个模式中所有表的查询权限
\z 表名 或 \dp 表名 查看表的权限信息六、Schema(模式)操作
命令 说明
\dn 列出所有Schema
\dn+ 列出所有Schema(含更多信息)
CREATE SCHEMA 模式名; 创建Schema
CREATE SCHEMA 模式名 AUTHORIZATION 用户名; 创建Schema并指定所有者
SET search_path TO 模式名; 设置当前会话的Schema搜索路径
SHOW search_path; 查看当前Schema搜索路径
DROP SCHEMA 模式名; 删除Schema(空Schema)
DROP SCHEMA 模式名 CASCADE; 删除Schema及其所有对象七、查看状态与信息
命令 说明
\conninfo 查看当前连接信息
\encoding 查看当前字符编码
\timing 切换SQL执行时间显示(打开后每条SQL会显示耗时)
\! 系统命令 在vsql中执行操作系统命令(如 \! ls)
SELECT version(); 查看数据库版本
SELECT now(); 查看当前数据库时间
SHOW all; 查看所有配置参数
SHOW 参数名; 查看某个配置参数(如 SHOW port;)八、SQL执行与脚本
命令 说明
\i 文件路径.sql 执行SQL脚本文件
\o 文件路径.txt 将查询结果输出到文件
\o 恢复输出到屏幕
\pset 设置输出格式(如对齐、HTML等)
\x 切换扩展显示模式(字段竖排显示,适合宽表)
\echo 文本 在输出中打印文本九、事务管理(常用SQL)
命令 说明
BEGIN; 或 START TRANSACTION; 开始事务
COMMIT; 提交事务
ROLLBACK; 回滚事务
SAVEPOINT 保存点名称; 设置保存点
ROLLBACK TO SAVEPOINT 保存点名称; 回滚到保存点十、日常维护与诊断
命令 说明
SELECT pg_database_size('数据库名'); 查看数据库大小(字节)
SELECT pg_size_pretty(pg_database_size('数据库名')); 查看数据库大小(人类可读)
SELECT pg_size_pretty(pg_total_relation_size('表名')); 查看表总大小(含索引)
VACUUM 表名; 清理表中已删除的空间
VACUUM FULL 表名; 彻底回收表空间(会锁表,谨慎)
ANALYZE 表名; 更新表的统计信息
VACUUM ANALYZE 表名; 清理并更新统计信息
SELECT * FROM pg_stat_activity; 查看当前所有数据库连接和活动查询
SELECT pg_terminate_backend(pid); 终止指定PID的连接速记小贴士
符号 含义
\l List → 列出数据库
\d Describe → 描述对象
\du 描述 Users → 列出用户
\dn 描述 Namespace → 列出Schema
\dt 描述 Tables → 列出表
\dv 描述 Views → 列出视图
\c Connect → 切换连接最常用的几条组合
-- 日常查看环境
\l -- 看有哪些数据库
\c 数据库名 -- 进入要操作的数据库
\dt -- 看有哪些表
\d 表名 -- 看表结构
SELECT * FROM 表名 LIMIT 10; -- 看数据
-- 日常用户管理
\du -- 看有哪些用户
CREATE USER xxx WITH PASSWORD 'xxx';
GRANT SELECT ON TABLE xxx TO xxx;{/collapse-item}
评论 (0)