DB2新手上路:修改日志文件大小

刚刚创建的DB2数据库就遇到了一个日志文件的错误:

db2 => insert into test_compress select * from test DB21034E 该命令被当作 SQL 语句来处理,因为它不是有效的“命令行处理器”命令。在 SQL 处理期间,它返回: SQL0964C 数据库的事务日志已满。 SQLSTATE=57011

在DB2中,可以用如下命令修改日志文件大小:

db2 => update db cfg for sample using LOGFILSIZ 50000 DB20000I UPDATE DATABASE CONFIGURATION 命令成功完成。 SQL1363W 为立即修改而提交的一个或多个参数未动态更改。对于这些配置参数,必须在所有应用程序都与此数据库断开连接之后,更改才会生效。

DB2的提示信息非常详细,告诉我们:对于这些配置参数,必须在所有应用程序都与此数据库断开连接之后,更改才会生效。

其中,我们修改的参数logfilsiz 代表日志文件大小.

其缺省值在UNIX/Windows都为1000 个Block,我的数据库Block size为4k,50000个Block,大小约为195M:

D:DB2NODE0000SQL00001SQLOGDIR>ls -l total 1200048 -rwxrwxrwa 1 db2admin None 204808192 Jun 27 17:46 S0000000.LOG -rwxrwxrwa 1 db2admin None 204808192 Jun 27 17:25 S0000001.LOG -rwxrwxrwa 1 db2admin None 204808192 Jun 27 17:25 S0000002.LOG

DB2的日志修改较Oracle简单,但是在一个繁忙的数据库中,等待所有进程退出数据库显然并不现实,所以可能日志修改生效需要等到下一次数据库重新启动;那么在本质上,Oracle的方法应该更为实用.虽然两者日志的作用可能不同.

你可能感兴趣的:(oracle,sql,数据库,db2,database,insert)