While I’m sure there are probably plenty of reasons that could cause the following error:
Error 29120. Database schema already exists
I’ve encountered this error twice while installing vSphere 5.1 (Build 880146) and thought I’d write a blog post in case someone comes across the same situation as I did and as a reminder for myself in the future. As most would know, the scripts used to set up the RSA database for the SSO service are the ones located in the following directory:
C:\VMware-VIMSetup-all-5.1.0-880471\Single Sign On\DBScripts\SSOServer\schema\mssql
The 2 scripts used to set up the RSA database on an existing database are:
rsaIMSLiteMSSQLSetupTablespaces.sql <— Use to create the actual database
rsaIMSLiteMSSQLSetupUsers.sql <— Use to create the user RSA_USER and RSA_DBA accounts and assign permissions to the database
Scenario #1 – Error is presented while installing the first vCenter SSO instance in the environment:
I ran into this error as I was installing the first vCenter SSO in the environment where I ran the scripts in the following order:
… then proceeded with the SSO install. What I ended up doing to get the install to continue without throwing that error was to manually go into SQL Server Management Studio, delete the RSA database, the users RSA_USER and RSA_DBA, then rerun the scripts in the same order. What appears to have happened is that the installer runs the schema script so it is not necessary to manually run it while setting up the database.
Scenario #2 – Error is presented while installing the second vCenter to join an existing vCenter Single Sign On installation:
The same also goes for installing for a second vCenter node when you want to Join an existing vCenter Single Sign On installation and configure SSO for Multisite:
If you have accidentally executed the schema script, simply go into SQL Server Management Studio to delete the RSA database, the users RSA_USER and RSA_DBA, then rerun the following 2 scripts:
… to create the database and create the accounts with the proper permissions and DO NOT execute rsaIMSLiteMSSQLCreateSchema.sql.