Preheat the oven to 325°F. In a large skillet, cook the bacon over medium heat, flipping once, until cooked but not crisp. Drain on a paper towel, then chop into bite-size pieces.
Pour off the bacon fat and add 1 tablespoon of the olive oil to the skillet. Add the onion and cook over medium-low heat until softened, about 7 minutes. Let cool.
In a large bowl, beat the eggs. Add the onion, the bacon, the cheeses and the salt and pepper and stir gently. In a 9- or 10- inch ovenproof skillet, heat the remaining tablespoon of olive oil (swirl the oil to coat the bottom and sides of the skillet). Add the egg mixture and cook over medium-low heat until the sides start to set, about 3 minutes. Bake in the oven until the frittata is firm, 20 to 25 minutes.
Gently run a rubber spatula around the sides of the skillet to loosen the frittata. Place a serving plate over the skillet and carefully flip the pan to release the frittata.