由一个目录下可以存放多少文件引出的问题
一个目录下(没有子目录)最多可以存放多少个文件? 我现在也不知道答案. 只不过文件太多时, 很不方便, 不能进行ls等操作, 而且访问可能会很慢.
今年总共进行过两次LOB数据类型的恢复, 而且都是恢复成文本格式的, 这样的话, 每一个数据库中的LOB值都被恢复成一个文件, 存放在运行AUL的目录下. 还好这两次恢复出来的文件数不多, 都只有1.2万条左右的记录, 恢复后生成了1.2万和1.5万个文件, 就这样已经让某些目录操作不太方便了. 遇到更多的LOB记录要恢复怎么办?
遇到更多的LOB记录怎么办? 为此在AUL中新增了一个设置选项, 用于设置恢复时LOB文件存放的子目录的个数, 默认值是500, 也就是恢复出来的LOB文件会被存放在最多500个子目录中. 这个值是可以调整的(范围: 100-2000), 采用记录所在的块号和这设置值的余数来确定存放的目录, 这样的话对于同一个设置的恢复, 生成的文件位置是固定的, 但问题可能是不够随机, 不能让LOB文件平均分配到各子目录. 如下所示:
AUL> set MAXLOBDIR 1000
Current MAXLOBDIR is : 1000
AUL>
在进行恢复时, 就会生成LOBxxxx的子目录, LOB文件将存放在这些子目录下面, 如:
C:\MYDUL\LOBREC>ls
AULCOL.TXT LOB0245 LOB0394
AULOBJ.TXT LOB0246 LOB0395
AULTAB.TXT LOB0247 LOB0396
AULUSR.TXT LOB0248 LOB0397
LOB0212 LOB0377 LOB0398
LOB0213 LOB0378 LOB0399
LOB0214 LOB0379 LOB0400
LOB0215 LOB0380 LOB0402
LOB0216 LOB0381 LOB0403
LOB0233 LOB0382 LOB0404
LOB0234 LOB0383 LOB0405
LOB0235 LOB0384 LOB0406
LOB0236 LOB0386 LOB0407
LOB0237 LOB0387 LOB0408
LOB0238 LOB0388 LOB0413
LOB0239 LOB0389 T_LOBTEST_sqlldr.ctl
LOB0240 LOB0390 T_LOBTEST_syntax.sql
LOB0242 LOB0391 aul4b.exe
LOB0243 LOB0392 lobtest.txt
LOB0244 LOB0393 t_lobtest.txt
我测试时的表总共有5千条记录, 有子目录后好看多了, 要不然太多的文件了.
