v_pasch Posted March 9, 2010 Report Share Posted March 9, 2010 Καλησπέρα. Θέλω να πάρω backup όλες τις βάσεις που έχω στον SQL Server 2008 αλλά θέλω να μη κάνω τη διαδικασία για κάθε μία. Έχω βρει αυτό το SQL Script αλλά μου χτυπάει όταν το τρέχω. Είναι σωστό? DECLARE @name VARCHAR(50) -- database name DECLARE @path VARCHAR(256) -- path for backup files DECLARE @fileName VARCHAR(256) -- filename for backup DECLARE @fileDate VARCHAR(20) -- used for file name SET @path = '\\192.168.1.150\Backup\' SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112) DECLARE db_cursor CURSOR FOR SELECT name FROM master.dbo.sysdatabases WHERE name NOT IN ('master','model','msdb','tempdb') OPEN db_cursor FETCH NEXT FROM db_cursor INTO @name WHILE @@FETCH_STATUS = 0 BEGIN SET @fileName = @path + @name + '_' + @fileDate + '.BAK' BACKUP DATABASE @name TO DISK = @fileName FETCH NEXT FROM db_cursor INTO @name END CLOSE db_cursor DEALLOCATE db_cursor Link to comment Share on other sites More sharing options...
fenia Posted March 9, 2010 Report Share Posted March 9, 2010 Στο path δοκίμασε και να βγάλεις την IP και να βάλεις NETBIOS name και έλεγξε τα NTFS permissions στο shared folder που δίνεις στο variable. Link to comment Share on other sites More sharing options...
Akladakis Posted March 9, 2010 Report Share Posted March 9, 2010 Δες κι αυτό http://autoexec.gr/blogs/antonch/archive/2009/07/20/script-for-full-database-backup-with-sqlcmd-tool.aspx Link to comment Share on other sites More sharing options...
antonch Posted March 9, 2010 Report Share Posted March 9, 2010 μερικά λαθάκια, να το διορθωμένο, αλλά έχεις σκεφτεί να φτιάξει κάποιο maintenance plan? DECLARE @path VARCHAR(256) -- path for backup files DECLARE @fileName VARCHAR(256) -- filename for backup DECLARE @fileDate VARCHAR(20) -- used for file name SET @path ='\\192.168.1.150\backup\' SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112) DECLARE db_cursor CURSOR READ_ONLY FOR SELECT name FROM master.dbo.sysdatabases WHERE name NOT IN ('master','model','msdb','tempdb') DECLARE @name varchar(128) OPEN db_cursor FETCH NEXT FROM db_cursor INTO @name WHILE (@@fetch_status -1) BEGIN IF (@@fetch_status -2) BEGIN SET @fileName = @path + @name + '_' + @fileDate + '.BAK' exec ( 'BACKUP DATABASE ' +@name + ' TO DISK =''' + @fileName +'''' ) END FETCH NEXT FROM db_cursor INTO @name END CLOSE db_cursor DEALLOCATE db_cursor GO Link to comment Share on other sites More sharing options...
fenia Posted March 10, 2010 Report Share Posted March 10, 2010 Εμένα πάντως το πρωτότυπο δούλεψε κανονικά, απλά άλλαξα την IP με ένα server name και το αντίστοιχο shared folder. Με IP δεν δούλευε αλλά δεν είχα χρόνο να δω γιατί ... Επειδή οι γνώσεις μου στον SQL είναι βασικές ... να υποθέσω ότι δουλεύει με IP αλλά έχω κάποιο θέμα στο DNS ή μέσα σε T-SQL δεν μπορώ να βάλω IP address; Link to comment Share on other sites More sharing options...
Recommended Posts