How to import recovered databases into new TFS 2008 SP1 instance - sql-server-2008

We recently had our TFS 2008 (non-SP1) server crash. I installed a new instance of TFS 2008 SP1 onto Windows 2008 and SQL 2008. The original installation was Windows 2003 and SQL 2005. I had to "slipstream" (i believe is thats what its called) the Service Pack into the actual Setup package. I have a new instance up and running, but do not see an easy way to import the projects fromt he old databases.
Our original machine had a raid failure and I had to use raid reconstructor to recover the data. Our backups were not good apparently so I only have the recovered MDF/LDF's from the raid reconstructor. With alot of DBCC fixing to the databases I have them now online and I can query data.
Is it possible to import the projects, files, history and workitems into the new instance?
I tried replacing the new instance with these databases and followed all the online instructions but i came to a deadend when everything i did said the data access was not compatible. I am assuming because of my new install was SP1 and the original db's were NOT SP1.
Any suggestions?

Because you might have two options to restore your TFS system:
Get into a compatible mode, so roll-back your TFS installation to exclude SP1.
Install a TFS 2010 system, and approach this as a migration from 2008 to 2010. I think the online descriptions for such a migration suggest that the 2010 installation will recognize a 2008 database and start migrating it to 2010.
But ... my gutt feeling says there is something wrong with the database structure or content after restore. What system is actually telling you the data access is not compatible?

Related

How to CLONE/COPY a TFS 2012 Collection to another instance of TFS 2012

Is there a way to copy/clone a TFS Collection in our TFS 2012 production environment to a fresh install of TFS 2012 in our test domain?
I have tried using SQL Management Studio to do backup/restore which does not work.
I have tried using TFS Backup and Restore Wizard which does not recognize the bak file either.
It seems like the only kind of Collection you can attach or restore to TFS 2012 is a collection that came from that exact instance?
This is rather silly. I was expecting to be able to simply use a SQL Management studio and this would be clean and simple. Been here for a while now and ... not so much!
I have tried with the TFS Backup and Restore Wizard as well... the tool only seems to recognize Collections from it's own instance.
Quite frustrating. I am starting to think Collections aren't as portable as one might think at first.
You will need
detach the collection through the TFS Administration Console
back up the database through SSMS and restore it to your new TFS's SQL instance.
re-attach the original collection to your production TFS instance
attach the copied database to your new TFS instance
This does mean that your Prod TFS Collection will be unavailable while you are detached, but the detach and re-attach generally does not take much time depending on the size of your database.

Will MSSQL 2012 database work on MSSQL 2008 server?

I have MsSQL database which is created in MSSQL 2012 SQL server.
On my local machine I have installed MSSQL 2008 SQL server.
Will the 2012 database work in MSSQL 2008?
Also,I have installed MSSQL 2012 SQL server on my local system.Do I need to install MSSQL management studio for 2012 SQL server?
Is it required for user interface?
A full database backup and restore to the new server will not work. SQL server does not allow that to a previous version.
You can however create the schema and load the data in manually through SSIS or BCP.
For SSMS you can connect to a previous version.
Most of the features will work, But features specific to SQL Server 2012 may not work.
You don't need to use Management Studio of SQL Server 2012 in order to browse SSMS-2012 database. You can still continue to use the 2008 R2's IDE.
Whether a 2012 database will work on a 2008R2 server depends.
If you are deploying to your 2008R2 server by running T-SQL scripts then it will only work if
The database objects used in your 2012 database were available in 2008R2
You are not using SQL2012 T-SQL enhancements in your scripts
Your scripts do not depend on system objects or views that were introduced in SQL2012
The local edition of SQL2008R2 is compatible with the SQL2012 edition. For example SQL2008R2 Express will not like SQL2012 Enterprise Edition features.
Ideally you will be using the Developer Edition for your local instance as this is simply a throttled version of Enterprise Edition.
If you are trying to restore to 2008R2 from a 2012 backup then no, it won't work.
Given that SQL Management Studio is a free download why would you stick with the SQL2008R2 version? If you have licenced SQL2012 then you are licenced for the SQL2012 version of SSMS. Why not go the whole hog and install SSMS for SQL2017?
If you do not like SMSS then a paid for alternative might be Aquafold Data Studio. This has the advantage of supporting many database platforms from a single IDE.
it is not neccesarily required to have ssms 2012 . it will work as we have the sql server installed
Just reiterating PingPongOng - a backup and restore wont work as you can't install a newer database onto an older server. You can however go the other way, so a 2008 database could migrate to a 2012 server.
As others have said, you need to create scripts.
Right click on the 2012 database, and on the menu that appears -> Tasks -> Generate Scripts and follow the wizard that appears. This will allow you to create just the schema or schema and data (if required).

SQL Server version mismatch

I'm trying to attach a SQL Server .mdf to my Management Studio 2014, but I get the error:
Attach database failed for Server '...\SQLINSTANCE'. (Microsoft.SqlServer.Smo)
Additional information:
An exception occured while executing a Transact-SQL statement or batch.
(Microfost.SqlServer.ConnectionInfo)
The database 'DatabaseName' cannot be opened because it is version 706. This server supports version 663 or earlier. A downgrade path is not supported.
Could not open new database 'DatabaseName'. CREATE DATABASE is aborted. (Microsoft SQL Server, Error: 948)
The .mdf was created on SQL Server 2012 (which presumably is represented as 'version 706' in the error message).
OK, so I need to upgrade my DB engine to 2012 on my home PC. That means installing 2012 Express from https://www.microsoft.com/en-gb/download/details.aspx?id=29062
A couple of questions though before I do that. By installing 2012, would it be added to Management Studio 2014 automatically? Would I then have both 2008 & 2012 as options for new databases I might want to create, or would 2012 simply replace 2008?
On the download page, it says the supported OSs are "Windows 7, Windows Server 2008 R2, Windows Server 2008 Service Pack 2, Windows Vista Service Pack 2". But I'm using Windows 10. Is this just a case of MS not updating the page or does 2012 really have a problem with Windows 10?
EDIT: It's true that this question is similar to ones previously asked on SO (such as The database cannot be opened because it is version 706), but here I'm not contemplating rolling back the 2012 version of the DB to 2008, but issues pertaining to installing 2012 on my home PC.
So, your SQL Server version is 2008 - you have 2014 management studio and you need to use a database from a server version 2012.
If that is the case; then I hope some of the following will help:
Windows 10 can run SQL Server 2012 fine.
The documentation might just not be updated, but I've not personally seen any issues on multiple instances.
Management Studio 2014 can connect to SQL Server version 2012 as well. You don't need to install it again.
Unless you wish to remove SQL Server 2008, you'll need to install 2012 as a new instance, so you basically have two SQL Servers running. This however, will have affect on how you connect to the databases.
Check out, for example: https://msdn.microsoft.com/en-us/library/ms143531.aspx for more information
So instead of having multiple instances, consider whether you'll still need 2008, so it might be removed if you don't need it at all.
Also - consider whether it might be worth it to upgrade your local instance to newer version - 2014 for example. However this of course might give you the same problem in reverse in the future, if you ever need to make a database on 2014 instance and move it to a 2012 instance.
It all depends on the actual requirements, set-up and development models. Basically because you say it's your home computer, I'd think the newest version might just be the best approach, as you're less likely to use that version as a "creator" rather than a development version.

Provider string setting in SSIS config file on SQL Server 2008 R2

I've inherited an SQL Server 2008 R2 environment running on Windows Server 2003. I do not know if it was upgraded from SQL Server 2005 or if it was a freshly built out system. Due to issues with not being able to virutalize the physical server, it was decided to build a new, identical environment on a virtual server an migrate the databases and such to the new virtual server. We did decide to make one upgrade and that was to put Windows Server 2012 on the new server. We kept the instance name and server name the same (these were modified after we took the old physical server offline). I kept the file paths and folder names the same as well on the new server. I migrated the SSIS packages from the old server to the new server using the Export option in Integration Services (right click on the package>Export Package). The packages were stored in MSDB on the old server. I copied the config files from the old server to the new server and kept them in the same file location as they were stored on the old server. Ok, so here's my problem. When I started all of the SQL Agent jobs, several of the ones that used SSIS packages failed. After researching the issue, I
discovered it was due to the SQL provider string (Provider=SQLNCLI) was set to Provider=SQLNCLI.1, which is for SQL Server 2005. Once I changed this to Provider=SQLNCLI10, all was good. A caveat to this is that other packages that are using Provider=SQLNCLI.1 and are working just fine. The question that is eating at me is this, why were these packages running successfully on the old server which was running the same version of SQL Server when SQLNCLI.1 is supposed to be a setting used in SQL 2005 AND why are some packages working successfully still using SQLNCLI.1 and other had to be changed??
the execute of some packages depends by the structure of this file.
the are some task or some expression or some parameters that have been redefined in the new releases.

Visual Studio 2008 to MySQL connectivity

I am new to the Visual Studio.
I have MS SQL Server 2005 and 2008 preinstalled in my Windows Vista computer.
Are they real servers?
Or just some add-on for their server and I need to buy a server version of Windows for it?
If not,
How to run them?
How to add a database, etc.?
And basically how to connect Visual Studio 2008 to MS SQL Server 2008/2005 and MySQL?
I assume you mean that you have SQL Server Express installed when you say "ms sql server 2005 and 2008 preinstalled in my vista ". If not, you can download it for free; it is a lightweight version of SQL Server that has a few limitations (2GB max database size, max 10 connections, etc) but otherwise works more or less like the real thing and is great for development and/or learning.
Visual Studio should have a "servers" tab (by default on the right hand side) and there is a "Data Connections" node on it. Right-click on it to add your instance(s) of SQL Server. This will let you browse the tables/views and create new ones and will also let you create LINQ-to-SQL classes. If you want to access the database in code in other ways, you will need to read up on the System.Data.SqlClient namespace.