数据库的备份与恢复

数据库的备份与恢复,第1张

SQL2000数据库备份概念

SQL

SERVER

2000有四种类型是:数据库、事务日志、差异、文件和文件组

数据库备份是创建完事数据库的复本。它并非将所有的页都复制到备份集,而只将实际包含数据的页复制到备份集。数据页和事务日志页均复制到备份集。

数据库备份用于重新创建数据库,使其恢复到BACKUP语句完成时的状态。如果数据库只存在数据库备份,那么数据库只能恢复到服务器或数据库发生故障前最后一次数据库备份时的状态。

事务日志备份仅制作日志文件的复本。日志文件备份本身不能用于还原数据库。日志文件用于在数据库还原后将数据库恢复到原始故障点。

例如,某站点在星期天晚上执行数据库备份,而在其它每个晚上执行日志备份。如果数据库的某个数据磁盘在星期二2:30丢失,则该站点可以:

1备份当前事务日志

2还原从星期天晚上开始的数据库备份

3还原从星期一晚上开始的日志备份,以将数据库前滚。

4还原故障之后的日志备份。这将使数据库前滚到故障发生的那一刻。

事务日志恢复需要从数据库备份的那一刻到磁盘丢失那一刻之间所进行的一边串不间断的事务日志备份。

差异备份只追寻数据库中自上一次数据库备份之后修改过的所有页的复本。差异日志主要用于使用频繁的系统,一旦这类系统中的数据库发生故障,必须尽快使其重新联机。差异备份比完事数据库备份小,因此对正在运行的系统影响较小。

例如,某个站点在星期天晚上执行完事数据库备份。在白天每隔4小时制作一个事务日志备份集,并用当天的备份重写头一天的备份。每晚则进行差异备份。如果数据库的某个数据磁盘在星期四上午9:12出现故障,则该站点可以:

1备份当前事务日志。

2还原从星期天晚上开始的数据库备份。

3还原从星期三晚上开始的差异备份,将数据库前滚到这一时刻。

4还原从早上4点到8点的事务日志备份,以将数据库前滚到早上8点。

5还原故障之后的日志备份,这将使数据库前滚到故障发生的那一刻。

SQL2000支持备份或还原数据库中的个别文件或文件组。这是一种相对较完善的备份和还原过程,通常用在具有较高可用性要求的超大型数据库中。如果可用的备份时间不足以支持完事数据库备份,则可以在不同的时间备份数据库的子集。

例如,某站点需要花三小时备份数据库,并且每天只能用两个小时执行备份。该站点可在一个晚上备份一半文件或文件级,并在第二个晚上备份另一半。如果包含数据库文件或文件组的磁盘出现故障,那么该站点可以只还原丢失的文件或文件组。

该站点还必须进行事务日志备份,并且在备份文件或文件组之后必须还原所胡事务日志备份。还可以从完事数据库备份集中还原文件和文件组。这将回忆恢复速度,因为在第一步只还原已损坏的文件或文件组,而不是整个数据库。

我不知道你用的是哪个版本的数据库~~~如果是SQL2005是这样 *** 作的

首先右击你要备份的数据库---任务---备份---添加---选择你备份文件的路径

输入备份文件名,记住一定要有后缀,也就是

bak

比如说

aaa。bak

然后一直确定就可以到你的备份路径下找到备份文件了

先建好数据库,然后还原,既可用sybase

Central图形界面还原,也可以用load语句还原

1,,用语句还原:

使用sybase

advantage或其它工具执行下列语句

load

datebase

数据库名

from

'备份路径/备份文件名'

例如

load

datebase

test

from

'E:\backup\testdmp'

还原完成后还必须执行online *** 作,数据库才能正常访问,语句是:

online

datebase

数据库名

2,用sybase

Central图形界面还原

在Central中,展开相应的数据库服务结点——Databases——找到按照第二步建立的数据库,右击该数据库选择Restore,选择恢复的数据库,选择还原整个数据库,选择恢复数据库所示用的设备,在d出的Select

Dump

Devices窗口中选择Explicit

dump

device,在Physical

Path中输入你的备份文件的存放路径,点击OK就可以了。

有时候为了考虑数据安全我们都会备份数据库 sqlserver的备份格式一般都是bak结尾的 但覆盖时容易出问题 这里简单介绍下 需要的朋友可以参考下   有时候完全备份 当还原的时候说不时数据库文件不让还原 解决办法: 可以直接复制数据库文件 xxx mdf 和 xxx ldf (实际复制过程中需要先停止sqlserver服务才可以) 用 sp_attach_db 存储过程 就能搞定 示例 下面的示例将 pubs 中的两个文件附加到当前服务器 EXEC sp_attach_db @dbname = N pubs @filename = N c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs mdf @filename = N c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log ldf N 表示Unicode的含义 就象类型中有varchar和nvarchar一样 一个Unicode字符占两个字节 使用N 的情况主要是在双字节系统环 境中强制系统对每个字符用Unicode标准来解释 否则如果你的数据库 mdf文件是中文名而又不加N 的话 数据库加载后名称可能就变成乱码 因为系 统按单字节处理字符造成! 如果确认是SQL SERVER无法启动 请按照下面步骤 *** 作: 重装SQL SERVER(注意要保留原来数据库的数据库文件 日志文件可不要) 在SQL Analysis中用sp_attach_db将数据库加到服务器 sp_attach_db用法: sp_attach_db 将数据库附加到服务器 语法 sp_attach_db [ @dbname = ] dbname [ @filename = ] filename_n [ ] 参数 [@dbname =] dbname 要附加到服务器的数据库的名称 该名称必须是唯一的 dbname 的数据类型为 sysname 默认值为 NULL [@filename =] filename_n 数 据库文件的物理名称 包括路径 filename_n 的数据类型为 nvarchar( ) 默认值为 NULL 最多可以指定 个文件名 参数名称以 @filename 开始 递增到 @filename 文件名列表至少必须包括主文件 主文件包含指向数据库中其它文件的系统表 该列表还必须包括数据库分离后所有被移动的文件 返回代码值 (成功)或 (失败) 结果集 无 注释 只应对以前使用显式 sp_detach_db *** 作从数据库服务器分离的数据库执行 sp_attach_db 如果必须指定多于 个文件 请使用带有 FOR ATTACH 子句的 CREATE DATABASE 如果将数据库附加到的服务器不是该数据库从中分离的服务器 并且启用了分离的数据库以进行复制 则应该运行 sp_removedbreplication 从数据库删除复制 权限 只有 sysadmin 和 dbcreator 固定服务器角色的成员才能执行本过程   lishixinzhi/Article/program/MySQL/201311/29555

sql

server

2000的备份与还原:

备份数据库,示例:

backup

database

northwind

to

disk

=

'c:\northwindbak'

还原数据库,例如:

--返回由备份集内包含的数据库和日志文件列表组成的结果集

restore

filelistonly

from

disk

=

'c:\northwindbak'

--还原由backup备份的数据库

restore

database

northwind

from

disk

=

'c:\northwindbak'

--指定还原后的数据库物理文件名称及路径

restore

database

testdb

from

disk

=

'c:\northwindbak'

with

move

'northwind'

to

'c:\test\testdbmdf',

move

'northwind_log'

to

'c:\test\testdbldf'

move

'logical_file_name'

to

'operating_system_file_name'

指定应将给定的

logical_file_name

移到

operating_system_file_name。

默认情况下,logical_file_name

将还原到其原始位置。如果使用

restore

语句将数据库复制到相同或不同的服务器上,则可能需要使用

move

选项重新定位数据库文件以避免与现有文件冲突。可以在不同的

move

语句中指定数据库内的每个逻辑文件。

--强制还原,加上replace参数,则在现有数据库基础上强制还原。

restore

database

testdb

from

disk

=

'c:\northwindbak'

with

replace,

move

'northwind'

to

'c:\test\testdbmdf',

move

'northwind_log'

to

'c:\test\testdbldf'

sql

server本身有数据导入的 *** 作。但如果要从一个备份的文件中导入数据,则要进行另外的 *** 作。下面以一个例子进行说明。

sql

server服务器上已有一个doe数据库,并且里面有大量的数据,现准备从另外一个备份文件a1bak(不是doe数据库的备份文件)中导入另外的数据(即导入后在doe中增加一些数据表,表中已录有数据),并保持原doe的数据不变。

1、首先,在“sql企业管理器”中新建一个临时数据库a1。

2、右击a1数据库,选择:所有任务->还原数据库。

3、在“还原数据库”窗口中,选择:“从设备”。

4、点击“选择设备”。

5、点击“添加”。

6、从文件名中选择要还原的数据库文件,如a1bak。

7、点击“确定”,返回“还原数据库”窗口。

8、点击“选项”卡,进入选项设置。

9、钩选:“在现有数据库上强制还原”。

10、修改“移到物理文件名”为:“c:a1ldf”、“c:a1mdf”。

11、点确定,即可导入备份文件中的数据到临时数据库a1中。

12、此时,你可以将数据从a1导入到另外一真正要导入的数据库中,如doe数据库。

(下面的数据导入 *** 作为sql2000企业管理器的一般数据导入导出 *** 作。)

13、在“sql企业管理器”中选择“doe”数据库。

14、右击doe数据库,选择:所有任务->导入数据。

15、在“dts导入/导出向导”窗口的“选择数据源”中,数据源选择刚才建立并导入数据的临时数据库a1。点击下一步。

16、在“选择目的”中,系统已经默认为doe数据库。

17、连续点击“下一步”,直到完成。

经过上面的 *** 作,你已经成功地将备份文件a1bak中数据导入doe数据库中,并且doe数据库原有数据不变。

MySQL 命令行备份

1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录

(SHOW VARIABLES LIKE "%char%"; 查看数据库安装路径)

Linux下命令:

[root@linuxsir01 root]# mysqldump -u root -p oa_int > /home/oa_20160627sql

Windows下命令:

C:\Users\Administrator>mysqldump -u 密码 -p 数据库名 > d:/oa_int_20160708sql

MySQL 命令行恢复:

Linux下命令:

[root@linuxsir01 root]# mysql -u root -p oa_int1 < /home/oa_20160627sql

Enter password:在这里输入数据库的密码

Windows下命令:

C:\Users\Administrator> mysql -u root -p 数据库名(要先创建好数据库) < d:/oa_int_20160708sql

1

左下角点击开始,程序,Microsoft

SQL

Server

2008

R2

,找到SQL

Server

Management

Studio,进入企业管理器。

2

选择服务器\实例名,登录名选择sa,输入sa登录密码,点击连接。

3

进入企业管理器界面,鼠标右键单击“数据库”,选择“新建数据库”。

4

输入数据库名称,例如123材料,然后点击确定。然后在企业管理器里就会发现多出了一个数据库“123材料”

5

鼠标右键点击

“123材料”这个数据库,选择“任务”—“还原”—“数据库”

6

进入还原数据库页面,选择“源设备”,然后点击后面的三个小圆点。

7

点击“添加”。

8

选择要恢复的BAK文件。

9

点击下面的“选择用于还原的备份集”,把还原下面的方框全部勾选,,然后点击左侧的“选项”

10

在选项的设置里,把“覆盖现有数据库”前面的方框勾选,然后点击下面的“确定”

11

成功完成数据库的还原,大功告成!

以上就是关于数据库的备份与恢复全部的内容,包括:数据库的备份与恢复、简述数据库备份及恢复的方法、sybase怎么恢复已经备份的数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9327670.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存