Over tid vokser de fleste databaseprogrammer, blir mer komplekse og trenger å støtte flere brukere. På et tidspunkt i microsoft Office Access-programmets levetid bør du vurdere å oppskalere det til en Microsoft SQL Server-database for å optimalisere ytelse, skalerbarhet, tilgjengelighet, sikkerhet, pålitelighet og gjenopprettingsevne.
I denne artikkelen
Oppskalering av en Microsoft Office Access-database
Oppskalering er prosessen med å overføre noen eller alle databaseobjekter fra en Access-database til en ny eller eksisterende SQL Server database eller nytt Access-prosjekt (ADP).
Fordeler ved å oppskalere en database til SQL Server
-
Høy ytelse og skalerbarhet I mange tilfeller gir SQL Server bedre ytelse enn en Access-database. SQL Server støtter også svært store databaser i terabyte-størrelse, som er mye større enn den gjeldende grensen for en Access-database med to gigabyte. Til slutt fungerer SQL Server svært effektivt ved å behandle spørringer parallelt (ved hjelp av flere opprinnelige tråder i én enkelt prosess for å håndtere brukerforespørsler) og minimere ekstra minnekrav når flere brukere legges til.
-
Økt tilgjengelighet SQL Server lar deg utføre en dynamisk sikkerhetskopiering, enten trinnvis eller fullført, av databasen mens den er i bruk. Dermed trenger du ikke å tvinge brukere til å avslutte databasen for å ta sikkerhetskopi av data.
-
Forbedret sikkerhet Ved hjelp av en klarert tilkobling kan SQL Server integrere med Windows-systemsikkerhet for å gi én enkelt integrert tilgang til nettverket og databasen, og bruke det beste fra begge sikkerhetssystemene. Dette gjør det mye enklere å administrere komplekse sikkerhetsordninger.
-
Umiddelbar gjenoppretting Ved systemfeil (for eksempel et operativsystemkrasj eller strømbrudd), har SQL Server en automatisk gjenopprettingsmekanisme som gjenoppretter en database til den siste tilstanden av konsekvens i løpet av minutter, uten at databaseadministratoren trenger å gjøre noe.
-
Serverbasert behandling Bruk av SQL Server i en klient/server-konfigurasjon reduserer nettverkstrafikken ved å behandle databasespørringer på serveren før du sender resultater til klienten. Det er vanligvis mye mer effektivt å la serveren utføre behandlingen, spesielt når du arbeider med store datasett.
Programmet kan også bruke brukerdefinerte funksjoner, lagrede prosedyrer og utløsere til å sentralisere og dele programlogikk, forretningsregler og policyer, komplekse spørringer, datavalidering og referanseintegritetskode på serveren, i stedet for på klienten.
Måter å oppskalere på
Oppskaleringsveiviseren flytter databaseobjekter og dataene de inneholder fra en Access-database til en ny eller eksisterende SQL Server database.
Det finnes tre måter å bruke oppskaleringsveiviseren på:
-
Oppskaler alle databaseobjekter fra en Access-database til et Access-prosjekt, slik at du kan opprette et klient-/serverprogram. Denne fremgangsmåten krever noen ekstra programendringer og endringer i kode og komplekse spørringer.
-
Oppskaler bare data eller datadefinisjoner fra en Access-database til en SQL Server-database.
-
Opprett en Access-databasefront på en SQL Server database, slik at du kan opprette en front-/bakprogram. Denne fremgangsmåten krever svært lite programendring fordi koden fremdeles bruker Access-databasemotoren (ACE).
Før du oppskalerer en Access-database
Før du oppskalerer Access-databasen til en SQL Server-database eller et Access-prosjekt, bør du vurdere å gjøre følgende:
-
Sikkerhetskopier databasen din Selv om oppskaleringsveiviseren ikke fjerner data eller databaseobjekter fra Access-databasen, er det lurt å opprette en sikkerhetskopi av Access-databasen før du oppskalerer den.
-
Sørg for at du har tilstrekkelig diskplass Du må ha tilstrekkelig diskplass på enheten som skal inneholde den oppskalerte databasen. Oppskaleringsveiviseren fungerer best når det er nok diskplass tilgjengelig.
-
Opprett unike indekser En koblet tabell må ha en unik indeks for å kunne oppdateres i Access. Oppskaleringsveiviseren kan oppskalere en eksisterende unik indeks, men kan ikke opprette en der ingen finnes. Hvis du vil oppdatere tabellene, må du sørge for at du legger til en unik indeks i hver Access-tabell før du oppskalerer.
-
Tilordne egnede tillatelser til SQL Server databasen
-
Hvis du vil oppskalere til en eksisterende database, trenger du tillatelsene CREATE TABLE og CREATE DEFAULT.
-
Hvis du vil bygge en ny database, må du ha tillatelsen OPPRETT DATABASE og SELECT-tillatelser for systemtabellene i hoveddatabasen.
-
Oppskaleringsveiviseren for Access 2007 er optimalisert for å fungere med Microsoft SQL Server 2000 og SQL Server 2005.
Bruke oppskaleringsveiviseren
-
Klikk SQL Server i Flytt data-gruppen på fanen Databaseverktøy.
Oppskaleringsveiviseren starter.
Trinn 1: Velg å oppskalere til en eksisterende database eller en ny database
På den første siden i veiviseren angir du om du vil oppskalere Access-databasen til en eksisterende SQL Server-database eller opprette en ny SQL Server database.
-
Bruk eksisterende database Hvis du velger dette alternativet og deretter klikker Neste, vises dialogboksen Velg datakilde i Access, slik at du kan opprette en ODBC-tilkobling til den eksisterende SQL Server-databasen.
Om ODBC-datakilder
En datakilde er en datakilde kombinert med tilkoblingsinformasjonen som kreves for å få tilgang til disse dataene. Eksempler på datakilder er Access, SQL Server, Oracle RDBMS, et regneark og en tekstfil. Eksempler på tilkoblingsinformasjon omfatter serverplassering, databasenavn, påloggings-ID, passord og ulike ODBC-driveralternativer som beskriver hvordan du kobler til datakilden.
I ODBC-arkitekturen kobler et program (for eksempel Access eller et Microsoft Visual Basic-program) til ODBC Driver Manager, som igjen bruker en bestemt ODBC-driver (for eksempel Microsoft SQL ODBC-driver) til å koble til en datakilde (i dette tilfellet en SQL Server database). I Access kan du bruke ODBC-datakilder til å koble til datakilder utenfor Access som ikke har innebygde drivere.
Hvis du vil koble til disse datakildene, må du gjøre følgende:
-
Installer riktig ODBC-driver på datamaskinen som inneholder datakilden.
-
Definer et datakildenavn (DSN) ved hjelp av enten administrator for ODBC-datakilden for å lagre tilkoblingsinformasjonen i Microsoft Windows-registret eller en DSN-fil, eller med en tilkoblingsstreng i Visual Basic-kode for å overføre tilkoblingsinformasjon direkte til ODBC-driverbehandling.
Maskindatakilder
Maskindatakilder lagrer tilkoblingsinformasjon i Windows-registret på en bestemt datamaskin med et brukerdefinert navn. Du kan bruke maskindatakilder bare på de datamaskinene hvor disse er definert. Det finnes to typer maskindatakilder – brukerdatakilder og systemdatakilder. Brukerdatakilder kan bare brukes av gjeldende bruker og er synlig bare for denne brukeren. Systemdatakilder kan brukes av alle brukere på en datamaskin og er synlige for alle brukere av datamaskinen og systemomfattende tjenester. En maskindatakilde er spesielt nyttig når du vil gi ekstra sikkerhet, for bare brukere som er pålogget kan se en maskindatakilde, og den kan ikke kopieres til en annen datamaskin av en ekstern bruker.
Fildatakilder
Fildatakilder (også kalt DSN-filer) lagrer tilkoblingsinformasjon i en tekstfil, ikke i Windows-registret, og er vanligvis mer fleksibel i bruk enn maskindatakilder. Du kan for eksempel kopiere en fildatakilde til en hvilken som helst datamaskin med riktig ODBC-driver, slik at programmet kan være avhengig av konsekvent og nøyaktig tilkoblingsinformasjon til alle datamaskinene den bruker. Alternativt kan du plassere fildatakilden på én enkelt server, dele den mellom mange datamaskiner på nettverket og på en enkel måte vedlikeholde tilkoblingsinformasjonen på ett sted.
En fildatakilde kan også være umulig å dele. En fildatakilde som ikke kan deles, befinner seg på én enkelt datamaskin og peker til en maskindatakilde. Du kan bruke fildatakilder som ikke kan deles, til å få tilgang til eksisterende maskindatakilder fra fildatakilder.
Tilkoblingsstrenger
Du kan definere en formatert tilkoblingsstreng som angir tilkoblingsinformasjon, i en modul. En tilkoblingsstreng sender tilkoblingsinformasjonen direkte til ODBC Driver Manager, og det bidrar til å forenkle programmet ved å fjerne kravet om at en systemansvarlig eller bruker først oppretter en DSN før du bruker databasen.
-
-
Opprett ny database Hvis du velger dette alternativet og deretter klikker Neste, vises en side der du skriver inn informasjon om den nye SQL Server databasen.
-
Hvilken SQL Server vil du bruke for denne databasen? Skriv inn navnet på serveren du vil bruke.
-
Bruk klarert tilkobling Du kan bruke en klarert tilkobling, det vil si SQL Server kan integrere med sikkerhet for Windows-operativsystemet for å gi en enkel pålogging til nettverket og databasen.
-
Påloggings-ID og passord Hvis du ikke bruker en klarert tilkobling, skriver du inn påloggings-ID-en og passordet for en konto med OPPRETT DATABASE-rettigheter på serveren.
-
Hva vil du kalle den nye SQL Server-databasen? Skriv inn navnet på den nye SQL Server databasen. Access endrer navnet hvis det er i konflikt med et eksisterende databasenavn og legger til et nummerert suffiks (for eksempel mydatabase 1).
-
Trinn 2: Velg hvilke tabeller som skal oppskaleres
I dette trinnet velger du Access-tabellene du vil oppskalere til SQL Server-databasen. Velg tabellene du vil oppskalere, og bruk deretter pilknappene til å flytte dem til Eksporter til SQL Server-listen. Du kan også dobbeltklikke en tabell for å flytte den fra én liste til den andre.
Listen over tilgjengelige tabeller inneholder alle koblede tabeller bortsett fra SQL Server tabeller som allerede finnes i en SQL Server database. Koblede tabeller som peker til en SQL Server database som er valgt for oppskalering, vises automatisk i listen Eksporter til SQL Server og kan ikke fjernes. Tabeller som for øyeblikket ikke er synlige i navigasjonsrute, utelates også, inkludert skjulte tabeller og systemtabeller.
Tips!: Alle tabeller som har et navn som slutter på _local, utelates fra listen over tilgjengelige tabeller for å hindre oppskalering av tabeller som allerede er oppskalert. Hvis du vil oppskalere disse tabellene på nytt, gir du dem nytt navn før du kjører oppskaleringsveiviseren ved å fjerne suffikset «_local».
Trinn 3: Angi attributtene og alternativene som skal oppskaleres
I dette trinnet velger du hvilke tabellattributter som skal oppskaleres i SQL Server-databasen. Som standard er alle attributter valgt for oppskalering som standard.
Obs!: Som standard konverterer oppskaleringsveiviseren Access-feltnavn til juridisk SQL Server feltnavn, og konverterer Access-datatyper til tilsvarende SQL Server datatyper.
Hvilke tabellattributter vil du oppskalere?
Tabellen nedenfor viser attributtene du kan oppskalere, og beskriver hvordan oppskaleringsveiviseren håndterer hver av dem:
Attributt |
Handling hvis valgt |
|||||||||||||||
Indekser |
Oppskaleringsveiviseren oppskalerer alle indekser. Oppskaleringsveiviseren konverterer Primærnøkler i Access til SQL Server indekser og markerer dem som SQL Server primærnøkler. Hvis du velger å koble den oppskalerte SQL Server tabellen til Access-databasen, legger oppskaleringsveiviseren også prefikset "aaaaa" til indeksnavnet. Dette er fordi Access velger indeksen som først er alfabetisk i listen over tilgjengelige indekser som primærnøkkel, og «aaaaa»-prefikset sikrer at riktig indeks er valgt. Alle andre indekser beholder navnene sine, bortsett fra der ugyldige tegn erstattes med _-tegnet. Unike og ikke-unike Access-indekser blir unike og ikke-unike SQL Server indekser. En koblet tabell må ha en unik indeks for å kunne oppdateres i Access. Oppskaleringsveiviseren kan oppskalere en eksisterende unik indeks, men kan ikke opprette en der ingen finnes. Hvis du vil kunne oppdatere dataene i tabellene etter at du har oppskalert dem, må du sørge for at du legger til en unik indeks i hver Access-tabell før du oppskalerer. |
|||||||||||||||
Valideringsregler |
Oppskaleringsveiviseren oppskalerer følgende som oppdaterings- og innsettingsutløsere:
En utløser er en serie med Transact-SQL-setninger som er knyttet til en SQL Server tabell. En tabell kan ha tre utløsere, én for hver av kommandoene som kan endre data i en tabell: KOMMANDOENE UPDATE, INSERT og DELETE. Utløseren kjøres automatisk når kommandoen utføres. Oppskaleringsveiviseren bruker utløsere i stedet for SQL Server regler for å fremtvinge validering av feltnivå fordi SQL Server regler ikke tillater at du viser egendefinerte feilmeldinger. Hver valideringsregel har ikke nødvendigvis en én-til-én-korrespondanse med en utløser. Hver valideringsregel kan bli en del av flere utløsere, og hver utløser kan inneholde kode for å etterligne funksjonaliteten til flere valideringsregler. Når du angir Obligatorisk-egenskapen for et Access-felt til sann, kan ikke en bruker sette inn en post og la det nødvendige feltet være null (hvis det ikke er noen standard bundet til feltet) eller gjøre feltet null når en post oppdateres. Obligatoriske felt oppskaleres til felt som ikke tillater nullverdier på SQL Server. Valideringstekst Egenskapen Valideringstekst for Access-database konverteres til egenskapen Valideringstekst for Access-prosjektet. Dette gjør at egendefinerte feilmeldinger i Access kan vises i tilfelle begrensningsbrudd ved kjøring. |
|||||||||||||||
Standarder |
Oppskaleringsveiviseren oppskalerer alle standardverdiegenskaper til standardobjekter for American National Standards Institute (ANSI). |
|||||||||||||||
Tabellrelasjoner |
Oppskaleringsveiviseren oppskalerer alle tabellrelasjoner. Du kan bestemme hvordan du skal oppskalere tabellrelasjoner og referanseintegritet ved hjelp av oppdaterings-, innsettings- eller slettingsutløsere, eller ved hjelp av DRI (Declared Referential Integrity). DRI fungerer på samme måte som access-referanseintegritet ved å definere primærnøkkelbegrensninger for basistabeller («én»-siden i en én-til-mange-relasjon) og sekundærnøkkelbegrensninger for sekundærtabeller (vanligvis «mange»-siden i en én-til-mange-relasjon).
|
Hvilke dataalternativer vil du inkludere?
-
Legge til tidsstempelfelt i tabeller SQL Server bruker et tidsstempelfelt til å angi at en post ble endret (men ikke når den ble endret) ved å opprette et unikt verdifelt og deretter oppdatere dette feltet når en post oppdateres. For en koblet tabell bruker Access verdien i tidsstempelfelt til å bestemme om en post er endret før den oppdateres. Generelt sett gir et tidsstempelfelt den beste ytelsen og påliteligheten. Uten et tidsstempelfelt må SQL Server kontrollere alle feltene i posten for å finne ut om posten er endret, noe som reduserer ytelsen.
Tabellen nedenfor beskriver innstillingene som er tilgjengelige i denne listen:
Innstilling |
Beskrivelse |
Ja, la veiviseren bestemme |
Hvis de opprinnelige Access-tabellene inneholder flyttallsfelt (enkel eller dobbel), Notat eller OLE-objekt, oppretter oppskaleringsveiviseren nye tidsstempelfelt i de resulterende SQL Server tabellene for disse feltene. |
Ja, alltid |
Oppskaleringsveiviseren oppretter et tidsstempelfelt for alle oppskalerte tabeller, uavhengig av hvilke felttyper de inneholder. Dette forbedrer ytelsen til oppskalerte Access-tabeller som kanskje ikke inneholder Notat-, OLE-objekt- eller flytpunktfelt, men som har felt av andre typer. |
Nei, aldri |
Oppskaleringsveiviseren legger ikke til tidsstempelfelt i tabeller. |
Viktig!: I koblede SQL Server tabeller kontrollerer ikke Access om Notat- eller OLE-objektfeltene er endret fordi disse feltene kan være mange megabyte i størrelse, og sammenligningen kan være for nettverkskrevende og tidkrevende. Hvis bare et tekst- eller bildefelt er endret og det ikke finnes et tidsstempelfelt, overskriver Access endringen. Verdien til et flyttallsfelt kan også se ut til å ha blitt endret når det ikke har gjort det, så i mangel av et tidsstempelfelt kan Access avgjøre at posten er endret når den ikke har gjort det.
-
Bare opprett tabellstrukturen, ikke oppskaler data Oppskaleringsveiviseren oppskalerer alle data for å SQL Server som standard. Hvis du merker av for Bare opprett tabellstruktur, ikke oppskaler data, oppskaleres bare datastrukturen.
Trinn 4: Velg hvordan du vil oppskalere programmet
På neste side i veiviseren kan du velge én av tre forskjellige måter å oppskalere Access-databaseprogrammet på. Velg ett av følgende alternativer under Hvilke programendringer vil du gjøre?:
-
Opprett et nytt Access-klient-/serverprogram Hvis du velger dette alternativet, oppretter oppskaleringsveiviseren et nytt Access-prosjekt. Oppskaleringsveiviseren ber deg om et navn, som er standard for gjeldende Access-databasenavn, legger til et CS-suffiks og lagrer deretter prosjektet på samme sted som den eksisterende Access-databasen.
Oppskaleringsveiviseren oppretter Access-prosjektfilen og oppskalerer deretter alle databaseobjektene fra Access-databasen til Access-prosjektet. Hvis du ikke lagrer passordet og bruker-ID-en, viser Access dialogboksen Egenskaper for datakobling for første gang, slik at du kan koble til en SQL Server database.
-
Koble SQL Server tabeller til eksisterende program Hvis du velger dette alternativet, endrer oppskaleringsveiviseren Access-databasen slik at spørringer, skjemaer, rapporter og datatilgangssider bruker dataene i den nye SQL Server-databasen i stedet for dataene i Access-databasen. Oppskaleringsveiviseren endrer navn på Access-tabellene du oppskalerer med suffikset «_local». Hvis du for eksempel oppskalerer en tabell kalt Ansatte, får tabellen nytt navn Employees_local i Access-databasen. Deretter oppretter oppskaleringsveiviseren en koblet SQL Server tabell kalt Ansatte.
Obs!: Når oppskaleringsoperasjonen er fullført, brukes ikke lenger tabellene som fikk nytt navn med suffikset «_local». Det er imidlertid lurt å beholde de lokale tabellene til du bekrefter at oppskaleringen var vellykket. På et senere tidspunkt kan du slette de lokale tabellene for å redusere størrelsen på Access-databasen. Pass på å sikkerhetskopiere databasen før du sletter tabeller.
Spørringer, skjemaer, rapporter og datatilgangssider basert på de opprinnelige Ansatte-tabellene bruker nå den koblede SQL Server Ansatte-tabellen. Mange av egenskapene for feltene i den opprinnelige lokale tabellen arves av den nye lokale tabellen, inkludert Beskrivelse, Bildetekst, Format, InputMask og DecimalPlaces.
-
Ingen programendringer Velg dette alternativet hvis du bare vil kopiere dataene til SQL Server-databasen, og ikke gjøre andre endringer i det eksisterende Access-databaseprogrammet.
Lagre passord og bruker-ID Som standard oppretter oppskaleringsveiviseren koblede tabeller i det eksisterende programmet eller oppretter et Access-prosjekt uten å lagre brukernavnet og passordet. Dette betyr at brukere blir bedt om å oppgi brukernavn og passord hver gang de logger seg på en SQL Server-database.
Hvis du velger Lagre passord og bruker-ID, kan brukere koble til en SQL Server database uten å logge på. Hvis du velger Opprett nytt Access-klient/serverprogram, lagrer Access-prosjektet brukernavnpassordet i OLE DB-tilkoblingsstreng.
Obs!: Dette alternativet er deaktivert for alternativet Ingen programendringer hvis en koblet SQL Server tabell er konfigurert med en MSysConf-tabell for å nekte lagring av passord.
Rapporten for oppskaleringsveiviseren
Når du klikker Fullfør, oppretter oppskaleringsveiviseren en rapport som gir en detaljert beskrivelse av alle objekter som er opprettet, og rapporterer eventuelle feil under prosessen. Oppskaleringsveiviseren viser rapporten i forhåndsvisning, og du kan deretter skrive ut eller lagre rapporten, for eksempel som en XPS- eller PDF-fil. Rapporten lagres ikke som et Access-objekt når du lukker forhåndsvisningsvinduet.
Rapporten for oppskaleringsveiviseren inneholder informasjon om følgende:
-
Oppskalering av parametere, inkludert hvilke tabellattributter du valgte å oppskalere og hvordan du oppskalerte.
-
Tabellinformasjon, inkludert en sammenligning av Access og SQL Server verdier for navn, datatyper, indekser, valideringsregler, standarder, utløsere og om tidsangivelser ble lagt til eller ikke.
-
Det oppstod feil, for eksempel full database- eller transaksjonslogg, utilstrekkelige tillatelser, enhet eller database som ikke ble opprettet, tabell, standard eller valideringsregel hoppet over, relasjonen ble ikke fremtvunget, spørringen hoppet over (fordi den ikke kan oversettes til SQL Server syntaks) og kontroll og postkilde konverteringsfeil i skjemaer og rapporter.
Slik blir databaseobjekter oppskalert
Følgende data- og databaseobjekter blir oppskalert:
-
Data- og datatyper Alle access-databasedatatyper konverteres til tilsvarende data i SQL Server. Veiviseren konverterer Access-databasetekst til Unicode ved å legge til Unicode-strengidentifikatoren i alle strengverdier og ved å legge til Unicode n-prefikset i alle datatyper.
-
Spørringer
-
Utvalgsspørringer som ikke har en ORDER BY-setning eller parametere, konverteres til visninger.
-
Redigeringsspørringer konverteres til redigeringsspørringer for lagret prosedyre. Access legger til SET NOCOUNT ON etter parameterdeklarasjonskoden for å sikre at den lagrede prosedyren kjører.
-
Velg spørringer som bare refererer til tabeller (også kalt basisspørringer) som bruker enten parametere eller en ORDER BY-setningsdel, konverteres til brukerdefinerte funksjoner. Om nødvendig legges TOP 100 PERCENT-setningsdelen til i en spørring som inneholder en ORDER BY-setningsdel.
-
Parameterspørringer som bruker navngitte parametere, opprettholder det opprinnelige tekstnavnet som brukes i Access-databasen, og konverteres enten til lagrede prosedyrer eller innebygde brukerdefinerte funksjoner.
Obs!: Du må kanskje manuelt konvertere spørringer som ikke oppskalerte, for eksempel SQL-direktespørringer, datadefinisjonsspørringer og krysstabellspørringer. Du må kanskje også manuelt oppskalere spørringer som ble nestet for dypt.
-
-
Forms, rapporter og kontroller SQL-setninger i egenskapene RecordSource, ControlsSource og RowSource for skjemaer, rapporter eller kontroller beholdes på plass og konverteres ikke til lagrede prosedyrer eller brukerdefinerte funksjoner.
-
Oppstartsegenskaper Oppskaleringsveiviseren oppskalerer følgende oppstartsegenskaper:
StartUpShowDBWindow
StartUpShowStatusBar AllowShortcutMenus AllowFullMenus AllowBuiltInToolbars AllowToolbarChanges AllowSpecialKeys UseAppIconForFrmRpt AppIcon AppTitle StartUpForm StartUpMenuBar StartupShortcutMenuBar -
Moduler og makroer Oppskaleringsveiviseren gjør ingen endringer i moduler eller makroer. Du må kanskje endre programmet for å dra full nytte av funksjonene til SQL Server. Hvis du vil ha mer informasjon, kan du se MSDN-artikkelen Optimalisere Microsoft Office Access-programmer som er koblet til SQL Server.