使用activate not logged initially后报SQL1476N The current transaction was rolled back because of error

本文解决DB2中使用activatenotloggedinitially命令后出现的SQL1476N错误,分析原因并提供了解决方案,强调了在进行大表迁移时正确使用该命令的重要性。

在DB2中使用alter table test activate not logged initially后报如下错误:

DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL1476N The current transaction was rolled back because of error “-433”.
SQLSTATE=40506

原因:这个我这边是某个字段表数据不符合要求,进不去;rollback后表就坏了

这是重新梳理表结构,发现有个字段长度不够
重建后实现插入

test.sql 代码示例:
alter table oa.test activate not logged initially

INSERT INTO oa.test(id, name, sex) SELECT id, name, sex FROM OD.S_PERSON;

COMMIT;
脚本调用示例:
db2 +c -tvf test.sql

强调:

强调:db2 +c 该命令后面必须 添加 “+c”【使test.sql中的多个sql命令成为一个事务】 ,不然抽取数据时会认为是多个命令(每个SQL命令执行后都会自动COMMIT)导致“not logged”失效,Insert占用日志(数据量大时导致数据库日志爆满),有报错会默认回滚数据,影响甚大。

注: activate not logged initially 为不写日志,当COMMIT时结束;优点数度快;缺点报错后表需要重建。对于大表迁移较方便,但是注意备份。

在处理网络连接错误 `Could not activate connection 'ens224' on device ens` 时,通常涉及以下几个方面的问题及解决方案: 1. **设备未被正确识别或驱动缺失** 确保系统已正确加载网卡驱动,并且设备文件存在于 `/sys/class/net/` 目录下。如果设备未出现在该目录中,则可能是硬件或驱动问题。可以通过以下命令检查当前可用的网络接口: ```bash ls /sys/class/net/ ``` 如果没有看到 `ens224` 接口,则可能需要安装或重新加载相关驱动。 2. **NetworkManager 配置冲突** 当 NetworkManager 和传统的 `network` 服务同时运行时,可能会导致设备管理冲突。建议关闭 NetworkManager 并使用 `network` 服务进行管理。操作步骤如下: ```bash systemctl stop NetworkManager systemctl disable NetworkManager systemctl enable network systemctl start network ``` 此外,还需要确保 `/etc/NetworkManager/NetworkManager.conf` 文件中包含以下内容以避免未来更新时出现问题: ``` [main] plugins=ifcfg-rh unmanaged-devices=*,except:type:wifi ``` 3. **配置文件不匹配或损坏** 检查 `/etc/sysconfig/network-scripts/ifcfg-ens224` 文件是否存在并且配置正确。一个基本的静态 IP 配置示例如下: ``` DEVICE=ens224 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 ``` 如果文件不存在或配置有误,请创建或修正后重启网络服务: ```bash systemctl restart network ``` 4. **udev 规则干扰** 在某些情况下,旧的 udev 规则可能导致网卡名称与实际设备不一致。可以尝试删除 `/etc/udev/rules.d/70-persistent-net.rules` 文件并重启系统以重置网卡命名规则: ```bash rm -f /etc/udev/rules.d/70-persistent-net.rules reboot ``` 5. **虚拟化环境下的特殊处理** 如果是在虚拟机环境中(如 VMware 或 VirtualBox),请确认虚拟网卡是否已正确附加到虚拟机,并且虚拟机设置中的网络适配器类型与操作系统兼容。有时需要更改虚拟机的网络适配器类型为“E1000”或其他兼容模式来解决识别问题。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值