Question On Scale-out Deployments And Routine Maintenance
Apr 22, 2008
We have a load-balanced Reporting Services installation that has two front-end machines that run IIS and the reporting services windows service, and a clustered Report Server database server. We have the front ends load balanced behind an F5. If we stop IIS on one of these servers, this traffic is easily and transparently directed to the other server.
My question is what happens if the Windows service on one of these servers is stopped? When Reporting Services is triggering subscription processing is it calling out to all machines it believes are a part of the scale-out deployment? So, if we install windows updates that require a reboot, is there a possibility that some of our subscription processing will be lost, or is RS smart enough to direct processing to the currently active node?
Our current production deployments using merge replication are averaging 4-5 hours - all of which is downtime for our client sites. Hotfix releases require no downtime, I am talking about maintenance releases where articles are changed/added/removed requiring a full snapshot to be taken.Management is not happy about this deployment window lasting so long.I have two questions:1) Our first suggestion is to do a proof of concept of leaving the sites up while the snapshot is being generated and only briefly bringing them down as the snapshot is applied as leaving them down while we smoke test the new application + DB code. Is this easily accomplished of making SQL Server disconnect the taking of the snapshot with the application so we can time this appropriately?2) Our snapshots take ~45minutes and we have 3 snapshots that are typically required. We currently run these serially.A) Is there a way to take/apply these snapshots in parallel?B) We have a SAN on production and have the capability to do SAN replication. I am not too familiar with SAN replication, but can that somehow be used to make these snapshots run in minutes rather then closer to an hour?Any links/references that are informative for dealing with merge replication deployment best practices would be much appreciated as well.Thanks!-John
I am currently designing a SSIS package that will migrate data from Syabse to Sql server. If these packages are to be deployed to file system (as this is one time run for migrating data) or to SSIS catalog or to Sql server.
Also, I have not changed the default protection level value in packages during design time and would like to know if I have to change it while handling the deployment using DTutil (yes, i need to deploy & execute using command line utilities).
Please note that I do not have access to PROD, UAT environments and deployment team will use my BAT file that is expected to deploy and execute the packages.
I am loading in packed data (ie, from an IBM MVS mainframe - packed decimal data). Every 8 bits represents 2 digits of a number and the last 4 bits represents if it is a negative or positive number.
The system uses bcp to load the data into sql server.
The idea is to use a VB routine they wrote to transform the data into Char() based numbers. (And then transform the Char(12) to an Int.)
It is possible (and how) to incorporate a VB sub-routine into a stored procedure?
I'm running vb 2088 express with SQL express. I have limited VB and very limited SQL knowledge.
I have a VB app that inserts candidate data into the SQL table (called front) all works fine.
I now have a second VB app (separate from the above VB app) that runs at the same time; it does some extra work on the candidate data.
My question is when a new candidate is added to the SQL table, how I can get the second VB app to automatically know that a new record has been inserted (and the record key) and then start the VB subroutine.
I'm unsure if I should look at triggers or stored procedures (or something else) for this task.
Any help or pointers to additional resources would be appreciated.
I need to write a stored procedure for seach routine.
ALTER PROCEDURE dbo.Search_Select @FirstName VARCHAR(50) = NULL, @LastName VARCHAR(100) = NULL, @Address VARCHAR(50) = NULL, AS DECLARE @Sql varchar(500) DECLARE @Where varchar(500) SET @Sql = 'SELECT * FROM employee WHERE '
HOW DO I WRITE SET@Where = ???? Taking care of all input parameters. SET @Where = '(@FirstName LIKE ''' + @FirstName + '% AND'')' + '(@LastName LIKE ''' + @LastName + '% AND'')' ......... Is it right?
I'm stumped on how to solve this question so I figured i'd ask the community. As a warning i'm not sure best how to describe my situation so i'll try and give as much detail as I can.
First in table A, I have two columns that already have data in them that are numeric (Col1, Col2). Also, in table A I have two more columns that are going to derive their data based of a complicated data retrieveal routine (Col3, Col4). So my table structure looks something like this:
Code:
Table A Col1 Col2 Col3 Col4 20 20 NULL NULL
(Where Col3, and Col4 are going to be populated based off the routine)
The Data for Col3 and Col4 is in an excel spreadsheet that i'd like to convert into a table for MSSQL. However i'm not sure how to do this because in the spreadsheet there is a lookup routine (that i'm trying to copy to MSSQL code, i'll show that in a minute) that generates its values based off data in the X / Y columns, so something like this:
Code:
_|1__|2___|3__ 0|0 |0 |0 1|1 |15 |25
So when 2 is met, and 1 is met, they would equal '15'. No arithmetic involved, just simply matching up the X / Y and pulling the data.
My question is, how do I create tables out of this, so my lookup routines can get the values as a result of matching X / Y? (2, 1 = 15)???
I have an error trapping routine within a proc that uses cursors. The routine works but if I run the stored proc from Query analyzer more than once it complains the cursor has already been declared and is still open. Should I close and deallocate as part of my error routine?
I have an application that manage an sql srever compact edition database it worked OK until I got the following problem: Only when debuging the application ("Start Debugging" from visual studio). In the first call to an sql server routine I get an exception "Unspecified error [ sqlceqp30.dll ]"
HiWe have need for an SSIS package that would perform routine purging of the growing data in some of the tables used to support notification services. While running Sql in a regular job would seem to suffice, an SSIS package would be more in line with the other processes for the alerts in terms of manageability. The SSIS package should follow the following guidelines:Deletes records from a given number of tables, based on a specified date column for each table and a specified number of days for each table, or other conditions. SystemAlertQueue: 30 days old based on the SubmitTimestamp column. SystemAlertChron: 30 days old based on the EventTimestamp column. SystemAlertNotifChron: 30 days old based on the NotifTimestamp column. WMICheck, related tables (based on WMICheckID, see WMIAlerts database diagram in SqlServer) 15 days old based on BeginCheckDate column. Each table€™s deletion routine should be distinguishable in the package. Does any body know how to do this.. Please help meRegardsDeepu M.I
I have a question that I hope someone can clear up for me. I have come across a number of different suggestions on DB maintenance, for example reindexing with the following script:
USE DatabaseName --Enter the name of the database you want to reindex
DECLARE @TableName varchar(255)
DECLARE TableCursor CURSOR FOR SELECT table_name FROM information_schema.tables WHERE table_type = 'base table'
OPEN TableCursor
FETCH NEXT FROM TableCursor INTO @TableName WHILE @@FETCH_STATUS = 0 BEGIN DBCC DBREINDEX(@TableName,' ',90) FETCH NEXT FROM TableCursor INTO @TableName END
CLOSE TableCursor
DEALLOCATE TableCursor
My question is, doesn't the maintenance plan have this functionality inherent in it when you create the maintenance jobs to reindex? Is there a benefit to scripting things out vs just using the maintenance plan wizard for this sort of thing and any of the items it covers? I came from an Oracle background where this was a no-brainer but I am a bit confused on the choices with SQL Server.
hello, I have several tables that have guids as their primary keys and the tables are related as follows: Table1 - primary key = ServiceNo (Guid), Filter Key = CampaignNo Table2 - primary key = CostBasisNo (Guid), Foreign Key = ServiceNo (from Table1) Table3 - primary key = UserId, Foreign Key = ServiceNo (from table1) Table4 - primary key = SourceServiceNo (Foreign Key from Table1), MemberServiceNo(Foreign Key from Table1) what I need to do is copy all records from Table1 where CampaignNo = @CampaignNo and insert them into table1, this I can do easily but I will generate a new ServiceNo for each one and associated a new CampaigNo which is fine. The problem comes in that I need to also copy the contents of Table2 = Table3 for all ServiceNos that have been copied from Table1 but insert the new Guid that will have been created when copying the rows in Table1 This is further compounded when I need to do the same to Table4 but this time I need to insert the newid's for SourceServiceNo and the related MemberServiceNo which all would have changed. I haven't the first clue where to start with this task, do I need to use temporary tables, cursors? any help gratefully received, even if it's a pointer to the most efficient approach. regards
I use Microsof Visual Studio 2005 to write a c# aplication for my compact device (Dell Axim). I also use Sql Server Compact Edition to handle my database. Everything worked OK but suddenly I get an exception on the first call to fill command of a table in my database (Any table) This exception is happenning only when I debug the application if i run the application without debug everything is workink OK. The exception details are :
System.Data.SqlServerCe.SqlCeException was unhandled Message="Unspecified error [ sqlceqp30.dll ]" HResult=-2147467259 NativeError=25123 Source="SQL Server Compact Edition ADO.NET Data Provider" StackTrace: at System.Data.SqlServerCe.SqlCeConnection.ProcessResults() at System.Data.SqlServerCe.SqlCeConnection.Open() at System.Data.SqlServerCe.SqlCeConnection.Open() at System.Data.Common.DbDataAdapter.QuietOpen() at System.Data.Common.DbDataAdapter.FillInternal() at System.Data.Common.DbDataAdapter.Fill() at System.Data.Common.DbDataAdapter.Fill() at Ness300.NessDBDataSetTableAdapters.UsersTableAdapter.Fill() at Ness300.LoginPanel.DoLogin() at Ness300.LoginPanel.OKButton_Click() at NL300Controls.BmpButton.L300Button_MouseUp() at System.Windows.Forms.Control.OnMouseUp() at System.Windows.Forms.Control.WnProc() at System.Windows.Forms.ContainerControl.WnProc() at System.Windows.Forms.Control._InternalWnProc() at Microsoft.AGL.Forms.EVL.EnterMainLoop() at System.Windows.Forms.Application.Run() at Ness300.Program.Main()
I tried to run the application from the mobile device in order to connect to it doing "Attch to running process" from visual studio. But just running the application on the device with the resgistry value: HKEY_LOCAL_MACHINESOFTWAREMicrosoft.NETCompactFrameworkManaged DebuggerAttachEnabled set to 1 caused the crash when I set it back to 0 everything works fine. It worked for me before I do not know what happened. Is it a security problem ?
Can any one helpi me with this because this problem do not give me a way to debug my application.
I am currently re-writing an overnight index defrag procedure and would like to audit indexes in my database - logging the before defrag action" avg fragmentation value and "after defrag action" frag value in an audit table. Â This will be for all databases on the server. Â I have completed the vast majority of it (cycling though all the databases, detecting which indexes need reorganising or rebuilding and inserting the information into a table) but I cannot get the audit values working properly. Â For example, a sample row in my audit table would look like this:
Hi;I am trying to write a rountine ( below ) that will go into a colum oftext data type ( fae.pmcommnt ) locate the word "to" and replace it.I have the routine below. I get no error messages, but it also seemsto do nothing :).Any clues would be greatly appreciated.ThanksSteve================================================== =============declare @ptrP intSELECT @ptrP = PATINDEX('%to%', pmcommnt)from fae where projid ='00013'declare @ptrPC binary(16)select @ptrPC = TEXTPTR(pmcommnt)from faeif( TEXTVALID ('fae.pmcommnt', @ptrPC ) > 0 )print 'works'print @ptrPUPDATETEXT fae.pmcommnt @ptrPC @ptrP 2 'JJ'select projid, pmcommnt from fae
We have found that it is common for Visual Studio 2005 to crash when editing or running SSIS packages -- from CTP versions through beta versions and including the release version.
Of course we kept hoping that newer releases would become more stable, or at least more robust -- and now I'm hoping there will be a service pack, which might make it more robust?
I am inserting a row in my SSIS_LOG table when my package executes. Here in this table i have column date_dt which is date data type. Once package executes i am getting error like "No authorized routine named "GETDATE" of type "Function" having compatible arguments was found. sqlstate:42884". Note i am using IBMDB2 data provider.
I have been trying to develop an automatic way of programmatically accessing datasources and performing some predefined(-supported) processing on them.
The question I would like to ask you people has to do with numeric fields. What exactly is precision? Is it the maximum length in digits of a field, or is there more to it? What about a "field's scale", what is it and how does it affect a field's value handling?
Can you have different scales on a bar chart. I want to chart sales and quantity. Oracle lets you label the top of the bar chart as money and the bottom as quantity.
I am dividing my sales by one million and quantity by one thousand to make them similar in size on the same chart. I am using the sum of the sales/1000000 as a point label. Is there any way to limit the number of decimal places displayed. Currently it is displaying something like 1.94889312043; 1.95M would be better.
I have set the output columns to decimal and data scale of 2. And have also set the field to be 0.00, and in the csv desination file it always puts .000000, How can I get it to be 0.00?
This is not a real big deal, cause I worked around it.. but I just tried to INCREASE the scale on a decimal column & got an arithmatic overflow error. I can understand why this would occur if trying to decrease the scale, but not increasing it. This is not a computed column.. why does SQL give an overflow error if all it has to do is add a couple of zeros to the end? Yes, I know SQL considers them to be different data types, but this is still confusing me.
I'm considering options for a large scale data warehouse. Even though SQL can theorectially scale to 10 Terabytes plus, in practice - will it be able to do it? Has anyone else actually done it? Or should Oracle be used?
Our topology: Internal corporate network domain utilizing Integrated Windows Authentication between local workstations and the web and database servers. (domain similiar to: http://reports.ourdomain.com)
Machine #1: Windows 2003 Server w/SQL Server 2005 (SP2 and hotfixes applied) running SSRS. Machine #2: Windows 2003 Server w/SSRS only. (pointing to the SQL DB on Machine #1) Machine #3: Windows 2003 Server w/SSRS only. (pointing to the SQL DB on Machine #1) Device #1: Arrowpoint load balancer for Machines #2 & #3 (w/sticky sessions).
We recently added 2 web servers and configured them to load balance the web requests to a seperate SQL Server machine. (the load balancing is done thru an Arrowpoint device not Microsoft NLB)
The installation of reporting services (on Machine #2 & #3) went smoothly and the configuration was a breeze. But we could not access the "http://reports.ourdomain.com/Reports" directory for reporting services on the 2 web server machines. We received the "401.1 - Unauthorized" http error.
Since we were using a domain name to access the report server we made sure to update the <URL> tag in the config files.
We still received the error, so then we added a couple of entries to the HOSTS file on each web server: File location --> C:WINDOWSsystem32driversetcHOSTS
In order for the load balancers to "see" themselves from the domain reference we had to update the HOSTS file on each web server to have the domain name "reports.ourdomain.com" point to the IP Address of the specific web server. (we also added the IP of Machine #1 just to be safe):
Then the web servers were able to authenticate the users using IWA and NTLM and we could access the report servers normally. Even the the scheduled reports were being load balanced and emailed from the web servers which we didn't expect to happen. (pretty cool!)
I hope this helps someone else as it tooks us about 4 days to figure this out.
I am using the statement below to calculate the average scores of the columns. When the result set is returned I would like to have a scale of 2. I am currently returning a scale of 6. What could I do to fix this?
Thanks for you help, John
SELECT ((CONVERT(decimal(4,2),c2_3) + CONVERT(decimal(4,2),c2_15) + CONVERT(decimal(4,2),c2_16) + CONVERT(decimal(4,2),c2_17)) / 4 * 100) AS Score_A FROM dataquestionnaire WHERE confirmation = '10/1/2001-999-1'
We're about to put together a db solution for storing and searching large quantities of documents, with SAS running on top of it. Ultimately this is going to be a data mining project. We're talking about 2 million docs per year, ranging from 1 to possibly hundreds of pages of text per doc. We'll be pulling down roughly 40,000 docs per week, most likely XML, HTML, or SGML format. The user base is actually pretty small - probably no more than 5.
My gut feeling is to go with DB2, but to be fair I wanted to see if SQL 2005 would be up to the task. I'm not very familiar with the current version, but I udnerstand there have been some big improvements in scalability. It is the policy of SAS not to make recommendations. Does this sound like something SQL 2005 could do well, or should I stick with my initial plan and use DB2?
Is there a way to set a MONEY datatype to a scale (decimal places) of 2? The default is set to 4 and I can't seem to find any resources on how to change it.
Do I have to add a check constraint to manually round to 2 decimals?? That seems unneccessary.... but if it is, boo-urns to sql server.
I have a question about Report services scale out deployment.
In the technet document it states that reporting services must be Enterprise edition for scale out deployment functionality, does anyone know if the database engine has to be Enterprise also, or can it be standard edition?
Here is the article excerpt from technet:
The Reporting Services edition must be Enterprise, Developer, or Evaluation. Standard edition does not support a scale-out deployment. You can create a scale-out deployment using a combination of editions as long as the edition supports the scale-out feature.