Bagaimana cara memuat ulang server yang tertaut?

14

Saya menggunakan Microsoft SQL Server 2014 Enterprise Edition. Terjadi masalah dengan server tertaut di mana perlu untuk me-restart server, atau menghentikan MSSQLSERVERlayanan. Ketika server berjalan lagi, server yang ditautkan (ke DB2) tidak berfungsi dengan benar dan SQL Server menunjukkan kesalahan ini:

Msg 7302, Level 16, Negara 1, Jalur 10
Tidak dapat membuat turunan dari penyedia OLE DB "DB2OLEDB" untuk server tertaut "Airspe".

Hanya setelah me-restart server beberapa kali server terhubung mulai bekerja.

  1. Mengapa perlu me-restart server beberapa kali untuk mendapatkan server yang terhubung?
  2. Apakah ada solusi lain?

Ini adalah skrip untuk membuat salah satu server yang ditautkan:

EXEC master.dbo.sp_addlinkedserver 
@server = N'AIRS', 
@srvproduct=N'Microsoft OLE DB Provider for DB2', 
@provider=N'DB2OLEDB', 
@datasrc=N'###.###.###.##',@provstr=N'Provider=DB2OLEDB;
    Data Source=#####;Persist Security Info=True;Password=**********;
    User ID=######;Initial Catalog=######;
    Network Address=###.###.###;Package Collection=AICOLDP;DBMS Platform=DB2/AS400',
@catalog=N'#####'

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'AIRS',@useself=N'False',@locallogin=NULL,@rmtuser=N'#####',@rmtpassword='########'
EXEC master.dbo.sp_serveroption @server=N'AIRS', @optname=N'collation compatible', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server=N'AIRS', @optname=N'data access', @optvalue=N'true'
EXEC master.dbo.sp_serveroption @server=N'AIRS', @optname=N'dist', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server=N'AIRS', @optname=N'pub', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server=N'AIRS', @optname=N'rpc', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server=N'AIRS', @optname=N'rpc out', @optvalue=N'true'
EXEC master.dbo.sp_serveroption @server=N'AIRS', @optname=N'sub', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server=N'AIRS', @optname=N'connect timeout', @optvalue=N'0'
EXEC master.dbo.sp_serveroption @server=N'AIRS', @optname=N'collation name', @optvalue=null
EXEC master.dbo.sp_serveroption @server=N'AIRS', @optname=N'lazy schema validation', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server=N'AIRS', @optname=N'query timeout', @optvalue=N'0'
EXEC master.dbo.sp_serveroption @server=N'AIRS', @optname=N'use remote collation', @optvalue=N'true'
EXEC master.dbo.sp_serveroption @server=N'AIRS', @optname=N'remote proc transaction promotion', @optvalue=N'true'

Ini adalah konfigurasi penyedia: konfigurasi provider_

MelgoV
sumber

Jawaban:

1

Saya percaya ada sesuatu yang hilang dalam konfigurasi yang dilakukan untuk DB2 Link.

string koneksi akan terlihat seperti ini. Pertama.

Provider=DB2OLEDB; User ID=db2user; Password=mypassword; Initial Catalog=mydatabase;
Network Transport Library=TCP; Host CCSID=37;PC Code Page=1208;
Network Address=111.111.111.333; Network Port=446; Package Collection=MSDB2COL; 
Process Binary as Character=False; Connect Timeout=15; Units of Work=RUW;
DBMS Platform=DB2/AS400;Defer Prepare=False;Rowset Cache Size=0; Max Pool Size=100;
Persist Security Info=True;Connection Pooling=True;Derive Parameters=False;

Silakan tambahkan parameter yang hilang, sehingga sistem tidak akan menetapkan parameter Otomatis / rando, yang seharusnya menyelesaikan masalah.

MarmiK
sumber
0

Jawaban wiki komunitas :

Masalahnya adalah arsitektur. Kami memiliki 32 bit; kami sekarang telah memigrasi sistem kami ke server lain dengan SQL Server 2014 Enterprise 64-bit dan semua masalah kami sudah selesai - MelgoV (penulis pertanyaan).


Saran lain dibiarkan dalam komentar jika mereka membantu orang lain:

Ini bukan perilaku normal untuk memulai kembali kecuali selama perubahan konfigurasi. Anda harus menonaktifkan opsi dalam proses jika Anda peduli dengan stabilitas basis data inti Anda - jika tidak, kesalahan dalam driver server yang terhubung dapat menyebabkan mesin Anda mogok.

Ini bukan hal sepele untuk mulai bekerja dan memiliki banyak efek knock-on, misalnya dalam cara dan apa yang digunakan untuk menghadirkan kredensial keamanan di seluruh jaringan. Berharap untuk menghabiskan hari mencoba untuk mengurai itu jika Anda pergi ke jalan itu.


Masalahnya mungkin ada hubungannya dengan driver Microsoft itu sendiri. Gunakan driver yang disediakan IBM sebagai gantinya. Petunjuk untuk menginstal ini dapat ditemukan di sini . Driver yang disediakan vendor seringkali jauh lebih unggul: lebih stabil dan dengan kinerja lebih tinggi, dibandingkan dengan yang disediakan oleh Microsoft.

user126897
sumber