Centos7安装GBase8s数据库

Centos7安装GBase8s数据库

方式1:GBase8s命令行交互安装
命令行交互式安装,需要先解包GBase8sV8.7_AEE_2.0.1A2_2_RHEL6_x86_64.tar,然后利用root身份执行./ids_install进行软件交互式安装,我这里不详细介绍该方式。

方式2:GBase8s命令行静默安装
可以简单、快速的完成安装,相关配置参数都是使用的默认值,下面介绍该方式的安装操作。

1.关闭firewalld防火墙和Selinux

#查看firwalld的状态
systemctl status firewalld   #也可以执行 firewall-cmd --state

#停止firewalld
systemctl stop firewalld 

#禁用firewalld
systemctl disable firewalld 

#查看Selinux状态
getenforce

#关闭Selinux
vim /etc/selinux/config
SELINUX=disabled

#重启服务器、立即生效配置
reboot

2.系统参数调整优化

#系统级别的最大文件句柄数量调整
cat /proc/sys/fs/file-max
383676
一般不同的系统版本,默认值会有差别,有的是383676,有的是592409,一般系统的默认值够用,不用修改,我这里永久性的调整为100万:
vim /etc/sysctl.conf
fs.file-max = 1000000

#立即生效
sysctl -p

#查看用户的所有进程级别的限制
ulimit  -a
core file size          (blocks, -c) 0  //内核文件的大小限制
data seg size           (kbytes, -d) unlimited  //最大数据大小限制,建议用户设置为unlimited
scheduling priority             (-e) 0  //调度优先级,一般根据nice设置
file size               (blocks, -f) unlimited  //最大文件大小限制,建议用户设置为unlimited
pending signals                 (-i) 15086  //信号可以被挂起的最大数,这个值针对所有用户,表示可以被挂起/阻塞的最大信号数量
max locked memory       (kbytes, -l) 64  //内存锁定值的限制
max memory size         (kbytes, -m) unlimited  //最大可以使用内存限制
open files                      (-n) 65535  //进程打开文件数的限制。默认值是1024,默认值太小、通常需要调整该值为65535或unlimited
pipe size            (512 bytes, -p) 8  //管道文件大小限制
POSIX message queues     (bytes, -q) 819200  //可以创建使用POSIX消息队列的最大值,单位为bytes
real-time priority              (-r) 0  //限制程序实时优先级的范围,只针对普通用户
stack size              (kbytes, -s) 8192  //限制进程使用堆栈段的大小
cpu time               (seconds, -t) unlimited  //程序占用CPU的时间,单位是秒
max user processes              (-u) 15086  //限制程序可以fork的进程数,只对普通用户有效
virtual memory          (kbytes, -v) unlimited  //限制进程使用虚拟内存的大小,建议用户设置为unlimited
file locks                      (-x) unlimited  //锁定文件大小限制

#用户进程级别的限制修改:可以通过修改/etc/security/limits.conf文件实现永久生效的修改
#修改表达式解释:
<domain>        <type>  <item>  <value>

<domain>:
       ftpuser //用户
       @student //组
       * //通配符,所有用户
       % //通配符,用在组的语法
       
<type>:
      soft //软限制。警告的设定,可以超过这个设定值,但是若超过则有警告信息
      hard //硬限制。严格的设定,必定不能超过这个设定的数值
       
<item>:
      core //限制内核文件的大小
      data //最大数据大小限制
      fsize //最大文件大小限制
      memlock //最大锁内存地址空间
      nofile //进程打开文件数的限制
      rss //最大持久驻留内存
      stack //最大堆栈大小
      cpu //最大CPU运行时间
      nproc //最大进程数
      as //地址空间限制
      maxlogins //最大登录次数,用户
      maxsyslogins //最大登录次数,登录此系统的最大次数
      priority //用户运行的优先级
      locks //用户锁定文件数限制
      sigpending //信号可以被挂起的最大数
      msgqueue //可以创建使用POSIX消息队列的最大值
      nice //可以设置的优先级,nice [-20, 19]
      rtprio //实时优先级,数字大的优先级高

#进程级打开文件句柄数量
#在文件末尾添加配置内容:

echo "
* soft nofile 65535
* hard nofile 70000
" >> /etc/security/limits.conf

注意:
1)修改后用户需要重新登录才能生效
2)如果调整用户进程级限制达到系统级的最大数时,还需要调整系统级的最大值

安装操作

1.拷贝安装包
# mkdir -p /opt/soft/GBase8sV8.7
拷贝安装包:
GBase8sV8.7_AEE_2.0.1A2_2_RHEL6_x86_64.tar
AutoInit_GBase8s_v1.3.5.tar
到该目录下

2.解压释放自动安装脚本
# cd /opt/soft/GBase8sV8.7
# tar -xvf AutoInit_GBase8s_v1.3.5.tar
会释放安装和卸载脚本:
AutoInit_GBase8s.sh
CleanAll.sh

3.静默安装(默认会安装到路径:/opt/gbase下)
./AutoInit_GBase8s.sh 

说明:
官方文档强调,静默安装时请不要创建用户和组,静默安装过程中会自动创建。
如果是用命令行交互安装方式,才需要提前创建好用户和组:
# groupadd  -g 1000 gbasedbt
# useradd  -g gbasedbt -u 1000 -d /home/gbase -m -s /bin/bash gbasedbt 
# passwd gbasedbt
因此我不用执行这些操作,直接执行AutoInit_GBase8s.sh即可。

静默安装完毕,所有参数都是默认值:
默认端口:9088
默认用户:gbasedbt
默认密码:GBase123
默认实例名:gbaseserver
默认表空间:datadbs1

配置文件:
/opt/gbase/etc/onconfig.gbase01

监听IP端口配置文件:
/opt/gbase/etc/sqlhosts

4.检查数据库监听端口
# netstat -an |grep 9088

5.启动和停止数据库服务
通常情况下,使用gbasedbt用户来启动和停止数据库服务,成功安装数据库 GBase 8s 后,数据库会自动处于启动状态,一般不需要手动启动,可通过以下命令检查服务进程是否存在:
# ps -ef|grep oninit

如果停止以后,手动启动命令如下:
# su - gbasedbt
$ oninit -vy

注意:如果数据库测试连接失败报错:Caused by: java.sql.SQLException: Database locale information mismatch.
可能是由于自启动服务的环境变量文件设置不正确(检查/etc/sysconfig/gbasedbtd_service),没有设置 DB_LOCALE=zh_CN.utf8 导致,正确设置环境变量文件。
或者是手动以root身份启动数据库(环境变量没有DB_LOCALE)导致,可以尝试切换到gbasedbt用户启动数据库,该问题就能解决。

停止服务:
以gbasedbt用户身份登录后,输入 onmode –ky,可停止数据库服务
# su - gbasedbt
$ onmode –ky

6.服务配置
为了方便管理数据库服务,配置以systemd方式实现GBase 8s数据库的自启动与关闭
systemd需要的两个配置文件目录为:
1)service 文件所在位置: /usr/lib/systemd/system/
2)service 的环境配置文件位置: /etc/sysconfig/

文件1:
touch /usr/lib/systemd/system/gbasedbtd.service
vi /usr/lib/systemd/system/gbasedbtd.service
[Unit]
Description=GBase 8s Database Server v8.7 2.0.1a2_2
Documentation=file:/opt/gbase/release/en_us/0333
Wants=network-online.target
After=network.target network-online.target
 
[Service]
Type=oneshot
User=gbasedbt
Group=gbasedbt
RemainAfterExit=yes
EnvironmentFile=/etc/sysconfig/gbasedbtd_service
ExecStart=/opt/gbase/bin/oninit
ExecStop=/opt/gbase/bin/onmode -ky
#Restart=on-abort
 
[Install]
WantedBy=multi-user.target

文件2:
touch /etc/sysconfig/gbasedbtd_service
vi /etc/sysconfig/gbasedbtd_service

# gbasedbtd.service environmental variables

GBASEDBTSQLHOSTS=/opt/gbase/etc/sqlhosts
GBASEDBTDIR=/opt/gbase
GBASEDBTSERVER=gbase01
#ONCONFIG=onconfig.${GBASEDBTSERVER}
ONCONFIG=onconfig.gbase01

DB_LOCALE=zh_CN.utf8
CLIENT_LOCALE=zh_CN.utf8
DBDATE="Y4MD-"
GL_DATE="%iY-%m-%d"
GL_DATETIME="%iY-%m-%d %H:%M:%S"
DBACCESS_SHOW_TIME=1


管理命令
systemctl start gbasedbtd
systemctl status gbasedbtd
systemctl stop gbasedbtd

设置开机自启动
方法1)修改rc.local增加开机自启动
在Centos7下rc.local文件没有执行属性,开机默认不执行(/etc/rc.local是一个软连接,对应实际文件/etc/rc.d/rc.local),设置开机启动:
chmod +x /etc/rc.d/rc.local
echo "
#auto start gbase
systemctl start gbasedbtd
" >> /etc/rc.d/rc.local

方法2)设置systemd开机自启动gbasedbtd.service
ln -s /usr/lib/systemd/system/gbasedbtd.service   /etc/systemd/system/multi-user.target.wants/gbasedbtd.service

也可以执行命令: systemctl  enable gbasedbtd.service   同样会完成上面的链接操作。

7.登录数据库
注意:dbaccess -和-之间有一个空格,如果dbaccess不带参数,会有类似菜单的提示操作界面,也可以通过选择不同的菜单功能进行操作。
# su - gbasedbt
不指定数据库登录(如果指定数据库testdb登录则使用:dbaccess testdb -)
$ dbaccess - - 

-- 创建数据库并测试
create database testdb;
create table test (id int not null, name varchar(255), primary key (id));
insert into test values(1,'test');
select * from test;

远程访问数据库:testdb@gbase01:
connect to 'testdb@gbase01' user 'gbasedbt';
会提示输入密码GBase123登录成功


卸载数据库
需要先停止数据库服务,切换到 root 用户,进入安装目录下的 uninstall/uninstall_ids,执行该目录下的 uninstallids 命令进行卸载。

GBase常用命令:
su - gbasedbt 切换到数据库用户后执行的常用系统命令:
#启动数据库服务
oninit -vy
#停止数据库服务
onmode -ky
#监控系统cpu和内存使用情况
top
#查看数据库版本和运行模式
onstat -
#监控数据库磁盘空间大小
onstat -d
#监控逻辑日志,物理日志信息
onstat -l
#监控GBase 8s占用系统内存大小
onstat -g seg
#监控实例整体运行情况
onstat -p
#查看实例运行日志最后20行信息
onstat -m
#查看数据库进程状态
onstat -g glo
#查看数据库会话状态
onstat -g ses
#从离线模式向静态模式转换
oninit -s
#从离线模式向管理员模式转换
oninit -j
#从管理员模式,静态模式向在线模式转换
onmode -m
#从在线模式向管理员模式转换
onmode -j
#从在线模式向静态模式转换
onmode -s;onmode -u

常用SQL:

#创建库语法  
create database “数据库名” in “dbspace名” 
[ with buffered log | with log | with log mode ansi]

#选择库语法
database ”数据库名“
也可以dbaccess登录时指定数据库
dbaccess testdb -

 

#数据类型
字符型:char(20),varchar(minsize, maxsize)
数值型:decimal(16,2),smallint,integer,smallfloat,float,serial
日期型:date, 默认格式为 mm/dd/yyyy    #注意:如果要修改 date 类型的缺省格式,可在用户主目录的 .profile 文件中进行如下说明:dbdate=y4md/
货币型:money (8,2)
其它类型:interval,datetime 等

#索引
创建索引则必须建立命名索引
create [ unique ] index 索引名 on 表名(字段名) 
create [ unique ] index 索引名 on 表名(字段名) disabled; 
set indexes 索引名 enabled 
drop index  索引名 

#权限和授权管理
connect:访问数据库权限
resource:允许用户建立或清除数据库中的表和索引
dba: 数据库管理员

grant 权限 to <public | 用户名>
revoke 权限 from <public | 用户名>

 

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

创建表示例:
create table test01 (
id integer not null, 
name char(255),
info varchar(255),
desc lvarchar(512),
indate date,
primary key(id) constraint pk_test01
); 

create table test02 (
id integer not null unique constraint uq_test02, 
name char(255),
info varchar(255),
desc lvarchar(512),
indate date); 

 

#查看建表信息(类似MySQL的 show create table )
$ dbschema -t test01 -d testdb

[gbasedbt@localhost ~]$ dbschema -t test01 -d testdb

DBSCHEMA Schema Utility       GBASE-SQL Version 12.10.FC4G1AEE

{ TABLE "gbasedbt".test01 row size = 1034 number of columns = 5 index size = 9 }

create table "gbasedbt".test01 
  (
    id integer not null ,
    name char(255),
    info varchar(255),
    desc lvarchar(512),
    indate date,
    primary key (id)  constraint "gbasedbt".pk_test01
  );

revoke all on "gbasedbt".test01 from "public" as "gbasedbt";


[gbasedbt@localhost ~]$ dbschema -t test02 -d testdb 

DBSCHEMA Schema Utility       GBASE-SQL Version 12.10.FC4G1AEE

{ TABLE "gbasedbt".test02 row size = 1034 number of columns = 5 index size = 9 }

create table "gbasedbt".test02 
  (
    id integer not null ,
    name char(255),
    info varchar(255),
    desc lvarchar(512),
    indate date,
    unique (id)  constraint "gbasedbt".uq_test02
  );

revoke all on "gbasedbt".test02 from "public" as "gbasedbt";
 

#修改表语法
alter table“表名”add“列名”“数据类型”| modify“列名”“数据类型”
|drop column“列名” 

#删除表语法
drop table “表名”

 

#查询数据语法
select  [ all | distinct ]  “列表达式”,   ......   from  ”表名“, ......
[ where  ”条件表达式“ ]
[ group by “列名”, ...... [ having  ”条件表达式“ ] ]
[ order by ”列名“ [ asc | desc ], ...... ] ; 

#插入数据语法
insert into “表名”[ ( 列1, 列2, 列3, ...... ) ] values ( 值1, 值2 , 值3 , ...... )

#更新数据语法
update “表名”set 列1=值1, ...... [ where “条件表达式” ]

#删除数据语法
delete from “表名”[ where “条件表达式” ]

#使用dba用户(gbasedbt)创建普通用户,并指定密码
create user dbuser02 with password 'GBase123';
database testdb;
grant connect to dbuser02;

#也可以使用dba用户在数据库中赋权访问,直接在系统shell界面操作
$ echo "grant connect to dbuser02;" | dbaccess testdb -

#使用内部用户访问数据库,按提示输入密码
dbaccess - -
connect to 'testdb@gbase01' user 'gbasedbt';
connect to 'testdb@gbase01' user 'dbuser02';
会提示输入用户输入密码。testdb@gbase01代表数据库名@实例名


简单操作举例

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

进入sql编辑器dbaccess,执行SQL语句:
dbaccess - -
-- 创建库testdb
create database testdb in datadbs1 with buffered log;

-- 创建表
create table test03 (id int , name char(255));
create table test04 (id int not null, name varchar(255), primary key (id));

-- 创建insertdata()存储过程,向test01表中插入10条数据
create procedure insertdata()
define i int;
for i in (1 to 10)
insert into test01 values(i,'test');
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'; 

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值