I can't answer #2, but for #1, use 1 part bleach to 10 parts water. Have that and a bucket of clean water. Take a sponge and soak in the bleach, wipe it on the stained canvas, followed a few minutes later with the clean water. Don't be afraid to soak it. You may have to repeat the process once or twice. This will not get out all the really dark stains out, but it will kill the mildew and the odor and take care of lighter staining.
Let it dry and air out really good and then reseal it with some tent waterproofing spray. Also reseal the seams with seam sealer, both of which can be found at any camping supply store.
2013 Jayco Jayfeather X20 E, 2008 GMC Sierra 1500 Crew Cab Z71 SLE