Forum Discussion

Matthew_J's avatar
Matthew_J
Level 4
10 years ago

Need help with EVSQLServerMove.ps1 script - SQL database move

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

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

  • 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

  • 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".

     

    • cpremoe's avatar
      cpremoe
      Level 2

      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's avatar
        VirgilDobos
        Moderator
        Hi there,

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