暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

GBase 8s数据库日常操作指令

原创 一直在路上 2021-06-23
2105

GBase 8s产品是南大通用自主研发的一款安全型数据库管理系统,功能强大、高效稳定、简单易用,具备高性能、高可用、高安全特性。下面是汇总的GBase 8s常用操作命令:数据库日常管理命令、SQL操作、数据装载与卸载、备份与恢复操作等。

1、数据库日常管理命令

简介

GBase 8s数据库日常管理包括数据库模式的切换,以及服务器的监控。监控主要分为两个方面,一方面是系统级别的监控,主要包括对系统cpu的监控,以及内存的占用情况;另一方面是数据库级别的监控,包括对磁盘空间大小的监控,对逻辑日志物理日志的监控,对数据表中数据量的监控,以及表中索引层数,顺序扫描次数等等。我们可以通过命令或者sql语句的方式,完成对数据库的监控。

语法

1.启动数据库服务(初次启动用ivy,i代表初始化实例)

  oninit -vy

2.关闭数据库服务

  onmode -ky

3.监控系统cpu和内存使用情况

  top

4.查看数据库版本和运行模式

  onstat -

5.监控数据库磁盘空间大小

  onstat -d

6.监控逻辑日志信息

  onstat -l

7.监控GBase 8s占用系统内存大小

   onstat -g seg

8.监控实例整体运行情况

  onstat -p

9.查看实例运行日志最后20行信息(可以找到日志文件)

  onstat -m

10.查看数据库进程状态

  onstat -g glo

查看GBase 8s的虚拟CPU信息

  onstat -g seg /ipcs

11.查看数据库SDS集群状态

  onstat -g sds

12.从离线模式向静态模式转换

  oninit -s

13.从离线模式向管理员模式转换

  oninit -j

14.从管理员模式,静态模式向在线模式转换

  onmode -m

15.从在线模式向管理员模式转换

  onmode -j

16.从在线模式向静态模式转换

  onmode -s/onmode -u

17.查看所有的实例

  onstat -g dis

18.查看运行sql的id、状态等情况

  onstat -g sql

用id查询执行sql内容

  onstat -g ses id

用id结束sql

  onmode -z id

19、查看端口等信息

  onstat -g ntt

20、在当前窗口每1秒打印1次数据库状态

  后面加-r 1

21、显示所有线程

   onstat -g ath

22、查看数据库默认设置的是row锁或者page锁

   onstat -c|grep LOCKMODE

查询锁类型

   onstat -k

23、查询长事务剩余时间

   onstat -x|grep A-R

24、查看数据库版本

   onstat -version

25、查看现在正在执行sql个数

   onstat -g sql|wc -l

26、查看数据库总连接数(Maximun server connections)

   onstat -m

27、查看集群主备机关系,主从日志的同步关系等

   onstat -g dri verboss
   onstat -g cluster

28、正常状态下HAC/RSS/HDR集群切换

先关备机
onmode -ky

再关主
onmode -ky

先启动主

oninit -vy

再启动备

oninit -vy

如果一直fast recover,后面有(sec)

onstat -D -r -1
可以看备机是不是在写磁盘

29、HAC集群重新建立连接关系

在PRIMARY主节点服务器(实例名gbase)执行,并确认不报错
$ oninit -vy

之前如果已设置好这个命令可以不执行:
$ onmode -d primary gbase_hdr

备节点服务器(实例名gbase_hdr)执行,并确认不报错
$ oninit -PHY
$ onmode -d secondary gbase

30、如果逻辑日志无法实现自动同步,则需要用管道或者0级备份恢复重新恢复备,再建立主备关系(在主上执行备机的IP和实例名)

   ontape -s -L 0 -t STDIO | ssh IP "source 目录/profile.实例名 && ontape -p -t STDIO"

31、RSS集群重新建立连接关系

主:
onmode -d add RSS 备实例名称

备:
RSS:onmode -d RSS 主实例名称

32、SDS集群重新建立连接关系

备:
onmode -d set SDS primary 主实例名称

2、SQL指南

语法简介:

创建数据库对象的语法都是使用 CREATE +“数据库对象类型”+“数据库对象名”的方式开头,然后再定义其中具体的细节。这类语法属于DDL(Data Definition Language)数据库定义语言。
在GBase 8s中,有四种日志类型的数据库,分别是无日志模式,缓冲式日志模式,无缓冲式日志模式和ANSI模式。
无日志模式,数据库性能好,但是不支持逻辑恢复操作;
缓冲式日志模式,既支持数据库逻辑恢复的功能,同时又能避免频繁的I/O操作,是生产系统中常见的日志类型;
无缓冲式日志模式,会有频繁的I/O操作,优点是一旦数据库宕机,损失较小。
ANSI模式,是一种特殊的无缓冲式日志模式,要符合额外的ANSI规则。

1.创建库语法

create database “数据库名” in “dbspace名”
[ with buffered log | with log | with log mode ansi]

2.创建表语法

create [ tmp | row ] table “表名”( “列名””数据类型” “列级约束”, … … ,
[ 表级约束 ] ) [ in “表的存放路径” ]

3.修改表语法

alter table“表名”add“列名”“数据类型”| modify“列名”“数据类型”|drop column“列名”

4.删除表语法

drop table “表名”

5.查询数据语法

select [ all | distinct ] “列表达式”, … from ”表名“, …
[ where ”条件表达式“ ]
[ group by “列名”, … [ having ”条件表达式“ ] ]
[ order by ”列名“ [ asc | desc ], … ] ;

6.插入数据语法

insert into “表名”[ ( 列1, 列2, 列3, … ) ] values ( 值1, 值2 , 值3 , … )

7.更新数据语法

update “表名”set 列1=值1, … [ where “条件表达式” ]

8.删除数据语法

delete from “表名”[ where “条件表达式” ]

简单示例:

创建缓冲式日志模式数据库testdb,test表,以及insertdata存储过程 :
切换到8s的linux操作用户,并生效当前实例对应的环境变量文件:

su - gbasedbt
source .bash_profile

进入sql编辑器dbaccess,执行SQL语句:

dbaccess sysmaster -

– 创建库testdb

create database testdb in datadbs1 with log;

– 创建test表

create table test (id int , name char(20) );

– 创建insertdata()存储过程,向test表中插入100条数据

create procedure insertdata()
define i int;
for i in (1 to 100)
insert into test values(i,‘GBase 8s’);
end for;
end procedure;

– 执行insertdata()存储过程

execute procedure insertdata();

– 查看实例名,数据库名,用户名

select a.cf_original, DBINFO(‘dbname’) dbname,user from
sysmaster:sysconfig a where cf_name = ‘testdb’;

– 查看实例中所有数据库名

select name from sysmaster:sysdatabases;

– 查看数据库中所有表名

select dbsname,tabname from sysmaster:systabnames where
dbsname=‘testdb’;

3、数据装载与卸载指南

语法简介:

GBase 8s中根据装载卸载粒度的不同,有不同的装载卸载工具。

1.load/unload:装卸载粒度表级,SQL命令,输出结果为明文.

  unload to‘filename’  [DELIMITER ‘delimiter’] select Statement;
  load from‘filename’ [DELIMITER ‘delimiter’] insert into
  Table Name | Synonym Name| View Name [(column)];

2.onunload/onload 工具:装卸载粒度为数据库级或表级,输出结果为二进制文件。

  onunload [-l] [-t <tape device>] <database>[:[<owner>.]<table>]

3.dbload 工具:装载粒度为表级,功能比load方式强大,使用起来也相对复杂。

   dbload [-d dbname] [-c cfilname] [-l logfile] [-e errnum] [-n nnum]

4.dbexport/dbimport 工具:装卸载粒度为数据库级,输出结果为明文。

dbexport <database> [-ss] [{ -o <directory> | -t <tapedevice> }]
dbimport <database> [-d <dbspace>]  [-l [{ buffered }] [-ansi]] [-ci] [-nv] [-D][{ -i <dir> | -t <tapedev> }]

简单示例

(1)通过unload将test表数据卸载到test.db文件,用竖线做列的分隔符

     >unload to tmp/test.db select * from test;

通过load将test.db中的数据装载到test表中

     >load from tmp/test.db insert into test;

(2)通过dbload工具将test.db中的数据装载到test表中
先建立命令文件:例如/tmp/test.ctl 在文件中 写入以下命令

    vi tmp/test.ctl         (添加如下两行内容)
    FILE tmp/test.db delimiter "|" 2;
    insert into test;  
    (/tmp/test.ctl 是数据文件,2代表两个字段)

然后用dbload命令导入数据:

     dbload -d testdb -c tmp/test.ctl -l error.log

(3)使用dbexport/dbimport迁移数据库
使用dbexport将testdb数据库导出,-l代表可以容忍其它的数据库连接,-ss生成服务器特定的语法

    dbexport testdb -l -ss

删除testdb数据库

    dbaccess - -
    drop database testdb;

使用dbimport重新导入testdb数据库,数据库创建在datadbs1数据库空间中。

    dbimport testdb -l -d datadbs1

4、备份与恢复操作指南

语法简介

GBase 8s数据库中,备份与恢复分为三个级别,分别是0级备份,1级备份,以及2级备份。0级备份指的是备份数据库中所有的数据;1级备份是在0级备份基础上,备份被修改过的数据页;2级备份是在1级备份基础上,备份被修改过的数据页。主要的备份命令有两个,分别是ontape和onbar 。其中,onbar命令功能强大,可以恢复到具体时间点,可以选择具体存储空间,可以并行执行备份操作,但是相对配置比较复杂。ontape命令简单易用,虽然没有onbar功能强大,但是使用ontape命令在备份的同时,可以更改数据库日志模式,这也是比较实用的功能。

1.ontape语法:

ontape -a [-d] //备份逻辑日志
ontape -s [[-L archive_level]] [-A database_list] [-B database_list]
[-N database_list] [-U database_list] [-t tape_device_path ]
//备份数据库
ontape -p //恢复数据库

2.onbar 语法:

onbar -b -l [-c | -C | -s] [-O] //备份逻辑日志
onbar -b [-L ] [-w | -f | ] [-O] //备份数据库
onbar -r -l [ -t “

简单示例

手动0级备份:

ontape -s -L 0 -t /home/gbasedbt/gbase8s/ccc

关数据库

onmode -ky

再恢复:

ontape -r -t /home/gbasedbt/gbase8s/backup

静默模式恢复到online状态:

onmode -m

还可以选择执行手动1级别备份:

ontape -s -L 1 -t /home/gbasedbt/gbase8s/ccc

关数据库

onmode -ky

静默模式恢复到online状态:

onmode -m

再恢复:

恢复到0级状态:

ontape -r -t /home/gbasedbt/gbase8s/ccc/…L0

恢复到1级状态:

ontape -r -t /home/gbasedbt/gbase8s/ccc

是否恢复1级,选y

最后修改时间:2023-03-09 11:42:14
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论