Πώς δημιουργούμε ένα SQL Managed Instance στο Azure
- Πώς ενεργοποιούμε το Unified Auditing σε Oracle Database - 7 Οκτώβριος 2024
- Τι είναι η PostgreSQL και πως κάνουμε μία πλήρης εγκατάσταση - 2 Σεπτέμβριος 2024
- Πώς ρυθμίζουμε το replication του GoldenGate ώστε να διαβάζει από το Standby του Oracle Data Guard - 2 Αύγουστος 2024
Μία από τις δυνατότητες που έχουμε στο Cloud του Azure είναι να μας παρέχει ένα ολόκληρο Instance του SQL Server χωρίς να έχουμε πρόσβαση σε κάποιο Virtual Machine. Αυτή η υπηρεσία ονομάζετε Azure SQL Managed Instance.
Τι πλεονεκτήματα έχει
Σε αντίθεση με τις Azure SQL Databases ότι γνωρίζουμε από τα κλασικά on-premise SQL Server instances λειτουργούν. Πιο συγκεκριμένα μπορούμε να κάνουμε χρήση Agent, backup/restore με την χρήση .bak αρχείων, db mail και άλλα. Ενώ ταυτόχρονα συνεχίζουμε να έχουμε πλεονεκτήματα των Azure SQL Databases όπως αυτόματο patching, αυτόματα backup και high availability.
Πριν όμως συνεχίσεις να διαβάζεις το άρθρο αν δεν είσαι εξοικειωμένος με το Azure θα πρέπει πρώτα να διαβάσεις αυτό το άρθρο που είναι αφιερωμένο στις υποδομές του Azure. Θα χρειαστεί γιατί εξηγεί διάφορες έννοιες που θα συναντήσουμε πιο κάτω όπως Subscriptions και Resource Groups.
Το παράδειγμα
Για αρχή συνδεόμαστε στο Azure Portal . Εκεί επιλέγουμε το Create a resource.
Εκεί επιλέγουμε Databases και Azure SQL Managed Instance.
Ορίζουμε το Subscription που έχουμε την χρέωση (στην περίπτωση μου είχα ένα οπότε το έβαλε μόνο του).
Το Resource Group είναι ουσιαστικά ένας κουβάς με τις υποδομές μας οπότε βάζουμε ένα που ήδη έχουμε ή φτιάχνουμε έναν καινούργιο με το Create New απλά συμπληρόντας το Data Center που θα ανήκει (το δικό μας το έβαλα West Europe).
Βάζουμε το όνομα που θέλουμε να έχει το instance.
Ορίζουμε τα credentials που θέλουμε να έχει ο local admin.
Επιλέγοντας Configure στο Compute + storage θα μας εμφανιστεί η παρακάτω εικόνα. Εκεί μπορούμε να επιλέξουμε Business Critical αν θέλουμε να έχουμε υπηρεσία σαν Availability Group που παρέχει build in μία read only replica ή να αφήσουμε το General Purpose που από πίσω είναι σαν Failover Cluster Instance με κοινό Azure Storage.
Έχουμε την δυνατότητα να ορίσουμε τα Cores και στο Storage που χρειαζόμαστε ώστε να έχουμε την ανάλογη χρέωση.
Αν έχουμε αγοράσει ήδη ανάλογη άδεια χρήσης SQL Server μπορούμε να επιλέξουμε το Azure Hybrid Benefit που θα μειώσει και άλλο το κόστος.
Τέλος μπορούμε να διαλέξουμε αν θέλουμε τα backup να αποθηκεύονται σε διαφορετικά regions, σε διαφορετικά data center που ανήκουν στο ίδιο zone ή μόνο στο συγκεκριμένο data center.
Στην επόμενες ρυθμίσεις θα πρέπει να ορίσουμε το όνομα του virtual network που θα χρησιμοποιήσουμε, αν θέλουμε να είναι ανοιχτό το public end point με πρόσβαση από το Internet και το security TLS level που θα έχει.
Από τη στιγμή που για το παράδειγμα δεν θα έχω κάποια εφαρμογή συνδεδεμένη αλλά θα θέλω να συνδεθώ από το τερματικό μου μέσω Internet το επέλεξα.
Στη συνέχεια ορίζουμε το Collation που θέλουμε να έχει το instance. Στην περίπτωση μας Greek_CI_AS.
Μπορούμε να προσθέσουμε tags ώστε να μπορούμε να αναζητήσουμε αν πρόκειται για κάτι για Development ή είναι για παραγωγικό σύστημα.
Στο τέλος μας εμφανίζει ένα Review με ότι έχουμε επιλέξει πριν πατήσουμε το Create. Μας δίνει και την επιλογή να το κατεβάσουμε ως template για να μπορούμε να ανεβάσουμε μία αντίστοιχη βάση οποιαδήποτε στιγμή θέλουμε στο μέλλον (DevOps).
Μετά από ~ 4 ώρες θα δούμε ότι ολοκληρώθηκε η δημιουργία του.
Βλέπουμε ότι έχει δημιουργηθεί ένα network security group. Από εκεί μπορούμε να θέσουμε rules στο τι connections επιτρέπονται και τι όχι.
Για να συνδεθούμε μπορούμε να δούμε τα connections strings στην παρακάτω καρτέλα.
Αφού χρησιμοποιούμε public end point (για απευθείας πρόσβαση από το Internet) ορίζει διαφορετική πόρτα από την 1433.
Ορίζοντας το servername,port και τα credentials του admin που μας ζήτησε να φτιάξουμε στην αρχή μπορούμε να συνδεθούμε μέσω SQL Server Management Studio.
Μπορούμε όμως να συνδεθούμε και με λογαριασμό που έχουμε φτιάξει στο Azure Active Directory. Για να δώσουμε δικαιώματα (RBAC) σε λογαριασμούς το ορίζουμε στο Access Control (IAM). Ας ορίσω όμως τον λογαριασμό μου απευθείας ως Active Directory Admin όμως βλέπουμε στην κάτωθι εικόνα:
Οπότε μπορούμε τώρα να δοκιμάσουμε συνδεθούμε με Authentication type Azure Active Directory – Universal with MFA support.
Για τέλος ας δοκιμάσουμε να συνδεθούμε και με sqlcmd απευθείας με χρήση του Azure AD λογαριασμού:
sqlcmd -S dpgr-instance.public.a4ab802fe4ee.database.windows.net,3342 -Usmatzouranis@dataplatform.gr -G
Read Only Replica λόγο Business Critical Service Tier;
Κάτα την δημιουργία του instance είχαμε επιλέξει Business Critical Service Tier ώστε να μας παρέχει buildin μία readonly replica όπως λειτουργεί σε ένα Availability Group.
Για να συνδεθούμε σε αυτή θα πρέπει στο connection να έχουμε ορίσει την παράμετρο ApplicationIntent=ReadOnly.
Π.χ. στο SQL Server Management Studio πριν επιλέξουμε connect διαλέγουμε Options, Additional Connection Parameters και εκεί συμπληρώνουμε το κείμενο ApplicationIntent=ReadOnly.
Αν πάμε να πραγματοποιήσουμε ένα insert σε έναν πίνακα θα δούμε ότι λαμβάνουμε αυτό το μήνυμα.