mukaan: Eric Blinn | päivitetty: 2019-06-28 | Comments (4) | Related: More > linkitetyt palvelimet
ongelma
näen, että SQL Server Management Studio (SSMS) linkitetyille palvelimille andI haluavat lisätietoja siitä, mitä he tekevät ja miten he toimivat.
ratkaisu
linkitetyt palvelimet ovat menetelmä, jolla SQL-palvelin voi puhua toiselle ODBC compliantdatabaselle, kuten toiselle SQL Server-instanssille tai Oracle-tietokannalle direct-SQL-kyselyllä.,
linkitetyn palvelimen perustamisessa on useita tärkeitä asetuksia.Tämä vihje kattaa luoda linkitetyn palvelimen toiseen SQL Server instance using SSMS GUI sekä asianmukaiset suojausasetukset. Se näyttää myös, miten käyttää linkitettyä palvelinta T-SQL-lausumassa. On agreat kirjasto kehittyneempiä aiheita saatavilla, kun perusasiat on masteroitu.,
Luominen SQL Server Liittyy Palvelin
SQL Server Management Studio, Object Explorer-ikkunassa, laajentaa ”ServerObjects” – osiossa, napsauta ”Liittyvät Palvelimet” ja valitse ”NewLinked Server…” valikosta.
New Linked Server – General Page
tuo esiin näytön, joka näyttää alla olevalta näytöltä. Valitse servertype SQL Server-palvelimeksi ja kirjoita SQL Server-palvelimen toisen esimerkin nimeen. Tässä esimerkissä yhteys tehdään SQL Serverin nimettyyn instanssiin thesame-koneella., Tämä on varmasti sallittua, mutta yleisesti yhteys on tätä toisen koneen kokonaan. Linkitetty palvelimen nimi on määritelty theServerName\InstanceName. Alla olevassa esimerkissä yhdistän paikannimeen ja instanssin nimi on ”SECURITY_TEST”.
Uusi Sidoksissa Server – Suojaus-Sivu
Seuraava, siirry Yleiset-sivun Suojaus sivun vasemmasta valikosta.Tämän sivun avulla järjestelmänvalvoja voi kertoa tälle SQL Server-palvelimelle, miten se voidaan todentaa toiseen instanssiin., Näytön yläpuoli mahdollistaa sen, että yksittäiset kirjautujat voivat käyttää linkitettyä palvelinta.
on olemassa 2 menetelmää, joilla käyttäjät voidaan todentaa. Ensimmäinen on valita kirjautuminen forthem käyttää, Kun käytät linkitettyä palvelinta. Alla olevassa kuvakaappauksessa Eric userwill kirjautuu automaattisesti toissijaiselle palvelimelle kirjautumislinkkinä. Tämä luottokelpoisuus on tallennettu SQL Server Engine andis salattu. Yksi toinen rivi, LinkedServerTest kirjautuminen (SQL kirjautuminen) Imitonatebox tarkistetaan., Tämä yrittää käyttää samaa käyttäjätunnusta ja salasanaa LinkedServer kuin se teki alkuperäisen palvelimen. Windows-kirjautumisen imitointi voi myös tehdä, mutta edellyttää asianmukaista delegointia.
keskity nyt näytön alaosaan. Vaihtoehtoja on 4. Whicheveroption on valittu tässä sovelletaan kaikkiin käyttäjiin, joita ei ole lueteltu yläosassa.,
vaihtoehto | kuvaus | ei tehdä | tämä antaa virheen käyttäjälle, joka yrittää käyttää linkitettyä Serverttiä, joka ei ole yllä olevassa luettelossa. Jotta voit valita tämän vaihtoehdon, on oltava vähintään 1 kirjautuminen yläosassa näytön. Tämä on virhe, jonka kaikki muut käyttäjät saavat. Msg 7416, Level 16,State 1, Line 1 pääsy etäpalvelimelle evätään, koska kirjautumis-mappingexistejä ei ole., |
---|---|---|
tehdään ilman suojauskontekstia | tämä lähettää nimettömän yhteyden linkitettyyn palvelimeen eikä likelywon tarjoa pääsyä toissijaiselle palvelimelle. | |
tehdään käyttämällä kirjautumisen nykyistä tietoturvakontekstia | tämä on sama asia kuin jokaisen käyttäjän sijoittaminen ylimpään osioon imitoitavalla valintaruudulla tarkistettuna., | |
tehtävä käyttäen tämän tietoturvapäivityksen yhteydessä: | Tämä vaihtoehto vaatii käyttäjätunnuksen ja salasanan on tullut ja tulee functionthe sama kuin jos jokainen käyttäjä on lisätty yläosan ja koska täsmälleen sama käyttäjätunnuksen ja salasanan. Se on vähiten turvallinen tapa asentaa linkitetty palvelin kuin kuka tahansa, jolla on pääsy ensimmäiseen SQL Server willbe voi käyttää linkitettyä palvelinta käyttäen tallennettuja valtakirjoja., |
Uudet linkitetyt Palvelinpalvelinvaihtoehdot sivu
Optiosivulla on myös asetuksia, mutta yksinkertaisissa kyselyissä nämä asetukset jätetään oletusarvoiksi kuten alla on esitetty.
asetuksia ei tarvitse muuttaa useimmissa käyttötapauksissa ja tässä taulukossa willexplain mitä asetukset tekevät.
vaihtoehto | kuvaus | |
---|---|---|
Collation yhteensopiva | oletus on väärä., Tämä voidaan asettaa todeksi, jos kohde serverisoi täsmälleen saman kollaation kuin pääasiallinen palvelin. Changecan parantaa joidenkin kyselyjen suorituskykyä sallimalla kauko-sarakkeen comparisonson-tekstityyppiset sarakkeet. | |
Data Access | oletus on totta. Kun false kaikki yksittäiset etäkysely executionswill epäonnistuvat. Tämä asetus on riippumaton RPC Out. Tässä tapauksessa vain etämenettelypuhelut on toteutettava tämä asetus voi olla väärä, kun RPC pois pysyy totta., | |
RPC/RPC Out | tämä tarkoittaa Etämenettelypuhelua ja mahdollistaa tallennusprosessien suorittamisen linkitetyllä palvelimella. RPC mahdollistaa Etämenettelynrecallsin määritetyltä palvelimelta ja RPC OUT mahdollistaa Etämenettelynrecallsin määritetylle palvelimelle. | |
käytä Etäkollaatiota/Kollaatiota nimi | oletus on väärä. Kun väärä paikallinen palvelin collation käytetään kaikki etäkyselyt. Kun totta collation syrjäseutupalvelimen käytetään kyselyissä., Jos totta ja etäpalvelin ei ole SQLServer, paikallinen palvelin ei voi automaattisesti etsiä oikea collationvalue. Tässä tapauksessa käytä Collation nimi asetus kirjoittaa theremote palvelimen collation. | |
yhteyden aikalisä | oletusarvo on 0. Kun ei-nolla, tämä on sekuntimäärä towait ennen ajoitusta, kun kytketään linkitettyyn palvelimeen. Kun 0 sitten arvo on todella lukea palvelimen oletus, joka löytyy runningthis komento.
exec sp_configure 'remote login timeout (s)' |
|
kyselytunti | oletusarvo on 0., Kun ei-nolla, tämä on sekuntimäärä towait ennen ajoittaa kyselyn käynnissä vastaan linkitetty palvelin. Kun 0 sitten arvo on todella lukea palvelimen oletus, joka löytyy runningthis komento.
exec sp_configure 'remote query timeout (s)' |
|
jakelija / Kustantaja / Tilaaja | näitä asetuksia käytetään vain, kun linkitettyä palvelinta käytetään toistamiseen. | |
Lazy Schema Validation | Default is False. Kun väärin kaukokyselyn skeema tarkistetaan ennen jokaista kyselyn suoritusta., Kaikki muutokset kauko-skeemaan on suunniteltu etukäteen ja asianmukainen kyselysuunnitelma voidaan luoda uudelleen muutoksen huomioon ottamiseksi. Kun skeema on totta, se validoidaan vasta sen jälkeen, kun se on korjattu. Jos etäkaavion muutos tekee kyselysuunnitelman mitättömäksi, joka aiheuttaa ajonaikaisen virheen. | |
mahdollistavat hajautettujen transaktioiden edistämisen | oletus on totta. Milloin tahansa etäkysely, joka muuttaa datawill vetoaa DTC (hajautettu Transaktiokoordinaattori)., Tämä processprotects tällaiset kyselyt antamalla molemmat palvelimet on jaettu transactionthat joko täydentää 100% tai 0% – aivan kuten säännöllinen tapahtuma pian paikallisen kyselyn. Kun käytöstä DTC ei vedota ja epäonnistunut syrjäinen sijainti voi epäonnistua ja ei täysin rullata takaisin. |
Istä Dataa SQL Server Liittyy Palvelin
lue tietoja Liittyy Server mitään taulukoita tai näkemyksiä on viitattu käyttää 4-osa tunniste, joka koostuu Linkitetyn Palvelimen nimi, tietokannan nimi, schemaname, ja objektin nimi – tässä järjestyksessä.,
esimerkiksi:
SELECT * FROM .master.sys.databasesSELECT * FROM .WideWorldImporters.Sales.Orders
- ensin ilmoitetaan linkitetty palvelimen nimi, joka on esim. Tässä esimerkissä se on murtauduttava, koska sen muoto. Kaikkia Linkkipalvelimen nimiä ei saa yhdistää.
- seuraava on tietokannan nimi, master ja WideWorldImporters vastaavasti.
- kolmas on skeemanimi, sys ja myynti vastaavasti.
- lopuksi mainitaan kohteen nimi. Näissä esimerkeissä objektit ovat tietopankkeja ja tilauksia.
tuo esimerkki on linkitetyn Palvelinnimen luonteen vuoksi melko ruma., Onneksi tämä suuri vihje näyttää, miten nimet on helpompi lukea skenaarioissa kuten.
kun nämä taulukot ja näkemykset on lueteltu a kohdassa, niitä voidaan käsitellä samalla tavalla kuin muita paikallisia taulukoita. Ne voidaan queried, aliased, liittynyt, andif oikea käyttöoikeudet on asetettu, niitä voidaan muokata insert, päivitys, ja deletestatements.
kutsumalla tallennettuja menettelyjä linkitetyn palvelimen yli
tätä demoa varten tämä pieni menettely luotiin masterdatabasessa kohdesidonnaisella palvelimella.,
USE masterGOCREATE PROCEDURE dbo.SQLTips1 AS SELECT 'I was able to be called';
– menettely on sitten toteutetaan varsinaisen esiintymän käyttäen tätä komentoa whichfollows samaa 4 osittain tunniste schema kuten lausuntoja ennen osiosta.
EXEC .master.dbo.SQLTips1
kuitenkin odotetun tuloksen sijaan esiin nostetaan virhe.
RPC tarkoittaa Etämenettelypuhelua. Oletusarvoisesti linkitetyt palvelimet ovat merkittäviä tekemään tallennettuja prosessipuheluja. Tämä on helppo korjata mahdollistamalla asingle-asetus linkitetyllä palvelimella., Selaa linkitettyjä Palvelinominaisuuksia, valitse Palvelinasetukset ja luettelossa oleva 4thoption on RPC Out. Yksinkertaisesti muuttaa tämän arvon True ja clickOK.
asetus merkitty RPC ei ole arvo, joka on muutettava. Thiscan näyttävät hämmentäviltä, koska Virheilmoitus näyttää nimeävän sen nimenomaan, mutta tämä on oikeastaan perintöasetus, joka ei salli RPC-puheluita.
Käynnistät menettely nyt tuottaa paljon paremman tuloksen.,
SQL Server linkitetty Palvelinrajoitukset
linkitetyt palvelimet voivat olla erittäin hyödyllisiä, mutta on olemassa muutamia rajoituksia, jotka on tiedostettava ennen niiden toteuttamista. Linkitettyjä palvelimia ei voida käyttää kutsumaan tablevalued-tai scalar-funktioita. Lisäksi katkaisukomentoa ei saa käyttää linkitetyllä palvelimella.
SQL Server Liittyy Palvelin Käyttää Tapauksissa
suorituskyky Liittyy Palvelimia ei ole aina hyvä, varsinkin largedata sarjaa ja paljon liittyy paikallisia ja liittyvät taulukot. Mutta ne voivat olla erittäin hyödyllisiä kyselemällä pienempiä aineistoja.,
joskus ETL: n vaatimus Pienemmästä aineistosta voidaan täyttää Linkkipalvelimella eikä ETL: n työkalulla, kuten SSIS: llä. Kun rivit mukana numero tuhannesosa tai pienempi 10s tuhansia linkitetty palvelin perustuu ETL voi suorittaa ilman aikaa kuin se kestää käynnistää SSIS Moottori.
Seuraavaksi
- on koko perheen kehittyneitä Liittyy Palvelin vinkkejä MSSQLTips.,com
- helpotti linkitettyjen palvelinnimien lukemista
Viimeksi päivitetty: 2019-06-28
tekijästä
Katso kaikki vinkkini
- lisää SQL Server DBA-vinkkejä…