locked
SQL Server Conversion from SQL Server 2005 to SQL Server 2012 RRS feed

  • Question

  • Hello,

    I am in the process of setting up a new 2012 SQL Server. I am moving the databases, etc… from a SQL Server 2000 machine. To do this I first moved everything from the SQL Server 2000 to SQL Server 2005 and then over to the 2012 SQL Server. The 2000 SQL server has old DTS packages which were converted to SSIS packages on the 2005 SQL Server. The processes performed by SSIS are simply to pick up a source file, convert some data and then populate a SQL table.

    After moving (copying) all the databases, logins, SQL jobs and SSIS packages, etc… from the 2005 SQL Server to the 2012 SQL Server everything seemed to be working properly (at least at first). On 2012 I see everything in SSMS. I am able to run queries and compare the results with the 2005 to verify the data is the same. I get matching row counts, matching totals, etc… so I know that the SSIS packages on the 2012 SQL Server are picking the correct source files and populating the correct table(s).

    I have two issues. The first Issue is this; I can run the SSIS packages on the 2012 SQL Server manually using SSDT and they all run successfully. They all use the same SQL user/Login which I will call MyUser for the purpose of this post. MyUser has Server Roles of bulkadmin, public, securityadmin, serveradmin and sysadmin. It has the Grant privilege for Connect SQL within Securables and a status of Grant permission to database engine and Login enabled. As I mentioned my SSIS packages run fine when executed manually. However, I have SQL jobs that are scheduled to run these packages automatically. When I run the job(s) manually the job will start and will show as success in the Status field but then will show as In progress and then just hang there. There is no success or failure message; it is as if the job is stuck in a loop or something like that. The SQL jobs all have the same owner as MyUser. I have done a lot of reading online and there is information out there but anything I have tried has not worked. Why won’t the SQL job complete successfully and execute the SSIS packages? Is it possible MyUser does not have proper privileges for the SQL jobs on the 2012 SQL Server?

    The second issue is this; I see that the MyUser is not mapped to all of the databases on the 2012 machine but is mapped to all databases on the 2005 machine. I don’t know why all the mappings did not come over to the new 2012 SQL Server. So I thought that maybe that was my issue so I tried mapping MyUser to all of the databases on the 2012 SQL Server similar to the 2005 machine. When I try to map MyUser to any DB within the login properties I receive an error message stating “User, group, or role 'MyUser' already exists in the current database. (.Net SqlClient Data Provider)”.

    MyUser is a SQL login (not Active Directory) and I created the login using the following command:

    ---- Login: MyUser

    --CREATE LOGIN [MyUser] WITH PASSWORD = 0x0100092F1B61594FD2E0873D85F4361413962A876C1902A54581 HASHED, SID = 0x1D571A640FD9E84B8DAA43EF8C95B127, DEFAULT_DATABASE = [MyDataBase], CHECK_POLICY = OFF, CHECK_EXPIRATION = OFF

    I created this command by running a stored procedure I found on a Microsoft site named sp_help_revlogin on the source server (SQL 2005) and then running the query created by the sp on the destination server (SQL 2012). I thought this command would work perfectly since it contains the original password and SID. However I’m thinking the password and SID might be different. I’m assuming this could be part of my issue.

    I am not a seasoned DBA but have been assigned this project of getting the data onto the 2012 machine so that we can decommission the old machine. The old machine is a Windows 2000 Server running SQL Server 2000. As I mentioned I had to move everything to a 2005 SQL Server before moving to 2012. The new machine is a Windows 2012 Server x64 running SQL Server 2012 Developer Edition. The 2012 SQL Server is 64 bit and the 2005 SQL Server Standard Edition is 32 bit. Could that also be part of my problem(s).

    Please let me know if I need to provide more information.

    I apologize for the long post and I hope I explained things clearly. Any help with resolving my issues or pointing me in the right direction will be greatly appreciated.

    Thank you,

    Dave


    David Young

    Tuesday, December 22, 2015 4:26 PM

Answers

  • Hi Dave,

    Firstly, regarding to the issue that SQL agent jobs running SSIS packages don’t execute successfully, please post the question in the SQL Server Integration Services forum. It is appropriate and more experts will assist you.

    Secondly, regarding to the error “User, group, or role 'MyUser' already exists in the current database”, it seems that you encounter the orphaned user issue, please use the following T-SQL statements to confirm this.

    Query1: use [yourdatabase]
    EXEC sp_change_users_login 'Report'

    Query2: use [yourdatabase]
    select name,sid from sys.database_principals where name = 'MyUser';

    Query3: select name,sid from master.sys.server_principals where name = 'MyUser';

    In your scenario, I assume that the second query will return the same SID with the 'MyUser' record returned by the first query, however, the third query will return a different SID. If that is the case, please follow the steps in the following blogs to fix the issue.

    Fixing orphaned database users in 2005 to 2012 – T-SQL Tuesday #025
    Understanding and dealing with orphaned users in a SQL Server database

    Thanks,
    Lydia Zhang


    Lydia Zhang
    TechNet Community Support


    Friday, December 25, 2015 3:03 AM

All replies

  • Why won’t the SQL job complete successfully and execute the SSIS packages? Is it possible MyUser does not have proper privileges for the SQL jobs on the 2012 SQL Server?

          use proxy account..

    https://www.mssqltips.com/sqlservertip/2163/running-a-ssis-package-from-sql-server-agent-using-a-proxy-account/

    User, group, or role 'MyUser' already exists in the current database. (.Net SqlClient Data Provider)”.==>

    Go database ==> user select Myuser---> delete user ...

    then add at instance level.


    Please click Mark As Answer if my post helped.

    Tuesday, December 22, 2015 4:33 PM
  • Hi Dave,

    Firstly, regarding to the issue that SQL agent jobs running SSIS packages don’t execute successfully, please post the question in the SQL Server Integration Services forum. It is appropriate and more experts will assist you.

    Secondly, regarding to the error “User, group, or role 'MyUser' already exists in the current database”, it seems that you encounter the orphaned user issue, please use the following T-SQL statements to confirm this.

    Query1: use [yourdatabase]
    EXEC sp_change_users_login 'Report'

    Query2: use [yourdatabase]
    select name,sid from sys.database_principals where name = 'MyUser';

    Query3: select name,sid from master.sys.server_principals where name = 'MyUser';

    In your scenario, I assume that the second query will return the same SID with the 'MyUser' record returned by the first query, however, the third query will return a different SID. If that is the case, please follow the steps in the following blogs to fix the issue.

    Fixing orphaned database users in 2005 to 2012 – T-SQL Tuesday #025
    Understanding and dealing with orphaned users in a SQL Server database

    Thanks,
    Lydia Zhang


    Lydia Zhang
    TechNet Community Support


    Friday, December 25, 2015 3:03 AM