There must be only one runner
There is a difference between "I will only ever create one instance of the Runner class..." and "there MUST only be one instance of the Runner class...".
Which did you mean? If you meant the latter, then you need to google "singleton class", and make your constructor private. You need to add a method to create, if necessary, that one instance, and return a pointer to it. That method must be public.
If you mean the former, then what you plan to do doesn't matter. What you CAN do is what is important. If you don't enforce the "only one instance (at a time)" restriction, then you are back to where you started.
DBAbstraction should definitely be a singleton.