07 Dec 2009
Implement Database Mirroring in SQL Server 2008
Ένα από τα πράγματα τα οποία προσωπικά θεωρώ από τα διαμάντια του SQL Server που έχουμε διαθέσιμα από την έκδοση του SQL Server 2005 (Standard & Enterprise) SP1 είναι το Database Mirroring. Μέχρι την εμφάνιση του για να έχω αυτό που όλοι θέλουμε και δεν είναι άλλο από το database availability έπρεπε να καταφύγουμε σε κάποιες λύσεις όπως...
07 Oct 2009
Μια μικρή βουτία στα άδυτα της αρχιτεκτονικής μιας βάσης
Ίσως όσα θα αναφερθούν παρακάτω να είναι γνωστά, και το post αυτό να μην είναι ενδιαφέρον. Όμως έχω την υποχρέωση να τα αναφέρω ξανά γιατί θεωρώ ότι είναι πράγματα στα οποία δεν δίνουμε ιδιαίτερη σημασία και τα οποία όταν διογκώνονται είναι δύσκολα στην επίλυση τους. Θα μιλήσουμε εδώ γιa την αρχιτεκτονική μιας database στον SQL Server, από τι αποτελείτε μια database, πιο είναι το ιδανικό αρχικό μέγεθος δημιουργίας της, τι πολιτική να ορίσω για το growth της.
18 Oct 2012
Migrating a Database to a SQL Server 2012 Instance
Σε προηγούμενα μου post μίλησα για την διαδικασία του upgrade σε SQL Server 2012. Σε αυτό θα σας δώσω μερικές συμβουλές για το πως μπορείτε να κάνετε migration μια ή περισσότερες databases από μια παλαιότερη έκδοση του SQL Server σε SQL Server 2012.
Οι προτεινόμενοι τρόποι για να γίνει κάτι τέτοιο είναι οι παρακάτω και δεν υπάρχει καλύτερος ή χειρότερος τρόπος. Ο κάθε ένας έχει τα συν και τα πλην του και θα πρέπει να κατανοήσουμε αυτά πριν διαλέξουμε αυτόν με τον οποίο θα δουλέψουμε.
20 Aug 2015
The Database Developer Role
Πρόσφατα συμμετείχα σε μια συζήτηση στην οποία αναφέρθηκε ο ρόλος του DB Developer. Μέσα από αυτή την συζήτηση διαπίστωσα ότι οι απόψεις για το τι είναι και κυρίως τι κάνει ένας DB Developer δεν είναι ξεκάθαρες.
Θεωρώντας ότι είναι χρήσιμο να γνωρίζουμε τι είναι ο DB Developer ρόλος και πως αυτός τοποθετείτε στην αγορά εργασίας (ζήτηση/αμοιβή) τόσο στην χώρα μας όσο και στο εξωτερικό, αποφάσισα να γράψω το συγκεκριμένο άρθρο.
06 Jul 2009
Η Resource Database στους SQL Servers 2005 & 2008
Στον SQL Server 2005, και φυσικά υπάρχει και στο SQL Server 2008, πρωτοεμφανίστηκε μια νέα system database η Resource Database. Η database αυτή περιέχει όλα τα read-only critical system tables, metadata, και stored procedures τα οποία ο SQL Server χρειάζεται για τρέξει. Δεν περιέχει πληροφορίες για το SQL Server instance ή για τις databases σας, και αυτό γιατί δημιουργήται κατά την διαδικασία εγκατάστασης του SQL Server ή όταν εγκαταστήσουμε κάποιο service pack.
23 Nov 2020
The undocumented ATTACH_FORCE_REBUILD_LOG
Στην δουλειά του DBA υπάρχουν στιγμές που πραγματικά οι παλμοί ανεβαίνουν επικίνδυνα. Συνήθως αυτό συμβαίνει ότι υπάρχει το ενδεχόμενο απώλειας δεδομένων.
09 May 2016
Why each database must have more than one data file?
Σε κάθε άνθρωπο που ασχολείται με τον SQL Server είναι γνωστό ότι μια database αποτελείται αρχικά από δύο αρχεία. Το ένα είναι το primary data file και είναι αυτό που έχει το .mdf extension και το transaction log file που είναι αυτό που έχει το .ldf extension.
13 Jan 2013
AlwaysOn Availability Groups Vs Database Mirroring
Ποιο θεωρείς ότι είναι το μεγαλύτερο ατού των AlwaysOn Availability Groups; Για μένα ήταν οι πολλαπλές replicas και το ότι μπορείς να τρέχεις OLTP jobs στην primary και reporting στις secondaries. Μετά όμως άρχισα να καταλαβαίνω ότι αυτό μπορούσες να το υλοποιήσεις και πριν τον 2012 με το database mirroring και manual configuration του backup ή reporting στους secondaries. Άρα; Υπάρχει κάποιο αυτόματο brokering ή απλά γλυτώνει ο administrator άπειρο χρόνο σε ρυθμίσεις και στο να είναι σίγουρος ότι αυτό που έστησε δουλεύει;
11 Dec 2009
SQL Server Database Mirroring Best Practices
Επειδή στο προηγούμενο μου post σχετικά με το Database Mirroring στον SQL Server ξέχασα να βάλω κάποια Best Practices που έχω διαβάσει σε διάφορα paper, blogs και βιβλία βάζω τα παρακάτω που προτείνει και ο Brad McGehee μιας και με βρήσκουν 100% σύμφωνο.
20 Feb 2014
CREATE DATABASE Secrets
Όλοι κάποια στιγμή έχουμε φτιάξει μια database είτε με το γραφικό περιβάλλον είτε με DDL statement (CREATE DATABASE). Για αυτούς που είναι λάτρεις του κώδικα και φτιάχνουν μια database με script υπάρχουν κάποια κρυφά μυστικά που είναι καλό να γνωρίζουν ;-)
14 Mar 2010
Lesson: Backup/Restore in SQL Server 2008
Βλέποντας μέσα από το forum μας διάφορες συζητήσεις σχετικά με το θέμα του μεγέθους του transaction log (T-Log) διαπίστωσα ότι υπάρχει ένα θολό τοπίο γύρω από το θέμα disaster recovery (backup - restore) πάνω στον SQL Server. Πήρα την απόφαση να γράψω για αυτό το θέμα ώστε να το ξεκαθαρίσω μια και καλή διότι είναι τόσο απλό και τόσο δυνατό που είναι αμαρτία από το Θεό να παιδεύεται ο κόσμος.
18 Jun 2014
Database Design Counts
Δεν είναι σπάνιο το φαινόμενο να πέφτω πάνω σε databases που έχουν σχεδιαστεί στην κυριολεξία στο πόδι. Σε πολλές από αυτές, άλλοτε εύκολα, άλλοτε με σχετικά μη επώδυνο τρόπο, κατάφερα να αλλάξω τον σχεδιασμό τους. Υπάρχουν όμως αρκετές που αυτό δεν ήταν εφικτό.
Το μήνυμα που θέλω να περάσω μέσα από το post αυτό είναι ότι πρέπει να επενδύουμε χρόνο στον σχεδιασμό της database, ακόμα και αν γνωρίζουμε ότι δεν πρόκειται να έχουμε μεγάλο όγκο δεδομένων, καθώς έτσι θα δημιουργήσουμε μια συνήθεια που δύσκολα θα κοπεί με αποτέλεσμα να έχουμε σωστά σχεδιασμένες databases.
14 Jul 2009
SQL Service Broker - Μέρος 1ο (Εισαγωγή)
Εδώ και καιρό ήθελα να ασχοληθώ και να γράψω ένα άρθρο με αυτό το θέμα. Ένα θέμα το οποίο προσωπικά θεωρώ ότι είναι από τα καλύτερα και δυνατότερα κομμάτια του SQL Server. Με το που το είδα στον SQL Server 2005 (εδώ εμφανίστηκε για πρώτη φορά) έκανα σαν μωρό παιδί που του πήρανε καινούργιο παιχνίδι. Και αυτό γιατί όπως οι περισσότεροι γνωρίζεται είμαι στην μεριά των developers.
05 Jul 2009
Παρουσίαση του Activity Monitor στον SQL Server 2008
Πριν ξεκινήσω να περιγράφω το συγκεκριμένο εργαλείο, οφείλω να καταθέσω την άποψη μου γι’ αυτό. ΕΙΝΑΙ ΚΑΤΑΠΛΗΚΤΙΚΟ!!!. Όσοι έχετε ασχοληθεί από παλία με τον SQL Server, προσωπικά ασχολούμαι από την έκδοση 6.0 (1996), θα έχετε παρακολουθήσει την εξέλιξη του συγκεκριμένου εργαλείου. Σε κάθε έκδοση είχαμε κάποιες βελτιώσεις. Όμως στην έκδοση του SQL Server 2008 πιστεύω ότι έχουμε τις περισσότερες αλλά και τις σημαντικότερες βελτιώσεις.
14 Sep 2015
Monitor Connection Pooling as SQL Server DBA
Το connection pooling είναι μια cache από database connections που σκοπό έχει αυτά που είναι ελεύθερα στην cache αυτή να μπορούν να επαναχρησιμοποιηθούν κάθε φορά που κάποιος ζητάει να κάνει connect στην database.Η χρησιμότητα του connection pooling είναι αρκετά σημαντική στην εκτέλεση διαδικασιών πάνω στην database από το application καθώς με αυτό τον τρόπο γίνεται αφενός γρηγορότερη επικοινωνία αφετέρου καταναλώνονται λιγότεροι πόροι.
26 Dec 2009
Database design and architecture by Paul Nielsen
Χρόνια Πολλά σε όλους! Εύχομαι ο νέος χρόνος να φέρει υγεία, αγάπη και ευτυχία σε εσάς και τις οικογένειες σας. Αυτές τι μέρες βρήκα την ευκαιρία να διαβάσω αρκετά νέα βιβλία τα οποία είχα προμηθευτεί επί τούτου. Μέσα σε όλα αυτά ξεχώρισα τo παρακάτω εισαγωγικό σημειώμα που apriory με εκφράζει απόλυτα. Με το που το διάβασα πετάχθηκα από το καναπέ μου και αναφώνησα ΠΕΣΤΑ ΧΡΥΣΟΣΤΟΜΕ.
24 Jul 2010
How to setup Database Mail (SQL Server 2005)
Αφορμή για αυτό το post είναι ένα ερώτημα από ένα φίλο της κοινότητα μας (autoexec.gr). Είναι για τον SQL Server 2005 αλλά μπορείτε να το εφαρμόσετε και στις επόμενες εκδόσεις Για να εγκαταστήσουμε το database mail θα πρέπει να ακολουθήσουμε τα παρακάτω βήματα. Μια βασική προυπόθεση είναι να έχουμε ένα smtp server με ένα mail account. Ανοίγουμε το SSMS και πάμε δεξί κλικ Configure Database Mail όπου ο Database mail configuration wizard ξεκινάει ...
23 Jan 2016
In-sync databases backups and restores
Για τους περισσότερους ένα application έχει μια database. Αυτό απολοποιεί σε μεγάλο βαθμό κάποια πράγματα και ένα από αυτά είναι και το backup της database. Ακόμα και σε αυτή την περίπτωση όμως πρέπει να ληφθούν σοβαρά όλες οι παράμετροι όπως το RPO και το RTO.
Τα πράγματα όμως παίρνουν μια άγρια ομορφιά όταν πίσω από την εφαρμογή σου υπάρχουν περισσότερες από μια databases. Σενάρια για μια τέτοια κατάσταση υπάρχουν αρκετά όπως για παράδειγμα να έχεις μια OLTP database που ενημερώνει μια MIS database ή να έχεις δύο OLTP databases που ενημερώνονται παράλληλα κατά την διάρκεια των transactions που υλοποιούνται από το application.
28 Jul 2010
What are the largest SQL projects in the world?
Πρόσφατα έπεσα μούρη με μούρη σε μια παρουσίαση του Kevin Cox που είχε το παραπάνω θέμα. Επειδή είναι αρκετά ενδιαφέρουσα και ρίχνει αρκετούς μύθους αποφάσισα να την μοιραστώ μαζί σας. Ας ξεκινήσουμε με μερικά στατιστικά
16 Dec 2014
Where stored the last checkpoint operation info
Στο μάθημα της προηγούμενης εβδομάδας δέχθηκα μια ερώτηση από ένα πολύ καλό φίλο και συνάδελφο (καλημέρα Θεόδωρε) μια αρκετά ενδιαφέρουσα ερώτηση που αφορούσε το που αποθηκεύεται η πληροφορία της διαδικασίας του checkpoint σε μια database.
Επειδή η απάντηση μου τον ξάφνιασε λίγο σε αυτό το post αρχικά θα την μοιραστώ μαζί σας και θα την εξηγήσω.
11 Mar 2012
Indirect Checkpoints in SQL Server 2012
Μέσα στα τόσα νέα features που υπάρχουν στον SQL Server 2012 κάποια είναι δημοφιλέστερα από κάποια άλλα. Κάποια τραβάνε εύκολα την προσοχή γιατί πουλάνε περισσότερο κάποια άλλα όχι. Για τα πρώτα θα βρείτε αρκετά άρθρα στον ιστό. Για τα δεύτερα, αυτά που δεν φαίνονται με γυμνό μάτι θα βρείτε λίγα ή καθόλου. Αυτά τα δεύτερα όμως είναι αυτά που κάνουν την ουσιαστική διαφορά και είναι η πεμπτουσία, πάντα κατά την ταπεινή μου γνώμη, στον SQL Server.
04 Jun 2012
Estimate Database Compression Stored Procedure (sp_estimate_db_compression)
Τις τελευταίες ημέρες για ένα περίεργο λόγο συνάντησα αρκετές φορές την ανάγκη να πρέπει να εκτιμηθεί η δυνατότητα να γίνει compress μια database. Για το λόγο αυτό αποφάσισα να φτιάξω μια stored procedure που να κάνει όλα όσα ήθελα να γίνονται με την εκτέλεση της. Μετά από μερικές μέρες δουλειάς και αρκετές αλλαγές πάνω σε αυτή το τελικό αποτέλεσμα μπορείτε να το βρείτε εδώ.
01 Jul 2010
Λίγα λόγια για τα database Schemas
Αρκέτες φορές έχω δεχθεί ερωτήσεις σχετικά με τα database Schemas. Οι πιο δημοφιλείς ερωτήσεις είναι; Τι είναι τα Schemas; Ποιά είναι η πρακτική αξία τους; Γιατί τα έβαλαν στον SQL Server τόσο αργά; η Oracle τα έχει χρόνια τώρα! Θα ξεκινήσω με την τελευταία.
09 Jan 2014
Do you use an ORM? Please learn how to use it properly.
Τα τελευταία χρόνια έχει μεγάλη κουβέντα και μεγάλη χρήση από αρκετούς στην χρήση ORMs. Υπάρχουν αρκετά πλέον στην αγορά (EF, ΝHibernate κ.α.) και έτσι ο καθένας μπορεί να επιλέξει αυτό που του ταιριάζει.
Αρκετές φορές έχω βρεθεί σε συζητήσεις σχετικά με αυτά και από αυτές έχω αποκτήσει την φήμη ότι είμαι από αυτούς που τα κατακρίνουν και στέκονται απέναντι τους.
13 Jun 2021
Failed to generate a checkpoint in a database
Πρόσφατα κλήθηκα να διορθώσω μια corrupted database με αρκετά μεγάλο αριθμό corrupted pages. Η διαδικασία επιδιόρθωσης ήταν επίπονη και πήρε αρκετές ημέρες αλλά τελικά ολοκληρώθηκε. Με την ολοκλήρωση της διαδικασίας ζήτησα να γίνει full backup καθώς τα ήδη υπάρχοντα backups ήταν και αυτά corrupted καθώς περιείχαν τις corrupted pages.
Κατά την διάρκεια του full backup όμως εμφανίστηκε ένα νέο μήνυμα λάθους που έλεγε το εξής...
21 Jan 2015
Create a db_executor database role
Επειδή το security στη database είναι αρκετά σημαντικό και πραγματικά δεν ξέρω γιατί οι περισσότεροι δεν δίνουν την πρέπουσα σημασία σε αυτό το σύντομο post θα σας δώσω ένα tip του οποίου η εφαρμογή ξεπερνάει το 99% των περιπτώσεων.
14 Jul 2012
Database Data File Special Pages
Διαβάζοντας διάφορα άρθρα διαπίστωσα ότι έχω πολύ καιρό να γράψω κάτι για τα internals του SQL Server και αυτό γιατί σε αρκετά από αυτά είδα ότι για να γίνουν κατανοητά θα πρέπει να έχουν εξηγηθεί κάποια internal objects και ειδικά pages. Με αφορμή αυτό αποφάσισα να γράψω το post αυτό και να αναφερθώ σε όλα αυτά το special pages.
08 Feb 2013
Database Lifecycle Management (DLM)
Για όλους εμάς που είμαστε data geeks και οι databases είναι τρόπος έκφρασης και ζωής αλλά και κάτι που όλοι χρησιμοποιούν είτε τους αρέσει είτε όχι έχουμε βασανιστεί πάμπολες φορές για το πώς να μεταφέρουμε αλλαγές από το development στο production αλλά και γενικότερα να έχουμε ένα db lifecycle management.
06 Aug 2010
Πως να επαναφέρω μια suspect database
Σήμερα δεν ξημέρωσε καλά για κάποιον συνάδελφο. Δυστυχώς για αυτόν είχε να αντιμέτωπίσει ένα σοβαρό θέμα μιας και η βάση του ERP του ήταν suspect. Πραγματικά είχα καιρό να ακούσω για κάτι τέτοιο και τις περισσότερες φορές αιτία είναι hard disk failures. Όπως και να έχει όμως υπάρχει τρόπος να την φέρεις ξανά πίσω με την παραδοχή ότι θα έχεις πιθανότατα κάποιες απώλειες δεδομένων.
13 Oct 2011
The SQL Server Utility
Το πρόβλημα Σαν DBA και ειδικά σε enterprise environments έχουμε το καθήκον να διαχειριζόμαστε ένα αρκετά σημαντικό αριθμό από SQL Server instances που υπάρχουν διάσπαρτα μέσα στο οργανισμό ή την εταιρεία στην οποία εργαζόμαστε. Αυτό σημαίνει ότι πρέπει καθημερινά να παρακολουθούμε την πορεία αυτών των instances ώστε προληπτικά και όχι πυροσβεστικά να δίνουμε λύσεις σε issues που τυχόν θα εμφανιστούν.
29 Jul 2016
Database owner Vs db_owner database role
Δεν είναι λίγοι αυτοί που πιστεύουν ότι το να είναι κάποιος database owner είναι το ίδιο με το να ανήκει στο database role db_owner. Η απάντηση είναι ότι δεν είναι, αν και σε πρώτη ανάγνωση έτσι φαίνεται.
Η ουσιαστική διαφορά είναι ότι ο πρώτος είναι ο πραγματικός owner και μπορεί να κάνει τα πάντα στην database. Εξάλλου μην ξεχνάμε ότι όποιος είναι sysadmin στο SQL Server instance στην κάθε database "μπαίνει" σαν dbo, που είναι ο database owner.
04 May 2015
SQL Server 2016 datasheet
Σήμερα ο Satya Nadella , CEO της Microsoft στα πλαίσια του keynote του Microsoft Ignite ανακοίνωσε την έλευση του SQL Server 2016. Φυσικά αμέσως υπήρχαν και οι απαραίτητες αναρτήσεις στο msdn / TechNet όπου πλέον υπάρχει το datasheet για την νέα έκδοση και τα περιεχόμενα του είναι τα παρακάτω
28 Oct 2013
Taking database backups from SQL Server 2014 to Windows Azure Storage (Part I)
Σαν DBA πρέπει να έχω μια σωστή πολιτική backup που να ταιριάζει με τις εκάστοτε ανάγκες της database. Πέρα όμως από αυτή την πολιτική πρέπει να φροντίζω να φυλάσσω τα backup αυτά σε χώρους εκτός κτηρίου / περιοχής για τον φόβο των Ιουδαίων.
Από το CU2 του SQL Server 2012 μας δόθηκε η δυνατότητα να μπορούμε να εκτελούμε backups απευθείας σε azure storage. Πλέον αυτή η δυνατότητα στον SQL Server 2014 (CTP2) έχει μεγαλώσει και δίνει περισσότερες δυνατότητες.
04 Dec 2012
Q & A on Virtual Log Files
Πριν από καιρό είχα κάνει το SQL Saturday Night #15 στο οποίο είχα ασχοληθεί με τα Virtual Log Files (VLFs) του transaction log μιας database.
Πάρα πολλοί είδαν το συγκεκριμένο SQL Saturday Night και αρκετοί είχαν απορίες που μου απέστειλαν.Eίναι νομίζω η στιγμή να δημοσιευθούν οι σημαντικότερες ερωτήσεις από αυτές που υποβλήθηκαν και οι απαντήσεις που πήραν.