That is the process, you should be doing all your development removed from the production site. It may seem like a lot more work, and initially it probably is. The first time you catch yourself before a bug gets to your live site, it will be worth it. The process has almost become second nature to me.
As for keeping a local database, it doesn't have to be completely up to date. I would argue it shouldn't be. The point of the local database is to allow you to test several different data possibilities and catch those things that should never happen but will.
As a single person, you can argue that it isn't necessary, and nothing keeps you from not using it. I like to use it because it allows me to keep a historical timeline of what I am doing. I can always reference where I was last commit, and go from there. It is also a cheap file backup, or in my case, allows me to work on my code bases across the several computers I use.
These are just my two cents.