Αρχική σελίδα » πως να » Τρόπος δημιουργίας αντιγράφων ασφαλείας βάσεων δεδομένων SQL σε ένα κοινόχρηστο στοιχείο δικτύου

    Τρόπος δημιουργίας αντιγράφων ασφαλείας βάσεων δεδομένων SQL σε ένα κοινόχρηστο στοιχείο δικτύου

    Η δημιουργία αντιγράφων ασφαλείας των βάσεων δεδομένων SQL είναι τακτική. Έχουμε ήδη καλύψει τρόπους με τους οποίους μπορείτε εύκολα να δημιουργήσετε αντίγραφα ασφαλείας όλων των βάσεων δεδομένων του SQL Server σε έναν τοπικό σκληρό δίσκο, αλλά αυτό δεν προστατεύει από την αστοχία της μονάδας δίσκου και / ή του συστήματος. Ως πρόσθετο επίπεδο προστασίας από αυτό το είδος καταστροφής, μπορείτε να αντιγράψετε ή να δημιουργήσετε άμεσα τα αντίγραφα ασφαλείας σε ένα κοινόχρηστο στοιχείο δικτύου.

    Δημιουργία αντιγράφων ασφαλείας τοπικά και στη συνέχεια αντιγραφή στο κοινόχρηστο στοιχείο δικτύου

    Ο προτιμώμενος και άμεσος τρόπος επίτευξης αυτής της εργασίας είναι απλά να δημιουργηθεί ένα τοπικό αντίγραφο ασφαλείας μιας βάσης δεδομένων και στη συνέχεια να αντιγραφεί το αντίστοιχο αρχείο αντιγράφων ασφαλείας σε ένα κοινόχρηστο στοιχείο δικτύου. Μπορείτε να το κάνετε αυτό δημιουργώντας ένα σενάριο παρτίδας που μοιάζει με αυτό:

    SET LocalFolder = C: Αρχεία προγράμματοςMicrosoft SQL ServerMSSQL.1MSSQLBackup
    SqlCmd -E -Q "Βάση δεδομένων αντιγράφων ασφαλείας MyDB To Disk ="% LocalFolder% MyDB.bak ""
    XCopy "% LocalFolder% MyDB.bak" "\ 192.168.16.55BackupDatabases" / Z / V
    DEL "% LocalFolder% MyDB.bak"

    Αυτό το script κάνει τα εξής (γραμμή με γραμμή):

    1. Ορίζει μια μεταβλητή στον τοπικό κατάλογο backup του SQL.
    2. Δημιουργεί ένα αντίγραφο ασφαλείας SQL του MyDB (χρησιμοποιώντας τον έλεγχο ταυτότητας των Windows) στον τοπικό κατάλογο αντιγράφων ασφαλείας SQL.
    3. Αντιγράφει το τοπικό αρχείο αντιγράφου ασφαλείας σε κοινόχρηστο στοιχείο δικτύου.
    4. Διαγράφει το τοπικό αρχείο αντιγράφων ασφαλείας.

    Και πάλι, αυτή είναι η προτιμώμενη μέθοδος επειδή λειτουργεί έξω από το κιβώτιο και η πιθανότητα μιας εφεδρικής αποτυχίας είναι ελάχιστη, αφού το αντίγραφο ασφαλείας δημιουργείται σε έναν τοπικό δίσκο. Ωστόσο, εάν δεν έχετε αρκετό χώρο στο δίσκο για την αποθήκευση τοπικών αντιγράφων αρχείων αντιγράφων ασφαλείας, αυτή η ενέργεια θα αποτύχει. Σε αυτήν την περίπτωση, θα πρέπει να προσθέσετε επιπλέον χώρο στο δίσκο ή αντίγραφο ασφαλείας απευθείας σε κοινόχρηστο στοιχείο δικτύου.

    Δημιουργία αντιγράφων ασφαλείας απευθείας σε ένα μερίδιο δικτύου

    Συνήθως, όταν προσπαθείτε να δημιουργήσετε ένα αντίγραφο ασφαλείας απευθείας σε ένα κοινόχρηστο στοιχείο δικτύου χρησιμοποιώντας μια εντολή όπως:

    SqlCmd -E -Q "Βάση δεδομένων αντιγράφων ασφαλείας MyDB To Disk =" \ 192.168.16.55BackupDatabasesMyDB.bak ""

    Κατά πάσα πιθανότητα θα λάβετε ένα σφάλμα σύμφωνα με τα εξής:

    Msg 3201, επίπεδο 16, κατάσταση 1, διακομιστής JF, γραμμή 1
    Δεν είναι δυνατό να ανοίξει η εφεδρική συσκευή '\ 192.168.16.55BackupDatabasesMyDB.bak'. Σφάλμα λειτουργικού συστήματος 5 (Η πρόσβαση δεν επιτρέπεται.).
    Msg 3013, επίπεδο 16, κατάσταση 1, διακομιστής JF, γραμμή 1
    Η BATUP DATABASE τερματίζεται ασυνήθιστα.

    Αυτό το σφάλμα παρουσιάζεται παρά το γεγονός ότι εκτελέσατε την εντολή δημιουργίας αντιγράφων ασφαλείας SQL χρησιμοποιώντας το Windows Authentication (ο διακόπτης -E) και το λογαριασμό των Windows ως δυνατότητα πρόσβασης και αντιγραφής αρχείων στο κοινόχρηστο στοιχείο μέσω της Εξερεύνησης των Windows.

    Ο λόγος για την αποτυχία αυτής της ενέργειας είναι επειδή η εντολή SQL εκτελείται εντός των ορίων του λογαριασμού που εκτελεί η υπηρεσία του SQL Server ως. Όταν προβάλλετε τη λίστα υπηρεσιών στον υπολογιστή σας, κατά πάσα πιθανότητα θα δείτε την υπηρεσία SQL Server που εκτελείται ως (στήλη Log On As) είτε το τοπικό σύστημα ή την υπηρεσία δικτύου που είναι λογαριασμοί συστήματος που δεν έχουν πρόσβαση στο δίκτυο.

    Στο σύστημά μας, η δημιουργία αντιγράφων ασφαλείας σε μια εντολή κοινής χρήσης δικτύου αποτυγχάνει επειδή έχουμε την υπηρεσία SQL Server που εκτελείται ως Τοπικό σύστημα το οποίο, πάλι, δεν μπορεί να φτάσει σε οποιονδήποτε πόρο δικτύου.

    Προκειμένου να επιτρέπεται η δημιουργία αντιγράφων ασφαλείας του SQL απευθείας σε ένα κοινόχρηστο στοιχείο δικτύου, πρέπει να εκτελέσουμε την υπηρεσία SQL Server ως τοπικό λογαριασμό που έχει πρόσβαση σε πόρους δικτύου.

    Επεξεργαστείτε τις ιδιότητες της υπηρεσίας SQL Server και στην καρτέλα Σύνδεση, ρυθμίστε τις παραμέτρους της υπηρεσίας ώστε να εκτελείται ως εναλλακτικός λογαριασμός ο οποίος έχει δικαιώματα πρόσβασης στο δίκτυο.

    Όταν κάνετε κλικ στο κουμπί OK, θα λάβετε μια προτροπή ότι οι ρυθμίσεις δεν θα τεθούν σε ισχύ μέχρι την επανεκκίνηση της υπηρεσίας.

    Κάντε επανεκκίνηση της υπηρεσίας.

    Ο κατάλογος υπηρεσιών πρέπει τώρα να δείξει ότι η υπηρεσία SQL Server εκτελείται ως ο λογαριασμός που ρυθμίσατε.

    Τώρα όταν εκτελείτε την εντολή για δημιουργία αντιγράφων ασφαλείας απευθείας σε ένα κοινόχρηστο στοιχείο δικτύου:

    SqlCmd -E -Q "Βάση δεδομένων αντιγράφων ασφαλείας MyDB To Disk =" \ 192.168.16.55BackupDatabasesMyDB.bak ""

    Θα πρέπει να δείτε ένα μήνυμα επιτυχίας:

    Επεξεργασμένα 152 σελίδες για τη βάση δεδομένων 'MyDB', αρχείο 'MyDB' στο αρχείο 1.
    Επεξεργασμένα 2 σελίδες για τη βάση δεδομένων 'MyDB', αρχείο 'MyDB_log' στο αρχείο 1.
    Η BACKUP DATABASE επεξεργάστηκε επιτυχώς 154 σελίδες σε 0,503 δευτερόλεπτα (2,493 MB / sec).

    Με το αρχείο αντιγράφου ασφαλείας τώρα στον κατάλογο κοινής χρήσης δικτύου:

    Μερίδια δικτύου

    Είναι σημαντικό να σημειωθεί ότι η εντολή δημιουργίας αντιγράφων ασφαλείας αναμένεται να είναι σε θέση να συνδεθεί απευθείας με το κοινόχρηστο στοιχείο δικτύου χωρίς να σας ζητηθεί πιστοποίηση. Ο λογαριασμός στον οποίο έχετε ρυθμίσει την υπηρεσία SQL Server για εκτέλεση, πρέπει να έχει μια αξιόπιστη σύνδεση με το κοινόχρηστο στοιχείο δικτύου, όπου τα αντίστοιχα διαπιστευτήρια επιτρέπουν την πρόσβαση, διαφορετικά ενδέχεται να παρουσιαστεί ένα σφάλμα όπως αυτό:

    Msg 3201, επίπεδο 16, κατάσταση 1, διακομιστής JF, γραμμή 1
    Δεν είναι δυνατό να ανοίξει η εφεδρική συσκευή '\ 192.168.16.55BackupDatabasesMyDB.bak'. Σφάλμα λειτουργικού συστήματος 1326 (Αποτυχία σύνδεσης: άγνωστο όνομα χρήστη ή κακός κωδικός πρόσβασης)..
    Msg 3013, επίπεδο 16, κατάσταση 1, διακομιστής JF, γραμμή 1
    Η BATUP DATABASE τερματίζεται ασυνήθιστα.

    Αυτό το σφάλμα υποδεικνύει ότι το όνομα χρήστη και ο κωδικός πρόσβασης του λογαριασμού δεν έγιναν δεκτά από το κοινόχρηστο στοιχείο δικτύου και η εντολή απέτυχε.

    Ένα άλλο ζήτημα που πρέπει να έχετε κατά νου είναι ότι το αντίγραφο ασφαλείας εκτελείται απευθείας σε έναν πόρο δικτύου, οπότε οποιοσδήποτε λόξυγγας στη σύνδεση δικτύου μπορεί να προκαλέσει την αποτυχία του αντιγράφου ασφαλείας. Για το λόγο αυτό, θα πρέπει να δημιουργείτε μόνο αντίγραφα ασφαλείας σε τοποθεσίες δικτύου που είναι σταθερές (δηλαδή πιθανώς δεν είναι VPN).

    Ασφάλεια Επιπτώσεις

    Όπως αναφέρθηκε προηγουμένως, προτιμάται η χρήση της μεθόδου όπου δημιουργείτε τοπικά αντίγραφα ασφαλείας και, στη συνέχεια, αντιγράψτε σε ένα κοινόχρηστο στοιχείο δικτύου, καθώς σας επιτρέπει να εκτελέσετε την υπηρεσία SQL ως λογαριασμό μόνο με πρόσβαση τοπικού συστήματος.

    Με την εκτέλεση της υπηρεσίας ως εναλλακτικού λογαριασμού ανοίγετε την πόρτα σε πιθανά ζητήματα ασφάλειας. Για παράδειγμα, μια κακόβουλη δέσμη ενεργειών SQL θα μπορούσε να εκτελεστεί κάτω από τον εναλλακτικό λογαριασμό και να επιτεθεί στους πόρους του δικτύου. Επιπλέον, τυχόν αλλαγές στον αντίστοιχο λογαριασμό (αλλαγές / λήξεις κωδικού πρόσβασης ή διαγραφή / απενεργοποίηση του λογαριασμού) θα προκαλέσουν την αδυναμία εκκίνησης της υπηρεσίας του SQL Server.

    Είναι σημαντικό να διατηρήσετε αυτά τα σημεία υπόψη, εάν εκτελείτε την παρουσία του SQL Server χρησιμοποιώντας έναν εναλλακτικό λογαριασμό. Παρόλο που δεν εμφανίζονται πώματα, εάν ληφθούν τα κατάλληλα μέτρα, θα πρέπει να εξετάσετε την προσθήκη πρόσθετου χώρου στο σκληρό δίσκο και, στη συνέχεια, να εφαρμόσετε την τοπική αντιγραφή και αντιγραφή ώστε να μπορείτε να εκτελέσετε την υπηρεσία SQL χρησιμοποιώντας έναν τοπικό λογαριασμό.