Separating a database onto multiple servers
We are working on a product that uses a set of SQL Server databases that are currently all in one instance and on one server. Now that we are growing, we need more processing power/space. So we want to move the databases onto multiple servers.
So we would not need to "shard", we created separate databases (with the same schema) for each company that purchased the product. We could readily put different company databases onto the different servers.
The question is this, how to we handle the routing to the different servers?
If we would have "sharded" the data in one database with different keys, SQL Server tools would have handled the routing for us. Because we actually separated the databases, do we have to do the routing manually? (That is, do we need to figure
out that when company A logs in that they need to go to database server aa.aa.aa while compay B needs to go to server bb.bb.bb?) Or is there a product that can help us with the routing?
Thanks!
www.insteptech.com ;
msmvps.com/blogs/deborahk
We are volunteers and ask only that if we are able to help you, that you mark our reply as your answer. THANKS!
Hello,
Based on your description, it seems that you want to copy all schema from a "Shared" database into other servers and separate data into the tables based on the company name.
If I understand correctly, you can try to use the
SQL Server Import and Export Data Wizard to copy data from table or view to destination server and specify query to restrict data for copy. Or you can use linked server and
SELECT INTO statement with condition to move the data.
As per my understanding about the "Handling routing", balancing capability. In order to meet your requirement, you have to load balance through your application's design.
Regards,
Fanny Liu
If you have any feedback on our support, please click here.
Fanny Liu
TechNet Community Support
Similar Messages
-
Update of databases via multiple servers
Hi all.
I want to build a scenario like the one in section 17.2.3. of EJB 2.0 spec: one ejb
in one weblogic accessing other ejb in another weblogic but in a single transaction.
To achieve this I have configured tx pools with the JDriver (I'm using Oracle 9i),
and have configured the ejbs transaction as "required" in the deployment descriptor.
I want to use container managed transaction.
Do I need anything else to accomplish this scenario? (say.. have clustering?) ?
I'm using both Weblogic 6.1.
The problem I'm having is that first ejb have problems commiting the transaction
once the second return is situation.
Thanks in advanced for any ideas or pointers for documentation.
Tiago
I finally found it here but it just shows "silent installation" that works on the local computer which is pretty senseless as you still need to log in to the client where you want to update the JRE.
-
Best practice approach for seperating Database and SAP servers
Hi,
I am looking for a best practice approach/strategy for setting up a distributed SAP landscape i.e separating the database and sap servers. If anyone has some strategies to share.
Thanks very muchI can imagine the most easiest way:
Install a dialog instance on a new server and make sure it can connect nicely to the database. Then shut down the CI on the database server, copy the profiles (and adapt them) and start your CI on the new server. If that doesn't work at the first time you can always restart the CI on the database server again.
Markus -
How to set up Planning on Multiple Servers
Hi,
1) I am trying to install a Finance Planning application so that it runs on one Planning Web Server and the other operations Planning application on another Planning 9.3.1 web server. Is that possilbe?
2) May be unrelated question:
HP_Windows_Install.pdf has only a few lines explaining how to set up Planning on Multiple Servers. Is it as simple as that?
Here are the "few lines" from install.pdf:
Perform the same installation and configuration process on your secondary servers, making sure to choose
Planning Web Server component for any secondary server.
Make sure you select Reuse existing tables when prompted during the Configure a Database task
in the Configuration utility.Tomcat.
But it will be nice to know the steps for Weblogic too - as Weblogic will be bundled "free" with future releases of Planning. -
Determining wether to implement on a single database or multiple databases.
Good Day Mentors,
Our company will be migrating from 2004B to 8.81. We currently have 2 databases. We wanted to know what are the things to consider before choosing wether to go one or multiple database. We are in F&B. The 2 databases purchase and sell the same items for most of the inventory.
I've already checked these links:
[Merge multiple separate companies (databases) into one]
[Re: Multiple companies in one database vs. multiple databases]
[Re: Setting up two companies on one database]
After reading those posts, I've listed these questions(this I'll be asking the users/management):
1.) Are the 2 databases, 2 business/legal entities?
2.) Is the Tax files separately for each subsidiary/company?
3.) Are the reports(P/L, balance sheet, etc) usually consolidated?
4.) Is it ok that the people can see all the BP's, GL accounts, Pricelists etc?
Are there till things I need to ask the management in order to make a wise decision on the matter?
Are there still pros/cons I need to raise up?
Thanks in advance!
Sean YuHello,
1.) Are the 2 databases, 2 business/legal entities?
It will 2 business /Legal entities when you have registered your company in two different tax registration no.(PAN)
2.) Is the Tax files separately for each subsidiary/company?
Totally depend on how you registered your company in tax department .means if you have saparate tax reg no then it might be.
3.) Are the reports(P/L, balance sheet, etc) usually consolidated?
this option in optional it may be or may not be .
4.) Is it ok that the people can see all the BP's, GL accounts, Pricelists etc?
No, because data will very huge then user become confuse at the time of data entry(but we have solution for same without SDK)
Means totally depend that both company register in same tax no or two different tax no.
Thanks
Manvendra Singh Niranjan -
Export DB Names over Multiple Servers into csv file
Hi,
I am a Junior DBA at my company and I am looking at running a query onto specific servers that pulls out the Database Name. I have managed to run that query.
However our company has 50 different Host Servers each with a number of databases on each. What I am looking to do is find a way that I can pull out the database names of all the 50 servers, without going into each individual server. Is this
possible?
I have sa on all of the Databases.
Regards,
Jon Ditchfieldand run select Server Name from sys.databases, it says there is no such column. Am I able to use this column?
Hello Jon,
SSMS adds the server name, but you can get a similiar result with:
SELECT @@SERVERNAME, *
FROM sys.databases
Olaf Helper
[ Blog] [ Xing] [ MVP] -
Agents for database and application servers
hi all,
I have to go to a client site this week to install Gagents onto some database servers, some will be RAC and some application servers. it is on AIX. are there different agents for database and applications? In a RAC cluster do I need an agent per node?
rgds
alanWhen installing agents in a cluster (read - RAC), during the installation, on one of the screens, you will have the option of picking up all the nodes in the cluster. Else, if you are using a push or agent deploy method, you just have to pass the correct flag (can't remember) and then list all the nodes in the cluster.
To your other questions, you do not need different agents for database, and app servers etc. The only time you would need different agents is when you are installing on different platforms. -
Not sure what i am looking for at the moment but we have 6 * solaris 9 servers, 5 * solaris 10, about 30 zones and it's only going to get bigger.
it's become a real pain to manage(add,remove,keep track) users across multiple server/zones. How do other people go about managing multiple servers i for one don't want to log into each box/ zone and create a user accout which is currently what we do.
Guess what i am looking for is some way of managing all of our boxes from a central point.Using a directory service like NIS or LDAP will allow user accounts for many hosts to be created and managed centrally. LDAP is what Active Directory is based on. Sun's implementation is called iPlanet. Sun One Directory Server, or Java Directory service, depending on the phases of the moon.
For spotting problems on servers (disk full, host down, &c), we use nagios. It's fantastic.
My employer also spent a good deal of money on opsware, but shall we say the benefits of it are not yet obvious. -
I am using databases on multiple computers to store test results for a production line. The computers share info from thier databases with each other using dsn's made with the ODBC Windows XP Admin Tool (Control Panel). This works well most of the time but occasionally one of the network drives fails - I have to disconnect and then use ODBC to make a new connection (a new dsn). Why are the network drives failing? Should I use somenthing else that is more reliable? datasocket? Shared Variable? [email protected]
Gary MavSysInc,
When you say that your program fails, are you referring to the same thing as your LabVIEW Application that is reterieving data? If so, what do you mean by it fails? Is there an error message? Does it Crash? What happens when it "fails"?
Ben Sisney
FlexRIO V&V Engineer
National Instruments -
Folder Comparison from multiple servers
I need to compare folders from multiple servers which do not have direct connection so i was trying to generate a text file with command dir /b /s >c:\server1.txt and feed them to script to compare.
my desired output is csv file in the following format
File name,Server1,server2,server3,is it missng file?
File1,yes,yes,yes,No
file2,Yes,Yes,No,Yes
File3,Yes,No,Yes,Yes
File4,No,Yes,Yes,Yes
these folders contains few hundred thousand files and the script is taking 4 to 5 hours to run the comparison. i thought threads will help to run fast using parallel processng but did not help. i have no expreience with threads and after searching for examples
and implementing it was even slower than normal.
i probably am doing something wrong. Any help is much appreciated.
The following is the script so far and it works fine but its taking long time.
[array]$contentArray = @()
[array]$allfileslist = @()
[array]$uniquefileslist = @()
[array]$allfilesSRVlist = @()
[array]$srvlist = @()
$FolderName = Split-Path -parent $MyInvocation.MyCommand.Definition
$reportName = $FolderName + "\ComparisonReport3.csv"
$ListOfFiles = get-childitem $FolderName
$List = $ListOfFiles | where {$_.extension -ieq ".txt"}
$list.count
$index = 0
foreach($listitem in $List){
$listfilename = $listitem.FullName
$listname = $listitem.Name
$listname = $listname.replace(".txt","")
$srvlist = $srvlist + $listname
write-host $listfilename
#$StrContent = get-content $listfilename
$StrContent = [io.file]::ReadAllLines($listfilename)
$contentArray += ,@($StrContent)
$StrContent.count
$contentArray[$index].count
$index = $index + 1
for($i = 0;$i -lt $index;$i++){
$allfileslist = $allfileslist + $contentArray[$i]
$allfileslist.count
$uniquefileslist = $allfileslist | sort-object | get-unique
$Stroutline = "File Name,"
foreach($srvlistitem in $srvlist){
$Stroutline = $Stroutline + $srvlistitem.ToUpper() + ","
$Stroutline = $Stroutline + "Is it Missing file?"
Write-Output $Stroutline | Out-File "$reportName" -Force
foreach($uniquefileslistitem in $uniquefileslist){
$Stroutline = ""
$missingfile = "No"
$Stroutline = $uniquefileslistitem + ","
for($i=0;$i -lt $index;$i++){
if($contentArray[$i] -contains $uniquefileslistitem){
$Stroutline = $Stroutline + "Yes,"
else{
$Stroutline = $Stroutline + "No,"
$missingfile = "Yes"
$Stroutline = $Stroutline + $missingfile
Write-Output $Stroutline | Out-File "$reportName" -Force -Append
$j++
Following is the script i modified using threads example. this is running even slower.
[array]$contentArray = @()
[array]$allfileslist = @()
[array]$uniquefileslist = @()
[array]$allfilesSRVlist = @()
[array]$srvlist = @()
$FolderName = Split-Path -parent $MyInvocation.MyCommand.Definition
$reportName = $FolderName + "\ComparisonReport3.csv"
$ListOfFiles = get-childitem $FolderName
$List = $ListOfFiles | where {$_.extension -ieq ".txt"}
$list.count
$index = 0
#$contentArray = New-Object 'object[,]' $xDim, $yDim
foreach($listitem in $List){
$listfilename = $listitem.FullName
$listname = $listitem.Name
$listname = $listname.replace(".txt","")
$srvlist = $srvlist + $listname
write-host $listfilename
#$StrContent = get-content $listfilename
$StrContent = [io.file]::ReadAllLines($listfilename)
$contentArray += ,@($StrContent)
$StrContent.count
$contentArray[$index].count
$index = $index + 1
for($i = 0;$i -lt $index;$i++){
$allfileslist = $allfileslist+ $contentArray[$i]
$allfileslist.count
#$uniquefileslist = $allfileslist | select –unique
get-date
$uniquefileslist = $allfileslist | sort-object | get-unique
$uniquefileslist.count
get-date
$Stroutline = "File Name,"
foreach($srvlistitem in $srvlist){
$Stroutline = $Stroutline + $srvlistitem.ToUpper() + ","
$Stroutline = $Stroutline + "Is it Missing file?"
Write-Output $Stroutline | Out-File "$reportName" -Force
$j = 1
$count = $uniquefileslist.count
$stroutput = ""
$maxConcurrent = 50
$results= ""
$PauseTime = 1
$uniquefileslist | %{
while ((Get-Job -State Running).Count -ge $maxConcurrent) {Start-Sleep -seconds $PauseTime}
$job = start-job -argumentList $_,$contentArray,$index -scriptblock {
$StrArgFileName = $args[0]
$ArgContentArray = $args[1]
$ArgIndex = $args[2]
$Stroutline = ""
$missingfile = "No"
$Stroutline = $StrArgFileName + ","
for($i=0;$i -lt $ArgIndex;$i++){
if($ArgContentArray[$i] -contains $StrArgFileName){
$Stroutline = $Stroutline + "Yes,"
else{
$Stroutline = $Stroutline + "No,"
$missingfile = "Yes"
$Stroutline = $Stroutline + $missingfile
$Stroutline
While (Get-Job -State "Running")
Start-Sleep 1
$results = Get-Job | Receive-Job
$results
$stroutput = $stroutput + "`n" + $results
Remove-Job *
Write-Output $stroutput | Out-File "$reportName" -Force -Append
Thank you very much!
Vamsi.no i am not comparing the number of lines.. count i used was only for my information... it has nothing to do with the compare. here is the script with out count...
[array]$contentArray = @()
[array]$allfileslist = @()
[array]$uniquefileslist = @()
[array]$allfilesSRVlist = @()
[array]$srvlist = @()
$FolderName = Split-Path -parent $MyInvocation.MyCommand.Definition
$reportName = $FolderName + "\ComparisonReport3.csv"
$ListOfFiles = get-childitem $FolderName
$List = $ListOfFiles | where {$_.extension -ieq ".txt"}
$index = 0
foreach($listitem in $List){
$listfilename = $listitem.FullName
$listname = $listitem.Name
$listname = $listname.replace(".txt","")
$srvlist = $srvlist + $listname
$StrContent = [io.file]::ReadAllLines($listfilename)
$contentArray += ,@($StrContent)
$index = $index + 1
for($i = 0;$i -lt $index;$i++){
$allfileslist = $allfileslist+ $contentArray[$i]
$uniquefileslist = $allfileslist | sort-object | get-unique
$strfinal = "File Name,"
foreach($srvlistitem in $srvlist){
$strfinal = $strfinal + $srvlistitem.ToUpper() + ","
$strfinal = $strfinal + "Is it Missing file?"
foreach($uniquefileslistitem in $uniquefileslist){
$missingfile = "No"
$Stroutline = $uniquefileslistitem + ","
for($i=0;$i -lt $index;$i++){
if($contentArray[$i] -contains $uniquefileslistitem){
$Stroutline = $Stroutline + "Yes,"
else{
$Stroutline = $Stroutline + "No,"
$missingfile = "Yes"
$Stroutline = $Stroutline + $missingfile
$strfinal = $strfinal + "`n" + $Stroutline
Write-Output $strfinal | Out-File "$reportName" -Force -Append
if you want to test it... just create two text files and put them in the same folder as the script.
server1.txt will have the following content
filename1
filename2
filename3
server2.txt will have the following content
filename1
filename2
filename4
it should generate the csv file ComparisonReport3.csv
filename,server1,server2,Is it Missing file?
filename1,yes,yes,no
filename2,yes,yes,no
filename3,yes,no,yes
filename4,no,yes,yes -
Multiple Servers for Development Team in WLI2.1 on wlidomain
Has anyone tried to create multiple servers so that a development team can share
the resources of a domain with WLI 2.1? If so, how did it work. I have done this
with WLS but would like to try it with WLI.
I tried to create multiple servers, but, had difficulty as there seems to many
resources that are tied to the server name and default port. Also, I tried to
change the port and that caused alot of problems on the myserver.Thanks John.
I was not looking for something which is scaling out Hyperion Planning(via load balancer)/Horizontal clustering.
But was looking for some thing like Vertical clustering(multiple JVMs/nodes of Hyperion Planning within a single planning server) which was applicable in 11.1.1.3.
Came to know that with 11.1.2.2 vertical clustering not more supported.
Thanks -
Multiple servers to one APEX install.
At the moment, I'm in the position of having APEX running on the site using the internal Oracle server. This was the initial plan as there aren't many IT resources on site, so maintaining the more complex setups was not really an option. However, I'd like to spend a little time investigating the Apache based setup and especially the APEX Listener (as that sounds as though it'll end up supporting NTLM).
The question is, is it possible to have multiple servers, all connected to the APEX install, serving correctly (spotting subtle issues would probably be beyond my ability to spot quickly)?
The aim for this is to find a method of running multiple access methods simultaneously, enabling efficient migration from one to another should the benefits of running with a particular method (such as APEX Listener) become overwhelmingly strong.James,
yes, no problem, you can run multiple different connection methods (apex listener, mod_plsql, epg) parallel.
brgds,
Peter
Blog: http://www.oracle-and-apex.com
ApexLib: http://apexlib.oracleapex.info
Work: http://www.click-click.at
Training: http://www.click-click.at/apex-4-0-workshops -
T-SQL Code to backup database with multiple files - Syntax error
Hello,
I'm trying to backup a database into multiple files but I'm getting a syntax error.
Here is the code:
declare @DBName varchar(100)
declare @DBFileName varchar(256)
declare @FolderName varchar(256)
declare @Path varchar(100)
set @Path = '\\Backup-Server\Test\'
set @DBName = 'DayNite'
set @DBFileName = 'DayNite-Full' + '-' + (SELECT CONVERT(char(10), GetDate(),110)) + '-' + 'P'
set @FolderName =(SELECT CONVERT(char(10), GetDate(),110))
set @Path = @Path + @FolderName + '\'
EXEC master.dbo.xp_create_subdir @Path
--Calculate broken files for BACKUP DATBASE Function
/*declare @dbsize int
set @dbsize = (SELECT ((size*8)/1024)/1000 as SizeGB FROM sys.database_files WHERE file_id = '1')
set @dbsize = @dbsize / 4
print @dbsize*/
EXEC
BACKUP DATABASE [test] TO
DISK = @Path + @DBFileName + '1.bak',
DISK = @Path + @DBFileName + '2.bak',
DISK = @Path + @DBFileName + '3.bak',
DISK = @Path + @DBFileName + '4.bak',
DISK = @Path + @DBFileName + '5.bak',
DISK = @Path + @DBFileName + '6.bak',
DISK = @Path + @DBFileName + '7.bak',
DISK = @Path + @DBFileName + '8.bak',
DISK = @Path + @DBFileName + '9.bak',
DISK = @Path + @DBFileName + '10.bak',
DISK = @Path + @DBFileName + '11.bak',
DISK = @Path + @DBFileName + '12.bak',
DISK = @Path + @DBFileName + '13.bak'
WITH INIT , NOUNLOAD , NAME = 'DayNite Full Backup', NOSKIP , NOFORMATMade some slight modifications to your script and it should work(worked when tested).. if you wnat more complete solution -- google -OLA Hallengren backups -- you should get some good scripts..
declare @DBName varchar(100)
declare @DBFileName varchar(256)
declare @FolderName varchar(256)
declare @Path varchar(100)
set @Path = '\\Backup-Server\Test\'
set @DBName = 'DayNite'
set @DBFileName = 'DayNite-Full' +''+ '-' +''+ (SELECT CONVERT(char(10), GetDate(),110)) +''+ '-' +''+ 'P'
set @FolderName =(SELECT CONVERT(char(10), GetDate(),110))
set @Path = @Path +''+ @FolderName +''+ '\'
EXEC master.dbo.xp_create_subdir @Path
--Calculate broken files for BACKUP DATBASE Function
/*declare @dbsize int
set @dbsize = (SELECT ((size*8)/1024)/1000 as SizeGB FROM sys.database_files WHERE file_id = '1')
set @dbsize = @dbsize / 4
print @dbsize*/
select @Path,@DbFileName
declare @SQL nvarchar(2000)
Set @SQL ='Backup DATABASE [DAYNITE] TO DISK = '''+@Path +''+ @DBFileName +''+ '1.bak'',
DISK = '''+@Path +''+ @DBFileName +''+ '2.bak'',
DISK = '''+@Path +''+ @DBFileName +''+ '3.bak'',
DISK = '''+@Path +''+ @DBFileName +''+ '4.bak'',
DISK = '''+@Path +''+ @DBFileName +''+ '5.bak'',
DISK = '''+@Path +''+ @DBFileName +''+ '6.bak'',
DISK = '''+@Path +''+ @DBFileName +''+ '7.bak'',
DISK = '''+@Path +''+ @DBFileName +''+ '8.bak'',
DISK = '''+@Path +''+ @DBFileName +''+ '9.bak'',
DISK = '''+@Path +''+ @DBFileName +''+ '10.bak'',
DISK = '''+@Path +''+ @DBFileName +''+ '11.bak'',
DISK = '''+@Path +''+ @DBFileName +''+ '12.bak'',
DISK = '''+@Path +''+ @DBFileName +''+ '13.bak''
WITH INIT , NOUNLOAD , NAME = ''DayNite Full Backup'', NOSKIP , NOFORMAT '
print @SQL
exec (@SQL)
Hope it Helps!! -
How to stop sql services and sql agent services on multiple servers
Looking for a t-sql/powershell script to stop/start sql services on multiple servers. Plan is to execute script from centralized server.
Rahulsee
http://www.databasejournal.com/features/mssql/article.php/3644906/Automatically-Stopping-and-Restarting-SQL-Server.htm
http://sqlpowershell.wordpress.com/2013/04/11/powershell-check-start-and-stop-sql-services-of-a-remote-servers/
Please Mark This As Answer if it helps to solve the issue Visakh ---------------------------- http://visakhm.blogspot.com/ https://www.facebook.com/VmBlogs -
Capture performance metrics across multiple servers
Hello. I'm still very new to Powershell but anyone know of a good Powershell v.3 -4 script that can capture performance metrics across multiple servers with an emphasis on HPC (high performance computing) and gen up a helpful report, perhaps in HTML or Excel
format?
Closest thing I've found and used is this line of powershell:
http://www.microsoftpro.nl/2013/11/21/powershell-performance-monitor-on-multiple-remote-computers/
Maybe figure out a way to present that in better format, such as HTML or Excel.
Also, if someone can suggest some performance metrics to look at with an HPC perspective. For example, if a CPU is running at 100 utilization, figure out if which cores are running high, see how many threads are queued waiting for CPU time, etc...As far as formatting is concerned,
ConvertTo-HTML is a basic HTML output format, but you can spice it up as much as you like:
http://technet.microsoft.com/en-us/library/ff730936.aspx
Out-Grid is very functional and pretty simple:
http://powertoe.wordpress.com/2011/09/19/out-gridview-now-has-a-passthru-parameter/
Here's an example with Excel:
Excel
Worksheets Example
This might be a good reference for HPC, I don't have access to an HPC environment so I can't offer much advice there.
http://technet.microsoft.com/en-us/library/ff950195.aspx
It might be better to keep unrelated questions separate, so a thread doesn't focus on one question and you lose time getting an answer to another.
I hope this post has helped!
Maybe you are looking for
-
Audio on keynote exported quicktime videos cuts out at 50 seconds?
It just started! When I export my keynote into a Quicktime file, the audio cuts out at 50 seconds. I have been creating videos a long time with this method and never had problems before.
-
Photoshop update error U44M1P7
I'm receiving this error when I try to update Photoshop: U44M1P7. Can anyone help me? I'm using windows 8 on a laptop.
-
Changing Report Subject in Developer 6i.
Hello Everyone, Can anyone help me in changing subject of the Report like for example we recive report by same subject like "Report Sent from Report Builder" we need to change this while sending from person to person..Thanks Regards,,,
-
Puttin url parameters into a map
Hi guys, I have to put all the parameters from a url query string into a map, and I was wondering if anybody knows some library (apache commons, or something like that to do it). I know it is not hard to do it from scratch, but I want something that
-
Instanceof vs. enumeration
Which is considered to be better: using instanceof to determine a type of object at runtime or some sort of enumeration? Thank you.