1 db2 清空数据不记录日志
1.1 对现有大表 db2 "ALTER TABLE ttl activate NOT LOGGED initially WITH EMPTY TABLE, 做清空处理。
1.2 问的问题清空后(业务正常操作这个)这个是不是也不记录日志了?
在DB2中,使用NOT LOGGED选项来清空(TRUNCATE)表数据是可以不记录日志的。这可以在ALTER TABLE语句中添加” NOT LOGGED initially“选项来实现。但是,值得注意的是,使用这个选项将不能进行回滚(ROLLBACK)操作,因为没有可用的日志记录来撤回数据更改。这可能会在恢复操作期间导致数据丢失,因此需要谨慎使用。
在ALTER TABLE语句中添加” NOT LOGGED initially WITH EMPTY TABLE“选项将直接删除表中的数据并释放磁盘空间。此选项的行为类似于使用"TRUNCATE"语句。与"TRUNCATE"不同的是,此选项不允许使用其他WHERE子句过滤数据。
因此,如果使用以上两种方式清空了表中的数据,对该表进行操作时不会再产生相应的日志记录,但这并不意味着业务正常操作该表也不记录日志了,因为在业务操作该表期间所产生的日志记录将与清空表数据时记录的日志记录是不同的。
收起1.1 对于现有大表 db2 "ALTER TABLE ttl activate NOT LOGGED initially WITH EMPTY TABLE" 做清空处理,这个操作确实可以清空表数据并且不记录日志。这是因为使用了 NOT LOGGED initially 选项,该选项可以使得该操作不记录日志,从而提高清空表数据的效率。
1.2 对于问题清空后,如果业务正常操作这个表,则该表的操作会被记录到日志中。因为 NOT LOGGED initially 选项只是在清空表数据时不记录日志,而对于后续的业务操作,仍然需要记录日志以保证数据的完整性和安全性。因此,如果业务正常操作该表,则该表的操作会被记录到日志中。