Actually, I think it is better that the new pointer variables are still declared `static` in the `.c` files needing them, with a function that initializes them (for use in mod_init()) and another one that destroys them (in mod_destroy(). Practically copy the memory allocation/free code to their own functions in the files declaring the static pointers and expose them in `.h` files use from main file of the module.
Otherwise, some variables have pretty generic name (e.g., db_keys) and can confuse some linkers and can mess up references at runtime.