scdp v5考试 答案 供参考
第一题:
考试内容
1)到桌面目录( /home/shiyanlou )下,找到巨杉数据库引擎安装包,解压 sequoiadb-5.0.1-enterprise-linux_x86_64.tar.gz ;
tar -zxvf sequoiadb-5.0.1-enterprise-linux_x86_64.tar.gz
2)进入解压目录(sequoiadb-5.0.1/);
cd sequoiadb-5.0.1
3)为解压目录下的 run 包增加可执行权限;
chmod u+x sequoiadb-5.0.1-linux_x86_64-enterprise-installer.run
chmod u+x sequoiasql-mysql-5.0.1-linux_x86_64-enterprise-installer.run
chmod u+x sequoiasql-postgresql-5.0.1-x86_64-enterprise-installer.run
chmod u+x setup.sh
4)切换至 root 用户;
sudo su
Note: 考试环境已经配置了 sudo 免密权限;
5)使用 setup.sh 脚本安装 SequoiaDB 和 MySQL;
./setup.sh
6)切换至 sdbadmin 用户,到 /opt/sequoiadb/tools/deploy 目录下,使用 quickDeploy.sh 部署 SequoiaDB (1个 SequoiaSQL-MySQL 数据库实例节点、1个引擎协调节点,1个编目节点与3个数据节点);
Note:
用户 sdbadmin 的密码为 sdbadmin
7)RR 隔离级别需要时间序列服务(STP)和全局事务的支持。将 mvccon 和 globtranson 为 true
su - sdbadmin
sequoiadb --version
sdblist
/opt/sequoiasql/mysql/bin/sdb_sql_ctl status
stpstart
sdb
var db = new Sdb("localhost", 11810);
db.updateConf({globtranson: true, mvccon: true, transisolation: 3}, {Global: true})
quit
sdbstop -t db;sdbstart -t db;
8)启动 STP
9)查看 SequoiaDB 版本信息,用 sdblist 命令查看部署节点情况;
10)登录 MySQL shell ;
/opt/sequoiasql/mysql/bin/mysql -h 127.0.0.1 -P 3306 -u root -proot
set global transaction_isolation ='repeatable-read';
set tx_isolation='repeatable-read';
11)创建数据库 company 和包含自增主键字段的 employee 表 ( empno INT AUTO_INCREMENT PRIMARY KEY , ename VARCHAR(128) , age INT ) ;
CREATE DATABASE company;
USE company;
CREATE TABLE employee
(
empno INT AUTO_INCREMENT PRIMARY KEY,
ename VARCHAR(128),
age INT
);
12)使用 insert into 向 employee 表中写入记录:
({ empno: 1, ename: "Bob", age: 29});
INSERT INTO employee (ename, age) VALUES ("Jacky", 36);
INSERT INTO employee (ename, age) VALUES ("Alice", 18);
13)在 SequoiaDB Shell 进行数据的 CRUD 操作:
写入数据:
sdb
var db = new Sdb("localhost", 11810);
db.company.employee.find();
db.company.employee.insert( { ename: "Abe", age: 20 } );
db.company.employee.update( { $set: { ename: "Ben" } }, { ename: "Abe" } );
db.company.employee.remove( { ename: "Jane" } );
{ empno: 2, ename: "Abe", age: 18 }
{ empno: 3, ename: "Alice", age: 47 }
{ empno: 4, ename: "Jane", age: 29 }
查询数据:
查询数据是否被正确写入;
更新数据:
将 empno 为2的数据的 ename 改为"Tom",
删除数据:
删除 empno 为4的数据;
14)在 MySQL 实例运用 SQL 语句创建多维分区表,要求创建数据库 company 将其映射至对应的 SequoiaDB 集合空间。创建多维分区表的表名为 goods;
要求:
goods表的结构为 (id INT NOT NULL, produced_date DATE, name VARCHAR(100), company VARCHAR(100))
goods表的上层分区使用 RANGE 分区,日期小于 2000-01-01为分区 p1 、2000-01-01 至 2010-01-01 为分区 p2 、2010-01-01 至 2020-01-01 为分区 p3,分区字段为produced_date
USE company;
goods表的下层分区使用 HASH 分区,分区字段为 id
在表中插入记录 (id:10001, produced_date :'2012-10-01', name:'SDB', company:'SequoiaDB')
INSERT INTO goods(id, produced_date, name, company) VALUES(1, '1991-03-23', 'SDB', 'SequoiaDB');
USE company;
CREATE TABLE goods2(
id INT NOT NULL,
produced_date DATE,
name VARCHAR(100),
company VARCHAR(100)
)
PARTITION BY RANGE COLUMNS(produced_date)
SUBPARTITION BY HASH(id)
SUBPARTITIONS 4(
PARTITION p1 VALUES LESS THAN('2000-01-01'),
PARTITION p2 VALUES LESS THAN('2010-01-01'),
PARTITION p3 VALUES LESS THAN('2020-01-01')
);
第二题
1)到桌面目录( /home/shiyanlou/sequoiadb-5.0.1 )下,找到SequoiaSQL-MariaDB 实例安装包 ;
cd /home/shiyanlou/sequoiadb-5.0.1
2)切换至 root 用户;
sudo su
Note: 考试环境已经配置了 sudo 免密权限;
2)安装 SequoiaSQL-MariaDB 实例 ;
./sequoiasql-mariadb-5.0.1-linux_x86_64-enterprise-installer.run --mode text
3)切换到 sdbadmin 用户创建 SequoiaSQL-MariaDB 实例;
su - sdbadmin
/opt/sequoiasql/mariadb
bin/sdb_maria_ctl addinst myinst -D database/6101/
bin/sdb_maria_ctl status
cd /opt/sequoiasql/mariadb/
/opt/sequoiasql/mariadb/bin/mariadb -S database/6101/mysqld.sock -u sdbadmin
CREATE DATABASE company;
USE company;
4)创建数据库 company;
5)创建包含自增主键字段的 employee 表,字段为:( empno INT, ename VARCHAR(128), age INT );
CREATE TABLE employee
(
empno INT AUTO_INCREMENT PRIMARY KEY,
ename VARCHAR(128),
age INT
);
6)写入如下两条数据:
(ename, age) VALUES ("Jacky", 36);
(ename, age) VALUES ("Alice", 18);
INSERT INTO employee (ename, age) VALUES ("Jacky", 36);
INSERT INTO employee (ename, age) VALUES ("Alice", 18);
7)配置协调节点,使其能够兼容 mongodb 4.x 版本协议,并使用 MongoDB Shell 验证是否能够进行数据操作。
sdb
2)通过 javascript 语言连接协调节点,获取数据库连接;
var db = new Sdb("localhost", 11810);
3)查询 employee 集合中的数据是否与 MongoDB Shell 操作的结果一致;
db.company.employee.find();
3)退出 SequoiaDB Shell;
quit;
su - sdbadmin
/home/sdbadmin/package/mongodb/mongo --version
echo 'fap=fapmongo3' >> /opt/sequoiadb/conf/local/11810/sdb.conf
如需兼容 mongodb 2.x 版本,应添加配置“fap=fapmongo2”;如需兼容 mongodb 3.x 版本或者 mongodb 4.x 版本,应添加配置“fap=fapmongo3”
4)停止协调节点;
/opt/sequoiadb/bin/sdbstop -p 11810
[copy]
5)启动协调节点;
/opt/sequoiadb/bin/sdbstart -p 11810
[copy]
6) 查看 fap 端口是否已经启动
sudo netstat -anp | grep 11817