diff --git a/src/test/regress/input/hw_audit_multi_thread_rotation_interval.source b/src/test/regress/input/hw_audit_multi_thread_rotation_interval.source new file mode 100644 index 000000000..1b2b638c3 --- /dev/null +++ b/src/test/regress/input/hw_audit_multi_thread_rotation_interval.source @@ -0,0 +1,28 @@ +-- 设置guc参数 时间轮询 线程数为3 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_rotation_interval=1" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_thread_num=3" > /dev/null 2>&1 + +-- 重启数据库 等待1s +select pg_sleep(1); +\! @abs_bindir@/gs_ctl stop -D @abs_srcdir@/tmp_check/datanode1/ > /dev/null 2>&1 +\! @abs_bindir@/gs_ctl start -D @abs_srcdir@/tmp_check/datanode1/ > /dev/null 2>&1 + +-- 查看线程数是否改为 3 +\! sleep 5 +\! @abs_bindir@/gsql -r -p @portstring@ -d postgres -c "show audit_thread_num"; + +-- 间隔60s 获取pg_audit 中最新adt文件编号 查看是否生成了6个adt文件 +\! num1=$(expr $(ls @abs_srcdir@/tmp_check/datanode1/pg_audit -l | grep "^-" | wc -l) - 2) && sleep 1m && num2=$(expr $(ls @abs_srcdir@/tmp_check/datanode1/pg_audit -l | grep "^-" | wc -l) - 2) && diff=$(expr $num2 - $num1) && echo $diff && [[ $diff == 3 ]] && echo 'add a new log after interval-- 60 seconds' || echo 'fail to add new logs' + +-- 恢复guc参数 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_rotation_interval" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_thread_num" > /dev/null 2>&1 + +-- 重启数据库 等待1s +\! sleep 1 +\! @abs_bindir@/gs_ctl stop -D @abs_srcdir@/tmp_check/datanode1/ > /dev/null 2>&1 +\! @abs_bindir@/gs_ctl start -D @abs_srcdir@/tmp_check/datanode1/ > /dev/null 2>&1 + +-- 查看线程数是否恢复 1 +\! sleep 5 +\! @abs_bindir@/gsql -r -p @portstring@ -d postgres -c "show audit_thread_num"; diff --git a/src/test/regress/input/hw_audit_multi_thread_rotation_size.source b/src/test/regress/input/hw_audit_multi_thread_rotation_size.source new file mode 100644 index 000000000..265181091 --- /dev/null +++ b/src/test/regress/input/hw_audit_multi_thread_rotation_size.source @@ -0,0 +1,36 @@ +-- 设置guc 参数 记录DML审计日志 线程数为3 轮询空间大小2.1M +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_rotation_size=2048" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_dml_state=1" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_thread_num=3" > /dev/null 2>&1 + +-- 重启数据库 等待1s +select pg_sleep(1); +\! @abs_bindir@/gs_ctl stop -D @abs_srcdir@/tmp_check/datanode1/ > /dev/null 2>&1 +\! @abs_bindir@/gs_ctl start -D @abs_srcdir@/tmp_check/datanode1/ > /dev/null 2>&1 + +-- 查看线程数是否改为 3 +\! sleep 5 +\! @abs_bindir@/gsql -r -p @portstring@ -d postgres -c "show audit_thread_num"; + + +-- 产生dml_action 审计日志 +\! @abs_bindir@/gsql -r -p @portstring@ -d postgres -c " CREATE TABLE T_TEST_MULTI_THREAD_ROTATION_SIZE(COL1 int4 DEFAULT 1,COL2 VARCHAR(1024) DEFAULT 'test_rotation_size')"; +\! @abs_bindir@/gsql -r -p @portstring@ -d postgres -c "CREATE OR REPLACE PROCEDURE TRANSACTION_MULTI_THREAD_ROTATION_SIZE() AS BEGIN FOR i IN 0..1000000 LOOP INSERT INTO T_TEST_MULTI_THREAD_ROTATION_SIZE(COL1, COL2) VALUES (i, 'test_multi_thread_rotation_size'); COMMIT; END LOOP; END;"; +\! @abs_bindir@/gsql -r -p @portstring@ -d postgres -c "CALL TRANSACTION_MULTI_THREAD_ROTATION_SIZE()"; + +-- 提取新生成的文件大小 与2.1M比较 全部小于2.1M 为执行成功 +\! flag=0 && for i in $(find @abs_srcdir@/tmp_check/datanode1/pg_audit -newermt $(date -d "-75 seconds" +%H:%M:%S) -name "*_adt"); do size=$(du -h --exclude=index_table_new $i | grep -oP '\d*\.\d+M'); if [[ $size > '2.1M' ]]; then flag=1; echo $size; echo $i; fi; done && [[ "$flag" == 0 ]] && echo 'all the logs are less than 2.1M' || echo 'error -- some logs exceed limit' + +-- 恢复guc参数 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_rotation_size" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_dml_state" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_thread_num" > /dev/null 2>&1 + +-- 重启数据库 等待1s +\! sleep 1 +\! @abs_bindir@/gs_ctl stop -D @abs_srcdir@/tmp_check/datanode1/ > /dev/null 2>&1 +\! @abs_bindir@/gs_ctl start -D @abs_srcdir@/tmp_check/datanode1/ > /dev/null 2>&1 + +-- 查看线程数是否恢复 1 +\! sleep 5 +\! @abs_bindir@/gsql -r -p @portstring@ -d postgres -c "show audit_thread_num"; diff --git a/src/test/regress/input/hw_audit_multi_thread_space.source b/src/test/regress/input/hw_audit_multi_thread_space.source new file mode 100644 index 000000000..890eefc73 --- /dev/null +++ b/src/test/regress/input/hw_audit_multi_thread_space.source @@ -0,0 +1,47 @@ +-- 设置 guc参数 记录 dml 审计日志 & 审计日志上限 512M & 基于空间 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_resource_policy = 1" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_space_limit = 512MB" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_dml_state= 1" > /dev/null 2>&1 + +-- 修改 guc参数 线程从1 增加到 3 & 审计SCHEMA USER 对象的CREATE、DROP、ALTER操作 & 不记录set操作审计日志 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_thread_num=3" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_system_object=6" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_set_parameter=0" > /dev/null 2>&1 + +-- 重启数据库 等待1s +\! sleep 1 +\! @abs_bindir@/gs_ctl stop -D @abs_srcdir@/tmp_check/datanode1/ > /dev/null 2>&1 +\! @abs_bindir@/gs_ctl start -D @abs_srcdir@/tmp_check/datanode1/ > /dev/null 2>&1 + +-- 查看是否线程数修改成功 +\! sleep 5 +\! @abs_bindir@/gsql -r -p @portstring@ -d postgres -c "show audit_thread_num;"; + +-- 产生dml_action 审计日志 +\! @abs_bindir@/gsql -r -p @portstring@ -d postgres -c "CREATE TABLE T_TEST_MULTI_THREAD_SPACE(COL1 int4 DEFAULT 1, COL2 VARCHAR(1024) DEFAULT 'test_multi_thread_space', COL3 int4 DEFAULT 1, COL4 text DEFAULT 'null')"; +\! @abs_bindir@/gsql -r -p @portstring@ -d postgres -c "CREATE OR REPLACE PROCEDURE TRANSACTION_TEST_MULTI_THREAD_SPACE() AS BEGIN FOR i IN 0..3000000 LOOP INSERT INTO T_TEST_MULTI_THREAD_SPACE(COL1, COL2,COL3) VALUES (i, 'test_multi_thread_space',2); COMMIT; END LOOP; END;"; +\! @abs_bindir@/gsql -r -p @portstring@ -d postgres -c " CALL TRANSACTION_TEST_MULTI_THREAD_SPACE();"; + +-- 查看 pg_audit 文件总大小 是否超过设置的512M +\! (( $(du -h --exclude=done /data6/zhoutl/GaussDB_test/GaussDBKernel-server/opengauss/src/test/regress/tmp_check/datanode1/pg_audit | grep -oP '\d*M' | grep -oP '\d*') > 530 )) && echo 'size of total logs exceeds upper limit' || echo 'size of total logs not exceeds upper limit --512M' + +-- 获取 pg_audit 中最早建立的adt文件编号 与原编号 0_adt 比较 观察是否删除了最早的日志文件 +\! [[ $(echo $(ls @abs_srcdir@/tmp_check/datanode1/pg_audit -tr | head -2 | xargs) | tr -cd "[0-9]") > 1 ]] && echo 'delete oldest files' || echo 'fail to delete oldest files' + +-- 恢复guc参数 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_resource_policy" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_space_limit" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_dml_state" > /dev/null 2>&1 + +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_thread_num" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_system_object" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_set_parameter" > /dev/null 2>&1 + +-- 重启数据库 等待1s +\! sleep 1 +\! @abs_bindir@/gs_ctl stop -D @abs_srcdir@/tmp_check/datanode1/ > /dev/null 2>&1 +\! @abs_bindir@/gs_ctl start -D @abs_srcdir@/tmp_check/datanode1/ > /dev/null 2>&1 + +-- 再次查看是否线程数修改成功 +\! sleep 5 +\! @abs_bindir@/gsql -r -p @portstring@ -d postgres -c "show audit_thread_num;"; diff --git a/src/test/regress/make_fastcheck_audit_postgresql.conf b/src/test/regress/make_fastcheck_audit_postgresql.conf new file mode 100644 index 000000000..493919034 --- /dev/null +++ b/src/test/regress/make_fastcheck_audit_postgresql.conf @@ -0,0 +1,38 @@ +max_process_memory = 64GB +shared_buffers = 500MB +work_mem = 128MB +fsync = off +synchronous_commit = off +archive_mode = off +audit_user_violation = 1 +audit_system_object = 511 +audit_dml_state = 1 +audit_function_exec = 1 +audit_copy_exec = 1 +full_page_writes = off +wal_keep_segments = 50 +checkpoint_segments = 16 +checkpoint_timeout = 30min +enable_bbox_dump = off +bbox_dump_count = 4 +bbox_dump_path = '/tmp/invalidpath' +comm_tcp_mode = on +#comm_cn_dn_logic_conn = false +enable_absolute_tablespace = true +#enable_dynamic_workload = false +max_connections = 1000 +query_mem='500MB' +auth_iteration_count=2048 +enable_sonic_hashagg=on +enable_sonic_hashjoin=on +enable_cbm_tracking = on +enable_opfusion=on +uncontrolled_memory_context='HashCacheContext,TupleHashTable,TupleSort,AggContext,SRF multi-call context,CteScan*,FunctionScan*,RemoteQuery*,VecAgg*,HashContext,TopTransactionContext' +#enable_tsdb = on +enable_thread_pool = on +enable_default_cfunc_libpath = off +enable_stateless_pooler_reuse = on +enable_ustore = on +wal_level = logical +sql_beta_feature = 'a_style_coerce' +enable_global_syscache = on diff --git a/src/test/regress/output/hw_audit_multi_thread_rotation_interval.source b/src/test/regress/output/hw_audit_multi_thread_rotation_interval.source new file mode 100644 index 000000000..c1e5e6ec5 --- /dev/null +++ b/src/test/regress/output/hw_audit_multi_thread_rotation_interval.source @@ -0,0 +1,39 @@ +-- 设置guc参数 时间轮询 线程数为3 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_rotation_interval=1" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_thread_num=3" > /dev/null 2>&1 +-- 重启数据库 等待1s +select pg_sleep(1); + pg_sleep +---------- + +(1 row) + +\! @abs_bindir@/gs_ctl stop -D @abs_srcdir@/tmp_check/datanode1/ > /dev/null 2>&1 +\! @abs_bindir@/gs_ctl start -D @abs_srcdir@/tmp_check/datanode1/ > /dev/null 2>&1 +-- 查看线程数是否改为 3 +\! sleep 5 +\! @abs_bindir@/gsql -r -p 27500 -d postgres -c "show audit_thread_num"; + audit_thread_num +------------------ + 3 +(1 row) + +-- 间隔60s 获取pg_audit 中最新adt文件编号 查看是否生成了6个adt文件 +\! num1=$(expr $(ls @abs_srcdir@/tmp_check/datanode1/pg_audit -l | grep "^-" | wc -l) - 2) && sleep 1m && num2=$(expr $(ls @abs_srcdir@/tmp_check/datanode1/pg_audit -l | grep "^-" | wc -l) - 2) && diff=$(expr $num2 - $num1) && echo $diff && [[ $diff == 3 ]] && echo 'add a new log after interval-- 60 seconds' || echo 'fail to add new logs' +3 +add a new log after interval-- 60 seconds +-- 恢复guc参数 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_rotation_interval" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_thread_num" > /dev/null 2>&1 +-- 重启数据库 等待1s +\! sleep 1 +\! @abs_bindir@/gs_ctl stop -D @abs_srcdir@/tmp_check/datanode1/ > /dev/null 2>&1 +\! @abs_bindir@/gs_ctl start -D @abs_srcdir@/tmp_check/datanode1/ > /dev/null 2>&1 +-- 查看线程数是否恢复 1 +\! sleep 5 +\! @abs_bindir@/gsql -r -p 27500 -d postgres -c "show audit_thread_num"; + audit_thread_num +------------------ + 1 +(1 row) + diff --git a/src/test/regress/output/hw_audit_multi_thread_rotation_size.source b/src/test/regress/output/hw_audit_multi_thread_rotation_size.source new file mode 100644 index 000000000..727975876 --- /dev/null +++ b/src/test/regress/output/hw_audit_multi_thread_rotation_size.source @@ -0,0 +1,51 @@ +-- 设置guc 参数 记录DML审计日志 线程数为3 轮询空间大小2.1M +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_rotation_size=2048" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_dml_state=1" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_thread_num=3" > /dev/null 2>&1 +-- 重启数据库 等待1s +select pg_sleep(1); + pg_sleep +---------- + +(1 row) + +\! @abs_bindir@/gs_ctl stop -D @abs_srcdir@/tmp_check/datanode1/ > /dev/null 2>&1 +\! @abs_bindir@/gs_ctl start -D @abs_srcdir@/tmp_check/datanode1/ > /dev/null 2>&1 +-- 查看线程数是否改为 3 +\! sleep 5 +\! @abs_bindir@/gsql -r -p 27500 -d postgres -c "show audit_thread_num"; + audit_thread_num +------------------ + 3 +(1 row) + +-- 产生dml_action 审计日志 +\! @abs_bindir@/gsql -r -p 27500 -d postgres -c " CREATE TABLE T_TEST_MULTI_THREAD_ROTATION_SIZE(COL1 int4 DEFAULT 1,COL2 VARCHAR(1024) DEFAULT 'test_rotation_size')"; +CREATE TABLE +\! @abs_bindir@/gsql -r -p 27500 -d postgres -c "CREATE OR REPLACE PROCEDURE TRANSACTION_MULTI_THREAD_ROTATION_SIZE() AS BEGIN FOR i IN 0..1000000 LOOP INSERT INTO T_TEST_MULTI_THREAD_ROTATION_SIZE(COL1, COL2) VALUES (i, 'test_multi_thread_rotation_size'); COMMIT; END LOOP; END;"; +CREATE PROCEDURE +\! @abs_bindir@/gsql -r -p 27500 -d postgres -c "CALL TRANSACTION_MULTI_THREAD_ROTATION_SIZE()"; + transaction_multi_thread_rotation_size +---------------------------------------- + +(1 row) + +-- 提取新生成的文件大小 与2.1M比较 全部小于2.1M 为执行成功 +\! flag=0 && for i in $(find @abs_srcdir@/tmp_check/datanode1/pg_audit -newermt $(date -d "-75 seconds" +%H:%M:%S) -name "*_adt"); do size=$(du -h --exclude=index_table_new $i | grep -oP '\d*\.\d+M'); if [[ $size > '2.1M' ]]; then flag=1; echo $size; echo $i; fi; done && [[ "$flag" == 0 ]] && echo 'all the logs are less than 2.1M' || echo 'error -- some logs exceed limit' +all the logs are less than 2.1M +-- 恢复guc参数 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_rotation_size" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_dml_state" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_thread_num" > /dev/null 2>&1 +-- 重启数据库 等待1s +\! sleep 1 +\! @abs_bindir@/gs_ctl stop -D @abs_srcdir@/tmp_check/datanode1/ > /dev/null 2>&1 +\! @abs_bindir@/gs_ctl start -D @abs_srcdir@/tmp_check/datanode1/ > /dev/null 2>&1 +-- 查看线程数是否恢复 1 +\! sleep 5 +\! @abs_bindir@/gsql -r -p 27500 -d postgres -c "show audit_thread_num"; + audit_thread_num +------------------ + 1 +(1 row) + diff --git a/src/test/regress/output/hw_audit_multi_thread_space.source b/src/test/regress/output/hw_audit_multi_thread_space.source new file mode 100644 index 000000000..ecf10c7dd --- /dev/null +++ b/src/test/regress/output/hw_audit_multi_thread_space.source @@ -0,0 +1,56 @@ +-- 设置 guc参数 记录 dml 审计日志 & 审计日志上限 512M & 基于空间 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_resource_policy = 1" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_space_limit = 512MB" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_dml_state= 1" > /dev/null 2>&1 +-- 修改 guc参数 线程从1 增加到 3 & 审计SCHEMA USER 对象的CREATE、DROP、ALTER操作 & 不记录set操作审计日志 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_thread_num=3" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_system_object=6" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_set_parameter=0" > /dev/null 2>&1 +-- 重启数据库 等待1s +\! sleep 1 +\! @abs_bindir@/gs_ctl stop -D @abs_srcdir@/tmp_check/datanode1/ > /dev/null 2>&1 +\! @abs_bindir@/gs_ctl start -D @abs_srcdir@/tmp_check/datanode1/ > /dev/null 2>&1 +-- 查看是否线程数修改成功 +\! sleep 5 +\! @abs_bindir@/gsql -r -p 27500 -d postgres -c "show audit_thread_num;"; + audit_thread_num +------------------ + 3 +(1 row) + +-- 产生dml_action 审计日志 +\! @abs_bindir@/gsql -r -p 27500 -d postgres -c "CREATE TABLE T_TEST_MULTI_THREAD_SPACE(COL1 int4 DEFAULT 1, COL2 VARCHAR(1024) DEFAULT 'test_multi_thread_space', COL3 int4 DEFAULT 1, COL4 text DEFAULT 'null')"; +CREATE TABLE +\! @abs_bindir@/gsql -r -p 27500 -d postgres -c "CREATE OR REPLACE PROCEDURE TRANSACTION_TEST_MULTI_THREAD_SPACE() AS BEGIN FOR i IN 0..3000000 LOOP INSERT INTO T_TEST_MULTI_THREAD_SPACE(COL1, COL2,COL3) VALUES (i, 'test_multi_thread_space',2); COMMIT; END LOOP; END;"; +CREATE PROCEDURE +\! @abs_bindir@/gsql -r -p 27500 -d postgres -c " CALL TRANSACTION_TEST_MULTI_THREAD_SPACE();"; + transaction_test_multi_thread_space +------------------------------------- + +(1 row) + +-- 查看 pg_audit 文件总大小 是否超过设置的512M +\! (( $(du -h --exclude=done @abs_srcdir@/tmp_check/datanode1/pg_audit | grep -oP '\d*M' | grep -oP '\d*') > 530 )) && echo 'size of total logs exceeds upper limit' || echo 'size of total logs not exceeds upper limit --512M' +size of total logs not exceeds upper limit --512M +-- 获取 pg_audit 中最早建立的adt文件编号 与原编号 0_adt 比较 观察是否删除了最早的日志文件 +\! [[ $(echo $(ls @abs_srcdir@/tmp_check/datanode1/pg_audit -tr | head -2 | xargs) | tr -cd "[0-9]") > 1 ]] && echo 'delete oldest files' || echo 'fail to delete oldest files' +delete oldest files +-- 恢复guc参数 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_resource_policy" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_space_limit" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_dml_state" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_thread_num" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_system_object" > /dev/null 2>&1 +\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_set_parameter" > /dev/null 2>&1 +-- 重启数据库 等待1s +\! sleep 1 +\! @abs_bindir@/gs_ctl stop -D @abs_srcdir@/tmp_check/datanode1/ > /dev/null 2>&1 +\! @abs_bindir@/gs_ctl start -D @abs_srcdir@/tmp_check/datanode1/ > /dev/null 2>&1 +-- 再次查看是否线程数修改成功 +\! sleep 5 +\! @abs_bindir@/gsql -r -p 27500 -d postgres -c "show audit_thread_num;"; + audit_thread_num +------------------ + 1 +(1 row) + diff --git a/src/test/regress/security_audit_schedule0 b/src/test/regress/security_audit_schedule0 index 7b157854b..0f1ec3e67 100644 --- a/src/test/regress/security_audit_schedule0 +++ b/src/test/regress/security_audit_schedule0 @@ -1,7 +1,15 @@ -# ---------- +# ------------------ # # Database security audit -# # ---------- +# # --------------- + +#test: hw_audit_space +#test: hw_audit_rotation_interval +#test: hw_audit_rotation_size +# +#-------------------- +# # Multi thread +#------------------- +test: hw_audit_multi_thread_rotation_interval +test: hw_audit_multi_thread_rotation_size +test: hw_audit_multi_thread_space -test: hw_audit_space -test: hw_audit_rotation_interval -test: hw_audit_rotation_size diff --git a/src/test/regress/single_check.sh b/src/test/regress/single_check.sh index 75c686a94..f796f8c88 100755 --- a/src/test/regress/single_check.sh +++ b/src/test/regress/single_check.sh @@ -370,9 +370,9 @@ case $DO_CMD in --fastcheck_single|fastcheck_single) args_val="-d 1 -c 0 -p $p -r 1 " real_regresscheck_single parallel_schedule0$part make_fastcheck_postgresql.conf "${args_val}" ;; - --fastcheck_single_audit|fastcheck_single_audit) + --fastcheck_single_audit|fastcheck_single_audit) args_val="-d 1 -c 0 -p $p -r 1 " - real_regresscheck_single_audit security_audit_schedule0$part make_fastcheck_postgresql.conf "${args_val}" ;; + real_regresscheck_single_audit security_audit_schedule0$part make_fastcheck_audit_postgresql.conf "${args_val}" ;; --fastcheck_lite|fastcheck_lite) args_val="-d 1 -c 0 -p $p -r 1 " real_regresscheck_single parallel_schedule.lite$part make_fastcheck_postgresql.conf "${args_val}" ;;