w tym artykule opisano konfigurację sortowania bazy danych usługi Azure SQL oraz sposób jej zmiany podczas importowania bazy danych z pliku BACPAC.
wprowadzenie
zestawienie odnosi się do konfiguracji, która określa zachowanie silnika bazy danych dla zestawu danych znaków na poziomie serwera, bazy danych lub kolumny. SQL Server ma szeroki zakres zestawień do obsługi różnic językowych w różnych częściach świata. Zapewnia reguły sortowania, wielkość liter dla typów danych Unicode (nchar, nvarchar lub ntext) i innych niż Unicode (char, varchar, nvarchar).
SQL Server obsługuje następujące zestawienia.
- Windows
- Binary: zestawienie binarne zawsze kończy się na _bin lub _BIN2
- SQL Server: te nazwy zestawień zawsze zaczynają się od SQL_
w przypadku tradycyjnego (lokalnego) serwera SQL ustawienia regionalne systemu operacyjnego określają domyślne zestawienie. Można jednak modyfikować sortowanie na poziomie serwera podczas instalacji SQL Server lub modyfikować ustawienia regionalne systemu operacyjnego. Domyślna konfiguracja serwera SQL to sql_latin1_general_cp1_ci_as. Możesz zrozumieć te kolacje szczegółowo, odnosząc się do kolacji i obsługi Unicode.
wymagania
ten artykuł zakłada podstawową znajomość baz danych usługi Azure SQL. Jeśli jesteś początkującym, możesz odwołać się do istniejących artykułów SQL Azure w sqlshack. Możesz użyć bezpłatnego kredytu Microsoft Azure, rejestrując się pod adresem URL https://azure.microsoft.com/en-us/free/
Azure SQL Database Collation
Azure SQL DB to zarządzana oferta PaaS dla serwera SQL z pewnymi ograniczeniami i ograniczeniami do wykonywania określonych zadań. Podobnie jak lokalny serwer SQL, Usługa Azure DB obsługuje również różne zestawienia. Aby uzyskać listę obsługiwanych zestawień dla usługi Azure SQL DB, możemy wysłać zapytanie do sys.funkcja fn_helpcollations (). Zwraca listę 5508 zestawień. Poniższy rysunek daje wgląd w Zestawienie i opisy.
w przypadku usługi Azure SQL DB można wybrać zestawianie bazy danych na karcie dodatkowe ustawienia tworzenia bazy danych SQL. Jak pokazano poniżej, domyślne zestawienie pojawia się jako sql_latin1_general_cp1_ci_as.
możemy rozbić to zestawienie, aby je zrozumieć.
- SQL-odnosi się do sortowania SQL Server
- Latin1_General-ta część definiuje regułę sortowania znaków
- CI-odnosi się do rozróżniania wielkości liter
- jak-definiuje czułość akcentu
możesz kliknąć Znajdź zestawianie i wyszukać określone zestawianie, które chcesz skonfigurować dla usługi Azure DB.
możesz wdrożyć bazę danych platformy Azure na istniejącym serwerze logicznym platformy Azure. Dlatego jeśli utworzysz nową bazę danych usługi Azure przy użyciu SSMS, możesz zdefiniować określone zestawienie za pomocą strony Opcje.
jeśli utworzysz usługę Azure SQL DB przy użyciu T-SQL, możesz użyć słowa kluczowego COLLATE i określić wymagane zestawianie bazy danych.
1
2
3
|
Utwórz bazę danych MyDemoSQLDB
zestawiaj Latin1_General_100_CS_AS_SC;
idź
|
musisz utworzyć bazę danych w odpowiednim zestawieniu. Twoje zapytania SQL mogą nie działać poprawnie z powodu niedopasowania sortowania. Jeśli jednak chcesz zmodyfikować po utworzeniu bazy danych usługi Azure SQL, nie jest to proste. Usługa Azure SQL DB nie obsługuje zmiany sortowania przy użyciu opcji ALTER DATABASE COLLATE. Jeśli spróbujesz go zmienić, otrzymasz następujący komunikat o błędzie.
1
2
3
4
|
użyj master
przejdź
ZMIEŃ bazę danych Azuredemodatabase
zestawiaj SQL_Latin1_General_CP1250_CI_AS
|
- Uwaga: Nie modyfikuj ani nie ustawiaj określonego zestawienia, dopóki nie będziesz mieć określonych wymagań. Nigdy nie rób tego bezpośrednio w produkcyjnej bazie danych. Przetestuj ją dokładnie na niższym środowisku DB, a następnie planuj przejść do sortowania produkcyjnego
Załóżmy, że wdrażasz bazę danych Azure SQL z lokalnego pliku BACPAC. Chcesz innego zestawienia w docelowej bazie danych.
- Uwaga: zakładam, że masz aktywny Azure SQL DB. Jeśli nie, możesz użyć bezpłatnego konta warstwy do wdrożenia testowej bazy danych
- Eksportuj bazę danych Azure SQL w formacie BACPAC
- zainstaluj Microsoft SQL Server Data-Tier Application Framework (18.1)
- Modyfikuj model.konfiguracja pliku xml
- użyj sqlpackage.exe aby wdrożyć Azure database ze zaktualizowaną kolacją
- Sprawdź kolację bazy danych
- /tsn: Określ Azure SQL Server FQDN, do którego chcemy zaimportować ten plik BACPAC. W moim przypadku jest to azuredemosqldemo.database.windows.net
- /TDN: jest to nowa nazwa bazy danych Azure SQL. Nie można zaimportować BACPAC do istniejącej bazy danych
- /tu: Określ nazwę użytkownika administratora, aby połączyć się z Azure SQL Server i wdrożyć bazę danych
- / TP: Wprowadź hasło administratora
- /SF: Podaj lokalizację pliku BACPAC
- /ModelFilePath: wprowadź zaktualizowany model.Ścieżka do pliku XML
- Uwaga: Nie należy modyfikować zestawiania bazy danych bez żadnych szczególnych wymagań. Może to powodować problemy, jeśli zmienisz go arbitralnie
- Autor
- Ostatnie posty
- użyj szablonów ARM, aby wdrożyć instancje Azure container za pomocą obrazów SQL Server Linux-21 grudnia 2021 r.
- dostęp do pulpitu zdalnego dla AWS RDS SQL Server z niestandardowym Amazon RDS-14 grudnia 2021 r
- przechowuj pliki SQL Server w trwałej pamięci masowej dla wystąpień Azure Container – grudzień 10, 2021
w tym artykule demo wykonamy następujące zadania:
Krok 1: Eksportuj Azure SQL database w formacie BACPAC
w tym kroku eksportujemy Azure SQL DB w formacie BACPAC. Możemy sprawdzić, czy istniejące Zestawienie to sql_latin1_general_cp1_ci_as.
aby uzyskać eksport, kliknij prawym przyciskiem myszy bazę danych platformy Azure i wybierz Eksportuj aplikację warstwy danych…
określ katalog w zapisz na dysku lokalnym.
Sprawdź, Eksportuj i monitoruj postęp aplikacji warstwy danych w formacie BACPAC.
Krok 2: Pobierz Microsoft SQL Server Data-Tier Application Framework (18.1)
musisz pobrać i zainstalować najnowszą wersję SSDT. Przejdź do adresu URL https://www.microsoft.com/en-us/download/details.aspx?id=57784 i kliknij Pobierz.
wybierz wymaganą wersję pliku MSI i pobierz ją. Jest to lekki plik pakietu.
postępuj zgodnie z kreatorem instalacji, aby skonfigurować warstwę aplikacji Microsoft SQL Server Data.
Krok 3: Zmień nazwę. Plik BACPAC do .ZIP
w tym kroku zmieniamy nazwę wyeksportowanego pliku pakietu BACPAC na format ZIP. Aby to zrobić, kliknij prawym przyciskiem myszy zaimportowany BACPAC i zmień rozszerzenie na ZIP. Typ pliku jest skompresowany (spakowany) po zmianie rozszerzenia, jak pokazano na poniższym rysunku.
kliknij prawym przyciskiem myszy skompresowany plik i rozpakuj go. W wyodrębnionym folderze znajdziesz model.xml, skopiuj model.xml do innego katalogu, takiego jak C:\Temp folder.
Otwórz model.xml z C:\Temp\Model.xml i zmodyfikować zestawianie DB. Poniższy rysunek przedstawia stare i nowe zestawienia dla usługi Azure SQL Database. Tutaj używamy sortowania SQL z wrażliwością na wielkość liter.
Krok 4: wdrożyć Azure Database za pomocą sqlpackage.exe
tutaj przejdź do katalogu C:\Program Files\Microsoft SQL Server \ 150\DAC \ bin w wierszu polecenia. Używamy sqlpackage.exe do importowania BACPAC z parametrem / ModelFilePath. Zastępuje on konfigurację pliku modelu BACPAC określonym plikiem w tym parametrze.
wymagane parametry:
wcześniej zmieniliśmy rozszerzenie pliku BACPAC na ZIP. Musimy zmienić go z powrotem na BACPAC, aby uruchomić sqlpackage.polecenie exe.
aby zmodyfikować sortowanie w BACPAC, wykonaj następujące polecenie w wierszu polecenia.
sqlpackage.exe / Action: Import /tsn:azuredemosqldemo.database.windows.net /tdn: azuredemodatabasenew /tu:sqladmin / TP:* * * * * * * / SF: C:\Temp \ azuredemodatabase.BACPAC / ModelFilePath: C: \ Temp \ model.xml
otrzymasz komunikat ostrzegawczy:
„Model nadrzędny.xml za pomocą pliku „C:\Temp\model.xml”. Użycie tego ustawienia może spowodować awarię wdrożenia i/lub niezamierzoną utratę danych. To ustawienie ma być używane tylko w przypadku rozwiązywania problemów z publikacją, importem lub generowaniem skryptu ”
rozpoczyna import danych, przetwarza tabele i wdraża na nich bazę danych. Czas wdrożenia bazy danych zależy od liczby tabel, rozmiaru danych, indeksów.
w końcu otrzymasz komunikat – pomyślnie zaimportowana baza danych.
Krok 5: weryfikacja
teraz połącz się z usługą Azure Database za pomocą SSMS i zweryfikuj zestawienie bazy danych za pomocą następującego skryptu.
1
|
SELECT CONVERT (varchar (256), DATABASEPROPERTYEX (’azuredemodatabasenew’,’collation’));
|
jak pokazano poniżej, nowo wdrożona baza danych używa sortowania sql_latin1_general_cp1_cs_as.
teraz Zaloguj się do portalu Azure i zobacz Właściwości bazy danych. Ta baza danych ma warstwę cenową ogólnego przeznaczenia Gen5, 2vcores. Podczas wdrażania bazy danych nie określiliśmy żadnej warstwy cenowej. W związku z tym Usługa Azure SQL database przyjmuje domyślną warstwę cen.
Krok 6: Wdrożenie usługi Azure database w określonej warstwie cenowej
Załóżmy, że chcemy wdrożyć bazę danych ze zmodyfikowanym zestawieniem i podstawową warstwą cenową. W tym demo zmieniamy kolację DB na Latin1_General_BIN. Dlatego otwórz model.xml i zmienić zestawienie jak zaznaczono wcześniej.
tym razem podajemy nowy parametr(/p) do Ustawienia edycji bazy danych. Poinstruuje platformę Azure, aby wdrożyła bazę danych w określonej warstwie cenowej.
sqlpackage.exe / Action: Import / tsn: azuredemosqldemo.baza danych.windows.net /tdn: azuredemodatabasenew /tu:sqladmin /TP:******* /p:DatabaseEdition=Basic / SF:C:\Temp\azuredemodatabase.BACPAC / ModelFilePath: C: \ Temp \ model.XML
po wdrożeniu bazy danych Sprawdź zestawienie bazy danych. Jak pokazano poniżej, używa kolacji Latin1_General_BIN.
możesz połączyć się z witryną Azure portal i zweryfikować warstwę cen jako podstawową.
wniosek
w tym artykule omówiono domyślne zestawianie bazy danych Azure SQL i proces jej zmiany podczas importowania bazy danych z pliku BACPAC. Możesz określić żądane zestawienie i wdrożyć bazę danych. Nigdy jednak nie zmieniaj zestawienia, chyba że masz określone wymagania. Możesz wypróbować kroki na własnej testowej bazie danych Azure SQL.
jest twórcą jednego z największych darmowych internetowych zbiorów artykułów na jeden temat.jego 50-częściowa seria na SQL Server Always On Availability Groups. W oparciu o swój wkład w społeczność SQL Server został wyróżniony różnymi nagrodami, w tym prestiżowym „najlepszym autorem roku” nieprzerwanie w 2020 i 2021 roku w sqlshack.
Raj zawsze interesuje się nowymi wyzwaniami, więc jeśli potrzebujesz pomocy Konsultacyjnej na dowolny temat poruszany w jego pismach, możesz się z nim skontaktować w [email protected]
Zobacz wszystkie posty, których autorem jest Rajendra Gupta