We are going to use different SQL servers for SSIS and database. Currently both are in same servers. We have a package which calls another package inside that. But I am not able to select the secondary package location from SQL server option in the editor as the MSDB is in SSIS server not in database server. Should the MSDB in database server for me to select it or can we use SSIS server to deploy MSDB?
Thanks
Ajeesh
So first, create a connection to your SSIS Server in your package. Let's name it SSISServer.
Create your Execute Package task.
In the editor, under the Package Tab, under ReferenceType, choose External Reference.
Under Location, choose SQL Server.
Under Connection, choose SSISServer.
Under PackageName, browse to your package.
This is how you execute packages on different servers from the package that is running.
Related
I have SSIS packages in SSIS catalog on SQL Server, Serv1. The packages, while executing, establish connection to SQL Server, Serv2. And they fail while acquiring connection.
I know a little bit about linked server that is to run query from one server on another the latter one has to be a linked server to former one. The above scenatrio looks the same but i didn't find any information related to it. Do i have to add Serv2 as Linked Server for Serv1?
No. Linked server scenario is used when you need to access DB from the outer server inside SQL query run on local server.
SSIS packages are built with goal that it access some DB server, possibly a remote one, fetch data from it, transform and store results somewhere - in files, DB etc. Accessing a remote SQL DB is a normal scenario.
Moreover, using Linked server in SSIS package is a bad practice. You move control of DB access from SSIS catalogue to DB server, in case of any problems - it is more difficult to trace and investigate.
In your case - SSIS packages in SSIS catalogue - check in package execution log which connection string is used to connect to the remote server. Is it an integrated authentication? Does the account under which SSIS package is executed have an access to the DB? If using SQL auth - are login and password valid?
I have created one project for SSIS and deployed that on sql server 2014. When I am running packages from sql server data tool its running fine and performing all operations, but when I am running from catlog procs [SSISDB].[CATALOG].[Create_execution] its shows run successful but I can't see any data into my staging tables. I have used configuration tables to configure connection and files path.
Any idea.
PLease check the user privileges (file system, etc.) - if you call the procedures with another user than you execute the package from within Data Tools, this might be the reason.
I'm attempting to modify an existing SSIS package generated by the Import/Export Wizard (64-bit) by restamping the query into the package. It calls a database on the same LAN as the calling SQL Server, but is run from a 2nd SQL server, so that the package can be called on demand for loading data from a stored procedure as part of a server job on the calling server.
Config works like this:
On server where platform data resides (MS SQL Server 2008 R2)
Database table has subset of fields from our platform, loaded and defined in the designer.
There exists a view, which calls the table and imports its data to the view
Stored Procedure is a complicated union query with a bunch of left outer joins.
On calling server (MS SQL Server 2008 R2)
Import Export wizard is used to generate SSIS package which sql server job can call on demand and periodically to load the data into the appropriate table and thus, load the view.
SQL Server job configured to use the package created/modified to load said data.
SSIS package does this (from calling server):
Source data: dbservername, SQL server authentication
Destination data: dbservername (same as above), SQL server authentication
Query: Execute _NameOfMyStoredProcedure
Note: existing package is encrypted.
When it gets to this point, it sometimes, but does not always timeout, and has not in the past, until now. The change is the addition of some columns to the SP's query that loads the data.
My Question: is there a way [ reg entry, setting value on the database, etc ] to modify the timeout value [ appears to be either 15 or 30 sec ] so that the Import/Export wizard will allow the parsing of the query so that the SSIS package can be parsed?
or alternately,
Is there a way to modify the query in design of the SSIS package without going through the import/export wizard? Note: the calling server does not have the BI studio installed.
I would like to this so I can deploy SSIS packages through a normal development progression Development > UAT > Production. The application I am using has the each environments database on different server and uses a different name database in each environment.
I think you'll have to choose one of the 'package configuration' options.
Go to the SSIS > Package Configurations... menu to start the wizard. From there you will start by adding a new configuration. Next, you will choose the type from these options: XML file, Environment variable, Registry Entry, parent package variable or SQL server.
From here you can choose your variables, connections, etc. to save in whatever configuration type you choose. You will be able to save down to the connection string level for each connection manager if you want.
My example:
I have used the SQL server option. You must have a connection manager to use when setting this up to create and read the configuration table. I set up a connection manager as 'localhost' so that each server it is installed in, it will read the configuration table from the local database.
All the configurations are loaded from that db table when the package runs.
Whichever method you choose, you will have to deploy something to each server along with your dtsx package (an xml file, db table, etc.) but at least you won't have to build multiple versions of the package.
Scenario :
SSIS in production uses production connection and Instance name of SQL Server.
Once I open the same SSIS on my machine, the connection break since we do not have access to prod.
I can obviously change the connection and use my local dev, but that would mean that whenever I deploy to production I would have to ask my Network guys to open the SSIS and change the connections back from my local to Production, that too for EACH SQL task.
Is there a way for me to mimic production connection on my dev so that I would not have to touch the connection strings from prod and also be able to do my debugging / modifications and upload it back to production?
You need to make use of SSIS Package Configurations that will allow you to store all the configurable values in one of the following options:
XML configuration file
Environment variable
Registry entry
Parent package variable
SQL Server table
Read more about package configuration on MSDN, below documentation link refers to SSIS 2012.
Package Configurations
I prefer SQL Server table because it gives the flexibility to easily update the values using T-SQL queries. When you develop the package, you will select the connection managers and variables that you think might require different values across environments. Once you create package configuration, you can move the package and simply modify the values on the package configuration XML file or SQL Server table without having to touch the package (.dtsx)
Refer the answer to the below SO question for detailed steps on how to make use of package configurations:
Run SSIS Package with 2 Different Configurations