本次举例子为N=20个
[kingbase@node202 ~]$ for ((i=1;i<=20;i++));do echo "partition p$i values('sp$i');";done > add_partiton20.sql
[kingbase@node202 ~]$ cat add_partiton20.sql
partition p1 values('sp1');
partition p2 values('sp2');
partition p3 values('sp3');
partition p4 values('sp4');
partition p5 values('sp5');
partition p6 values('sp6');
partition p7 values('sp7');
partition p8 values('sp8');
partition p9 values('sp9');
partition p10 values('sp10');
partition p11 values('sp11');
partition p12 values('sp12');
partition p13 values('sp13');
partition p14 values('sp14');
partition p15 values('sp15');
partition p16 values('sp16');
partition p17 values('sp17');
partition p18 values('sp18');
partition p19 values('sp19');
partition p20 values('sp20');
–批量替换成添加分区的语句
:%s/partition/alter table test_tab_list add partition/g
–将add_partition.sql分成14个文件
split add_partition.sql -l 10000 -d -a 14 add.sql
vi create_partition.sql
create table test_tab_list(
spcode varchar2(8),
time date)
partition by list(spcode)(
partition p1 values('sp1')
);
ksql -Usystem -dtest -f create_partition.sql
–后台批量执行
[kingbase@node202 add_par]$ cat add_par.sh
#!/bin/bash
ksql -Usystem -dtest -p54343 -f add.sql00000000000000 > add.sql0000000.log 2>&1 &
ksql -Usystem -dtest -p54343 -f add.sql00000000000001 > add.sql0000001.log 2>&1 &
ksql -Usystem -dtest -p54343 -f add.sql00000000000002 > add.sql0000002.log 2>&1 &
ksql -Usystem -dtest -p54343 -f add.sql00000000000003 > add.sql0000003.log 2>&1 &
ksql -Usystem -dtest -p54343 -f add.sql00000000000004 > add.sql0000004.log 2>&1 &
ksql -Usystem -dtest -p54343 -f add.sql00000000000005 > add.sql0000005.log 2>&1 &
ksql -Usystem -dtest -p54343 -f add.sql00000000000006 > add.sql0000006.log 2>&1 &
ksql -Usystem -dtest -p54343 -f add.sql00000000000007 > add.sql0000007.log 2>&1 &
ksql -Usystem -dtest -p54343 -f add.sql00000000000008 > add.sql0000008.log 2>&1 &
ksql -Usystem -dtest -p54343 -f add.sql00000000000009 > add.sql0000009.log 2>&1 &
ksql -Usystem -dtest -p54343 -f add.sql00000000000010 > add.sql00000010.log 2>&1 &
ksql -Usystem -dtest -p54343 -f add.sql00000000000011 > add.sql00000011.log 2>&1 &
ksql -Usystem -dtest -p54343 -f add.sql00000000000012 > add.sql00000012.log 2>&1 &
ksql -Usystem -dtest -p54343 -f add.sql00000000000013 > add.sql00000013.log 2>&1 &
[kingbase@node202 add_par]$
–进入到数据库查看或者查看日志
[kingbase@node202 ~]$ cat add.sql00*.log | grep -i “alter table” | wc -l
test=# select count(*) from sys_tables where tablename like ‘test_tab_list1_p%’;