[help] Data Base Backup!

Status
Not open for further replies.
Man, you could had searched, isn't so hard to find here. Altho, I'm gonna post it here.


-- By: localhost / silver_private_
-- Server: (local)

BEGIN TRANSACTION
DECLARE @JobID BINARY(16)
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
IF (SELECT COUNT(*) FROM msdb.dbo.syscategories WHERE name = N'[Uncategorized (Local)]') < 1
EXECUTE msdb.dbo.sp_add_category @name = N'[Uncategorized (Local)]'

-- Delete the job with the same name (if it exists)
SELECT @JobID = job_id
FROM msdb.dbo.sysjobs
WHERE (name = N'Database BackUP')
IF (@JobID IS NOT NULL)
BEGIN
-- Check if the job is a multi-server job
IF (EXISTS (SELECT *
FROM msdb.dbo.sysjobservers
WHERE (job_id = @JobID) AND (server_id <> 0)))
BEGIN
-- There is, so abort the script
RAISERROR (N'Unable to import job ''Database BackUP'' since there is already a multi-server job with this name.', 16, 1)
GOTO QuitWithRollback
END
ELSE
-- Delete the [local] job
EXECUTE msdb.dbo.sp_delete_job @job_name = N'Database BackUP'
SELECT @JobID = NULL
END

BEGIN

-- Add the job
EXECUTE @ReturnCode = msdb.dbo.sp_add_job @job_id = @JobID OUTPUT , @job_name = N'Database BackUP', @description = N'// makes automatically a backup from // database MUonline and Ranking // newer version with more fuctions coming // soon // SiLvER', @category_name = N'[Uncategorized (Local)]', @enabled = 1, @notify_level_email = 0, @notify_level_page = 0, @notify_level_netsend = 0, @notify_level_eventlog = 0, @delete_level= 0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

-- Add the job steps
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobstep @job_id = @JobID, @step_id = 1, @step_name = N'backup and save in D:/', @command = N'BACKUP DATABASE [muonline] TO DISK = N''D:\MuServer\db_muonline.bak'' WITH INIT , NOUNLOAD , NAME = N''muonline backup'', NOSKIP , STATS = 10, NOFORMAT
BACKUP DATABASE [ranking] TO DISK = N''D:\MuServer\db_ranking.bak'' WITH INIT , NOUNLOAD , NAME = N''muonline backup'', NOSKIP , STATS = 10, NOFORMAT', @database_name = N'master', @server = N'', @database_user_name = N'', @subsystem = N'TSQL', @cmdexec_success_code = 0, @flags = 0, @retry_attempts = 0, @retry_interval = 1, @output_file_name = N'', @on_success_step_id = 0, @on_success_action = 3, @on_fail_step_id = 0, @on_fail_action = 3
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobstep @job_id = @JobID, @step_id = 2, @step_name = N'baclup and save in WINDOWS', @command = N'BACKUP DATABASE [muonline] TO DISK = N''C:\WINDOWS\Muonline\db_muonline.bak'' WITH INIT , NOUNLOAD , NAME = N''muonline backup'', NOSKIP , STATS = 10, NOFORMAT
BACKUP DATABASE [ranking] TO DISK = N''C:\WINDOWS\Muonline\db_muonline.bak'' WITH INIT , NOUNLOAD , NAME = N''muonline backup'', NOSKIP , STATS = 10, NOFORMAT', @database_name = N'master', @server = N'', @database_user_name = N'', @subsystem = N'TSQL', @cmdexec_success_code = 0, @flags = 0, @retry_attempts = 0, @retry_interval = 1, @output_file_name = N'', @on_success_step_id = 0, @on_success_action = 3, @on_fail_step_id = 0, @on_fail_action = 3
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobstep @job_id = @JobID, @step_id = 3, @step_name = N'backup and save in C:/', @command = N'BACKUP DATABASE [muonline] TO DISK = N''C:\db_muonline.bak'' WITH INIT , NOUNLOAD , NAME = N''muonline backup'', NOSKIP , STATS = 10, NOFORMAT
BACKUP DATABASE [ranking] TO DISK = N''C:\db_ranking.bak'' WITH INIT , NOUNLOAD , NAME = N''muonline backup'', NOSKIP , STATS = 10, NOFORMAT', @database_name = N'master', @server = N'', @database_user_name = N'', @subsystem = N'TSQL', @cmdexec_success_code = 0, @flags = 0, @retry_attempts = 0, @retry_interval = 1, @output_file_name = N'', @on_success_step_id = 0, @on_success_action = 1, @on_fail_step_id = 0, @on_fail_action = 2
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXECUTE @ReturnCode = msdb.dbo.sp_update_job @job_id = @JobID, @start_step_id = 1

IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

-- Add the job schedules
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id = @JobID, @name = N'backup database every12 hours', @enabled = 1, @freq_type = 4, @active_start_date = 20050928, @active_start_time = 0, @freq_interval = 1, @freq_subday_type = 8, @freq_subday_interval = 12, @freq_relative_interval = 0, @freq_recurrence_factor = 0, @active_end_date = 99991231, @active_end_time = 235959
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

-- Add the Target Servers
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @JobID, @server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

END
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:



It makes auto back up every 12 hours. Put the code in SQL Query Analyzer.
 
Upvote 0
Oki tnx alot!
were will be save the database?
I have the mu server in D:
who will be the woner? i let master or i change with muonline or ranking or ....?
 
Upvote 0

Great way to backup database manually

1. go into enterprise, to your databases, right click on MuOnline db

-->All Tasks -->Export Data

Wizard pops up, click [NEXT]

in the bottom box, MuOnline is selected

click [NEXT]

now click the dropdown button where it says <default> and choose <new>

type in something like MuOnlineBU082607

click [OK] then click [NEXT]


top selection (copy tables and views from the source database)

click [NEXT] click [SELECT ALL]

click [NEXT]

Run immediately is checked ---> click [NEXT]

zoom zoom zoom, it backs it up to a database that is not hooked to anything.

To restore with this method, you "RESTORE" the MuOnline DB the same way you did when you first installed.

Then, just like when you backed it up, but in reverse -- choose the database MuOnlineBU082607, right click, export data,

SOURCE Database MuOnlineBU082607
DESTINATION Database MuOnline

**all the same as above, run and it will restore all except 5 databases. These are filled with data when you did the initial "Restore" and the "failure" is simply saying it can't put duplicate information into the fields.

I like this method, because SQL has query options - so you can restore tables individually if you needed.

Another method -- you could do this, or do the above *AND do this (which is what I have done many times, just as an added precaution)

It's the "COPY method"^^

to make sure you don't loose anything, you can close your sql service manager, you will have to also do ctrl+alt+del and close the sqlserver process -- then you can actually copy your entire d:\Muserver\Database folder to a "backup folder" on CD or another drive - or where-ever.

To restore the data with the "copy" method.

Restore the database like normal server setup -- then close SQLService manager, and ctrl+alt+del to close SQLSERVR.exe Now copy the folder you "backed up" over top of the database folder you just "restored" in SQL.

Start the sql server back up....boom diggity, it's all back.


Always good to know there's admin's taking the time to protect the data of their players -- keep it up, I'm sure you'll have a great server!

GL
 
Upvote 0
Status
Not open for further replies.
Back