Rumah >pangkalan data >SQL >Kaedah grafik SQL Server untuk mengendalikan pangkalan data merentas pelayan (LinkedServer)

Kaedah grafik SQL Server untuk mengendalikan pangkalan data merentas pelayan (LinkedServer)

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBke hadapan
2022-11-02 16:13:142670semak imbas

Artikel ini membawa anda pengetahuan yang berkaitan tentang SQL, yang terutamanya memperkenalkan kaedah grafik operasi pangkalan data silang pelayan SQL Server (SSMS) digunakan untuk mengurus SQL Mari kita lihat persekitaran bersepadu infrastruktur Pelayan saya harap ia akan membantu semua orang.

Kaedah grafik SQL Server untuk mengendalikan pangkalan data merentas pelayan (LinkedServer)

Kajian yang disyorkan: "Tutorial SQL"

Pengenalan kepada pengetahuan asas

Alat pengurusan pangkalan data SQL Server SSMS (SQL Server Management Studio) beroperasi untuk platform.

SQL Server Management Studio (SSMS) ialah persekitaran bersepadu untuk mengurus infrastruktur SQL Server. Menggunakan SSMS, anda boleh mengakses, mengkonfigurasi, mengurus dan membangunkan semua komponen Pelayan SQL, Pangkalan Data Azure SQL dan Gudang Data SQL. SSMS menghimpunkan beberapa alatan grafik dan editor skrip yang kaya dalam satu utiliti yang komprehensif untuk menyediakan pembangun dan pentadbir pangkalan data semua peringkat kemahiran dengan akses kepada SQL Server.

Apakah operasi silang pelayan?

Operasi merentas pelayan bermaksud anda boleh menyambung secara setempat ke pangkalan data pada pelayan jauh dan melaksanakan operasi pangkalan data yang berkaitan pada pangkalan data pihak lain, seperti penambahan, pemadaman, pengubahsuaian dan carian.

Mengapa operasi silang pelayan diperlukan

Dengan peningkatan jumlah data dan pengembangan volum perniagaan, pangkalan data yang berbeza perlu dipasang pada pelayan yang berbeza Kadangkala disebabkan keperluan perniagaan, pelayan yang berbeza Untuk mengintegrasikan data dalam pelayan, operasi silang pelayan diperlukan.

Apakah alatan untuk operasi silang pelayan?

DBLINK (pautan pangkalan data), seperti namanya, adalah pautan ke pangkalan data Sama seperti talian telefon, ia adalah saluran Apabila kita ingin mengakses data dalam jadual pangkalan data lain merentasi pangkalan data tempatan. pangkalan data tempatan mesti Untuk mencipta dblink pangkalan data jauh, pangkalan data tempatan boleh mengakses data dalam jadual pangkalan data jauh sama seperti pangkalan data tempatan melalui dblink.

Kaedah 1: Gunakan SSMS untuk mencipta pelayan terpaut jauh SQL Server (LinkedServer)--pautan mudah ke SqlServer jauh

1 Buka SSMS --> --> Objek Pelayan --> Pelayan Terpaut (klik kanan) --> dalam kotak dialog pop timbul

● Masukkan alamat IP pelayan lain dalam [Pelayan Terpaut]; 🎜>

3. Klik [Keselamatan] di sebelah kiri, dan halaman berikut akan muncul Dalam langkah 3, masukkan akaun dan kata laluan pangkalan data pihak lain.

Selepas mengklik butang OK, pelayan yang dipautkan (LinkedServer) berjaya dibuat. Pada masa ini, anda boleh melihat pelayan terpaut yang dibuat:

Lihat kod pelayan terpaut: Klik kanan pada pelayan terpaut yang dibuat dan tulis skrip pelayan terpaut sebagai --> ; Cipta ke --> Tetingkap Editor Pertanyaan Baharu untuk membuka skrip untuk pelayan terpaut yang baru anda buat.

--Selepas LinkedServer dibuat, kod yang berkaitan akan dijana secara automatik - Pautan ke pangkalan data SQLServer jauh:

Nota: Di sini Terdapat kelemahan, iaitu, semua pangkalan data dalam keseluruhan SqlServer jauh dipautkan (biasanya hanya satu pangkalan data khusus diperlukan), dan nama pelayan yang dipautkan ialah IP dan tidak boleh disesuaikan! Oleh itu, cara terbaik adalah dengan terus mencipta pangkalan data pautan melalui kod (lihat "3. Penjelasan Terperinci Kod").

Selepas LinkedServer berjaya dibuat, kami boleh menggunakan DBLINK yang dibuat untuk menyambung ke pelayan Terpaut jauh. Mari sahkannya dengan menanyakan jadual pada pelayan pihak lain menggunakan yang dibuat.

--Kaedah untuk menanyakan data dalam LinkedServer: [DBLINK name].[Nama pangkalan data lain].[Nama mod di bawah pangkalan data lain].[Nama jadual pangkalan data lain]

SELECT * FROM [192.168.110.189].[erp25new].[dbo].[fee_data]
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='########';

Medan FROM di atas diikuti dengan [nama DBLINK].[Nama pangkalan data rakan kongsi]. dalam pangkalan data pihak lain].[Nama jadual dalam pangkalan data pihak satu lagi].

Hasil pertanyaan adalah seperti berikut:

Kaedah 2: SSMS mencipta pelayan terpaut SQLServer (LinkedServer)--sesuaikan pangkalan data lain yang dipautkan ke SqlServer

1. Halaman pilihan [Umum]:

 

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='########'

其他方式: 提供程序换成其它的, 如本机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';

实际例子-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');

推荐学习:《SQL教程

Atas ialah kandungan terperinci Kaedah grafik SQL Server untuk mengendalikan pangkalan data merentas pelayan (LinkedServer). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:jb51.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam