Oracle和sqlserver数据库的备份与恢复
- 格式:docx
- 大小:530.49 KB
- 文档页数:13
sqlserver备份还原数据库sql语句SQL Server备份还原数据库是数据库管理的重要操作之一,可以保障数据库的安全性和可靠性。
本篇文章将详细介绍备份还原数据库的操作流程,包括备份数据库、还原数据库的SQL语句。
以下将一步一步回答。
1. 备份数据库的SQL语句备份数据库是将数据库的数据和日志文件备份到指定的位置以进行数据库恢复。
SQL Server提供了BACKUP DATABASE语句用于备份数据库。
以下是备份数据库的SQL语句示例:BACKUP DATABASE [数据库名称]TO DISK = '备份路径'WITH INIT, FORMAT, NAME = '备份名称'其中,[数据库名称]是要备份的数据库的名称,'备份路径'是备份文件的存储路径,'备份名称'是备份文件的名称。
语句中的WITH INIT表示每次备份都初始化备份介质,FORMAT表示将备份文件格式化,使其可与其他SQL Server版本兼容。
2. 还原数据库的SQL语句还原数据库是将备份的数据库文件恢复到数据库中。
SQL Server提供了RESTORE DATABASE语句用于还原数据库。
以下是还原数据库的SQL语句示例:RESTORE DATABASE [数据库名称]FROM DISK = '备份文件路径'WITH REPLACE, RECOVERY其中,[数据库名称]是要还原的数据库的名称,'备份文件路径'是备份文件的存储路径。
语句中的WITH REPLACE表示在还原数据库之前会替换掉已经存在的同名数据库,RECOVERY表示数据库将处于可使用状态。
3. 备份还原数据库的操作流程备份还原数据库的操作流程包括备份数据库和还原数据库两个步骤。
3.1 备份数据库的操作流程(1)连接到SQL Server数据库。
(2)选择要备份的数据库。
SQLServer数据库的备份与恢复策略SQLServer是一种关系型数据库管理系统,广泛应用于企业和组织中的数据存储和管理。
数据备份是SQLServer数据库管理的一个重要环节,数据恢复也是一个关键性的工作,他们共同构成了SQLServer 数据管理中最基础也是最重要的部分。
下面,我们将详细地介绍SQLServer数据库备份与恢复策略的相关知识。
一、数据备份的基本原理SQLServer数据库备份,就是将数据库的数据和日志记录复制到备份媒介上,以提供数据恢复的方案。
SQLServer数据库备份的基本原理是通过备份操作将数据和日志记录写入到磁盘上的备份设备中,以便在出现灾难性损失的时候,可以使用这些备份数据快速恢复数据库。
在进行备份操作时,需要考虑以下几个因素:1.备份类型SQLServer支持多种备份类型,包括完整备份、增量备份和差异备份。
完整备份会备份所有数据和日志记录,增量备份只备份上一次完整备份以来修改过的数据和日志记录,而差异备份则备份与上一次完整备份不同的数据和日志。
因此,在进行备份操作时,需要根据具体的需求来选择不同的备份类型。
2.备份介质备份介质指的是将备份数据写入的位置,可以是磁盘、网络文件共享或磁带。
在选择备份介质时,需要考虑备份的时间、空间和安全性等因素。
对于一些重要的数据库备份,最好将其备份到独立的备份设备或者离线媒介上,以提高备份数据的安全性。
3.备份频率备份频率是指备份操作的执行频率,包括完整备份的时间间隔、增量备份的时间间隔和差异备份的时间间隔。
在设置备份频率时,需要平衡备份数据的保护要求和备份操作的开销,以确保备份数据的安全性和恢复的可靠性。
二、数据恢复的基本原理数据恢复是指在出现灾难性损失时,将备份的数据库恢复到正常的运行状态。
数据恢复是SQLServer数据库管理中最为基础和关键的环节。
对于一些重要的数据库系统,为了保证数据的安全性和可靠性,需要实施定期的数据恢复测试,以免在恢复时出现失误。
SQLServer——SQLServer备份与恢复1、动手备份2、动手还原3、T-SQL语句备份及还原BACKUP DATABASERESTORE FILELISTONLY FROM DISK代码示例-- 打开设置当前数据库use mastergo-- 默认创建数据库create database SQLDBgo-- 打开设置当前数据库use SQLDBgoSQLDB-- 在当前数据库创建表create table sqltable(empid char(20) not null primary key,empname char(8) not null,empbd datetime not null default getdate())go-- 将数据信息插入到表中insert into sqltable(empid,empname) values('101','张三') insert into sqltable(empid,empname) values('102','李四') insert into sqltable(empid,empname) values('103','王五') insert into sqltable(empid,empname) values('104','赵三') insert into sqltable(empid,empname) values('105','周北') go-- 查询输出表中所有的记录select *from sqltablego-- 将数据库备份到磁盘设备use SQLDBgobackup database SQLDBto disk='d:\SQLDB.bak'with format,medianame='SQLDB',name='full backup of SQLDB'go-- 还原数据库文件use mastergorestore database SQLDBss from disk='d:\SQLDB.bak' go。
sqlserver还原数据库步骤1.备份恢复步骤:(1)首先进入sql server management studio管理工具,在对象资源管理器中,右击“数据库”,在菜单中点击“任务”-“恢复数据库”;(2)在“恢复数据库”窗口中,第一步,点击数据库名称列表,然后选择要还原到的目标数据库名称;(3)第二步,点击“源”,在“重新定位文件”下,点击该子窗口,在新弹出的“此文件组对话框”中,选择“从备份文件中恢复文件”,然后点击“浏览…”,找到备份文件的路径,然后点击“确定”。
(4)第三步,点击“选项”,选中“替换当前数据库”,然后点击“恢复”,最后点击“确定”,还原就完成了。
说明:如果恢复的是空数据库,可以不用上述设置步骤,直接选择要恢复的数据库,然后把文件组、源、重新定位文件三个步骤全部跳过,进入选项步骤,在里面选择“恢复”,然后点击“确定”完成还原。
2.覆盖恢复步骤:(1)首先在sql server management studio管理工具中,右击“数据库”,在菜单中点击“任务”-“恢复数据库”;(2)然后在“恢复数据库”窗口中,第一步,点击数据库名称列表,然后选择要还原到的目标数据库名称;(3)第二步,点击“源”,在“重新定位文件”下,点击该子窗口,在新弹出的“此文件组对话框”中,选择“从备份文件中恢复文件”,然后点击“浏览…”,找到备份文件的路径,然后点击“确定”;(4)第三步,点击“选项”,主要选中“覆盖此数据库”,然后点击“恢复”,最后点击“确定”,完成还原。
3.日志恢复步骤:(1)首先进入sql server management studio管理工具,在对象资源管理器中,右击“数据库”,在菜单中点击“任务”-“恢复数据库”;(2)然后在“恢复数据库”窗口中,第一步,点击数据库名称列表,然后选择要还原到的目标数据库名称;(3)第二步,点击“源”,在“重新定位文件”下,点击该子窗口,在新弹出的“此文件组对话框”中,选择“从日志文件中恢复文件”,然后点击“浏览…”,找到备份文件的路径,然后点击“确定”;(4)第三步,点击“选项”,主要选中“恢复数据库:追加到现有数据库”,然后点击“恢复”,最后点击“确定”,完成还原数据库操作。
数据库常用的备份和恢复方法1. 数据库备份方法:使用数据库管理系统自带的备份工具,比如MySQL的mysqldump 命令、SQL Server的备份与还原工具、Oracle的RMAN等。
2. 备份恢复方法:通过数据库管理系统自带的还原工具进行数据库的恢复操作,还原到备份的状态。
3. 使用备份数据库文件:将数据库文件完整拷贝到另一个地方,以便在需要时进行恢复。
4. 使用数据库复制:通过数据库复制功能实现备份,比如MySQL的主从复制、SQL Server的数据库镜像等。
5. 使用第三方备份工具:如Acronis Backup、Veeam Backup等第三方软件来进行数据库备份。
6. 使用文件系统级别的备份:直接备份数据库所在的文件系统,这种方法需要确保数据库处于非活动状态。
7. 冷备份:在数据库服务未运行的情况下进行备份,确保备份文件的完整性。
8. 热备份:在数据库服务正在运行的情况下进行备份,能够实现数据库的连续性。
9. 定时自动备份:通过定时任务或其他调度工具定期对数据库进行备份,确保备份的及时性。
10. 增量备份:仅备份数据库中发生变化的部分数据,从而减少备份数据的大小和时间。
11. 差异备份:备份数据库自上次完整备份之后发生变化的部分数据,比增量备份更快,但恢复时需要依赖上次的完整备份。
12. 完整备份:备份整个数据库的数据和结构,是最基本的备份方法。
13. 数据库备份到云存储:将数据库备份文件上传至云存储服务,保证备份的安全性和可靠性。
14. 数据库备份加密:对备份文件进行加密,增加备份文件的安全性。
15. 数据库备份压缩:对备份文件进行压缩,减小备份文件的大小,节省存储空间。
16. 数据库备份验证:对备份文件进行验证,确保备份文件的完整性和可恢复性。
17. 数据库备份日志记录:记录备份的相关信息,如备份时间、备份状态、备份文件位置等,便于管理和追踪备份操作。
18. 数据库备份监控:通过监控系统对数据库备份进行实时监控,确保备份的正常进行。
Sqlserver数据库备份与还原⼀、数据库存储概述1、数据⽂件类型· Primary data files:每个数据库都有⼀个单独的主要数据⽂件,默认以.mdf扩展名。
主要数据⽂件不仅包含数据信息,还包含与该数据库结构相关的信息。
创建数据库时,数据库结构相关信息不仅存在于master数据库中,同时还包含在primary data file上.· Secondary data files⼀个数据库可以有⼀个或者多个⼆级数据⽂件,默认以.ndf为扩展名。
⼀般来说⼆级数据⽂件并不是必须的,因为⼆级数据⽂件不包含⽂件位置等信息。
· Transaction logs: 数据库必须⾄少有⼀个事务⽇志⽂件,默认以.ldf为扩展名。
⽇志是整个数据库的命脉,事务⽇志不可读的话,将⽆法对数据库进⾏任何操作。
当你在数据库上进⾏数据操作时,数据并不是直接写⼊数据⽂件,⽽是先将相关操作信息写⼊事务⽇志⽂件。
当⼀个事务结束时,该事务被标记为已提交,但这也并不意味着数据从⽇志⽂件写⼊了数据⽂件中。
⼀个标记为已提交的事务仅仅意味着所有与该事务相关的元素已经成功完成。
The buffer cache may be updated, but not necessarily the data file.检查点(checkpoint)会周期性的发⽣。
检查点发⽣时,是确认所有已提交的事务,不管是在buffer cache或者事务⽇志中,都被写⼊相关的数据⽂件中。
检查点(checkpoint)可以通过以下⽅式来触发:1、显⽰调⽤checkpoint命令;2、Recover Interval 实例设置的周期达到(⽤来标识多久发⽣⼀次checkpoint)3、做了数据库备份(在简单模式下);4、数据库⽂件结构被改变(在简单模式下);5、数据库引擎被结束。
⼀般来说,写数据的过程是由系统⾃动完成的,如下图所⽰,但数据并不是直接写⼊.mdf或者.ndf ⽂件中,⽽是先将有关变化写⼊事务⽇志中,这也是数据库中的write-ahead机制。
SQLServer数据库的备份和恢复方法作为一名数据库管理员,数据库的备份和恢复是非常重要的工作之一。
数据库是企业中最重要的信息资产之一,如果因为故障或其他原因导致数据丢失,会给企业带来不可估量的损失。
为了避免这种情况的发生,我们需要定期备份数据库,并且掌握好相应的恢复方法。
一、备份方法1、全备份全备份,即备份整个数据库,包括数据文件、事务日志和所有的元数据信息。
全备份是最完整的一种备份方式,备份出来的文件可以还原整个数据库。
全备份的方法和语法如下:BACKUP DATABASE database_name TO backup_device [WITH options];其中,backup_device指备份的目录和文件名,options包括NOFORMAT、NOINIT、NAME、SKIP、REWIND和FORMAT 等选项,可以根据需要进行配置。
例如:BACKUP DATABASE AdventureWorks2016 TO DISK ='C:\AdventureWorks2016.bak' WITH NOFORMAT, NOINIT, NAME = N'AdventureWorks2016-Full Database Backup', SKIP, REWIND, NOUNLOAD, STATS = 10这条命令会将AdventureWorks2016数据库备份到C盘下的AdventureWorks2016.bak文件中,同时还指定了一些选项,比如不要在备份设备上格式化或初始化任何内容,备份名称为AdventureWorks2016-Full Database Backup等。
2、差异备份差异备份,即备份自上次全备份以来发生过更改的数据。
差异备份的好处是备份时间较短,备份文件也较小,但同时也需要保证有完整的全备份文件存在。
差异备份的方法和语法如下:BACKUP DATABASE database_name TO backup_device [WITH DIFFERENTIAL];其中,WITH DIFFERENTIAL表示进行差异备份。
SQLServer数据库备份和恢复作为一位数据库管理员,备份和恢复数据库是日常工作中必不可少的任务。
在SQLServer中,备份和恢复数据库是非常简单而且快速的,但是在备份和恢复过程中需要注意一些要点,本文将对此进行介绍和分析。
一、备份数据库在备份数据库之前,需要了解备份的种类和使用场景。
常见的备份种类有完整备份、差异备份和日志备份。
完整备份是将数据库的所有数据和日志都备份下来,差异备份是在完整备份的基础上备份自上次完整备份之后发生的所有变化,而日志备份是备份从最后一次备份到本次备份之间发生的所有交易记录。
是否进行完整备份,差异备份还是日志备份,取决于数据需要恢复到哪一个时间点以及备份的频率和容量。
完整备份备份的数据和所有交易记录,可以恢复到任意一个时间点;差异备份备份的数据是上次备份之后的所有变化,可以恢复到差异备份之后的任意一个时间点;而日志备份只备份从上次备份到本次备份之间的交易记录,只能在连续的日志备份中进行数据的恢复。
在进行备份之前,需要关闭数据库以保证备份的一致性。
可以使用以下SQL语句进行完整备份:BACKUP DATABASE database_nameTO DISK = 'backup_path\backup_file_name.bak'WITH FORMAT, INIT其中,database_name 是要备份的数据库名称,backup_path 是备份文件的存储路径,backup_file_name 是备份文件的名称。
WITH FORMAT参数表示每次备份都会覆盖之前的备份文件并且重新初始化备份集,INIT参数表示让备份文件从头开始,不保存之前的任何备份数据。
需要进行差异备份时,可以使用以下SQL语句:BACKUP DATABASE database_nameTO DISK = 'backup_path\backup_file_name.diff'WITH DIFFERENTIAL其中,DIFFERENTIAL参数表示进行差异备份。
sqlserver数据库的备份与恢复sql实现sqlserver数据库的备份与恢复sql实现利用T-SQL语句,实现数据库的备份与还原的功能体现了SQL Server中的四个知识点:1.获取SQL Server服务器上的默认目录2.备份SQL语句的使用3.恢复SQL语句的使用,同时考虑了强制恢复时关闭其他用户进程的处理4.作业创建SQL语句的使用/*1.--得到数据库的文件目录@dbname 指定要取得目录的数据库名如果指定的数据不存在,返回安装SQL时设置的默认数据目录如果指定NULL,则返回默认的SQL备份目录名*//*--调用示例select 数据库文件目录=dbo.f_getdbpath('tempdb'),[默认SQL SERVER数据目录]=dbo.f_getdbpath(''),[默认SQL SERVER备份目录]=dbo.f_getdbpath(null)--*/if exists (select * from dbo.sysobjects where id =object_id(N'[dbo].[f_getdbpath]') and xtype in (N'FN', N'IF', N'TF')) drop function [dbo].[f_getdbpath]GOcreate function f_getdbpath(@dbname sysname)returns nvarchar(260)assqlserver数据库的备份与恢复sql实现begindeclare @re nvarchar(260)if @dbname is null or db_id(@dbname) is nullselect @re=rtrim(reverse(filename)) from master..sysdatabases where name='master' elseselect @re=rtrim(reverse(filename)) from master..sysdatabases where name=@dbnameif @dbname is nullset @re=reverse(substring(@re,charindex('/',@re)+5,260))+'BACKUP' elseset @re=reverse(substring(@re,charindex('/',@re),260))return(@re)endgo/*2.--备份数据库*//*--调用示例--备份当前数据库exec p_backupdb @bkpath='c:/',@bkfname='db_/DATE/_db.bak'--差异备份当前数据库exec p_backupdb@bkpath='c:/',@bkfname='db_/DATE/_df.bak',@bktype='DF' --备份当前数据库日志exec p_backupdb@bkpath='c:/',@bkfname='db_/DATE/_log.bak',@bktype='LOG' --*/if exists (select * from dbo.sysobjects where id =object_id(N'[dbo].[p_backupdb]') and __(id, N'IsProcedure') = 1) sqlserver数据库的备份与恢复sql实现drop procedure [dbo].[p_backupdb]GOcreate proc p_backupdb@dbname sysname='', --要备份的数据库名称,不指定则备份当前数据库@bkpath nvarchar(260)='', --备份文件的存放目录,不指定则使用SQL 默认的备份目录@bkfname nvarchar(260)='', --备份文件名,文件名中可以用/DBNAME/代表数据库名,/DATE/代表日期,/TIME/代表时间@bktype nvarchar(10)='DB', --备份类型:'DB'备份数据库,'DF' 差异备份,'LOG' 日志备份@appendfile bit=1 --追加/覆盖备份文件asdeclare @sql varchar(8000)if isnull(@dbname,'')='' set @dbname=db_name()if isnull(@bkpath,'')='' set @bkpath=dbo.f_getdbpath(null)if isnull(@bkfname,'')='' set@bkfname='/DBNAME/_/DATE/_/TIME/.BAK' set@bkfname=replace(replace(replace(@bkfname,'/DBNAME/',@dbname) ,'/ DATE/',convert(varchar,getdate(),112)),'/TIME/',replace(convert(varchar,getdate(),108),':',''))set @sql='backup '+case @bktype when 'LOG' then 'log ' else'database ' end +@dbname+' to disk='''+@bkpath+@bkfname+''' with '+case @bktype when 'DF' then '__NTIAL,' else '' end+case @appendfile when 1 then 'NOINIT' else 'INIT' endprint @sqlexec(@sql)go/*3.--恢复数据库sqlserver数据库的备份与恢复sql实现/*--调用示例--完整恢复数据库exec p_RestoreDb @bkfile='c:/db_2022年1015_db.bak',@dbname='db'--差异备份恢复exec p_RestoreDb@bkfile='c:/db_2022年1015_db.bak',@dbname='db',@retype='DBNOR'exec p_backupdb @bkfile='c:/db_2022年1015_df.bak',@dbname='db',@retype='DF'--日志备份恢复exec p_RestoreDb@bkfile='c:/db_2022年1015_db.bak',@dbname='db',@retype='DBNOR'exec p_backupdb @bkfile='c:/db_2022年1015_log.bak',@dbname='db',@retype='LOG'--*/if exists (select * from dbo.sysobjects where id =object_id(N'[dbo].[p_RestoreDb]') and __(id, N'IsProcedure') = 1) drop procedure [dbo].[p_RestoreDb]create proc p_RestoreDb@bkfile nvarchar(1000), --定义要恢复的备份文件名@dbname sysname='', --定义恢复后的数据库名,默认为备份的文件名@dbpath nvarchar(260)='', --恢复后的数据库存放目录,不指定则为SQL的默认数据目录@retype nvarchar(10)='DB', --恢复类型:'DB'完事恢复数据库,'DBNOR' 为差异恢复,日志恢复进行完整恢复,'DF' 差异备份的恢复,'LOG' 日志恢复@filenumber int=1, --恢复的文件号@overexist bit=1, --是否覆盖已经存在的数据库,仅@retype为@killuser bit=1 --是否关闭用户使用进程,仅@overexist=1时有效asdeclare @sql varchar(8000)sqlserver数据库的备份与恢复sql实现--得到恢复后的数据库名if isnull(@dbname,'')=''select @sql=reverse(@bkfile),@sql=case when charindex('.',@sql)=0 then @sqlelse substring(@sql,charindex('.',@sql)+1,1000) end,@sql=case when charindex('/',@sql)=0 then @sqlelse left(@sql,charindex('/',@sql)-1) end,@dbname=reverse(@sql)--得到恢复后的数据库存放目录if isnull(@dbpath,'')='' set @dbpath=dbo.f_getdbpath('')--生成数据库恢复语句set @sql='restore '+case @retype when 'LOG' then 'log ' else'database ' end+@dbname +' from disk='''+@bkfile+''''+' with file='+cast(@filenumber as varchar)+case when @overexist=1 and @retype in('DB','DBNOR') then',replace' else '' end +case @retype when 'DBNOR' then ',__ERY' else ',__Y' end print @sql--添加移动逻辑文件的处理if @retype='DB' or @retype='DBNOR'begin--从备份文件中获取逻辑文件名declare @lfn nvarchar(128),@tp char(1),@i int--创建临时表,保存获取的信息create table #tb(ln nvarchar(128),pn nvarchar(260),tp char(1),fgn nvarchar(128),sz numeric(20,0),Msz numeric(20,0))--从备份文件中获取信息insert into #tb exec('restore filelistonly from disk='''+@bkfile+'''')declare #f cursor for select ln,tp from #tbopen #fsqlserver数据库的备份与恢复sql实现set @i=0while @@fetch_status=0beginselect @sql=@sql+',move '''+@lfn+''' to'''+@dbpath+@dbname+cast(@i as varchar) +case @tp when 'D' then '.mdf''' else '.ldf''' end,@i=@i+1fetch next from #f into @lfn,@tpendclose #fdeallocate #fend--关闭用户进程处理if @overexist=1 and @killuser=1begindeclare @spid varchar(20)declare #spid cursor forselect spid=cast(spid as varchar(20)) from master..sysprocesses where dbid=db_id(@dbname)open #spidwhile @@fetch_status=0beginexec('kill '+@spid)fetch next from #spid into @spidendclose #spiddeallocate #spidend--恢复数据库exec(@sql)gosqlserver数据库的备份与恢复sql实现/*4.--创建作业*//*--调用示例--每月执行的作业exec p_createjob @jobname='mm',@sql='select * from syscolumns',@freqtype='month'--每周执行的作业exec p_createjob @jobname='ww',@sql='select * from syscolumns',@freqtype='week'--每日执行的作业exec p_createjob @jobname='a',@sql='select * from syscolumns'--每日执行的作业,每天隔4小时重复的作业exec p_createjob @jobname='b',@sql='select * fromsyscolumns',@fsinterval=4--*/if exists (select * from dbo.sysobjects where id =object_id(N'[dbo].[p_createjob]') and __(id, N'IsProcedure') = 1) drop procedure [dbo].[p_createjob]GOcreate proc p_createjob@jobname varchar(100), --作业名称@sql varchar(8000), --要执行的命令@dbname sysname='', --默认为当前的数据库名@freqtype varchar(6)='day', --时间周期,month 月,week 周,day 日@fsinterval int=1, --相对于每日的重复次数@time int=__ --开始执行时间,对于重复执行的作业,将从0点到23:59分asif isnull(@dbname,'')='' set @dbname=db_name()sqlserver数据库的备份与恢复sql实现--创建作业exec msdb..sp_add_job @job_name=@jobname--创建作业步骤exec msdb..sp_add_jobstep @job_name=@jobname,@step_name = '数据处理',@subsystem = 'TSQL',@database_name=@dbname,@command = @sql,@retry_attempts = 5, --重试次数@retry_interval = 5 --重试间隔--创建调度declare @ftype int,@fstype int,@ffactor intselect @ftype=case @freqtype when 'day' then 4when 'week' then 8when 'month' then 16 end,@fstype=case @fsinterval when 1 then 0 else 8 endif @fsinterval1 set @time=0set @ffactor=case @freqtype when 'day' then 0 else 1 end EXEC msdb..sp_add_jobschedule @job_name=@jobname, @name = '时间安排',@freq_type=@ftype , --每天,8 每周,16 每月@freq_interval=1, --重复执行次数@freq_subday_type=@fstype, --是否重复执行@freq_subday_interval=@fsinterval, --重复周期@freq_recurrence_factor=@ffactor,@active_start_time=@time --下午17:00:00分执行go/*--应用案例--备份方案:sqlserver数据库的备份与恢复sql实现完整备份(每个星期天一次)+差异备份(每天备份一次)+日志备份(每2小时备份一次)调用上面的存储过程来实现--*/declare @sql varchar(8000)--完整备份(每个星期天一次)set @sql='exec p_backupdb @dbname=''要备份的数据库名'''exec p_createjob @jobname='每周备份',@sql,@freqtype='week'--差异备份(每天备份一次)set @sql='exec p_backupdb @dbname=''要备份的数据库名'',@bktype='DF'' exec p_createjob @jobname='每天差异备份',@sql,@freqtype='day'--日志备份(每2小时备份一次)set @sql='exec p_backupdb @dbname=''要备份的数据库名'',@bktype='LOG''exec p_createjob @jobname='每2小时日志备份',@sql,@freqtype='day',@fsinterval=2/*--应用案例2生产数据核心库:__备份方案如下:1.设置三个作业,分别对__库进行每日备份,每周备份,每月备份2.新建三个新库,分别命名为:每日备份,每周备份,每月备份3.建立三个作业,分别把三个备份库还原到以上的三个新库。
SQLServer数据库备份还原和数据恢复认识数据库备份和事务⽇志备份数据库备份与⽇志备份是数据库维护的⽇常⼯作,备份的⽬的是在于当数据库出现故障或者遭到破坏时可以根据备份的数据库及事务⽇志⽂件还原到最近的时间点将损失降到最低点。
数据库备份数据库备份可以⼿动备份和语句备份⼀.⼿动备份数据库1.⿏标右键选择你要进⾏备份的数据库-任务-备份可以在常规选项页⾯你可以选择备份类型是进⾏完整数据库备份还是差异数据库备份2.点击添加选项,选择数据库⽂件的存放路径注意⽂件名记得加后缀.bak,便于恢复时的查找3.你还可以在选项页⾯是追加到现有的备份集,还是覆盖所有的现有备份集,还可以选择备份验证完整性(建议选择),还可以选择是否压缩备份等。
⼆.语句备份数据库use mastergoBACKUP DATABASE[test]TO DISK= N'D:\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\test.bak'WITH NOFORMAT, NOINIT, NAME = N'test-完整数据库备份', SKIP, NOREWIND, NOUNLOAD, STATS GO数据库⽇志备份⾸先需要注意,数据库⽇志的备份是基于数据库完整备份,也就是说你备份数据库⽇志之前你⾸先要先对数据库进⾏⼀次完整的备份,因为之间会涉及到坚持到检查点lsn,这也是本⽂接下来要讲的重点。
⼀.⼿动备份数据库⽇志1.右键数据库-任务-备份-选择备份类型(事务⽇志)2.点添加,添加⽇志⽂件备份存储路径3.同数据库完整备份⼀样,你也可以选择覆盖现有备份集或者追加到现有备份集,这⾥现在覆盖现有备份集、验证完整性,然后确认备份⼆.语句备份数据库事务⽇志BACKUP LOG[test]TO DISK= N'D:\test.trn'WITH NOFORMAT, INIT, NAME = N'test-事务⽇志备份', SKIP, NOREWIND, NOUNLOAD, STATS =10GO数据库还原右键数据库-还原数据库-添加需要进⾏还原的数据库⽂件路径在还原源选项中你可以选择‘源数据库’,‘源设备’。
SQL Server中的备份与还原操作详解SQL Server是一种功能强大的关系数据库管理系统,可以帮助企业进行数据管理和存储。
而对于企业来说,数据的安全性和完整性非常重要。
因此,备份和还原是SQL Server的核心功能之一。
本文将详细介绍SQL Server中的备份与还原操作,包括备份和还原的各种选项、备份和还原的流程和步骤、备份和还原的常见问题及其解决方法等等。
希望本文能够帮助读者更好地了解备份与还原操作,并加强对数据安全性和完整性的保护。
一、备份选项在进行备份操作之前,需要先选择备份选项。
在SQL Server中,备份选项主要有完全备份、日志备份、增量备份、差异备份、复制文件(文件和文件组备份)、虚拟设备备份等。
不同的备份选项适用于不同的备份需求。
完全备份:完全备份是备份一个数据库中的所有数据和数据库对象。
它包括主数据文件、其他数据文件和日志文件。
这意味着完全备份可以还原整个数据库,并恢复到备份时的状态。
日志备份:日志备份是备份在上一次完全备份或日志备份之后对数据库所做的所有更改。
这对于追踪数据库的变化非常有用,比如数据库恢复到某个特定的时间点。
增量备份:增量备份是备份自上一次备份以来发生的更改。
它只备份上次完全备份或增量备份之后做出的更改。
可以在每次备份后累计增量备份,这样可以减少恢复时所需的时间和存储空间。
差异备份:差异备份是备份从上一次完全备份以来对数据库所做的所有更改。
与增量备份不同的是,差异备份只包含自上一次差异备份后更改的数据。
复制文件(文件和文件组备份):这是备份数据库的一部分。
你可以选择备份数据库的文件或文件组,如只备份数据库的主数据文件或事务日志文件。
虚拟设备备份:虚拟设备备份是在设备上虚拟创建一个备份设备。
这使得可以同时将备份发送到多个设备,即使它们不是直接连接到数据库的设备。
虚拟设备备份旨在简化备份和还原过程。
二、备份流程和步骤备份操作需要遵循一定的步骤和流程。
下面是备份操作的基本流程和步骤:1. 选择备份选项:选择适当的备份选项,如完全备份、日志备份、增量备份、差异备份等。
SqlServer数据库的备份和恢复操作图解备份数据库1、打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server -->SQL Server组-->双击打开你的服务器-->双击打开数据库目录(如图1-1)。
图1-12、选择你的数据库名称(如数据库MyData)--> 然后点上面菜单中的工具--> 选择备份数据库(如图1-2)。
图1-23、备份选项选择完全备份,目的中的备份到如果原来有路径和名称则选中名称点删除,然后点添加,如果原来没有路径和名称则直接选择添加,接着指定路径和文件名,指定后点确定返回备份窗口,接着点确定进行备份(如图1-3)。
图1-3还原(恢复)数据库1、打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组--> 双击打开你的服务器-->鼠标右键点击‘数据库’-->新建数据库(数据库名称可自行取)(如图1-4)。
图1-42、点击新建好的数据库名称(如数据库mydb)-->然后点上面菜单中的工具-->选择恢复数据库(如图1-5)。
图1-53、在弹出来的窗口中的还原选项中选择从设备-->点选择设备-->点添加-->然后选择你的备份文件名-->添加后点确定返回,这时候设备栏应该出现您刚才选择的数据库备份文件名,备份号默认为1(如果您对同一个文件做过多次备份,可以点击备份号旁边的查看内容,在复选框中选择最新的一次备份后点确定)-->然后点击上方常规旁边的选项按钮(如图1-6)。
图1-64、在出现的窗口中选择在现有数据库上强制还原,以及在恢复完成状态中选择使数据库可以继续运行但无法还原其它事务日志的选项(如图1-7)。
在窗口的中间部位的将数据库文件还原为这里要按照你SQL的安装进行设置(也可以指定自己的目录),逻辑文件名不需要改动,移至物理文件名要根据你所恢复的机器情况做改动,如您的SQL数据库装在D:\Program Files\Microsoft SQL Server\MSSQL\Data,那么就按照您恢复机器的目录进行相关改动改动,并且最后的文件名最好改成您当前的数据库名(如原来是bbs_data.mdf,现在的数据库是mydb,就改成mydb_data.mdf),日志和数据文件都要按照这样的方式做相关的改动(日志的文件名是*_log.ldf结尾的),这里的恢复目录您可以自由设置,前提是该目录必须存在(如您可以指定c:\sqldata\bbs_data.mdf或者d:\sqldata\bbs_log.ldf),否则恢复将报错图1-75、修改完成后,点击下面的确定进行恢复,这时会出现一个进度条,提示恢复的进度,恢复完成后系统会自动提示成功,如中间提示报错,请记录下相关的错误内容并询问对SQL操作比较熟悉的人员,一般的错误无非是目录错误或者文件名重复或者文件名错误或者空间不够或者数据库正在使用中的错误,数据库正在使用的错误您可以尝试关闭所有关于SQL窗口然后重新打开进行恢复操作,如果还提示正在使用的错误可以将SQL服务停止然后重起看看,至于上述其它的错误一般都能按照错误内容做相应改动后即可恢复(如图1-8)。
SQL Server 2005 数据库备份还原导出Excel 及Oracle转换现将在SQL Server 2005数据库环境下,详述如何备份和还原数据库的操作步骤;如何备份单张表表的数据,将其导出为Excel格式;如何将SQL Server 2005的数据库转换为Oracle数据库(注意:多数情况下,只能将数据库的结构转化为Oracle,尤其是存在大字段的数据,如果量是不是特别的大,可先导出Excel再导入到Oracle)一、备份数据库=进入到Microsoft SQL Server management Studio,yucai(数据库)-->右键-->任务-->备份-->jinmalanyc_bak.bak(为.bak的备份文件)二、还原数据库1. 连接SQL Server数据库进入到Microsoft SQL Server management Studio 管理器界面2. 如下图:在数据库上右键-->还原数据库3. 打开窗口中默认为常规选项,输入数据库名yucai-->选择源设备-->(指定备份窗口)选择添加-->定位备份文件-->确定-->(回到还原数据的窗口)勾选要还原的备份集4. 在左侧选择页中选择“选项”,在此处要修改一下要还原的数据库文件的路径。
在弹出的文件定位窗口中输入文件名(要跟备份时的文件名一致,此处分别为yc.mdf和yc_log.ldf),选择完毕,点击确定5. 当出现成功提示,则表示数据库还原已完成!6. 返回Management Studio窗口,安全性-->登录名->右键新建登录名,设置登录用户的权限等相关信息7. 开通管道及TCP/IP协议打开启用Named Pipes和TCP/IP协议。
到此数据库还原工作完毕,可以用yucai用户登录了!!!三、SQL Server转Oracle在实际开发过程中,有这样的需求,我们项目采用了SQL Server数据库,此项目要拿到另一个项目中使用,要求采用oracle数据库了。
1、启动Microsoft SQLServer企业管理器,如下图:先后点击开始、程序、Microsoft SQL Server 、企业管理器。
2、启动后的界面如下:然后点红圈内的加号。
3、出现如下图,再点红圈中的加号
4、出现如下图,再点红圈中的加号
5、出现如下图,再点红圈中的加号
务→备份数据库”,单击鼠标左键
7、单击添加按钮
8、单击红圈所示按钮
9、图片中首先选择备份路径,然后在文件名中输入备份的数据库文件名称如图所示输入“archback”,单击“确定”按钮。
10、显示所指定备份的文件路径和文件名称,单击“确定”
11、选中重写现有媒体,单击“确定”按钮
12、正在备份过程中
13、备份完成后出现,单击“确定”完成备份。
以下为恢复数据库的过程:
14、单击鼠标右键,使用:所有任务→还原数据库:
“从设备”,单击“选择设备”
16、出现下图,然后选择“添加”
17、出现下图,然后点“…”按钮,下图红色圈中
18、出现下图,备份设备位置窗口,指定要还原的备份文件名,然后点确定。
19、出现下图,然后再点确定
20出现下图,然后再点确定
21、出现下图,然后点“选项”,在“在现有数据库上强制还原”前打钩
22、查找数据库安装路径,复制红圈所选路径
23、选中1中的路径,粘贴所选路径,如1所示,同理更改2中的路径,选中要更改部分路径,单击鼠标右键,使用“粘贴”,更改完成如图所示,完成后,单击“确定”
24、数据还原中
25、数据恢复完成后,出现对话框,单击确定,还原完成。
oracle数据库备份与恢复方法
Oracle数据库备份与恢复是确保数据安全和可靠性的重要方面。
备份是指将数据库中的数据复制到另一个位置,以便在数据丢失或
损坏时进行恢复。
恢复则是指在发生故障或数据丢失时,通过备份
数据来恢复数据库到之前的状态。
一、备份方法:
1. 物理备份,物理备份是通过操作系统级别的工具(如RMAN)将数据库文件直接复制到备份位置。
可以使用RMAN命令行或图形界
面工具来执行物理备份。
2. 逻辑备份,逻辑备份是通过导出数据到逻辑文件(如SQL脚
本或数据泵文件)来进行备份。
可以使用expdp和impdp命令来执
行逻辑备份和恢复。
二、恢复方法:
1. 完全恢复,在数据库严重损坏或丢失时,可以使用完全备份
进行完全恢复。
这涉及将数据库恢复到备份时的状态,并应用任何
后续的归档日志以实现完整的恢复。
2. 不完全恢复,在某些情况下,可能只需恢复部分数据文件或表空间。
这可以通过RMAN进行部分恢复来实现。
除了上述备份和恢复方法外,还有一些其他注意事项和最佳实践:
定期备份,建立合理的备份策略,包括完整备份、增量备份和归档日志备份,以确保数据的及时备份和恢复。
测试恢复,定期测试备份和恢复过程,以确保备份数据的完整性和可用性。
数据库保护,使用冗余服务器、存储冗余和灾难恢复计划来保护数据库免受硬件故障、自然灾害和人为错误的影响。
综上所述,Oracle数据库备份与恢复是确保数据安全和可靠性的重要措施,通过合理的备份策略和恢复方法,可以最大程度地保护数据库免受数据丢失和损坏的影响。
SQL Server备份和还原的流程如下:
备份:
1. 打开SQL Server,依次展开sqlserver根目录,并打开数据库。
2. 选择要备份的数据库名,鼠标右键任务->选择备份。
3. 点击添加,选择存放数据库备份文件的地址。
4. 在弹出对话框中,点击图示按钮,选择存放数据库备份文件的地址,文件名后缀名为.bak 点击确定。
5. 点击选项,根据自己的需求进行备份设置,设置完成,点击确定,开始备份。
还原:
1. 选择要还原的数据库名,鼠标右键任务->选择还原->选择数据库。
2. 在弹出对话框中,选择源设备,点击后面的按钮,弹出指定备份对话框,点击添加按钮,选择.bak源文件,找到后,点击确定。
3. 选择选项,进行还原设置,勾选“覆盖现有数据”前面的小方框;点击“还原为”后面的按钮,要还原该数据库的数据文件和日志文件。
4. 选定好要还原的数据文件和日志文件之后,点击“确定”按钮,完成数据库还原。
Oracle 数据库的备份与恢复当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(包括机器故障、介质故障、误操作等),数据库有时也可能遭到破坏,这时如何尽快恢复数据就成为当务之急。
如果平时对数据库做了备份,那么此时恢复数据就显得很容易。
由此可见,做好数据库的备份是多么的重要,下面笔者就以ORACLE9 为例,来讲述一下数据库的备份和恢复。
ORACLE 数据库有三种标准的备份方法,它们分别为导出/导入(EXPORT/IMPORT )、冷备份、热备份。
导出备份是一种逻辑备份,冷备份和热备份是物理备份。
一、导出/ 导入(Export/Import )利用Export 可将数据从数据库中提取出来,利用Import 则可将提取出来的数据送回Oracle 数据库中去。
1.简单导出数据(Export )和导入数据(Import )Oracle 支持三种类型的输出:(1)表方式(T 方式),将指定表的数据导出。
(2)用户方式(U 方式),将指定用户的所有对象及数据导出。
(3)全库方式(Full 方式),将数据库中的所有对象导出。
数据导出(Import )的过程是数据导入(Export )的逆过程,它们的数据流向不同。
这里主要介绍Oracle 中用命令行做数据的导入和导出操作:1.一般使用的导入导出命令:Exp username/password@orcl file= 导出文件放置的路径full=n;Imp username/password@orcl file= 导入的文件放置的路径full=n ignore=yfromuser= .dmp 文件来自与哪个用户;其中的orcl 是服务名,但是需要注意:在pl/sql 中是服务名,而在sql developer 中则是net manager 中配置的服务命名;2.导入导出某些表的命令:Exp username/password@orcl file= 导出文件放置的路径full=n tables=(user,org); Imp username/password@orcl file= 导入的文件放置的路径full=n ignore=yfromuser=formeruser 文件来自与哪个用户touser=nowuser 文件导入到哪个用户tables=(user,org);其中的ignore 表示如果插入时已经存在某些表的话,则不进行导入oracle 导入导出exp help=y imp help=yexp lipf/lipf@orcl file=/home/oracle/aa.dmp tables=studentimp lipf/lipf@orcl file=/home/oracle/aa.dmp tables=student-- 导出表exp uf_cust/uf_cust@orcl file=d:\tables.dmptables=role_in,route_table,view_info,work,query_view,level_info,info_pack,info_ detail,info,extend_type,extend_mode,disp_pack,disppack_info,detail_column,db_ta ble,db_link,db_config,account,cust,server--- 导入表imp uf_cust/uf_cust@orcl file=d:\tables.dmptables=role_in,route_table,view_info,work,query_view,level_info,info_pack,info_ detail,info,extend_type,extend_mode,disp_pack,disppack_info,detail_column,db_ta ble,db_link,db_config,account,cust,server2.增量导出/ 导入增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM 来导出。
oracle9i 以后已经废弃了增量的逻辑导入导出。
导出文件名缺省为export.dmp ,如果不希望自己的输出文件定名为export.dmp ,必须在命令行中指出要用的文件名。
增量导出包括三个类型:(1)“完全”增量导出( Complete)即备份整个数据库,比如:$exp system/manager inctype=complete file=990702.dmp(2)“增量型”增量导出备份上一次备份后改变的数据。
比如:$exp system/manager inctype=incremental file=990702.dmp3) “累计型”增量导出( Cumulative )累计型导出方式只是导出自上次“完全” 导出之后数据库中变化了的信息。
比如:$exp system/manager inctype=cumulative file=990702.dmp数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效地完成。
二、冷备份冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。
冷备份是将关键性文件拷贝到另外位置的一种说法。
对于备份Oracle 信息而言,冷备份是最快和最安全的方法。
冷备份的优点是:1.是非常快速的备份方法(只需拷贝文件)2.容易归档(简单拷贝即可)3.容易恢复到某个时间点上(只需将文件再拷贝回去)4.能与归档方法相结合,作数据库“最新状态”的恢复。
5.低度维护,高度安全。
但冷备份也有如下不足:1.单独使用时,只能提供到“某一时间点上”的恢复。
2.在实施备份的全过程中,数据库必须要作备份而不能作其它工作。
也就是说,在冷备份过程中,数据库必须是关闭状态。
3.若磁盘空间有限,只能拷贝到磁带等其它外部存储设备上,速度会很慢。
4.不能按表或按用户恢复。
如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将所备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。
冷备份中必须拷贝的文件包括:1.所有数据文件2.所有控制文件3.所有联机REDO LOG 文件4.Init.ora 文件(可选)。
值得注意的是冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的下面是做冷备份的完整例子:(1)关闭数据库$sqlplus /nologSQL > connect /as sysdbaSQL > shutdown(2)用拷贝命令备份全部的时间文件、重做日志文件、控制文件、初始化参数文件SQL > ! cp < file > < backup directory >(3)重启Oracle 数据库$sqlplus /nologSQL > connect /as sysdbaSQL > startup三、热备份热备份是在数据库运行的情况下,采用archivelog mode 方式备份数据的方法。
所以,如果你有昨天夜里的一个冷备份而且又有今天的热备份文件,在发生问题时,就可以利用这些资料恢复更多的信息。
热备份要求数据库在Archivelog 方式下操作,并需要大量的档案空间。
一旦数据库运行在archivelog 状态下,就可以做备份了。
热备份的命令文件由三部分组成:1.数据文件一个表空间一个表空间地备份。
(1)设置表空间为备份状态(2)备份表空间的数据文件(3)恢复表空间为正常状态2.备份归档log 文件。
(1)临时停止归档进程(2)log 下那些在archive redo log 目标目录中的文件3)重新启动archive 进程(4)备份归档的redo log 文件3.用alter database backup controlfile 命令来备份拷贝文件热备份的优点是:1.可在表空间或数据文件级备份,备份时间短。
2.备份时数据库仍可使用。
3.可达到秒级恢复(恢复到某一时间点上) 。
4.可对几乎所有数据库实体作恢复。
5.恢复是快速的,在大多数情况下在数据库仍工作时恢复。
热备份的不足是:1.不能出错,否则后果严重。
2.若热备份不成功,所得结果不可用于时间点的恢复。
3.因难于维护,所以要特别仔细小心,不允许以失败而告终”。
SQL Server 2000 数据库的备份,还原数据库的备份指定要备份的数据库,右击要备份的数据库的图标,选择所有任务”列表下的备份数据库弹出如下对话框:这时,如果想备份已有的其它数据库,可以通过下图所示的下拉式列表中选择:然后可以对名称”和描述”进行配置,其中描述”选项为可选的。
备份的选项有4种,我们选择第一项数据库-完全”,单击添加”按钮:通过文件名”可以指定备份到的本地磁盘路径,点击则可以选择路径和文件名:备襦设备拉置-(LOCAL)连续单击确定”,则开始备份,备份完成如图所示:备份数据库完成。
可以在指定的路径下查看备份的数据库,如图所示:数据库的还原首先要建立一个新的数据库(比如:newsky2098),把将要还原的数据库还原到这个数据库上。
指定要还原到的数据库(这里是newsky2098),右击这个数据库的图标,选择所有任务”列表下的还原数据库”,弹出如下对话框:还原选项,要选择从设备”,则对话框变为:选择还產设备在还原了该备份后■ SQL Server 将试着从下面所列设备中还原°备份集:还原自(E):厂仅从下列名疝的螟体中还原且]:媒体名称皿 厂一一确定单击参数中选择设备(未知)媒滋验证选项取消备俗设备橙置-(LOCAL)-_J DA C 6313 空闲)A.± □ ASP NET-L3 DataBase耳 books.mdb P] books :_D ata.MDFE ] books_Log.LDF耳 ProjectApplication. mdb蔔 student, mdb found. 000 javae jtiDSS jdk1.5.0_Qe lockwMeng oracle确定 取消连续单击 确定”,直到 还原数据库”对话框,通过选择该对话框中的 选项”选项卡: 单击添加 找到备份过的数据库的路径,选择已经备份的数据库: 文件名(0: D: \DataElwwe 匕选择在现有的数据库上强制还原”单选按钮,然后修改物理文件名的路径,找到一个有效的路径就可以了,原来的路径有问题,然后单击确定”,显示还原进度,最后提示还原成功:数据库的还原完成。