The following are my recommended steps for setting up a content delivery server in Sitecore 6.6.
First, download the Sitecore Scaling Guide and the SwitchMasterToWeb.config from this SDN Link.
Once you have followed the steps in the scaling guide, you will get the following error:
ERROR Failed to perform Visit End actions
Message: Could not find configuration node: databases/database[@id='master']
at Sitecore.Diagnostics.Assert.IsTrue(Boolean condition, String message)
at Sitecore.Configuration.Factory.GetConfigNode(String xpath, Boolean assert)
at Sitecore.Configuration.Factory.CreateObject(String configPath, String parameters, Boolean assert)
at Sitecore.Configuration.Factory.GetDatabase(String name)
at Sitecore.Analytics.Pipelines.VisitEnd.RunRules.Process(VisitEndArgs endArgs)
at (Object , Object )
at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
at Sitecore.Analytics.VisitEndWorker.Helper.Process(Action visitEndAction)
To fix this, you'll need to create a new file named Sitecore.Analytics.DefaultDefinitionDatabase.config with the following added to it:
Note: this setting is currently not located in any file, it's hard-coded into the Analytics DLL and the default value for this setting is "master", therefore, you MUST create a new config file to override this setting.
If you still get the error, there may be more references to master in the config files that were added after the standard install. Two examples are the News Mover module and Advanced Database Crawler. The solution is to find all references to these master databases and patch them to replace with web or remove the setting entirely if it is not needed in the context of a delivery server.