The above will start your node and keep pushing the gas limit towards 9000000000000 as mining continues. Over time, the gas limit would have grown so large that you'll not have the Error: exceeds block gas limit issue anymore.

Of course, closing the node and restarting repeats the process from the initial gas limit of the chain all the way towards 9000000000000 again.

Basically, --targetgaslimit is a very convenient way to increase or decrease the gas limit of a private chain while developing.

The block gaslimit is a property of the network. If you're using a private chain you can fiddle with it in the genesis block. On a real blockchain, this property is periodically voted on by the miners. See Yellow Paper.

gasLimit A scalar value equal to the current chain-wide limit of Gas
expenditure per block. High in our case to avoid being limited by this
threshold during tests. Note: this does not indicate that we should
not pay attention to the Gas consumption of our Contracts.

Helpful answer

Consider restructuring the contract with a mind to reducing the gas requirement. The live Ethereum network has a moveable limit. https://ethstats.net/