Heim > Datenbank > SQL > Hauptteil

Grafische Methode von SQL Server für den serverübergreifenden Betrieb einer Datenbank (LinkedServer)

WBOY
Freigeben: 2022-11-02 16:13:14
nach vorne
2465 Leute haben es durchsucht

Dieser Artikel vermittelt Ihnen relevantes Wissen über SQL, das hauptsächlich die grafische Methode des serverübergreifenden Datenbankbetriebs von SQL Server vorstellt. SQL Server Management Studio (SSMS) ist eine integrierte Umgebung zur Verwaltung der SQL Server-Infrastruktur Ich hoffe, dass es für alle hilfreich sein wird.

Grafische Methode von SQL Server für den serverübergreifenden Betrieb einer Datenbank (LinkedServer)

Empfohlenes Lernen: „SQL-Tutorial

Einführung in Grundkenntnisse

Verwenden Sie das Datenbankverwaltungstool SSMS (SQL Server Management Studio) von SQL Server als Plattform für den Betrieb.

SQL Server Management Studio (SSMS) ist eine integrierte Umgebung zur Verwaltung der SQL Server-Infrastruktur. Mit SSMS können Sie auf alle Komponenten von SQL Server, Azure SQL-Datenbank und SQL Data Warehouse zugreifen, diese konfigurieren, verwalten und entwickeln. SSMS vereint eine Reihe grafischer Tools und einen umfangreichen Skripteditor in einem umfassenden Dienstprogramm, um Entwicklern und Datenbankadministratoren aller Erfahrungsstufen Zugriff auf SQL Server zu ermöglichen.

Was ist serverübergreifender Betrieb?

Serverübergreifender Betrieb bedeutet, dass Sie lokal eine Verbindung zur Datenbank auf dem Remote-Server herstellen und entsprechende Datenbankvorgänge an der Datenbank der anderen Partei durchführen können, z. B. Hinzufügungen, Löschungen, Änderungen und Suchvorgänge.

Warum serverübergreifende Vorgänge notwendig sind

Mit der Zunahme des Datenvolumens und der Ausweitung des Geschäftsvolumens müssen unterschiedliche Datenbanken auf verschiedenen Servern installiert werden. Aufgrund von Geschäftsanforderungen werden derzeit Daten auf verschiedenen Servern integriert -Server-Operationen sind erforderlich.

Welche Tools gibt es für serverübergreifende Operationen?

DBLINK (Datenbanklink) ist, wie der Name schon sagt, ein Link zur Datenbank, genau wie eine Telefonleitung, ein Kanal. Wenn wir über eine lokale Datenbank auf Daten in einer anderen Datenbanktabelle zugreifen möchten, muss eine Remote-Datenbank verwendet werden In der lokalen Datenbank dblink erstellt werden, kann die lokale Datenbank über dblink auf Daten in entfernten Datenbanktabellen zugreifen, genau wie auf die lokale Datenbank.

Methode 1: Verwenden Sie SSMS, um einen Remote-Verbindungsserver (LinkedServer) zu erstellen – einfache Verbindung zum Remote-SqlServer.

1 Öffnen Sie SSMS –> > Verknüpfter Server (Rechtsklick) -> Erstellen Sie einen neuen verknüpften Server, wie unten gezeigt:

2 Geben Sie die relevanten Informationen in das Popup-Dialogfeld ein.

● Geben Sie die IP-Adresse des anderen Servers ein [Linkserver];

● Wählen Sie unter [Servertyp] [SQL-Server] aus.

3 Klicken Sie auf [Sicherheit] und geben Sie das Konto und das Passwort der anderen Partei ein Datenbank in Schritt 3.

Nach dem Klicken auf die Schaltfläche „OK“ wird der Verbindungsserver (LinkedServer) erfolgreich erstellt. Zu diesem Zeitpunkt können Sie den erstellten Verbindungsserver sehen:

Sehen Sie sich den Code des Verbindungsservers an: Klicken Sie mit der rechten Maustaste auf den erstellten Verbindungsserver und schreiben Sie das Verbindungsserver-Skript als --> Erstellen unter --> Abfrage bearbeiten Das Serverfenster öffnet das Skript für den gerade erstellten Verbindungsserver.

--Nachdem der Verbindungsserver (LinkedServer) erstellt wurde, wird der entsprechende Code automatisch generiert - Link zur Remote-SQLServer-Datenbank:

EXEC master.dbo.sp_addlinkedserver @server = N'192.168.110.189,1433',@srvproduct=N'SQL Server';
-- @rmtsrvname
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'192.168.110.189',@useself=N'False',@locallogin=NULL,@rmtuser=N'sa',@rmtpassword='########';
Nach dem Login kopieren

Hinweis: Hier besteht ein Nachteil, d. h. alle Datenbanken im Der gesamte Remote-SQLServer ist verknüpft (im Allgemeinen ist nur eine bestimmte Datenbank erforderlich), und der Name des verknüpften Servers ist eine IP und kann nicht angepasst werden! Daher ist es am besten, die Linkdatenbank direkt über Code zu erstellen (siehe „3. Detaillierte Erläuterung des Codes“).

Nachdem der LinkedServer erfolgreich erstellt wurde, können wir den erstellten DBLINK verwenden, um eine Verbindung zum Remote-Linked-Server herzustellen. Lassen Sie uns dies überprüfen, indem wir die Tabelle auf dem Server der anderen Partei mithilfe der erstellten Tabelle abfragen.

--Methode zum Abfragen von Daten in LinkedServer: [DBLINK-Name].[Name der Partnerdatenbank].[Schemaname der Musterdatenbank].[Name der Partnerdatenbanktabelle]

SELECT * FROM [192.168.110.189 ].[erp25new] .[dbo].[fee_data]

Auf das obige FROM-Feld folgt [DBLINK-Name].[Anderer Datenbankname].[Modellname unter der anderen Datenbank].[Anderer Datenbanktabellenname], Tabelle Kein Inhalt vor dem Namen kann fehlen.

Die Abfrageergebnisse sind wie folgt:

Methode 2: SSMS erstellt einen SQLServer-Verbindungsserver (LinkedServer) – passen Sie andere mit SqlServer verknüpfte Datenbanken an

1 Auswahlseite [Allgemein]:

2.【安全性】选择页:

自定义链接数据库到SQLServer【新建链接服务器】对话框中需输入的相关信息说明:

1.【常规】页

● 在【链接服务器】中,输入 自定义的链接服务器别名,如:DBLINK_TO_TESTDB

● 在【服务器类型】中选择【其他数据源】;

▶[提供程序]中选择 第一个Microsoft OLE DB Provider for SQL Server

▶[产品名称]中,可以空白不填,也可以填写SQL Server { 注意提供程序是OLE DB Provider for SQL Server时产品名称这里必须为空白!}

▶[数据源]中 远程数据库的地址,端口\实例名 ,如 10.10.0.73,1433\MSSQLSERVER

▶[访问接口字符串]中,可以空着不填; 也可以填下方的:(注意######是密码,请换成自己的密码)

Provider=sqloledb;Data Source=10.10.0.73,1433\MSSQLSERVER;Initial Catalog=TESTDB;User Id=apps;Password=#####;

▶[目录]就是数据库名称,这里填上我们需要远程连上的数据库 TESTDB (可以换成自己实际的)。

2.【安全性】页

● 选择【使用此安全上下文建立连接(M)】

▶[远程登录]: 远程数据库的连接账号

▶[使用密码]: 远程数据库连接账号的密码

--链接服务器(LinkedServer)创建完成后会自动生成相关代码 —— 链接到远程的SQLServer数据库(自定义):

EXEC master.dbo.sp_addlinkedserver @server = N'DBLINK_TO_TESTDB',@srvproduct=N'',@provider=N'SQLNCLI', @datasrc=N'10.10.0.73';EXEC master.dbo.sp_addlinkedsrvlogin@rmtsrvname=N'DBLINK_TO_TESTDB',@useself=N'False',@locallogin=NULL,@rmtuser=N'apps',@rmtpassword='########';

/****** 实际例子 系统生成的Object: LinkedServer [DBLINK_TO_TESTDB] ******/

USE [master]

GO

EXEC master.dbo.sp_addlinkedserver @server = N'DBLINK_TO_TESTDB', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'10.10.0.73,1433\MSSQLSERVER', @catalog=N'TESTDB'

/*For security reasons the linked server remote logins password is changed with ########*/

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'TEST',@useself=N'False',@locallogin=NULL,@rmtuser=N'apps',@rmtpassword='########'
Nach dem Login kopieren

其他方式: 提供程序换成其它的, 如本机SQL Server Native Client 11.0 (SQL Server Native Client 11.0 不支持连接到SQL Server 2000或更早的版本) 等

方法三:用SSMS创建SQLServer链接服务器(LinkedServer)--链接到非SqlServer的其它数据库

四、代码详解:方法一和方法二是通过SSMS直接操作的,下方直接使用sql脚本来创建链接服务器(LinkedServer)

A. SSMS链接到远程SQLServer数据库

(本地SQLServer数据库链接服务器(LinkedServer)到远程SQLServer数据库。)

--LinkedServer链接到远程SQLServer数据库:

--1. 声明将要链接的‘链接名称(自定义)’,远程数据库产品名(或别名),(提供商,数据库服务器地址及实例名)

EXEC master.dbo.sp_addlinkedserver @server = N'DBLINK_TO_TESTDB',@srvproduct=N'SQL Server';

--2. 声明‘链接名称(自定义)’,@useself=N'False',@locallogin=NULL,将要链接的数据库服务器的账号和密码

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'192.168.110.189',@useself=N'False',@locallogin=NULL,@rmtuser=N'sa',@rmtpassword='########';

B. SSMS链接到远程非SQLServer数据库

(本地SQLServer数据库链接服务器(LinkedServer)到远程非SQLServer的数据库。如远程的MySQL、Oracle等数据库。)

--链接到远程的非SQLServerd数据库(如链接到远程MySQL、Oracle等数据库):

--1. 声明‘自定义的链接名称’,远程数据库产品名(或别名),提供商,数据库服务器地址及实例名

EXEC master.dbo.sp_addlinkedserver @server = N'TEST_SQL_SERVER',@srvproduct=N'TEST',@provider=N'SQLNCLI11', @datasrc=N'192.168.110.189';-

-2. 声明登录信息 ‘自定义的链接名称’,@useself=N'False',@locallogin=NULL,远程数据库的账号和密码

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'TEST_SQL_SERVER',@useself=N'False',@locallogin=NULL,@rmtuser=N'sa',@rmtpassword='########';

实际例子-SQL Server通过Linkserver连接MySql

--通过SSMS链接到远程MySql数据库(SQL Server连接MySql)--使用的访问接口为:MySql Provider for OLE DB--

EXEC master.dbo.sp_addlinkedserver @server = N'DBLINK_TO_MysqlTESTDB', @srvproduct = N'MySql', @provider = N'MSDASQL', @provstr = N'Driver={MySQL ODBC 5.1 Driver};Server=10.167.69.6,3306/sytv;Database=TESTDB;User=root;Password=root;Option=3';--

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'DBLINK_TO_MysqlTESTDB', @useself = N'False', @locallogin = N'10.167.69.6,3306/sytv', @rmtuser = N'root', @rmtpassword = N'root';
Nach dem Login kopieren

实际例子-SQL Server通过Linkserver连接Oracle

--通过SSMS链接到远程Oracle数据库(SQL Server连接Oracle)

--使用的访问接口为:Oracle Provider for OLE DB

USE [master]

GO

--Declare Oracle OLEDB 'OraOLEDB.Oracle':

EXEC master.dbo.sp_MSset_oledb_prop N'OraOLEDB.Oracle', N'AllowInProcess', 1;--Create the Linked Server to the ECT database in Oracle:

EXEC sp_addlinkedserver 'DBLINK_TO_OraTESTDB', 'Oracle', 'OraOLEDB.Oracle', '10.167.69.6/prt';--EXEC master.dbo.sp_addlinkedserver @server = N'DBLINK_TO_OraTESTDB', @srvproduct=N'oracle', @provider=N'OraOLEDB.Oracle', @datasrc=N'10.167.69.6/orcl'

--Create the Remote Login for the Oracle Linked Server:

EXEC sp_addlinkedsrvlogin @rmtsrvname=N'DBLINK_TO_OraTESTDB',@useself=N'False',@locallogin=N'apps',@rmtuser=N'SYSTEM',@rmtpassword='######'; 

--最后可以测试一下是否连接成功 --select * from openquery(DBLINK_TO_OraTESTDB,'select * from SYSTEM.HELP');
Nach dem Login kopieren

推荐学习:《SQL教程

Das obige ist der detaillierte Inhalt vonGrafische Methode von SQL Server für den serverübergreifenden Betrieb einer Datenbank (LinkedServer). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
sql
Quelle:jb51.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!