KCP 模拟题练习 02 - 移动表空间锁表

【单选题】在 KingbaseES V8 中,把表从一个表空间移动到另一个表空间会锁表吗?

  • 会
  • 不会

解题思路:

创建表空间 tbs01:

bash 复制代码
[root@kes ~]# mkdir /tbs01
[root@kes ~]# chown -R kingbase:kingbase /tbs01/
[root@kes ~]# chmod -R 700 /tbs01/

查看准备环境:

sql 复制代码
-- 创建表空间 tbs01
test=# create tablespace tbs01 location '/tbs01';
CREATE TABLESPACE

test=# \db
          表空间列表
    名称     | 拥有者 | 所在地 
-------------+--------+--------
 sys_default | system | 
 sys_global  | system | 
 sysaudit    | system | 
 tbs01       | system | /tbs01
(4 行记录)

test=# \dt
              关联列表
 架构模式 | 名称 |  类型  | 拥有者  
----------+------+--------+---------
 public   | t1   | 数据表 | lucifer
(1 行记录)

test=# select oid,relname from sys_class where relname='t1';
  oid  | relname 
-------+---------
 16513 | t1
(1 行记录)

另一个会话查看当前表是否存在锁:

sql 复制代码
test=# select * from sys_locks where relation=16513;
 locktype | database | relation | page | tuple | virtualxid | transactionid | classid | objid | objsubid | virtualtransaction | pid | mode | granted | fastpath 
----------+----------+----------+------+-------+------------+---------------+---------+-------+----------+--------------------+-----+------+---------+----------
(0 行记录)

模拟表移动表空间:

sql 复制代码
test=# begin;
BEGIN
test=# alter table t1 set tablespace tbs01;
ALTER TABLE

打开另一个会话查看表是否存在锁:

sql 复制代码
-- 此时表已存在一个锁
test=# select * from sys_locks where relation=16513;
 locktype | database | relation | page | tuple | virtualxid | transactionid | classid | objid | objsubid | virtualtransaction |  pid  |        mode         | granted | fastpath 
----------+----------+----------+------+-------+------------+---------------+---------+-------+----------+--------------------+-------+---------------------+---------+----------
 relation |    14509 |    16513 |      |       |            |               |         |       |          | 7/35962            | 61872 | AccessExclusiveLock | t       | f
(1 行记录)

原会话回滚移动表空间的事务:

sql 复制代码
test=# rollback;
ROLLBACK

在新的会话中再次查看锁是否存在:

sql 复制代码
test=# select * from sys_locks where relation=16513;
 locktype | database | relation | page | tuple | virtualxid | transactionid | classid | objid | objsubid | virtualtransaction | pid | mode | granted | fastpath 
----------+----------+----------+------+-------+------------+---------------+---------+-------+----------+--------------------+-----+------+---------+----------
(0 行记录)

此时,表的锁已经消失,所以,KingbaseES 数据库中表移动表空间会产生锁。


📚 推荐阅读:DBA 学习之路

如果这篇文章对你有帮助,推荐访问我的 Oracle DBA 系统学习站点,涵盖 100 天完整学习路线:

  • 🔧 Oracle 安装部署 · RMAN 备份恢复 · Data Pump 数据迁移
  • 🏗️ RAC 高可用 · DataGuard 容灾 · 多租户架构
  • 🔍 故障排查 · 升级迁移 · GoldenGate 数据同步

👉 立即访问 ora100.com →

相关推荐
卷无止境8 小时前
独立开发者的"富矿地带":哪些垂直领域值得你押注一辈子?
后端·python
狼爷9 小时前
从零用 Java 构建 AI Agent 框架:JavaManus 设计与实现深度解析
后端·langchain·aigc
郑州光合科技余经理9 小时前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
专业程序开发源9 小时前
springboot简历管理系统81389-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·php·课程设计
专业程序开发源10 小时前
springboot社区养老系统44071-计算机课程设计、毕业设计
vue.js·spring boot·后端·python·django·php·课程设计
小呆呆66610 小时前
副业搞起来,小说,漫画,漫剧的成本优化思路
前端·后端·面试
周杰伦fans10 小时前
8GB显存下模型量化实战指南
人工智能·后端·c#
小蒜学长11 小时前
基于SpringBoot的佳新超市管理系统设计与实现系统(代码+数据库+LW)
java·数据库·spring boot·后端·佳新超市管理系统
IT_陈寒11 小时前
Vite静态资源导入这个坑我帮你们踩过了
前端·人工智能·后端
打工仔折腾 AI12 小时前
把AI Agent托管在家用电脑:UU远程终端与端口映射实测记录
人工智能·后端·python·langchain·ai agent 实战