Rahman Agoro, the frontline SQL DBA

Just another WordPress.com weblog

Archive for the ‘SQL 2008’ Category

Move System model database in SQL 2008 R2 Failover Cluster

Posted by rahmanagoro on April 12, 2011


Move System database on a SQL 2008 R2 Failover Cluster

In order to do this, run the following steps

  • Modify the location of the system databases
  • Open up the failover cluster manager.
  • Run the code below with the SQL resource online

Alter database msdb modify file (name=msdbdata,filename='F:\Database\msdbdata.mdf')

Alter database model modify file (name=modellog,filename='L:\Logs\modellog.ldf')

  • Bring the SQL resource offline

  • Confirmation from the failover cluser manager

  • The resource has now been taken offline


  • Now move the files onto the new destination, i.e the location of where the system data and log file should be.
  • Bring the SQL service and sQL agent resource online.
Advertisements

Posted in Clustering, Management, SQL 2008, SQL Administration, SQL High Availability, Tips | Leave a Comment »

SQL Failover Clustering Requirements

Posted by rahmanagoro on April 12, 2011


When installing a SQL failover cluster, its a complicated process and we DBA’s are always looking for ways to make our lives easier. Also as a SQL failover installation would require cooperation between the following groups of people.

  1. Database Administrators
  2. Windows Administrators
  3. Network Administrators
  4. Storage Administrators.

I find that creating a small little spreadsheet and sending it around for everyone to fill in their details or perhaps state your requirements often helps and avoids delays and ambiguity.

I have put together a spreadsheet with same information as it might be of use to others.

SQL Failover Cluster_Requirements_v1.0

Posted in Clustering, Management, SQL 2008, SQL Administration, SQL High Availability | Leave a Comment »

Monitoring SQL replication using the tracer tokens TSQL dynamically

Posted by rahmanagoro on March 17, 2011


I recently wanted to monitor the latency between publisher/subscriber within a SQL transactional replication setup. This can be done quite easily within the GUI, but I wanted to automate the process and make it run as a frequent check on the database.

I have written a script and stored procedure as to how I managed to achieve this.

 

SET QUOTED_IDENTIFIER ON
GO

/*
Author:  Rahman Agoro
Description This stored procedure will insert tracer tokens and monitor SQL replication
Date  14/02/2011
USE    declare @alarm int exec spCheckReplicationLatency '00:02:00', '%SUBSCRIBER%',@alarm output select @alarm */
CREATE procedure [dbo].[spCheckReplicationLatency] (@DelayLength char(8)= '00:00:00', @Exclusion varchar(100),@Alarm int output )
as
Begin
SET NOCOUNT ON

DECLARE @LoopStart int
DECLARE @LoopEnd int
DECLARE @Database varchar(50)
DECLARE @Publication varchar(100)
DECLARE @SQL NVARCHAR(4000)
DECLARE @ReplicationIssue int
DECLARE @Error int
DECLARE @Seperator char(10)
DECLARE @Message varchar(1000)
DECLARE @operatorEmail varchar(100)

SET @Seperator = char(9)
--Check to see if the distribution database is present.
IF DB_ID('distribution') is null
RAISERROR ('distribution database not present',16,1)
IF OBJECT_ID('tempdb..##replicationpublicationlatency') is not null
drop table ##replicationpublicationlatency

create table ##replicationpublicationlatency
(
 pubID   int identity(1,1),
 databasename varchar(50),
 publication varchar(100)
)

insert into ##replicationpublicationlatency (databasename,publication)
select publisher_db,publication
from distribution..MSpublications

SET @LoopStart = 1
SET @LoopEnd = (SELECT COUNT(*) from ##replicationpublicationlatency)

WHILE (@LoopStart <= @LoopEnd)
BEGIN

 select @Database = databasename, @Publication = publication from ##replicationpublicationlatency
 WHERE pubID = @LoopStart

 SET @SQL = ''
 SET @SQL = @SQL + CHAR(10) + 'USE ' + @Database + '  exec sp_posttracertoken ' + '''' + @Publication + '''' + char(10) + char(13)

 SET @LoopStart = @LoopStart + 1
 exec master..sp_executesql @SQL
 
END
DECLARE @ReturnInfo varchar(255)
IF ISDATE('2000-01-01 ' + @DelayLength + '.000') = 0
    BEGIN
        SELECT @ReturnInfo = 'Invalid time ' + @DelayLength
        + ',hh:mm:ss, submitted.';
        -- This PRINT statement is for testing, not use in production.
        PRINT @ReturnInfo
        GOTO ErrorHandler
    END
    WAITFOR DELAY @DelayLength

IF OBJECT_ID('tempdb..##TokenHistory') IS NOT NULL
DROP TABLE ##TokenHistory

;with CTE_Latest_Tracer_Token_History(publication,publication_id,agent_id,agent_name,publisher_commit,distributor_commit,subscriber_commit,publisher_distributor,distributor_subscriber,Total_latency, RANKING)
as
(
SELECT a.publication,publication_id, agent_id, a.name,
       t.publisher_commit, t.distributor_commit, h.subscriber_commit,datediff(ss,t.publisher_commit,t.distributor_commit )publisher_distributor,
       datediff(ss,t.distributor_commit, h.subscriber_commit)distributor_subscriber,datediff(ss,t.publisher_commit,t.distributor_commit) + datediff(ss,t.distributor_commit, h.subscriber_commit) Total_latency,
       ROW_NUMBER() OVER (PARTITION BY publication_id, agent_id ,a.name ORDER BY t.publisher_commit DESC) AS RANKING

FROM distribution..MStracer_tokens t
JOIN distribution..MStracer_history h
ON t.tracer_id = h.parent_tracer_id
  JOIN distribution..MSdistribution_agents a
on a.id = agent_id
and a.name not like @Exclusion
)
select *
into ##TokenHistory
from CTE_Latest_Tracer_Token_History
where RANKING in (1)
order by publication

SET @ReplicationIssue = (select count(*) from ##TokenHistory where Total_latency is null)
SET @Message = 'Replication Latency Report ' + @@SERVERNAME
 if ISNULL(@ReplicationIssue,0) > 0         
 Begin         
    Set @Alarm = 1        
    print cast(@ReplicationIssue as nvarchar)+N' replication agents has errors'         
 select @operatorEmail = email_address from msdb..sysoperators where name = 'DBA'       
  

     EXEC msdb.dbo.sp_send_dbmail @recipients=@operatorEmail, 
     @subject = @Message, 
     @body = 'Please see attached replication latency report', 
     @body_format = 'HTML', 
     @query ='SELECT agent_name,publisher_distributor,distributor_subscriber,Total_latency FROM ##TokenHistory  ' , 
     @query_attachment_filename = 'Replication_Latency_Report.txt', 
     @attach_query_result_as_file = 'TRUE',   
     @query_result_separator = @Seperator

--WE have an issue if the issue flag  = 1
 Insert into tblReplicationLatencyLog (AgentName,LogDate,Issue)
 SELECT agent_name,GETDATE(),1
 from ##TokenHistory where Total_latency is NULL

 Set @Error = @@Error if @Error <> 0 GoTo ErrorHandler    

 End         
 Else         
 Insert into tblReplicationLatencyLog (AgentName,LogDate,Issue)
 SELECT 'No Issue',GETDATE(),0

    Set @Alarm = 0         
                 

ErrorHandler: 
 
IF  @Error <> 0 
Begin 
 
 Print 'Error Occured !' 
 Return(@Error)     
  
End 
 
END

GO

In this example, I wanted to log cases where there had been replication latency issues. Calling the stored procedure also gives an option to specify a wait for period, this is because when you insert a tracer token, you need to allow for some time for the token to get onto the subscribers and report back to the publisher. This is an example of how the stored procedure is actually used.

 

declare @alarm int exec spCheckReplicationLatency '00:02:00', '%SUBSCRIBER%',@alarm output select @alarm 

The reason why I had the subscriber to exclude was because in my case, there was a particular subscriber across the atlantic which was like a DR database server and according to SLA’s, its allowed a few minutes lag behind, and I didnt want to raise alarms all the time due to this particular server.

Posted in SQL 2008, SQL replication, Tips | Leave a Comment »

Troubleshooting using default trace information

Posted by rahmanagoro on March 11, 2011


The default trace is built into SQL server, its one that often tells you operations that are happening on the database server which is often not provided within the SQL error logs.

I regularly query the default trace to pick up issues that might be arising on the database server, the scripts that I use to query the default trace can be found below. The default trace also allows me to create policies using policy based management within SQL 2008, we once had a deployment using Visual studio and for those who have used visual studio, it creatred databases as a project and this is used in storing database schema, database deployment, integration with SVN etc. At the end of the day, the repository was not upto date and Auto skrink was turned on with visual studio, I found this had been turned on with visual studio. This was revealed within the default trace and I was able to create a policy to check for this across the database estate.

To get the default trace file currently in use, run the query below.

SELECT *
FROM fn_trace_getinfo(default);

To group the various events to see what has been happening on the database server, you can run the query below.

--Auditing various event types in the trace file.

SELECT
trc_evnt.name, trc_evnt.category_id
,count(*) as occurence
FROM fn_trace_gettable('y:\databases\log_5170.trc', NULL) AS dflt_trc
INNER JOIN sys.trace_events AS trc_evnt
ON dflt_trc.EventClass = trc_evnt.trace_event_id
group by trc_evnt.name, trc_evnt.category_id
order by trc_evnt.name

You can change the default trace file to query the last five default traces, so for example y:\databases\log_5170.trc is the current trace, to check the one before this simply decrement the number by one, so run the query y:\databases\log_5169.trc.

I get information similar to the one below

Audit DBCC Event    8    9006
Audit Server Alter Trace Event    8    2
Hash Warning    3    2
Object:Created    5    644
Object:Deleted    5    201
Sort Warnings    3    1

I have used this method to troubleshoot various issues on the database such as the following:

missing statistics: I subesequently created and index or statistics on the column.

transaction logs growing every night: I changed the growth settings and expanded the size so as to remove the need for the growth.

Posted in Management, Scripts, SQL 2008, SQL Administration, Tips, Uncategorized | Leave a Comment »

Visual studio 2010 team edition database deployment and SQL replication support

Posted by rahmanagoro on November 2, 2010


I have been using Microsoft Visual Studio 2010 within our shop, we use it towards the management and version control of SQL databases, these databases are stored as projects under visual studio. It’s within an agile environment and releases can happen almost every weekend or during the week. We also use SQL transaction replication in order to maintain sets of reporting database servers.

In the last couple of weeks, I tried to do a deployment onto a publisher database and ran into and error with visual studio, it was trying to drop and object on the database whilst the object was being replicated. This obviously throws and exception on SQL

It’s official that Microsoft visual studio does not support SQL replication and the only known workaround to the problem is to change the deployment properties to ignore verification checks. This can either be done from the GUI or altering an XML file, which is what the GUI does.

You can get to the deployment properties by navigating to the following location from visual studio.

Project >> Properties >> Database deployment

Posted in Database development, Day to day queries, Management, Scripts, SQL 2008, SQL replication, Tips | Leave a Comment »

Field notes from SQL BITS 7 full conference

Posted by rahmanagoro on October 4, 2010


I recently attended the SQL bits 7 full conference in the UK, I will be sharing tips and other information that I was able to pick up on the day. I will divide this into the different days and all the sessions that I was able to attend.

Thursday Session

I attended Rob Farleys Advanced Query Tuning training on Thursday, it was a tough start to the day as my train to York got canceled as soon as I got to the station, ok its not too bad I was offered another ticket to get on the train leaving in about 3 minutes, hooray !! It was only the beginning of a tough start, I mistakenly got into a fancy steam train to Newcastle, it looked like one of the Harry Potter trains, something just didn’t feel right when I got into it. Luckily for me, I was able to get out of the train in time before it departed as it would have been a slow steam train all the way to Newcastle and there are no stops before then.

Ok finally, I missed my train and got on the next one 30 minutes later. I only missed about 30 minutes of the training and to be honest I choose to attend this course because I believe that query tuning is an art that one needs to master by constantly learning and constantly being challenged to tune queries, so my expectations were that I will learn something that I have not seen or heard of before.

Rob Farleys Session

During this session I was expecting to be thought some advanced SQL topics, below are the notes that I took during the session.

  • Investigate the use of a full join
  • Always check on the execution plan properties as it does have some useful information on it.
  • Do some more research on join types, nested loops, merge join, hash join etc.
  • Using a distinct and group by with a scalar function, the thing to look out for here is that if one uses the distinct keyword, all the records are passed to the function but if a group by is used, it reduces the number of records that is passed to the scalar function.
  • One should not use the between clause because of the issue with 23:59:999, one should use < @date and >@date instead. 
  • Indexes can sometimes use a different collation and one should be wary of this.

 

Brian McGeHee

Health Checks for SQL server. 

This session sounded useful as I have a set of checks that I would normally carry out on database servers that I manage every morning. These includes the following. 

  • Checking connectivity to the server.
  • Checking the error log
  • Checking the backups
  • Checking SQL replication
  • Checking waits on the database

The point of attending this session was to see if there are any other checks that I may be missing out and ones that I can easily automate. What I have done is automated this checks using a combination of SSIS for collecting the data from multiple servers and using SSRS for the web presentation for the reports.

Notes that I took down on the day includes the following. 

  • Check Brian McGehess’s website for more information about the daily checks.
  • Extract baseline information about your servers.
  • Create a best practice manual
  • When commissioning a new server, ensure that firmware is always up to date.
  • Look at collecting event log across multiple servers (I want to automate this using powershell)
  • Using PAL (Nice handy tool)
  • Download SQL server tacklebox
  • Download Brent Ozar’s blitz script

Briand McGeHee’s website can be found on: www.BrianMcGehee.com/healthcheck.zip

Brant Ozar’s SQL Server and SAN session

This session was to discuss managing a SQL server instance on a SAN from a storage perspective, things that a DBA should look out for and other tips. I have been to several of Brent’s presentation, and he generally a good speaker. So far its always been fun. 

Notes that I took down on the day includes the following.

  • Windows task manager on virtual machines should not be relied upon, in fact he said its in a mess.
  • Run CPU-Z to get some visibility on physical hardware, check www.cpuid.com
  • Minimise the number of virtual cores
  • Strip out unnecessary virtual hardware, i.e. floppy drive, CD drive etc.
  • Remove all background services
  • Monitor for throttling.
  • Avoid affinity masking

 

Brent also touched on some VMware memory best practices

They include the following

  • Setting memory reservation
  • Set minimum and maximum memory allocation appropriately

HyperV 

  • Avoid dynamic memory for SQL server
  • VMware counters to check out include the following.
  •  % processor time
  • Host processor speed
  • Limit (mhz)
  • Reservation (Mhz) – ask your sysadmins about reservation on vmware hosts.

VMware memory counters

  • Memory limit
  • Emory reservation (MB)
  • Memory ballooned
  • Memory swapped (This should always be 0)

Posted in Professional Development, SQL 2008, Tips | Leave a Comment »

Replication snapshot agent error The replication agent has not logged a progress message in 10 minutes. This might indicate an unresponsive agent or high system activity.

Posted by rahmanagoro on September 14, 2010


We recently had a production release where I had to add two new subscribers to the replication set, the idea was that we were moving onto new hardware but we couldn’t delete the two older subscribers, as we had to leave the subscribers running for a few more weeks just in case we had issues with the two new database servers in the new data center. The strategy was that should we encounter issues in the new data center, we would just re-route our applications to connect to the two subscribers in the old data center.

After adding the two new subscriber, meaning we had six subscribers in total, I started seeing errors within the replication snapshot agent. The error was as follows

Error messages:

The replication agent has not logged a progress message in 10 minutes. This might indicate an unresponsive agent or high system activity. Verify that records are being replicated to the destination and that connections to the Subscriber, Publisher, and Distributor are still active.

I noticed that the only article Microsoft had on this was on the link, http://technet.microsoft.com/en-us/library/ms152484.aspx. It was just telling me something that the message already says, the page didn’t detail a proper workaround, one thing with our replication topology is that we use the same server as the OLTP, publisher and distributor and whenever the replication snapshot agents failed, its normally at busy periods of the day, but I couldn’t still nail down the problem, I then decided to add some form of verbose logging on the snapshot agent job to see what the problem was, but by the time I got round to doing this, I was told that we can now remove the two extra subscribers, after removing the two extra subscribers the errors stopped. It was also difficult for me to recreate the problem on the test environment because we didn’t have six subscribers on test environment; we only had a maximum of two and besides this issue only started after adding two extra subscribers.

I also looked at the idea of changing the heartbeat interval, but this didn’t resolve the problem as this merely changed the details of the error message to reflect the new interval period specified.

It’s a weird one, but one which I hope Microsoft will be able to provide a more accurate workaround.

Posted in SQL 2008, SQL replication, Tips, Uncategorized | Leave a Comment »

Granting execute permissions to a database login permanently using db_executor role

Posted by rahmanagoro on August 30, 2010


I often find that some logins will need execute permissions to objects on the database, in some cases a development environment might exists where users dont have GUI interface to interact with the database, i.e every operation is all done through stored procedures. In such cases, it might be acceptable to grant execute permissions to all objects on the database.  

In SQL server the role db_datareader has always existed, but how come we don’t have a role called db_executor. In this blog, I will show you how you can create a custom role which gives execute permissions on stored procedures, functions on the database.  

For the purpose of demonstration I run the following scripts with SA privileges on the database  

--Create a database and a login named test, grant the test login read only access to the DEMO database
CREATE DATABASE [DEMO] ON  PRIMARY
( NAME = N'DEMO', FILENAME = N'C:\Database\DEMO.mdf' , SIZE = 3072KB , FILEGROWTH = 1024KB )
 LOG ON
( NAME = N'DEMO_log', FILENAME = N'C:\Database\DEMO_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)
GO

USE [master]
GO
CREATE LOGIN [test] WITH PASSWORD=N'test', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
USE [DEMO]
GO
CREATE USER [test] FOR LOGIN [test]
GO
USE [DEMO]
GO
EXEC sp_addrolemember N'db_datareader', N'test'
GO

Whilst still logged in as myself, create objects under the DEMO database. 
 


use DEMO
GO
create table tblUser
(
UserID int identity(1,1),
UserName varchar(30)
)

insert into tblUser (UserName)
	Select 'Tom'
union
	Select 'Jen'

GO

Create procedure spGetUserName
as
select UserID, UserName
from tblUser

GO
exec spGetUserName

Now log on as the test user to the DEMO database and run the following scripts.  

 
select * from tblUser 
1 Tom
2 Jen 

Try executing the stored procedure we get the error below 
 
Msg 229, Level 14, State 5, Procedure spGetUserName, Line 1 
The EXECUTE permission was denied on the object ‘spGetUserName’, database ‘DEMO’, schema ‘dbo’. 
 
I can either grant execute permissions on this single stored procedure, but imagine that we had over a thousand stored procedures. One easy way to do this is to create a role and grant execute permission on the actual schema itself. 

use DEMO
go
CREATE ROLE [db_executor]
GO
GRANT EXECUTE ON SCHEMA ::dbo TO db_executor
GO
--Then we’ll add the Test user in the database to the db_executor role in the database:
USE DEMO
GO
EXEC sp_addrolemember N'db_executor', N'test'
GO

After running the above, we now execute the stored procedure and it executes fine without any problems. 

execute spGetUserName 

1 Tom
2 Jen

Posted in Day to day queries, Scripts, Security, SQL 2008, SQL Administration | Leave a Comment »

Changing collation setting on a SQL 2008 instance

Posted by rahmanagoro on August 28, 2010


It is possible to chang the collation setting on a database, but what happens if you try to change the collation setting on a SQL instance or on the system databases, for SQL 2008 this can be done from the command line. Generally, what i tend to do is as follows.

  1. I will find the location of all my databases, as changing the collation forces a mini re-installation and thus will detach all user databases and rebuild system databases.
select * from master..sysaltfiles

2      A full backup of system databases, msdb, master and model is also recomended. Changing collation will rebuild system databases.

Lets assume that the drive containing the SQL 2008 installation media is E:\

Follow the steps below from the command prompt


cd E:

Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS="domain\username" /SAPWD= "London2012" /SQLCOLLATION=SQL_Latin1_General_CP1_CS_AS

 

The parameters are as follows, /SQLSYSADMINACCOUNTS this specifies the sysadmin account nominated.

/SAPWD = This is the SA password to be used afterwards.

Posted in Day to day queries, Scripts, SQL 2008, SQL Administration, Uncategorized | Leave a Comment »

SQL 2008 Installation step by step with pictures including silent unattended installation

Posted by rahmanagoro on August 28, 2010


SQL 2008 Manual Installation Guide

The following guide details how to install SQL 2008 step by step guide with pictures.

One important setting worth mentioning is collation setting, please ensure that you are using the right collation settings, the chosen database collation setting has been detailed is: SQL_Latin1_General_CP1_CS_AS .

Manual SQL Installation Steps

This page is for the SQL 2008 Installation steps.
Prerequisites To install SQL Server 2008

1. Insert the SQL Server installation media. From the root folder, double-click setup.exe. To install from a network share, locate the root folder on the share, and then double-click setup.exe. If the Microsoft SQL Server 2008 Setup dialog box appears, click OK to install the prerequisites, then click Cancel to exit SQL Server 2008 installation.
2. If the .NET Framework 3.5 SP1 installation dialog box appears, select the check box to accept the .NET Framework 3.5 SP1 License Agreement. ClickNext. To exit SQL Server 2008 installation, click Cancel. When installation of .NET Framework 3.5 SP1 is complete, click Finish.
3. Windows Installer 4.5 is also required, and might be installed by the Installation Wizard. If you are prompted to restart your computer, restart it, and then restart SQL Server 2008 setup.exe

Carry on with the following steps.

Click on show details and ensure that all the checks are passed.

Select all the features for installation

Select the root directory for the installation.

Check disk space summary.

Select the account details for provisioning the SQL service and other related services.

Select the collation setting for the installation, note the collation setting in use here.

Select Authentication mode, if mixed authentication is used, select the SA password.

Select a directory for the database.

Select the filestream option if applicable.

Select the Analysis services account configuration.

Select the directory for the Analysis service related files.

Select reporting services configuration.

Select error reporting options.

Ensure that installation rules are all passed.

Installation screen, the process will take some time, this depends on the capacity of the machine on which it is being installed on to.


After a successfull installation, open up Programs >> SQL Server 2008 >> Configuration Tools >> SQL Server Configuration Manager

Check the TCP/IP section and enable it.

Click on Enable.

SQL 2008 Scripted Installation

 

Use the command line options below to install SQL 2008, remember to change the directory to the directory where the installation media is.
Setup.exe /QUIET /QS /ACTION=Install /ERRORREPORTING=1 /SAPWD=”******” /SQLSVCPASSWORD=”****” /AGTSVCPASSWORD=”****” /ASSVCPASSWORD=”****” /ISSVCPASSWORD=”****” /RSSVCPASSWORD=”******” /ConfigurationFile=C:\Downloads\Config.ini
Attention should also be paid to the configuration file as well, see attached configuration file which contains answers for the installation.
Install SQL 2008 SP1 Quietly
You can install SQL 2008 SP1 quietly without the need for a reboot, just ensure that you close all Management Studio windows that are open, this way a reboot will most likely not be required. Use the attached batch file, ensure that you have downloaded the service pack and change the path referenced in the batch file to the correct path.

Configuration.ini file

Below is a sample configuration.ini file for the installation above, copy it and save it to  a file called Config.ini as referenced above in the command line installation.


;SQLSERVER2008 Configuration File
[SQLSERVER2008]

; Specify the Instance ID for the SQL Server features you have specified. SQL Server directory structure, registry structure, and service names will reflect the instance ID of the SQL Server instance.

INSTANCEID="MSSQLSERVER"

; Specifies a Setup work flow, like INSTALL, UNINSTALL, or UPGRADE. This is a required parameter.

ACTION="Install"

; Specifies features to install, uninstall, or upgrade. The list of top-level features include SQL, AS, RS, IS, and Tools. The SQL feature will install the database engine, replication, and full-text. The Tools feature will install Management Tools, Books online, Business Intelligence Development Studio, and other shared components.

FEATURES=SQLENGINE,REPLICATION,FULLTEXT,AS,RS,BIDS,CONN,IS,BC,SDK,BOL,SSMS,ADV_SSMS,SNAC_SDK,OCS

; Displays the command line parameters usage

HELP="False"

; Specifies that the detailed Setup log should be piped to the console.

INDICATEPROGRESS="False"

; Setup will not display any user interface.

QUIET="False"

; Setup will display progress only without any user interaction.

QUIETSIMPLE="False"

; Specifies that Setup should install into WOW64. This command line argument is not supported on an IA64 or a 32-bit system.

X86="False"

; Specifies the path to the installation media folder where setup.exe is located.

MEDIASOURCE="I:\"

; Specify if errors can be reported to Microsoft to improve future SQL Server releases. Specify 1 or True to enable and 0 or False to disable this feature.

ERRORREPORTING="False"

; Specify the root installation directory for native shared components.

INSTALLSHAREDDIR="C:\Program Files\Microsoft SQL Server"

; Specify the installation directory.

INSTANCEDIR="C:\Program Files\Microsoft SQL Server"

; Specify that SQL Server feature usage data can be collected and sent to Microsoft. Specify 1 or True to enable and 0 or False to disable this feature.

SQMREPORTING="False"

; Specify a default or named instance. MSSQLSERVER is the default instance for non-Express editions and SQLExpress for Express editions. This parameter is required when installing the SQL Server Database Engine (SQL), Analysis Services (AS), or Reporting Services (RS).

INSTANCENAME="MSSQLSERVER"

; Agent account name

AGTSVCACCOUNT="NT AUTHORITY\SYSTEM"

; Auto-start service after installation.

AGTSVCSTARTUPTYPE="Manual"

; Startup type for Integration Services.

ISSVCSTARTUPTYPE="Automatic"

; Account for Integration Services: Domain\User or system account.

ISSVCACCOUNT="NT AUTHORITY\SYSTEM"

; The name of the account that the Analysis Services service runs under.

ASSVCACCOUNT="NT AUTHORITY\SYSTEM"

; Controls the service startup type setting after the service has been created.

ASSVCSTARTUPTYPE="Automatic"

; The collation to be used by Analysis Services.

ASCOLLATION="Latin1_General_CS_AS"

; The location for the Analysis Services data files.

ASDATADIR="C:\Program Files\Microsoft SQL Server\MSAS10.MSSQLSERVER\OLAP\Data"

; The location for the Analysis Services log files.

ASLOGDIR="C:\Program Files\Microsoft SQL Server\MSAS10.MSSQLSERVER\OLAP\Log"

; The location for the Analysis Services backup files.

ASBACKUPDIR="C:\Program Files\Microsoft SQL Server\MSAS10.MSSQLSERVER\OLAP\Backup"

; The location for the Analysis Services temporary files.

ASTEMPDIR="C:\Program Files\Microsoft SQL Server\MSAS10.MSSQLSERVER\OLAP\Temp"

; The location for the Analysis Services configuration files.

ASCONFIGDIR="C:\Program Files\Microsoft SQL Server\MSAS10.MSSQLSERVER\OLAP\Config"

; Specifies whether or not the MSOLAP provider is allowed to run in process.

ASPROVIDERMSOLAP="1"

; Specifies the list of administrator accounts that need to be provisioned.

ASSYSADMINACCOUNTS="DOMAIN\username"

; Startup type for the SQL Server service.

SQLSVCSTARTUPTYPE="Automatic"

; Level to enable FILESTREAM feature at (0, 1, 2 or 3).

FILESTREAMLEVEL="3"

; Name of Windows share to be created for FILESTREAM File I/O.

FILESTREAMSHARENAME="MSSQLSERVER"

; Set to "1" to enable RANU for SQL Server Express.

ENABLERANU="False"

; Specifies a Windows collation or an SQL collation to use for the Database Engine.

SQLCOLLATION="SQL_Latin1_General_CP1_CI_AS"

; Account for SQL Server service: Domain\User or system account.

SQLSVCACCOUNT="NT AUTHORITY\SYSTEM"

; Windows account(s) to provision as SQL Server system administrators.

SQLSYSADMINACCOUNTS="Domain\username"

; The Database Engine root data directory.

INSTALLSQLDATADIR="C:\Database"

; Default directory for the Database Engine backup files.

SQLBACKUPDIR="C:\Database"

; Default directory for the Database Engine user databases.

SQLUSERDBDIR="C:\Database"

; Directory for Database Engine TempDB files.

SQLTEMPDBDIR="C:\Database"

; Provision current user as a Database Engine system administrator for SQL Server 2008 Express.

ADDCURRENTUSERASSQLADMIN="False"

; Specify 0 to disable or 1 to enable the TCP/IP protocol.

TCPENABLED="0"

; Specify 0 to disable or 1 to enable the Named Pipes protocol.

NPENABLED="0"

; Startup type for Browser Service.

BROWSERSVCSTARTUPTYPE="Disabled"

; Specifies which account the report server NT service should execute under.  When omitted or when the value is empty string, the default built-in account for the current operating system.
; The username part of RSSVCACCOUNT is a maximum of 20 characters long and
; The domain part of RSSVCACCOUNT is a maximum of 254 characters long.

RSSVCACCOUNT="NT AUTHORITY\SYSTEM"

; Specifies how the startup mode of the report server NT service.  When
; Manual - Service startup is manual mode (default).
; Automatic - Service startup is automatic mode.
; Disabled - Service is disabled

RSSVCSTARTUPTYPE="Automatic"

; Specifies which mode report server is installed in.
; Default value: “FilesOnly”

RSINSTALLMODE="DefaultNativeMode"

Posted in Day to day queries, Professional Development, SQL 2008, SQL Administration, Uncategorized | 1 Comment »