Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Toegang tot referentiemateriaal voor het script voor hulpprogrammaobjecten van SQL Server, inclusief onderdelen, parameters en probleemoplossing.
Overzicht
Met het script worden geversioneerde hulpprogramma's opgeslagen procedures en functies geïnstalleerd om uw SQL Server-database in te richten voor gegevensopname in Lakeflow Connect. Installatietaken zijn onder andere:
- Machtigingsbeheer
- Instelling voor het bijhouden van wijzigingen (CT)
- CDC-installatie (Data Capture) wijzigen
- Platformdetectie
- DDL-ondersteuning voor het maken van objecten voor het bijhouden van schemawijziging
Versie-informatie
- Huidige versie: 1.1
- Hoofdversie: 1
- Kleine versie: 1
- Versiebeheer:
lakeflowUtilityVersion_1_1()
Belangrijkste onderdelen
Functions
lakeflowDetectPlatform()
Hiermee wordt het sql Server-platformtype gedetecteerd.
Retourneert: 'AZURE_SQL_DATABASE', 'AZURE_SQL_MANAGED_INSTANCE', 'AMAZON_RDS', , of 'ON_PREMISES''UNKNOWN'
lakeflowUtilityVersion_1_1()
Hiermee wordt de versie van de hulpprogrammaobjecten gedetecteerd.
Retourneert: '1.1'
Opgeslagen procedures
lakeflowFixPermissions
Verleent vereiste machtigingen aan gebruikers voor opnamebewerkingen.
Parameters:
| Kenmerk | Description |
|---|---|
@User (NVARCHAR(128)) |
Verplicht. Gebruikersnaam waaraan machtigingen verleend worden |
@Tables (NVARCHAR(MAX)) |
Optional. Machtigingsbereik op tabelniveau beheren |
@Tables parameteropties:
| Optie | Description |
|---|---|
NULL |
Alleen machtigingen op systeemniveau verlenen (standaard) |
'ALL' |
Machtigingen verlenen aan alle gebruikerstabellen in de database |
'SCHEMAS:Schema1,Schema2' |
Machtigingen verlenen voor alle tabellen in opgegeven schema's |
'Schema.Table1,Schema.Table2' |
Machtigingen verlenen voor specifieke tabellen |
| Ondersteuning voor jokertekens | Voorbeeld: 'Sales.*,HR.Employees' |
Wat het doet:
- Subsidies
SELECTvoor vereiste systeemweergaven (sys.objects,sys.tables,sys.columnsenzovoort) - Subsidies
EXECUTEvoor door het systeem opgeslagen procedures (sp_tables,sp_columns_100enz.) - Verleent
SELECTaan gebruikerstabellen op basis van de@Tablesparameter, optioneel - Behandelt platformspecifieke verschillen (Azure SQL Database, Managed Instance, RDS, On-premises)
lakeflowSetupChangeTracking
Hiermee kunt u wijzigingen bijhouden op database- en tabelniveau met DDL-ondersteuning.
Parameters:
| Kenmerk | Description |
|---|---|
@Tables (NVARCHAR(MAX)) |
Optional. Tabellen om CT in te schakelen |
@User (NVARCHAR(128)) |
Optional. Gebruiker moet machtigingen verlenen aan |
@Retention (NVARCHAR(50)) |
Optional. CT-bewaarperiode (standaard: '2 DAYS') |
@Mode (NVARCHAR(10)) |
Optional.
'INSTALL' (standaard) of 'CLEANUP' |
@Tables parameteropties:
| Optie | Description |
|---|---|
NULL |
Alleen CT- en DDL-ondersteuning op databaseniveau instellen (geen tabel inschakelen) |
'ALL' |
CT inschakelen voor alle gebruikerstabellen met primaire sleutels |
'SCHEMAS:Schema1,Schema2' |
CT inschakelen voor tabellen in opgegeven schema's |
'Schema.Table1,Schema.Table2' |
CT inschakelen voor specifieke tabellen |
| Ondersteuning voor jokertekens | Voorbeeld: 'Sales.*,HR.Employees' |
Wat het doet:
- Hiermee schakelt u, indien nog niet ingeschakeld, het bijhouden van wijzigingen op databaseniveau in.
- Hiermee maakt u een DDL-audittabel met versiebeheer (
lakeflowDdlAudit_1_2) - Hiermee maakt u een DDL-audit-trigger om schemawijzigingen vast te leggen
- Hiermee schakelt u CT in voor opgegeven tabellen (slaat tabellen zonder primaire sleutels over)
- Verleent
VIEW CHANGE TRACKINGmachtigingen aan de opgegeven gebruiker -
CLEANUPmodus: DDL-ondersteuningsobjecten verwijderen
Belangrijk gedrag:
- Hiermee worden tabellen zonder primaire sleutels automatisch overgeslagen (CDC wordt hiervoor aanbevolen)
- Slimme detectie met de
'ALL'parameter - Idempotent: Veilig om meerdere keren te worden uitgevoerd
lakeflowSetupChangeDataCapture
CDC wordt ingeschakeld op database- en tabelniveau, met DDL-ondersteuning en beheer van capture-instanties.
Parameters:
| Kenmerk | Description |
|---|---|
@Tables (NVARCHAR(MAX)) |
Optional. Tabellen om CDC in te schakelen op |
@User (NVARCHAR(128)) |
Optional. Gebruiker moet machtigingen verlenen aan |
@Mode (NVARCHAR(10)) |
Optional.
'INSTALL' (standaard) of 'CLEANUP' |
@Tables parameteropties:
| Optie | Description |
|---|---|
NULL |
Alleen CDC- en DDL-ondersteuning op databaseniveau instellen |
'ALL' |
CDC inschakelen voor alle gebruikerstabellen |
'SCHEMAS:Schema1,Schema2' |
CDC inschakelen voor tabellen in opgegeven schema's |
'Schema.Table1,Schema.Table2' |
CDC inschakelen voor specifieke tabellen |
Wat het doet:
- Schakelt CDC in op databaseniveau als deze nog niet is ingeschakeld
- Maakt een traceringstabel voor een vastleg-instantie (
lakeflowCaptureInstanceInfo_1_2) - Hiermee worden helperprocedures gemaakt voor beheer van vastleginstantie:
lakeflowDisableOldCaptureInstance_1_2lakeflowMergeCaptureInstances_1_2lakeflowRefreshCaptureInstance_1_2
- Hiermee maakt u een
ALTER TABLEtrigger voor automatische verwerking van schemawijziging - Schakelt CDC in op opgegeven tabellen
- Verleent vereiste CDC-machtigingen aan de opgegeven gebruiker
-
CLEANUPmodus: Verwijdert alle CDC DDL-ondersteuningsobjecten
Belangrijk gedrag:
- Werkt met tabellen met of zonder primaire sleutels
- Automatisch de rotatie van vastleginstantie afhandelen bij schemawijzigingen
- Idempotent: Veilig om meerdere keren te worden uitgevoerd
Platformondersteuning
- Lokaal geïnstalleerde SQL Server (EngineEdition 1-4)
- Azure SQL Database (EngineEdition 5)
- Azure SQL Managed Instance (EngineEdition 8)
- Amazon RDS voor SQL Server (gedetecteerd door servernaampatroon)
Vereiste voorwaarden
- Gebruiker die het script uitvoert, moet lid zijn van
db_ownerde rol - Voor CT-installatie: Wijzigingen bijhouden moet beschikbaar zijn op het platform
- Voor CDC-installatie: Change data capture moet beschikbaar zijn op het platform
Installatie-instructies
Het script downloaden en uitvoeren
Download het script: utility_script.sql
Het script uitvoeren
- Open het gedownloade script in SQL Server Management Studio (SSMS), Azure Data Studio of uw favoriete SQL-client.
- Maak verbinding met uw SQL Server-exemplaar.
- Controleer of u bent verbonden met de doeldatabase waar u de hulpprogrammaobjecten wilt installeren.
- Voer het script uit.
Installatie controleren
-- Verify installation SELECT dbo.lakeflowUtilityVersion_1_1() AS UtilityVersion; SELECT dbo.lakeflowDetectPlatform() AS Platform;
Alternatief: Uitvoeren met behulp van de opdrachtregel
Als u liever sqlcmd gebruikt:
sqlcmd -S YourServerName -d YourDatabase -E -i lakeflow_utility_objects.sql
Opmerking
Vervang YourServerName en YourDatabase met de werkelijke server- en databasenamen. Gebruik -U username -P password in plaats van -E als u geen Windows-verificatie gebruikt.
Voorbeeld: Machtigingen herstellen (alleen systeem)
-- Grant system permissions only
EXEC dbo.lakeflowFixPermissions
@User = 'myuser';
Voorbeeld: Machtigingen herstellen (met tabeltoegang)
-- Grant system permissions plus access to all tables
EXEC dbo.lakeflowFixPermissions
@User = 'myuser',
@Tables = 'ALL';
-- Grant permissions for specific schemas
EXEC dbo.lakeflowFixPermissions
@User = 'myuser',
@Tables = 'SCHEMAS:Sales,HR,Production';
-- Grant permissions for specific tables
EXEC dbo.lakeflowFixPermissions
@User = 'myuser',
@Tables = 'Sales.Orders,HR.Employees';
Voorbeelden: Instelling voor het bijhouden van wijzigingen
Alleen op databaseniveau
-- Setup CT infrastructure without enabling on tables
EXEC dbo.lakeflowSetupChangeTracking
@Tables = NULL,
@User = 'myuser';
Inschakelen voor alle tabellen
-- Enable CT on all user tables with primary keys
EXEC dbo.lakeflowSetupChangeTracking
@Tables = 'ALL',
@User = 'myuser';
Installatie op basis van schema
-- Enable CT on all tables in specific schemas
EXEC dbo.lakeflowSetupChangeTracking
@Tables = 'SCHEMAS:Sales,HR',
@User = 'myuser',
@Retention = '3 DAYS';
Specifieke tabellen
-- Enable CT on specific tables
EXEC dbo.lakeflowSetupChangeTracking
@Tables = 'dbo.Table1,Sales.Orders,HR.Employees',
@User = 'myuser';
Voorbeelden: CDC-installatie
Alleen op databaseniveau
-- Setup CDC infrastructure without enabling on tables
EXEC dbo.lakeflowSetupChangeDataCapture
@Tables = NULL,
@User = 'myuser';
Inschakelen voor alle tabellen
-- Enable CDC on all user tables
EXEC dbo.lakeflowSetupChangeDataCapture
@Tables = 'ALL',
@User = 'myuser';
Specifieke tabellen
-- Enable CDC on specific tables
EXEC dbo.lakeflowSetupChangeDataCapture
@Tables = 'dbo.Table1,Sales.Orders',
@User = 'myuser';
Voorbeeld: Hybride benadering
-- Step 1: Enable CT on tables with primary keys
EXEC dbo.lakeflowSetupChangeTracking
@Tables = 'ALL',
@User = 'myuser';
-- Step 2: Enable CDC on remaining tables (without primary keys)
EXEC dbo.lakeflowSetupChangeDataCapture
@Tables = 'ALL',
@User = 'myuser';
Voorbeeld: Opschonen
-- Remove CT DDL support objects
EXEC dbo.lakeflowSetupChangeTracking
@Mode = 'CLEANUP';
-- Remove CDC DDL support objects
EXEC dbo.lakeflowSetupChangeDataCapture
@Mode = 'CLEANUP';
DDL-ondersteuningsobjecten gemaakt
De volgende DDL-ondersteuningsobjecten worden gemaakt, afhankelijk van of u wijzigingen bijhouden of CDC gebruikt.
Voor het bijhouden van wijzigingen
| Objectsoort | Naam | Description |
|---|---|---|
| Table | lakeflowDdlAudit_1_2 |
Slaat de DDL-wijzigingsgeschiedenis op |
| Aanleiding | lakeflowDdlAuditTrigger_1_2 |
Legt ALTER TABLE gebeurtenissen vast |
Voor CDC
| Objectsoort | Naam | Description |
|---|---|---|
| Table | lakeflowCaptureInstanceInfo_1_2 |
Houdt capture-exemplaren bij |
| Procedure | lakeflowDisableOldCaptureInstance_1_2 |
Hiermee verwijdert u een oud capture-exemplaar |
| Procedure | lakeflowMergeCaptureInstances_1_2 |
Hiermee worden gegevens samengevoegd tussen instances |
| Procedure | lakeflowRefreshCaptureInstance_1_2 |
Hiermee maakt u een nieuw capture-exemplaar |
| Aanleiding | lakeflowAlterTableTrigger_1_2 |
Verwerkt schemawijzigingen |
Beperkingen voor het bijhouden van wijzigingen
- Primaire sleutels vereist: tabellen zonder primaire sleutels kunnen geen wijzigingen bijhouden gebruiken.
- Het script slaat automatisch tabellen zonder PK's over en raadt aan om in plaats daarvan CDC te gebruiken.
Platformspecifiek gedrag
- Azure SQL Database: door het systeem opgeslagen procedures zijn standaard toegankelijk (geen
EXECUTEsubsidies nodig). - Server-brede weergaven: Beperkte toegang in Azure SQL Database voor weergaven zoals
sys.change_tracking_databases.
Upgradepad
- Het script verwijdert automatisch alle vorige versies wanneer het wordt uitgevoerd.
- Versiebeheerschema:
objectName_majorVersion_minorVersion - Huidige objecten gebruiken
_1_1achtervoegsel voor het bijhouden van versies.
Beste praktijken
- Voer altijd uit als
db_ownerof een gebruiker met gelijkwaardige bevoegdheden. - Test eerst op databases buiten productie.
- Gebruik de hybride benadering voor uitgebreide dekking.
- Voer
lakeflowFixPermissionsna de installatie uit om de juiste gebruikerstoegang te garanderen. - Houd rekening met bewaarperioden op basis van uw opnamefrequentie.
Probleemoplossingsproces
'Gebruiker die dit script uitvoert, is geen lid van de rol 'db_owner'
Oplossing: Uitvoeren als gebruiker met db_owner rol
"Wijzigingen bijhouden is niet ingeschakeld voor catalogus"
Oplossing: SCHAKEL CT in op databaseniveau of laat de procedure automatisch afhandelen
"Het vastleggen van gegevens wijzigen is niet ingeschakeld in de catalogus"
Oplossing: Schakel CDC in op databaseniveau of laat de procedure het automatisch afhandelen
"Tabellen overgeslagen vanwege ontbrekende primaire sleutels"
Oplossing: Gebruik lakeflowSetupChangeDataCapture in plaats daarvan voor deze tabellen
Validatie-integratie
De volgende hulpprogrammaobjecten worden gevalideerd door het Java-validatieframework:
| Object | Description |
|---|---|
SqlServerUtilityObjectsSetupValidator |
Hiermee wordt de installatie van hulpprogrammaobjecten gevalideerd |
SqlServerChangeDataManagementSetupValidator |
CT/CDC-installatie valideren |
SqlServerDdlSupportObjectsSetupValidator |
DDL-ondersteuningsobjecten valideren |
SqlServerPermissionsSetupValidator |
Hiermee worden machtigingen gevalideerd |
Migratienotities
Als u een upgrade uitvoert van oudere versies van DDL-ondersteuningsobjecten (tijdperk van pre-utility-objecten):
- Met het script worden verouderde objecten automatisch opgeschoond.
- Handmatig opschonen is niet vereist.
- Versie 1.1 consolideert alle functionaliteit in geïntegreerde procedures.
Aanvullende bronnen
- SQL Server voorbereiden voor opname met behulp van het script voor hulpprogrammaobjecten
- Microsoft SQL Server configureren voor opname in Azure Databricks
- Gebruikersvereisten voor Microsoft SQL Server-database
- Gegevenswijzigingen bijhouden (SQL Server) in de SQL Server-documentatie
- Over Wijzigingen bijhouden (SQL Server) in de SQL Server-documentatie
- Wat is gegevensvastlegging bij wijzigingen (CDC)? in de SQL Server-documentatie