cancel
Showing results for 
Search instead for 
Did you mean: 

Need help with EVSQLServerMove.ps1 script - SQL database move

Matthew_J
Level 4

I'm in the process of planning to move our EV 10 databases from our old SQL 2005 server to our SQL 2012 server.  I'm following this tech note for steps: https://www.veritas.com/support/en_US/article.TECH35744.  I want to utilize the referenced PowerShell script located here: https://www.veritas.com/support/en_US/article.TECH214373 to make the changes on the vault server once the database has been moved by our SQL team, but I'm having trouble with the syntax and want to make sure I understand it fully before I am halfway into the process and can't make the script work based on my assumptions.

The tech note page states that I should use the FQDN of the source and destination SQL servers with the -SourceSQLServerName and -DestinationSQLServerName parameters, and the example screenshot shows "MyOldSQL.MyDomain.local" and "MyNewSql.MyDomain.local" specified with no quotes. 

In our environment, we have the vault databases in their own instances.  For example, the vault databases are in MyOldSQL\Vault and the new databases will end up in MyNewSQL\Vault.  Do I need to specify the instance in the parameters for this script, and should it be enclosed in quotes, like so:

.\EVSQLServerMove.ps1 -SourceSQLServerName "MyOldSQL\Vault" -DestinationSQLServerName "MyNewSQL\Vault"

or am I totally off base here?  I looked at the script itself and do not see any better documentation about the syntax inside either.  Like I said, I don't have a way to test this before hand, and I would like to run it correctly the first time and not take a guess during this important part of the process, so I want to check with the community and see if anyone has any input here.  Has anyone moved the databases using this script when they are in a non-default instance, and how did you specify the instance in the parameters for the script? 

Thanks all!

5 REPLIES 5

AndrewB
Moderator
Moderator
Partner    VIP    Accredited

i've never used that script before. from what i can tell, it's probably not worth the hassle

wilbur-wetterqu
Level 3
Partner Accredited

Hello Matthew,
i have tried this in my TestLab. The Script works well for environments with eqal präfix naming convention.

Do the following Steps:

- Install NEW DB Server, with equal Settings.
- Export Alias Names like "Directory Servive Computer".
- Set the SQL permission on the Destination SQL Server.
- Activate "MSSQLServer" protocols.

Import like this:
.\EVSQLServerMove.ps1 -s SRV-HQ1-SQL1.domain.labs -d SRV-HQ2-SQL2.domain.labs -o c:\temp

The Script will only run, if you have set the right SQL permissions else you get some errors:
- Ausnahme beim Aufrufen von "Fill"... Databases not found!

Export from my log:
Enterprise Vault SQL Server Updater

10:34:08.882          Log started 24.05.2016 10:34:08
10:34:08.882          Creating SQL objects
10:34:08.882          Looking for EV databases on SRV-HQ2-SS1.archive.labs
10:34:08.882          Find-EVDatabases:Entry
10:34:08.882          Find-EVDatabases:Query: SELECT * FROM EnterpriseVaultDirectory.sys.databases
10:34:08.882          Find-EVDatabases:SQL connection string: Server=SRV-HQ2-SS1.archive.labs;database=EnterpriseVaultDirectory;trusted_connection=True
10:34:08.898          Find-EVDatabases:8 total databases present on SRV-HQ2-SS1.archive.labs
10:34:08.898          Find-EVDatabases:Filtering for EV databases
10:34:08.898          Find-EVDatabases:4 EV databases present on SRV-HQ2-SS1.archive.labs
10:34:08.898          Find-EVDatabases:Exit
10:34:08.898          Looking for EV databases on SRV-HQ2-SS2.archive.labs
10:34:08.898          Find-EVDatabases:Entry
10:34:08.898          Find-EVDatabases:Query: SELECT * FROM EnterpriseVaultDirectory.sys.databases
10:34:08.898          Find-EVDatabases:SQL connection string: Server=SRV-HQ2-SS2.archive.labs;database=EnterpriseVaultDirectory;trusted_connection=True
10:34:18.429          Find-EVDatabases:8 total databases present on SRV-HQ2-SS2.archive.labs
10:34:18.429          Find-EVDatabases:Filtering for EV databases
10:34:18.429          Find-EVDatabases:4 EV databases present on SRV-HQ2-SS2.archive.labs
10:34:18.429          Find-EVDatabases:Exit
10:34:19.460          Comparing results of database lookup
10:34:19.460          Displaying table of results in console
10:34:19.460          4 EV database(s) found on source (SRV-HQ2-SS1.archive.labs):
10:34:19.460          EnterpriseVaultDirectory
10:34:19.460          EnterpriseVaultMonitoring
10:34:19.476          EVVSGEVStorage1_1_1
10:34:19.476          EVVSVaultStore1_1
10:34:19.476          4 EV database(s) found on destination (SRV-HQ2-SS2.archive.labs):
10:34:19.476          EnterpriseVaultDirectory
10:34:19.476          EnterpriseVaultMonitoring
10:34:19.476          EVVSGEVStorage1_1_1
10:34:19.476          EVVSVaultStore1_1
10:34:19.476          4 EV databases found on both (i.e., successfully moved to new SQL server):
10:34:19.476          EnterpriseVaultDirectory
10:34:19.476          EnterpriseVaultMonitoring
10:34:19.476          EVVSGEVStorage1_1_1
10:34:19.476          EVVSVaultStore1_1
10:34:19.476          Only databases that were found on both source and destination servers will have their pointers reassigned
10:34:19.476          Checking that EV services have been stopped
10:35:23.226          Formatting list of DB names for use in SQL statement
10:35:23.226          Calling function Update-FPDB
10:35:23.241          Update-FPDB:Entry
10:35:23.241          Update-FPDB:Query: UPDATE dbo.FingerprintCatalogueDatabase SET SQLServer = 'SRV-HQ2-SS2.archive.labs' WHERE DatabaseName IN ('EnterpriseVaultDirectory','EnterpriseVaultMonitoring','EVVSGEVStorage1_1_1','EVVSVaultStore1_1')
10:35:23.241          Update-FPDB:SQL connection string: Server=SRV-HQ2-SS2.archive.labs;database=EnterpriseVaultDirectory;trusted_connection=True
10:35:23.241          Update-FPDB:Opening SQL connection
10:35:23.241          Update-FPDB:Executing query
10:35:23.257          Update-FPDB:Query returned 1 row(s)
10:35:23.257          Update-FPDB:Updated 1 Fingerprint Database location(s)
10:35:23.257          Update-FPDB:Closing SQL connection
10:35:23.257          Update-FPDB:Exit
10:35:23.273          Calling function Update-MonDB
10:35:23.273          Update-MonDB:Entry
10:35:23.273          Update-MonDB:Query: UPDATE dbo.MonitoringSettings SET SQLServer = 'SRV-HQ2-SS2.archive.labs' WHERE DatabaseName IN ('EnterpriseVaultDirectory','EnterpriseVaultMonitoring','EVVSGEVStorage1_1_1','EVVSVaultStore1_1')
10:35:23.273          Update-MonDB:SQL connection string: Server=SRV-HQ2-SS2.archive.labs;database=EnterpriseVaultDirectory;trusted_connection=True
10:35:23.273          Update-MonDB:Opening SQL connection
10:35:23.273          Update-MonDB:Executing query
10:35:23.288          Update-MonDB:Query returned 1 row(s)
10:35:23.288          Update-MonDB:Updated 1 Monitoring Database location(s)
10:35:23.288          Update-MonDB:Closing SQL connection
10:35:23.288          Update-MonDB:Exit
10:35:23.288          Calling function Update-DirectoryReg
10:35:23.288          Update-DirectoryReg:Entry
10:35:23.288          Update-DirectoryReg:Testing whether a Directory Database was among those moved
10:35:23.304          Update-DirectoryReg:Yes we have to update the Directory Database location
10:35:23.304          Update-DirectoryReg:CPU detected as 64-bit so the registry path is HKLM:\Software\Wow6432Node\KVS\Enterprise Vault\Directory\DirectoryService
10:35:23.320          Update-DirectoryReg:Updating 'SQLServer Name' value to SRV-HQ2-SS2.archive.labs
10:35:23.320          Update-DirectoryReg:Directory Database location updated in EV server Registry
10:35:23.320          Update-DirectoryReg:Exit
10:35:23.320          Calling function Update-VSDB
10:35:23.335          Update-VSDB:Entry
10:35:23.335          Update-VSDB:Query: UPDATE dbo.VaultStoreEntry SET SQLServer = 'SRV-HQ2-SS2.archive.labs' WHERE DatabaseName IN ('EnterpriseVaultDirectory','EnterpriseVaultMonitoring','EVVSGEVStorage1_1_1','EVVSVaultStore1_1')
10:35:23.335          Update-VSDB:SQL connection string: Server=SRV-HQ2-SS2.archive.labs;database=EnterpriseVaultDirectory;trusted_connection=True
10:35:23.335          Update-VSDB:Opening SQL connection
10:35:23.335          Update-VSDB:Executing query
10:35:23.367          Update-VSDB:Query returned 1 row(s)
10:35:23.367          Update-VSDB:Updated 1 Vault Store Database location(s)
10:35:23.367          Update-VSDB:Closing SQL connection
10:35:23.382          Update-VSDB:Exit
10:35:23.382          Calling function Update-AuditDB
10:35:23.382          Update-AuditDB:Entry
10:35:23.382          Update-AuditDB:Testing whether an Audit Database was among those moved
10:35:23.382          Update-AuditDB:There was no moved Audit Database to update
10:35:23.382          Update-AuditDB:Exit
10:35:23.382          All updates complete
10:35:23.382          Total number of databases updated: 4
10:35:23.398          Exiting script

Total runtime: 00:01:14.5157863
 

Regards,

WW

Matthew_J
Level 4

wilbur-wetterquarz, that doesn't really answer my question.  I'm trying to figure out if I need to put quotes "" around the server name if I have vault installed in an instance.... since I'm worried about the \ character messing up the syntax.

For the rest of the community... am I off base with thinking that the Veritas provided script is the easiest/best way to accomplish the changes?  I'm now leaning towards following the manual steps in the DB move article, since it appears nobody uses the script at all, or maybe if they do they haven't ran into the specific scenario that I'm trying to sort out.  Namely: what syntax do I use to specify the database server when the vault database is in an instance other than the default.  Our vault databases are in an instance called "SQLDBServer\Vault".

 

Matthew, how'd it go for you? I too have a seperate EV instance and wonder how to define the instance in the script command.

VirgilDobos
Moderator
Moderator
Partner    VIP    Accredited Certified
Hi there,

Are your EV databases split across 2 SQL servers? If so, you will simply have to run the script 2 times.
--Virgil