首页 > 解决方案 > 不一致的通信链路故障 (10060) 错误

问题描述

再会,

环境

问题

在将数据推送到 MS SQL 数据库时,我不断收到不一致的错误。

sqlalchemy.exc.OperationalError: (pyodbc.OperationalError) ('08S01', '[08S01] [Microsoft][ODBC Driver 17 for SQL Server]TCP Provider: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.\r\n (10060) (SQLExecute); [08S01] [Microsoft][ODBC Driver 17 for SQL Server]Communication link failure (10060)')
[SQL: INSERT INTO randata.[RAN_regional] (mbnl_cell_id, nominal_id, code, activity_id, acquisition_partner, dici_partner, design_partner, build_partner, [MS1_PreRequisites_ACT], [MS2_Nomination_ACT], [SurveyInstructed_ACT], [MS3_DesignSurveyComplete_FC], [MS3_DesignSurveyComplete_ACT], [SSR_Uploaded], [GA_Instructed], [GA_Submitted_FC], [GA_Submitted_ACT], [GA_ApprovedAcq_ACT], [GA_ApprovedRadio_ACT], [GA_ApprovedBuild_ACT], [GA_Approved_T&T_ACT], [GA_Approved_ALL_ACT], [GA_Rejected_ACT], [GA_RejectionReason], [GDC_Required], [GDC_Instructed_ACT], [GDC_Approved_ACT], [DD_Instructed_ACT], [DD_Submitted_FC], [DD_Submitted_ACT], [DD_Rejected_ACT], [DD_ApprovedBuild_ACT], [DD_Approved_TnT_ACT], [DD_Approved_ALL_ACT], [DNO_AC_ExistingSupply], [REC_UpgradeRequired], [DNO_AC_ProposedSupply], [ServiceRequestFormIssued_SMS], [InstructionToObtainQuote_ACT], [DNO], [DNOConfirmPaymentReceived_ACT], [LeaseReadInstructed_ACT], [LeaseReadComplete_ACT], [ACQ_LeaseExpiryDate], [ACQ_AgreementType_5G], [ACQ_WithinRights], [ACQ_TechnologyRestriction_5G], [ACQ_Antenna_DishRights_5G], [ACQ_Cabinet_CabinRights_5G], [ACQ_AssAprtStlwSprtRights_5G], [ACQ_RequiredUpgradeRights_5G], [AcquisitionInstructed_ACT], [PlanningTypeSSR], [PlanningConstraints], [PlanningTypeSubmitted], [PlanningSubmitted_FC], [PlanningSubmitted_ACT], [PlanningApproved_FC], [PlanningApproved_ACT], [PlanningRefused], [PlanningAppealSubmitted], [AcqPathSSR], [AcqPath], [LLAgent], [HOTsComplete_FC], [HOTsComplete_ACT], [SolicitorsInstrA1submtd_ACT], [LegalsInstructed_ACT], [TypeofLegalsInstructed], [EngrossmentIssued], [EngrossmentReturned], [LegalCompletion_FC], [LegalCompletion_ACT], [AHOP_Submitted_ACT], [AHOP_Approved_ACT], [Ready_to_Access_FC], [Ready_to_Access_ACT], [MS5_SiteAccessed_FC], [MS5_SiteAccessed_ACT], [MS5_ATRISK_SiteAccessed_ACT], [CallOffReceivedfromSWC], [CallOffSubmitted], [MS7_BuildInstructed_FC], [MS7_BuildInstructed_ACT], [BuildStart_FC], [BuildStart_ACT], [CivilsComplete_FC], [CivilsComplete_ACT], [RiggingComplete_FC], [RiggingComplete_ACT], [PowerCabInstall_FC], [PowerCabInstall_ACT], [Jointing_FC], [Jointing_ACT], [Metering_FC], [Metering_ACT], [FuseUpgradeComplete_FC], [FuseUpgradeComplete_ACT], [MS8_BuildComplete_FC], [MS8_BuildComplete_ACT], [DataFillRequested_ACT], [DataFillIssued_ACT], [DIC_FC], [DIC_ACT]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]
[parameters: (('AAB002', '', '', 'AAB002_55', '', '', '', '', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, '', '', None, None, None, None, None, None, None, None, None, '', '', '', None, None, None, None, None, None, None, '', '', '', '', '', '', '', None, '', '', '', None, None, None, None, '', None, '', '', '', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None), ('AAB014', '', '', 'AAB014_55', '', '', '', '', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, '', '', None, None, None, None, None, None, None, None, None, '', '', '', None, None, None, None, None, None, None, '', '', '', '', '', '', '', None, '', '', '', None, None, None, None, '', None, '', '', '', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None), ('AAB026', '', '', 'AAB026_55', '', '', '', '', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, '', '', None, None, None, None, None, None, None, None, None, '', '', '', None, None, None, None, None, None, None, '', '', '', '', '', '', '', None, '', '', '', None, None, None, None, '', None, '', '', '', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None), ('AAB063', '', '', 'AAB063_55', '', '', '', '', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, '', '', None, None, None, None, None, None, None, None, None, '', '', '', None, None, None, None, None, None, None, '', '', '', '', '', '', '', None, '', '', '', None, None, None, None, '', None, '', '', '', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None), ('AAB068', '', '', 'AAB068_55', '', '', '', '', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, '', '', None, None, None, None, None, None, None, None, None, '', '', '', None, None, None, None, None, None, None, '', '', '', '', '', '', '', None, '', '', '', None, None, None, None, '', None, '', '', '', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None), ('ABC002', '', '', 'ABC002_14', '', '', '', '', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, '', '', None, None, None, None, None, None, None, None, None, '', '', '', None, None, None, None, datetime.datetime(2020, 6, 17, 0, 0), datetime.datetime(2020, 6, 18, 0, 0), datetime.datetime(2012, 6, 23, 0, 0), 'Expired Lease', '', 'Not Detailed', '10A', 'Not Specific', 'Unclear', 'Yes', None, '', 'None Known', '', None, None, None, None, '', None, 'Qualified Consent (NTBUWOD)', '', '', None, None, None, None, None, None, None, None, None, None, None, datetime.datetime(2030, 12, 31, 0, 0), None, datetime.datetime(2030, 12, 31, 0, 0), None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None), ('ABC015', '', '', 'ABC015_55', '', '', '', '', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, '', '', None, None, None, None, None, None, None, None, None, '', '', '', None, None, None, None, datetime.datetime(2020, 3, 2, 0, 0), datetime.datetime(2020, 6, 2, 0, 0), datetime.datetime(2020, 6, 2, 0, 0), 'In date Lease', 'YES', 'Not Detailed', '10A', 'Not Specific', 'Unclear', 'No', None, '', '', '', None, None, None, None, '', None, '', '', '', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None), ('ABC018', '', '', 'ABC018_55', '', '', '', '', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, '', '', None, None, None, None, None, None, None, None, None, '', '', '', None, None, None, None, datetime.datetime(2020, 3, 2, 0, 0), datetime.datetime(2020, 4, 17, 0, 0), datetime.datetime(2018, 6, 22, 0, 0), 'Expired Lease', '', 'Not Detailed', '2A/1D', 'Equipment Room', 'Unclear', 'No', None, '', '', '', None, None, None, None, '', None, '', '', '', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None)  ... displaying 10 of 3432 total bound parameter sets ...  ('', '', '', '', '', '', '', '', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, '', '', None, None, None, None, None, None, None, None, None, '', '', '', None, None, None, None, None, None, None, '', '', '', '', '', '', '', None, '', '', '', None, None, None, None, '', None, '', '', '', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None), ('', '', '', '', '', '', '', '', None, None, None, None, None, None, None, None, datetime.datetime(2021, 3, 2, 0, 0), None, None, None, None, None, None, '', '', None, None, None, None, None, None, None, None, None, '', '', '', None, None, None, None, None, None, None, '', '', '', '', '', '', '', None, '', '', '', None, None, None, None, '', None, '', '', '', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None))]
(Background on this error at: http://sqlalche.me/e/13/e3q8)

表格从非常小的表格推迟到 ~10-20k 行和 ~150 列。
我使用相同的参数,但错误的出现和消失没有明确的原因。

我的代码

引擎:

我试图改变这些参数:

driver = "ODBC Driver 17 for SQL Server"
        server = 'server'
        username = os.getenv('MSSQL_USER')
        password = os.getenv('MSSQL_PASSWORD')
        database = 'db'

        odbc_str = f'DRIVER={driver};SERVER={server};PORT=1433;UID={username};DATABASE={database};PWD={password}'
        connect_str = f'mssql+pyodbc:///?odbc_connect={urllib.parse.quote_plus(odbc_str)}'

        engine = sqlalchemy.create_engine(connect_str, fast_executemany=False)

注入 MS SQL:

我试图改变这些参数:

df.to_sql(sql_table_name, 
               general.get_engine(), 
              if_exists='replace', 
              index=False,
              dtype=db_schemas.MS1_MS8_SCHEMA_MAPPING,
              schema='data')

你能帮忙解决这个问题吗?谢谢你。达里亚

标签: pythonsql-serversqlalchemypyodbc

解决方案


推荐阅读