【虚谷数据库学习培训考试实操题步骤总结】

实操题

虚谷数据库产品实操试题

一、部署3节点虚谷数据库集群。(10分)

**要求:**提供cluster.ini截图和show clusters结果截图。

文件解压缩

  1. 在根目录下创建目录xgdbms_3node
mkdir xgdbms_3node
  1. 将数据库文件解压缩至目录xgdbms_3node下。原文件在opt下保存着
cd /opt
tar -zxvf   XuGuServer-12_20231017-trial-linux-x64.tar.gz  -C  /xgdbms_3node/
  1. 进入xgdbms_3node—>XuGuServer下
cd /xgdbms_3node/
cd XuGuServer

修改配置文件

部署集群,则在SETUP目录下配置cluster.ini文件,各节点对应修改MY_NID值。第三个节点角色设置为SQWG

  1. 将opt下cluster.ini文件复制到SETUP目录下(/xgdbms_3node/XuGuServer/SETUP)
cp /opt/cluster.ini /xgdbms_3node/XuGuServer/SETUP/
  1. 进入SETUP目录,打开cluster.ini文件进行配置
cd SETUP/
vim cluster.ini    -- 修改各个节点的MY_NID和IP

三个cluster.ini截图

在这里插入图片描述

  1. 启动数据库。进入bin目录,使用xugu_start.sh启动
cd ../BIN/
sh xugu_start.sh
  1. 查看日志
tailf stdout.txt
  1. 启动sql
./xgconsole nssl 127.0.0.1 5138 SYSTEM SYSDBA SYSDBA

show clusters

show clusters 后截图

二、部署单机虚谷数据库。(10分)

通过需改mount.ini文件,将DATA1.DBF、DATA2.DBF文件放置在/home/data1/目录下,将DATA3.DBF、DATA4.DBF文件放置在/home/data2/目录下。

**要求:**提供show clusters结果截图与select * from sys_datafiles结果截图。

  1. 在node1服务器根目录新建xgdbms_1node目录,并解压数据库文件至此目录
mkdir xgdbms_1node
tar -zxvf /opt/XuGuServer-12_20231017-trial-linux-x64.tar.gz -C xgdbms_1node/
  1. 进入SETUP目录,修改mount.ini文件
cd xgdbms_1node/XuGuServer/SETUP
vim mount.ini

/data1 /home/data1
/data2 /home/data2
  1. 修改datafile.ini文件
vim datafile.ini

#DATA_FILES
/data1/DATA1.DBF
/data1/DATA2.DBF
/data2/DATA3.DBF
/data2/DATA4.DBF
  1. 创建对应文件夹
mkdir /home/data1
mkdir /home/data2
  1. 修改单机数据库端口,进入SETUP目录下
vim xugu.ini    修改端口为5139
  1. 启动数据库。进入bin目录,使用xugu_start.sh启动
cd ../BIN/
sh xugu_start.sh
  1. 查看日志
tailf stdout.txt
  1. 启动sql
./xgconsole nssl 127.0.0.1 5139 SYSTEM SYSDBA SYSDBA

show clusters

show clusters 后截图

select * from sys_datafiles截图

三、备份恢复(30分)

**要求:**提供以下各步骤截图

1、连接3节点集群,创建数据库DB1,在DB1数据库中创建用户USER1,在模式USER1下创建表TABLE1,字段A数据类型INT,从1开始自增,步长为1,字段B数据类型VARCHAR。

  1. 进入3节点集群BIN目录,连接集群数据库
./xgconsole nssl 127.0.0.1 5138 SYSTEM SYSDBA SYSDBA
  1. 创建数据库DB1,创建用户USER1, 创建表TABLE1. TEST_123@ 加密后 VEVTVF8xMjNA
create database TEST_DB1;
use TEST_DB1;

create user TEST_USER1 IDENTIFIED BY 'TEST_123@' valid until '2029-01-01';

create table TEST_USER1.TEST_TABLE1(A int IDENTITY(1,1) ,B DATATIME);

2、向表中插入1000条数据,其中B插入随机字符串。

BEGIN
FOR i IN 1..1000 LOOP
INSERT INTO TEST_USER1.TEST_TABLE1 VALUES(i,now());
END LOOP;
COMMIT;
END;
/

3、备份数据库DB1。

文件在 cd XHOME/BACKUP/

BACKUP DATABASE TO '/BACKUP/DB_BAK.EXP';

4、在单机数据库中创建数据库DB2,将DB1备份内容恢复到DB2中。

复制备份文件到单机数据库XHOME/BACKUP目录下

cp /xgdbms_3node/XuGuServer/XHOME/BACKUP/DB_BAK.EXP /xgdbms_1node/XuGuServer/XHOME/BACKUP/
  1. 创建单机数据库DB2
cd /xgdbms_1node/XuGuServer/BIN/
./xgconsole nssl 127.0.0.1 5139 SYSTEM SYSDBA SYSDBA
create database TEST_DB2;
use TEST_DB2;
  1. 恢复备份内容
RESTORE DATABASE TEST_DB1 FROM '/BACKUP/DB_BAK.EXP';

select count(1) from TEST_USER1.TEST_TABLE1;
四、同步工具(20分)

1、部署同步工具,由3节点集群的DB1库向单机的DB2库同步。
**要求:**提供同步工具配置文件和启动成功截图。

  1. 连接G节点DB1数据库开启变更记载
./xgconsole nssl 127.0.0.1 5138 SYSTEM SYSDBA SYSDBA
在sql界面执行
set log_archive_mode to 1;
--重启集群
ps -ef|grep xugu
kill -9 xx
sh xugu_start.sh


./xgconsole nssl 192.168.10.132  5138  DB1  SYSDBA  SYSDBA
use DB1;

exec dbms_replication.create_modify_source('*','*');
exec dbms_replication.create_subscriber('syncer','SYSDBA');


  1. 在G节点安装同步工具。文件在opt下,复制到tools目录下
cd /
mkdir tools
cd tools
cp /opt/xugu-sync-1.3.0-realease.zip /tools/xugu-sync-1.3.0-realease.zip
unzip xugu-sync-1.3.0-realease.zip
cd xugu-sync-1.3.0-realease/config
vim cfg.properties

#type in {db,kafka,file}
source.type=db
aim.type=db
# xugu binlog source config
source.log.db=DB1   #这里改为源端db
source.db.usr=SYSDBA
source.db.pwd=U1lTREJB
source.log.suber.name=syncer   #刚才创建的订阅者名称
source.log.filter=null
source.log.forward=false
source.log.partion=8
source.log.fetch.size=20
source.log.ips=192.168.10.132  #G节点ip
source.db.port=5138
source.commit_rows=1000
ddl.support=true     #支持ddl同步
redo.offset.server=true
# kafka source config
source.kafka.parathd=8
source.topic=null
# to kafka
zk.connect=192.168.2.218:2181
case.sensitive=false
topic.partition=8
repeat.pos.kafka=false
# to file
file.dir=F: mp
file.split.size=100
file.type=SQL
# to db
writer.db=xugu     #类型为xugu
writer.schema=SYSDBA   #改为USER1
writer.thd.num=8
writer.parathd.num=1
vim dbcfg.properties

target-db.user=SYSDBA   #目标端用户USER1
target-db.password=U1lTREJB  #TEST_123@ 加密后 VEVTVF8xMjNA
target-db.driverClass=com.xugu.cloudjdbc.Driver
target-db.jdbcUrl=jdbc:xugu://192.168.10.128:5139/DB2  #单机restore_db,mysql改为xugu
binlog-db.user=SYSDBA
binlog-db.password=U1lTREJB
binlog-db.driverClass=com.xugu.cloudjdbc.Driver
binlog-db.jdbcUrl=jdbc:xugu://192.168.10.132:5138/DB1?char_set=utf8   #G节点数据库
  1. 启动
cd ..
sh xgsyn.sh start

tail -f nohup.out

关闭
sh xgsyn.sh stop

2、向DB1中TABLE1插入数据,在DB2中验证是否同步成功。
**要求:**提供插入数据后源库和目标库test1表行数截图。

G节点数据库新增数据 log有报错先看数据是否同步,同步了就不管,没有就停掉同步服务再启动后试

./xgconsole nssl 127.0.0.1 5138 SYSTEM SYSDBA SYSDBA
use DB1;
INSERT INTO TEST_USER1.TEST_TABLE1(A,B) VALUES (1001,now());
SELECT COUNT(1) FROM TEST_USER1.TEST_TABLE1;

REINDEX  UK_IDX_S652617156107843;

./xgconsole nssl 127.0.0.1 5139 SYSTEM SYSDBA SYSDBA
use DB2;
SELECT COUNT(1) FROM TEST_USER1.TEST_TABLE1;
五、监控工具(30分)

使用虚谷监控工具监控3节点集群。
要求:

1、提供3个节点的节点资源使用情况监控截图共3张(菜单栏:操作系统->资源负载->节点资源->实时监控)

监控3个节点

tar -zxvf XuguCM-2.12.0.202310191500-linux-x64.tar.gz
yum install -y net-snmp net-snmp-utils
vim /etc/snmp/snmpd.conf

service snmpd start

snmpwalk -v2c -c public localhost ifName

./startdb.sh
./startapp.sh
tailf logs/catalina.out

http://192.168.10.132:8080/xgcm/login
admin/admin

配置管理 集群配置 添加集群 密码:SYSDBA

添加节点 ip

进程名:xugu_linux_x64_trial

路径
/xgdbms_3node/XuGuServer/XHOME/DATA/DATA1.DBF
/xgdbms_3node/XuGuServer/XHOME/DATA/DATA2.DBF
/xgdbms_3node/XuGuServer/XHOME/DATA/DATA3.DBF
/xgdbms_3node/XuGuServer/XHOME/DATA/DATA4.DBF

TEST_123@ 加密后 VEVTVF8xMjNA

2、提供数据库的节点状态监控截图1张(菜单栏:数据库->集群名称->数据库对象->数据库状态->集群状态->节点状态监控)

3、模拟死锁和对象失效两种情况,监控工具有告警。(提供右上角弹窗告警截图2张)

死锁:

先执行:
-- 事务1
begin;
-- SQL1更新id为1的
update TEST_USER1.TEST_table1 set B = now() where A = 1;

在执行:
-- 事务2
begin;
-- SQL1更新id为2的
update TEST_USER1.TEST_table1 set B = now() where A = 2;


在执行
-- SQL2更新id为2的
update TEST_USER1.TEST_table1 set B = now() where A = 2;

在执行
-- SQL2更新id为1的
update TEST_USER1.TEST_table1 set B = now() where A = 1;


commit;
commit;

案例二
(窗口一)session1

– 第一步
begin;
select * from USER1.table1 where A = 1 lock in share mode;
– 第三步单独执行下面语句
– update USER1.table1 set B= ‘mu’ where A=1;

(窗口二)session2

– 第二步
begin;
select * from USER1.table1 where A = 1 lock in share mode;
– 第四步单独执行下面语句
– update USER1.table1 set B = ‘cc’ where A= 1;

可以尝试删除一个字段,此时锁表,然后在进行查询

where A = 1;

commit;
commit;


案例二
(窗口一)session1

– 第一步
begin;
select * from USER1.table1 where A = 1 lock in share mode;
– 第三步单独执行下面语句
– update USER1.table1 set B= ‘mu’ where A=1;

(窗口二)session2

– 第二步
begin;
select * from USER1.table1 where A = 1 lock in share mode;
– 第四步单独执行下面语句
– update USER1.table1 set B = ‘cc’ where A= 1;
可以尝试删除一个字段,此时锁表,然后在进行查询
  • 26
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值