mirror of
https://github.com/taosdata/TDengine
synced 2026-05-24 10:09:01 +00:00
125 lines
4 KiB
Python
125 lines
4 KiB
Python
import time
|
|
from new_test_framework.utils import tdLog, tdSql, sc, clusterComCheck, clusterComCheck
|
|
|
|
|
|
class TestDatabaseKeep:
|
|
|
|
def setup_class(cls):
|
|
tdLog.debug(f"start to execute {__file__}")
|
|
|
|
def test_database_Keep(self):
|
|
"""Options: keep
|
|
|
|
1. Create database with the KEEP option
|
|
2. Write and query data—including data outside the KEEP range
|
|
3. ALTER database KEEP option
|
|
4. Write and query data again
|
|
|
|
Catalog:
|
|
- Database:Create
|
|
|
|
Since: v3.0.0.0
|
|
|
|
Labels: common,ci
|
|
|
|
Jira: None
|
|
|
|
History:
|
|
- 2025-5-12 Simon Guan Migrated from tsim/db/keep.sim
|
|
|
|
"""
|
|
|
|
sc.dnodeForceStop(2)
|
|
clusterComCheck.checkDnodes(1)
|
|
|
|
tdLog.info(f"======== step1 create db")
|
|
tdSql.execute(f"create database keepdb replica 1 keep 30 duration 7 vgroups 2")
|
|
tdSql.execute(f"use keepdb")
|
|
tdSql.execute(f"create table tb (ts timestamp, i int)")
|
|
|
|
x = 1
|
|
while x < 41:
|
|
time = str(x) + "d"
|
|
tdSql.isErrorSql(f"insert into tb values (now - {time} , {x} )")
|
|
x = x + 1
|
|
|
|
tdSql.query(f"select * from tb")
|
|
tdLog.info(f"===> rows {tdSql.getRows()}) last {tdSql.getData(0,1)}")
|
|
tdSql.checkAssert(tdSql.getRows() < 40)
|
|
|
|
tdLog.info(f"======== step2 stop dnode")
|
|
sc.dnodeStop(2)
|
|
sc.dnodeStart(2)
|
|
clusterComCheck.checkDnodes(2)
|
|
|
|
tdSql.query(f"select * from tb")
|
|
tdLog.info(f"===> rows {tdSql.getRows()}) last {tdSql.getData(0,1)}")
|
|
tdSql.checkAssert(tdSql.getRows() < 40)
|
|
tdSql.checkAssert(tdSql.getRows() > 20)
|
|
|
|
num1 = tdSql.getRows() + 40
|
|
|
|
tdLog.info(f"======== step3 alter db")
|
|
tdSql.execute(f"alter database keepdb keep 60")
|
|
tdSql.execute(f"flush database keepdb")
|
|
tdSql.query(f"select * from information_schema.ins_databases")
|
|
tdSql.checkData(2, 2, 2)
|
|
|
|
tdSql.checkData(2, 7, "60d,60d,60d")
|
|
|
|
tdLog.info(f"======== step4 insert data")
|
|
x = 41
|
|
while x < 81:
|
|
time = str(x) + "d"
|
|
tdSql.isErrorSql(f"insert into tb values (now - {time} , {x} )")
|
|
x = x + 1
|
|
|
|
tdSql.query(f"select * from tb")
|
|
tdLog.info(f"===> rows {tdSql.getRows()}) last {tdSql.getData(0,1)}")
|
|
tdSql.checkAssert(tdSql.getRows() < 80)
|
|
tdSql.checkAssert(tdSql.getRows() > 45)
|
|
|
|
tdLog.info(f"======== step5 stop dnode")
|
|
sc.dnodeStop(2)
|
|
sc.dnodeStart(2)
|
|
clusterComCheck.checkDnodes(2)
|
|
|
|
tdSql.query(f"select * from tb")
|
|
tdLog.info(f"===> rows {tdSql.getRows()}) last {tdSql.getData(0,1)}")
|
|
tdSql.checkAssert(tdSql.getRows() < 80)
|
|
tdSql.checkAssert(tdSql.getRows() > 45)
|
|
|
|
tdLog.info(f"======== step6 alter db")
|
|
tdSql.execute(f"alter database keepdb keep 30")
|
|
tdSql.query(f"select * from information_schema.ins_databases")
|
|
tdSql.checkData(2, 2, 2)
|
|
tdSql.checkData(2, 7, "30d,30d,30d")
|
|
|
|
tdLog.info(f"======== step7 stop dnode")
|
|
sc.dnodeStop(2)
|
|
sc.dnodeStart(2)
|
|
clusterComCheck.checkDnodes(2)
|
|
|
|
tdSql.query(f"select * from tb")
|
|
tdLog.info(f"===> rows {tdSql.getRows()}) last {tdSql.getData(0,1)}")
|
|
tdSql.checkAssert(tdSql.getRows() < 40)
|
|
tdSql.checkAssert(tdSql.getRows() > 20)
|
|
|
|
tdLog.info(f"======== step8 insert data")
|
|
x = 81
|
|
while x < 121:
|
|
time = str(x) + "d"
|
|
tdSql.isErrorSql(f"insert into tb values (now - {time} , {x} )")
|
|
x = x + 1
|
|
|
|
tdSql.query(f"select * from tb")
|
|
tdLog.info(f"===> rows {tdSql.getRows()}) last {tdSql.getData(0,1)}")
|
|
tdSql.checkAssert(tdSql.getRows() < 40)
|
|
tdSql.checkAssert(tdSql.getRows() > 20)
|
|
|
|
tdLog.info(f"======== step9 alter db")
|
|
tdSql.error(f"alter database keepdb keep -1")
|
|
tdSql.error(f"alter database keepdb keep 0")
|
|
tdSql.error(f"alter database keepdb duration 1")
|
|
|
|
tdLog.info(f"======= test success")
|