精华内容
下载资源
问答
  • mysqldump备份数据库 mysql恢复数据库

    万次阅读 2016-03-15 15:17:20
    mysqldump 备份与恢复数据库 备份: 1、备份全部数据库的数据和结构  mysqldump -uroot -pjsb -A > /bk/all.sql -A: 备份所有数据库=--all-databases  2、 备份全部数据库的结构(加 -d 参数) ...

    mysqldump 备份与恢复数据库

    备份:

    1、备份全部数据库的数据和结构

     mysqldump -uroot -pjsb -A > /bk/all.sql

    -A: 备份所有数据库=--all-databases 


    2、

    备份全部数据库的结构(加 -d 参数)

    mysqldump -uroot -p123456 -A -d > F:\all_struct.sql 

    -A: 备份所有数据库=--all-databases    --no-data, -d:只导出表结构


    4.备份单个数据库的数据和结构(,数据库名mydb)

    mysqldump -uroot-p123456 mydb>F:\mydb.sql


    5.备份单个数据库的表结构(不备份实际数据)很快

    mysqldump -uroot -p123456 mydb -d > F:\mydb.sql

    --no-data, -d:只导出表结构



    7.备份多个表的数据和结构(数据,结构的单独备份方法与上同)(一次备份多个表)

    mysqldump -uroot -p123456 mydb t1 t2  >  f:\multables.sql


    8.一次备份多个数据库

    mysqldump -uroot -p123456 --databases db1 db2  > f:\muldbs.sql 

    mysqldump -uroot -pjsb-B bk0 bk1 > bk01.sql (和上面相等结果

    --databases, -B: 用于备份多个数据库,如果没有该选项,mysqldump把第一个名字参数作为数据库名,后面的作为表名。使用该选项,


     

    1.导出结构不导出数据

    mysqldump -d 数据库名 -uroot -p > xxx.sql

    2.导出数据不导出结构

    mysqldump -t 数据库名 -uroot -p > xxx.sql

    3.导出数据和表结构

    mysqldump 数据库名 -uroot -p > xxx.sql

    4.导出特定表的结构

    mysqldump -uroot -p -B数据库名 --table 表名 > xxx.sql

     






    还原-恢复:


    还原全部数据库2方法:(需要数据库的备份集)

    (1)mysql命令行source方法  

    (1) mysql命令行:source  备份集路径/备份集名字.sql

    (2)系统命令行方法

    (2) 系统命令行: mysql -u账号 -p密码 < 备份集路径/备份集名字.sql


    1.还原单个数据库(需指定数据库的备份集)

    mysql命令行source方法:如下

     mysql -uroot -pjsb 

    cd 进入 你存放恢复脚本(或者备份集目录)下

    use mydb

    source f:\备份集名字.sql

      

    系统命令行方法:如下(推荐)

     mysql -uroot -p123456 mydb < f:\mydb.sql


    2.还原单个数据库的多个表(需要单个数据库的多个表的备份集)

    mysql命令行source方法:如下

     use mydb

    cd 进入 你存放恢复脚本(或者备份集目录)下

    source 备份集路径/备份集名字.sql


    系统命令行方法:如下(推荐)

    mysql -uroot -p123456 mydb <  f:\multables.sql


    4.还原多个数据库,(一个备份文件里有多个数据库的备份,此时不需要指定数据库)

     mysql命令行:

    source f:\muldbs.sql


    系统命令行:(推荐) 

    mysql -uroot -p123456 < 备份集路径下/备份集名字.sql

    mysql -uroot -pjsb < bk01.sql


    姊妹篇:

    http://blog.csdn.net/u010098331/article/details/50896175


    常见选项:
    --all-databases, -A: 备份所有数据库
    --databases, -B: 用于备份多个数据库,如果没有该选项,mysqldump把第一个名字参数作为数据库名,后面的作为表名。使用该选项,mysqldum把每个名字都当作为数据库名。

    --force, -f:即使发现sql错误,仍然继续备份
    --host=host_name, -h host_name:备份主机名,默认为localhost
    --no-data, -d:只导出表结构
    --password[=password], -p[password]:密码
    --port=port_num, -P port_num:制定TCP/IP连接时的端口号
    --quick, -q:快速导出
    --tables:覆盖 --databases or -B选项,后面所跟参数被视作表名
    --user=user_name, -u user_name:用户名
    --xml, -X:导出为xml文件



    摘抄:

    导入数据:

    由于mysqldump导出的是完整的SQL语句,所以用mysql客户程序很容易就能把数据导入了:

    MySQL存储过程迁往另一Linux操作系统下的MySQL数据库,因为表结构等已经在目标数据库中存在了, 不想直接拷贝数据库过去,所以用到了 MySQL的存储过程导出和导入,经上网搜索发现用Mysqldump工具可以实现,具体用法为:

    mysqldump -uroot -p -hlocalhost -P3306 -n -d -t -R DBName > procedure_name.sql





    展开全文
  • mysqlbinlog恢复数据库内容

    千次阅读 2018-09-06 15:41:23
    5、恢复数据库 打开生成的sql文件,查找到之前记录下来的点end_log_pos 生成的文件内容: 从begin到下一个begin为一个执行语句, 查找到相应的位置之后,从该语句之前的begin语句已经不需要了, ...

    强调:备份!备份!!备份!!!

    记录一次惨痛的经历,将测试数据库执行到了正式服务器上,导致正式环境的数据丢失。

    不要以为是你本地的数据库,所以备份与否无所谓,万一错了呢,所以备份吧,总不会有错的。废话不多说,进入正文。

    1、首先要保证mysql数据库开启了binlog:

     语句show variables like 'log_%';

    从查询结果中可以看到,binlog日志功能未开启。没开启怎么办,数据库有ibdata1,至于使用这个怎么恢复,请大家自行百度。

    (1)开启数据库的binlog功能:

    修改mysql数据库的配置文件,windows是my.ini文件,打开该文件,

    [mysqld] 区块设置/添加

    log-bin=mysqlinit

    binlog-format=row(可有可无,我就没设置)

    确认是打开状态(值 mysqlinit 是日志的基本名或前缀名);

    设置完成之后需要重启mysql服务才能生效。

    2、查看所有binlog日志列表

    命令:show master logs;

    3、查看binlog文件的内容

    命令:show binlog events in 'mysqlinit.000006';

    需要注意的有posend_log_pos,info表示执行的语句。找到你之前的备份的文件的时间点,可以根据执行的语句来查询或者是现有数据库最后执行的id等关键字来查找到对应的info,记录下相应的end_log_pos。

    4、使用mysql的工具mysqlbinlog读取binlog日志

    进入mysql安装目录下的bin文件夹,执行:

    命令:mysqlbinlog D:/mysqlinit.000005>test.sql

    如果本地有mysql,可以将服务器上的日志文件拿到本地执行该语句。如果执行失败,可以执行下面的语句:

    mysqlbinlog --no-defaults D:/mysqlinit.000005>test.sql

    生成的test.sql文件位于mysql安装目录/bin目录下,也可以:

    mysqlbinlog --no-defaults D:/mysqlinit.000005>D:/test.sql

    生成的文件在D盘根目录下。

    注意:我在执行该语句时,结尾加了个分号;,结果执行不成功,去掉分号即可。

    5、恢复数据库

    打开生成的sql文件,查找到之前记录下来的点end_log_pos

    生成的文件内容:

    从begin到下一个begin为一个执行语句,

    查找到相应的位置之后,从该语句之前的begin语句已经不需要了,需要删除该begin到第一个begin之间的内容,还需要把执行错误语句开始之后的语句删除。剩下的文件就是需要执行的文件。

    如果有多个文件,比如我现在查看的是binloginit.000005的内容,那么binloginit.000006也需要执行上述操作。

    需要注意的是,该文件中包含的是所有mysql数据库的操作,需要从test.sql文件中把其他数据库的操作剔除(不执行这一步应该也可以,就是执行这个文件的时候会报错,但是对于要恢复的数据库没有影响)。因此如果要执行这个文件之前一定要做好备份,包括其他的数据库。

    当然也可以这样:

    (1)、在本地创建数据库test,将备份文件恢复到test库

    (2)、将test.sql文件中的use `c_qlc`/*!*/;替换成use `test`/*!*/;

    (3)、执行刚才生成并且操作之后的test.sql文件,这样就将所有的数据恢复到本地test数据库中了

    (4)、将本地的数据拿到正式环境中即可。

    恢复流程:

    总结:数据库恢复,就是从你最后备份的时间点,到最后出现问题的时间点之间所有的语句执行一次。

     

    补充内容:

    1、常用binlog日志操作命令

    (1).查看所有binlog日志列表

    mysql> show master logs;

    (2).查看master状态,即最后(最新)一个binlog日志的编号名称,及其最后一个操作事件pos结束点(Position)值

    mysql> show master status;

    (3).刷新log日志,自此刻开始产生一个新编号的binlog日志文件

    mysql> flush logs;

    注:每当mysqld服务重启时,会自动执行此命令,刷新binlog日志;在mysqldump备份数据时加 -F 选项也会刷新binlog日志;

    (4).重置(清空)所有binlog日志

    mysql> reset master;

    2、MySQL binlog的三种工作模式

          (1)Row level

      日志中会记录每一行数据被修改的情况,然后在slave端对相同的数据进行修改。

      优点:能清楚的记录每一行数据修改的细节

      缺点:数据量太大

      (2)Statement level(默认)

      每一条被修改数据的sql都会记录到master的bin-log中,slave在复制的时候sql进程会解析成和原来master端执行过的相同的sql再次执行

      优点:解决了 Row level下的缺点,不需要记录每一行的数据变化,减少bin-log日志量,节约磁盘IO,提高新能

      缺点:容易出现主从复制不一致

      (3)Mixed(混合模式)

      结合了Row level和Statement level的优点

    3、MySQL企业binlog模式的选择

    1. 互联网公司使用MySQL的功能较少(不用存储过程、触发器、函数),选择默认的Statement level
    2. 用到MySQL的特殊功能(存储过程、触发器、函数)则选择Mixed模式
    3. 用到MySQL的特殊功能(存储过程、触发器、函数),又希望数据最大化一直则选择Row模式

    4、设置MySQL binlog模式

    查看MySQLbinlog模式:mysql>show global variables like "binlog%";

    系统默认为STATEMENT模式。

    MySQL中设置binlog模式

    (1) 命令方式 mysql>set global binlog_format='ROW'; 

    (2)配置文件:

    [mysqld]

    binlog_format='ROW'          #放在mysqld模块下面

     

     

     

     

     

     

     

    展开全文
  • 还原及恢复数据库

    千次阅读 2006-11-21 12:42:00
    还原及恢复数据库还原方法 执行数据库还原规划严重损坏的恢复本章总结在 第 32 章 中,我们学到了系统备份的重要性,以及如何执行备份。本章将继续上一章所提的数据库保护与建立的说明。我们将学习如何还原数据库、...
    还原及恢复数据库
    还原方法
    执行数据库还原
    规划严重损坏的恢复
    本章总结
    在 第 32 章 中,我们学到了系统备份的重要性,以及如何执行备份。本章将继续上一章所提的数据库保护与建立的说明。我们将学习如何还原数据库、如何回复系统,还有数据库回复的运作方式。正如您所见,备份执行的类型会影响到回复的进行。除了学习关于还原与回复数据库,也会介绍 记录文件传送 (log shipping)。记录文件传送是 Microsoft SQL Server 2000 中的新功能,让您用原始的服务器交易纪录在另一个服务器上建立备用副本。
    ________________________________________
    说明
    有些 DBA 提到还原与回复数据库的过程都称作 recovering the database。然而,这些程序是大不相同的。 第 32 章 说明了从备份还原数据库与 SQL Server 回复过程的差异。在任何情况下,将数据库带回系统失败前的状态,就是备份、还原和回复操作执行的主要目标。
    ________________________________________
    还原方法
     
    如前所提,执行备份的类型影响了还原操作的性质。在这个章节中我们将学习如何从完整备份、差异式备份、以及交易纪录备份执行还原。
    从完整备份还原
     
    从完整备份还原是相当简单直接的过程:只要用 SQL Server Enterprise Manager或 Transact-SQL (TSQL)命令还原备份文件。本章稍后会有这两种方法的使用说明。如果在完整备份后,打算从差异式备份还原,只要确定有最近的交易纪录备份,如本章后面 < 从交易纪录备份还原 > 章节所言,并在执行还原时指定 NORECOVERY 选项就行了。
    ________________________________________
    说明
    还原操作有个重要的特性,就是 RECOVERY 的选项。它命令 SQL Server 在还原完成后用联机交易纪录来回复数据库。如果想利用差异式备份文件或者交易纪录文件,记得要确定已经指定 NORECOVERY 选项。
    ________________________________________
    从差异式备份还原
     
    要从差异式备份还原,必须先从完整备份还原,然后还原上次完整备份后的所有差异式备份文件。记住,差异式备份是用来备份在最近一次完整备份或差异式备份后更改过的信息。确定您使用的是 NORECOVERY 选项,除非您正在还原最后一个备份文件,而还原最后一个备份文件可以用 RECOVERY 选项。如果在差异式备份之外还从交易记录文件执行还原,就必须同时备份目前的记录文件并应用所有更改过的记录文件,这将在下一节中提到。
    从交易记录文件备份还原
     
    执行回复操作将使数据库的状态返回到失效前的那一点,先还原数据文件,然后还原从开始备份以来对数据库的更改内容。您可以储存所有失效以来的交易记录文件备份来还原这些变更。
    为了确保在还原这些记录文件的过程中没有遗失任何最新交易,必须先保存目前的记录文件。如果忘了保存目前的记录文件,会因为还原操作覆写交易记录而遗失记录在记录文件中的大部分最新的更改。
    要使用交易记录文件将数据库还原到失效前的状态,请依下列步骤进行(这些是建立在 第 32 章 中所学到的技术基础上):
    1. 使用 NO_TRUNCATE 选项备份目前使用中的交易记录文件。
    2. 还原最近的完整备份。
    3. 还原所有的差异式备份,将数据库还原到最后的备份状态。
    4. 还原所有从最后的差异式备份以来的交易记录文件备份,以重置所有自最后备份以来所发生的交易。
    5. 还原在步骤 1 中建立的交易记录文件备份,让数据库回到失效前的状态。
    在 BULK_LOGGED 回复模式中还原数据库
     
    如果正在 BULK_LOGGED 回复模式中执行数据库,需要还原时就必须再做一次记录操作。这些操作包括 SELECT...INTO、BULK COPY、BCP 和一些 CREATE INDEX 操作,还有已在上一章谈过的文字操作。如果觉得这里所谈的内容过于麻烦,可以不要在 BULK_LOGGED 回复模式中执行数据库。
    执行数据库还原
     
    使用 Enterprise Manager 或 T-SQL 命令可执行还原操作--这两种方式得到的结果相同。与备份操作不同,SQL Server 没有提供还原操作精灵。
    使用 Enterprise Manager 执行还原
     
    要使用 Enterprise Manage r执行还原操作,请按照下列步骤操作:
    1. 在 Enterprise Manager 中,在要还原的数据库名称上按鼠标右钮,在快捷菜单上选取 所有工作 ,然后选择 还原数据库 ,进入 还原数据库 对话框,如图33-1所示。
     

    图33-1 「还原数据库」对话框中的「一般」页签
    2. 在 一般 页签的顶端是 还原成数据库 下拉式清单,这个清单可指定这个备份将被还原的数据库型态。图33-1显示选择了 Example 数据库。
    这里并不要求直接用同样的名称来还原数据库-实际上,应该要使用另一个数据库名称。例如,假定某个使用者意外地删除了一个数据表,想要还原完整的数据库,那么就会将所有人的数据还原成较早的数据。但是,其实可以将数据还原到重新命名的数据库中,取出被删除的数据表,然后将这个数据表插入到仍在工作的数据库中。
    3. 接着指定还原操作的类型: 数据库 、 档案群组或档案 或者 来源装置 。 数据库 选项可指定还原数据库。 档案群组或档案 选项可指定还原的档案群组或档案。 来源装置 选项可指定还原的装置,装置的内容将决定还原的类型。图33-1显示选择了数据库选项。
    4. 参数 区域可以让您设定是否要显示其它数据库的备份(从另一个数据库的备份进行还原),应该要先还原哪个备份(如果设定了多个可用的备份),还有是否应该执行 还原时间点 。 还原时间点 能够还原数据到特定时间的状态。例如,如果在12:01时意外的删除了数据表,可以用 还原时间点 还原12:00时的数据库,刚好在删除发生之前。因为有全部可用的备份清单,可以选择需要使用的备份。如果没有强制还原最新的备份,那么数据库的所有备份都可供选择。
    在 还原数据库 对话框中可选择一组备份,然后选择 属性 按钮检视内容。 备份集属性 窗口如图33-2所示。

     

    图33-2 备份集属性窗口
    5. 选择 确定 ,返回 还原数据库 对话框的 一般 页签,并选择 档案群组或档案 显示一个不同的画面,如图33-3所示。图33-3显示 Example 数据库中所有的档案和档案群组备份。要检视这些档案和档案群组备份的属性,请选取档案或档案群组然后选择 属性 。
     

    图33-3 选取档案群组或档案选项后,还原数据库对话框的一般页签
    6. 现在选择 来源装置 ,如图33-4所示。当选取一个还原的特殊备份装置时,会需要用到这个选项。必须以手动选取这组备份,然后指定 SQL Server 是否应该执行完全还原、差异还原、交易记录还原或档案和档案群组还原。也可以让 SQL Server 读取备份信息,并将这些信息与其它备份历史信息一起储存在 msdb 数据库。如果要执行数据库还原,这些关于备份的信息就可派上用场了。
    7. 选取 还原数据库 对话框的 选项 页签,如图33-5所示。在这个页签顶端会看到3个复选框。 备份还原后,逐一退出已插入的磁带 复选框可确保磁带不会留在磁带机中被覆写。选择 还原备份前,先提示我 选项提供改变执行备份的机会。而选择 强制对现有的数据库进行还原 复选框让您用还原的数据库覆写现存的数据库。在这个页签,可以在一个新的数据文件名之下还原数据库,这对于保留原始数据库是很有用的。
     

    图33-4 选取来源装置选项之后,还原数据库对话框的一般页签

     

    图33-5 还原数据库对话框的选项页签
    页签中其它的选项可指定在回复完成后数据库应该保持的状态,如下:
    o 保持数据库运作,不还原额外的新增交易记录 这个选项不允许有进一步的差异还原或交易记录还原的回复。实质上是在还原中设定了 RECOVERY 标记。如果选了这个选项,就不能还原交易记录文件备份。
     
    o 使数据库不运作,但还可以还原额外新增的交易记录 这个选项在还原中设定了 NORECOVERY 标记。设定了这个标记,就能应用进一步的差异式备份还原和交易记录文件备份还原。在还原进行过程中,数据库处于无法操作状态,这表示在完成整个还原之前,使用者无法存取这个数据库。
     
    o 保持数据库为只读的状态,并可以还原额外新增的交易记录 这个选项也在还原中设定 NORECOVERY 标记,可以执行差异式备份还原和交易记录还原。和前面一个选项不同的是在执行还原操作时,使用者可以只读的存取这个数据库。
     
    8. 在完成设定选项后,选择 确定 来开启还原操作。透过一个消息框可以了解还原操作的过程,如图33-6所示。当还原操作完成时,会看到一个状态方块,通知还原成功或失败。
     

    图33-6 「还原进度」消息框
    ________________________________________
    说明
    SQL Server 备份装置支持多个不同备份操作的输出。反之亦然:单一备份可以分散到多个装置当中。多个备份装置群组的内容形成一个备份称为备份集(backup set)。因此一个备份装置(磁带、磁盘档案等)可以支持多个不同数据库备份集或多个同一数据库的备份集。
    ________________________________________
    使用 T-SQL 执行还原
     
    RESTORE T-SQL 命令和 BACKUP 命令类似( 第 32 章 中曾经讨论过)。如同BACKUP 命令,第一次使用时可能相当困难,但是一些 DBA 还是喜欢将他们的管理程序放置到 SQL 命令文件中,以便于重复执行这些功能。和 BACKUP 命令一样,RESTORE 命令提供了比 Enterprise Manager 更多的附加选项。
    在本节中,我们将讨论 RESTORE 命令的语法以及这个命令提供的多种选项。RESTORE 命令有两种形式显示如下:
    • RESTORE DATABASE 还原完整的数据库、档案或档案群组。
     
    • RESTORE LOG 还原交易记录文件。
     
    如您所见,所用的命令要依照执行还原操作的类型而定。因为这些命令共享大部分的选项,所以我们稍候将在一个清单中讨论这两种还原类型(数据库和记录文件)的所有选项。
    RESTORE 陈述式
     
    执行完整数据库还原时 RESTORE 陈述式的语法如下:
    RESTORE DATABASE database_name
    [ FROM backup_device ]
    [ WITH options ]
    这个陈述式只要求数据库的文件名称和备份所在的位置。
    执行档案和档案群组还原时陈述式的语法如下:
    RESTORE DATABASE database_name
    [ FILE = file_name ]
    [ FILEGROUP = filegroup_name ]
    [ FROM backup_device ]
    [ WITH options ]
    这个陈述式只要求数据库名称、文件名称或档案群组名称和备份所在的位置。
    执行交易记录还原时陈述式的语法如下:
    RESTORE LOG database_name
    [ FROM backup_device ]
    [ WITH options ]
    就如同其它的命令,database_name 是还原将要执行的数据库名称。backup_device 参数可以是逻辑备份装置名称或实体装置的名称。如果要指定一个实体装置,必须限定它的装置类型-也就是说,装置名称前面必须加上 DISK=、TAPE= 或 PIPE=。可以指定一个或多个装置,中间以逗号隔开。
    ________________________________________
    说明
    如果没有提供 FORM 子句,还原将无法进行,而且仍然会执行回复(除非执行NORECOVERY 选项)。这项技术可以用来将数据库设定为回复模式,而不还原其它附加数据。例如,可以执行多个差异还原操作,然后执行 RESTORE 陈述式,不需要 FORM 子句来将数据库设定为回复模式,就能够启动回复过程。
    ________________________________________
    选项
     
    表33-1列出了 RESTORE 命令可用的选项。如您所见,在执行还原操作时,这些选项提供了很大的弹性空间(如果列出的选项只对交易记录还原有用,将会标示其限制性)。
    表33-1 RESTORE 命令选项
    选项 说明
    RESTRICTED_USER 设定新还原数据库的安全性,只有 db_owner、dbcreater 和 sysadmin 角色成员才能存取该数据库。
    FILE = file_number 如果在储存媒体中有多个备份集,可用来识别所使用的备份集。例如设定该数值为2,则使用磁带上的第二个备份集。
    PASSWORD = password 指定储存备份的密码。
    MEDIANAME =media_name 指定媒体的名称。
    MEDIAPASSWORD = password 指定储存媒体的密码。
    MOVE ’logical_file_name’
    TO ’OS_file_name’ 更改还原档案的位置,例如:MOVE ’Northwind’ TO ’D:/data/Northwind.mdf’。如果旧的磁盘无法使用,而需要还原到新的磁盘上时,可以使用这个选项。
    NORECOVERY |RECOVERY |
    STANDBY = undo_file NORECOVERY 指定在还原后,交易将无法退回或重新进行。如果将还原其它的备份(差异式备份或交易记录文件备份),则需要用到这个选项。REVOVERY 为预设选项,它指定执行回复操作,并退回每个没有提交的变更。STANDBY 指定在还原需要还原情况下,建立还原(undo)档案。
    KEEP_REPLICATION 指定当数据库还原时复制设定要保存下来。
    NOUNLOAD | UNLOAD NOUNLOAD 指定在还原完成后不卸载储存媒体(例如,覆写备份磁带并弹出)。UNLOAD 为预设选项,指定在还原完成后卸载储存媒体。
    REPLACE 指出即使数据文件已经存在,SQL Server 仍将还原这些档案。现存的档案将被删除和覆写。如果没有指定 REPLACE,那么 SQL Server 将会核对 database_name 是否已经存在。如果已经存在,那么将终止还原操作。这个安全特性帮助避免无意地将还原覆写正在工作的数据库。
    RESTART 指定 SQL Server 在还原操作被中断后重新启动还原操作。
    STATS [ = percentage ] 在还原操作完成了指定的百分率后显示讯息。如果需要监控操作的过程,这个选项将会很有用。
    PARTIAL 指定执行部份还原。
    STOPAT = date_time
    (log restore only) 指定数据库回复到 data_time 指定时刻的数据状态(只对记录文件还原有效)。
    STOPATMARK = ’mark’ 指定还原操作进行到标记处。
    STOPBEFOREMARK = ’mark’ 指定还原操作进行到标记之前。
    ________________________________________
    说明
    命名交易(Named transactions)是 SQL Server 2000 中的新功能。它们是使用命令 BEGIN TRANSACTION ... WITH MARK 的 mark_name 选项建立的,特点是可以使用 RESTORE 命令中的 STOPATMARK 和 STOPBEFOREMARK 功能。
    ________________________________________
    ________________________________________
    真实世界 使用RESTORE
    这里有几个使用 RESTORE T-SQL 命令的例子。
    这个陈述式还原 Example 数据库的数据文件:
    RESTORE DATABASE Example
    FROM Backup_Dev_1, Backup_Dev_2
    WITH
    NORECOVERY,
    STATS = 5
    GO
    这个陈述式还原 Example 数据库的交易记录文件:
    RESTORE LOG Example
    FROM Backup_Dev_3, Backup_Dev_4
    WITH
    NORECOVERY,
    STATS = 5,
    UNLOAD
    GO
    和还原的结果一样,输出将显示操作完成的百分率。将通知还原了多少页面、还原花了多少时间,以及还原执行的速度(MB/sec)。
    现在可用以下的命令回复数据库:
    RESTORE LOG Example
    WITH RECOVERY
    GO
    您将再次看到关于还原操作的统计。
    ________________________________________
    规划严重损坏的回复
     
    只有简单地丛集化服务器( 第 12 章 所讨论的)或使用 RAID( 第 5 章 所讨论的)来改善系统正常的工作时间是不够的。您必须在严重损坏发生前做好回复的计划。熟悉如何在必要时执行有效的数据库的备份和还原是十分重要的,但是还是必须准备好在必要时从一无所有开始重建系统。准备工作包括档案管理和计划编制。此外还要使用新的 SQL Server 2000 中还原的功能来提供足够的回复能力。这个功能让交易记录文件可以从主要系统移至备份系统中运作。
    作为一个 DBA,应该规划一个最大工作时间的计划。这个计划应该包括下列组件:
    • 记录当前组态档案
     
    • 建立容错环境
     
    • 准备实时回复
     
    • 记录数据库回复计划档案
     
    大部分的步骤都涉及到计划编制和档案管理。通常回复计划并没有记录,并且只有计划的开发者才能执行这个计划,一旦这个特定成员未能出现,就会出现严重损坏。
    ________________________________________
    说明
    确认记录的严重损坏回复计划档案,并指派候补人员在严重损坏发生时,您无法在场时的执行计划。
    ________________________________________
    记录当前组态档案
     
    如果建立当前组态的步骤没有很好的记录成档案,那么可能在系统需要重新建构或者在系统中增加新的硬件时会出现问题。记录当前组态档案能够更快速的重建、重新安装和重新设定系统。确定已经包括了下列信息:
    • 硬件配置 包括硬件的类型和数量、RAID组态和其它选项。
     
    • 安装的软件产品 包括安装在服务器上所有软件的完整信息。
     
    建立容错环境
     
    就像 第 5 章 看到的,容错 RAID 磁盘区的使用可以大大的降低系统失效的可能性。磁盘是机械组件,跟对象一样会有磨损。使用容错磁盘区,就能在重新安装操作系统、SQL Server 和重建来自备份的数据库时减少许多麻烦,重建过程是一个耗时又耗力的过程(耗费主要在劳动和系统故障期间损失的收入方面)。
    如果容错磁盘损毁了,请尽可能快的将它更换。总会有磁盘可能损毁,而一些容错的形式可以在只损毁一个磁盘的情况下继续工作。可准备磁盘随时备用。
    准备实时回复
     
    准备好在必要时回复数据库。备份应该储藏在其它地方,防止如火灾或洪水的灾难,但您还是应该在手边保存有最近的备份,因为您可能无法很快速的从其它地方取到备份。备份阶段区域(backup staging area)是一种最受欢迎的方式,用这种方式可以在工作站保存最新的备份,还可以提高备份和还原的效能。备份阶段区域在网络上某处磁盘中储存最新的数据库和交易记录文件备份。在需要还原时,不需要使用磁带或从远离工作站的储藏处取得备份─还原可以立即进行。如果需要立即执行还原,这种技术就很有用了,但是由于必须占用硬件资源来储存备份,因此它的硬件需求很高。必须考虑预算和需求来决定是否需要。
    记录数据库回复计划档案
     
    因为在数据库必须回复的情况发生时,您也许不在现场,所以应该谨慎记录数据库回复计划,并和其它成员共享这些信息,这样在必要时他们就可以回复系统。如果自最后一次数据库还原之后过了很长的时间,数据库回复计划档案也会是一个有效的备忘手册。在任何事件中,保有数据库回复计划的手写拷贝都能使还原过程执行的更加平稳。
    记录文件传送
     
    SQL Server 2000 中的记录文件传送功能让您将最新交易记录文件应用在备用系统中,以建立备用系统并随时更新。备用系统保持参数回复模式,持续地让交易记录文件应用其上。即使系统在回复模式仍可以进行只读查询,因此可以让您使用备用系统来卸除报告任务。
    在主要服务器的失效事件中,备用服务器可以简单而快速地到新的服务器上。这个功能已经有很多人在 SQL Server 7 中使用过,在 Microsoft 中也可支持,还加进一些好用的功能。这些功能包括透过 数据库维护计划精灵 和 SQL Server 代理程序启动与维护备用系统的能力。
    本章总结
     
    关于数据库备份、还原和回复操作的讨论到此结束。在这两章中,您已经学到了如何有效的进行系统的备份和还原,以及 SQL Server 回复是如何运作的,您也看到了如何使用 Enterprise Manager 和 T-SQL 命令执行这些操作。本章着重在讨论回复操作和准备严重损坏回复计划。记住,系统的安全性是 DBA 的主要职责之一。

     
    展开全文
  • 数据迁移、恢复,就要用到备份了。使用mysqldump导出来的基本都是sql数据句,可以直接使用mysql命令还原数据。 1、恢复到指定数据库 mysql -hhostname -uusername -ppassword databasename < backupfile.sql 2...

    前言

    数据迁移、恢复,就要用到备份了。使用mysqldump导出来的基本都是sql数据句,可以直接使用mysql命令还原数据。

    1、恢复到指定数据库

    mysql -hhostname -uusername -ppassword databasename < backupfile.sql

    2、还原压缩的MySQL数据备份文件

    gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename

    3、直接将备份导入到新的数据库

    mysqldump -uusername -ppassword databasename | mysql -host=192.168.1.101 -C databasename

    4、使用source导入sql文件

    mysql > use cmdb

    mysql > source /data/cmdb_backup.sql

    总结

    这些简单的命令基本都是再迁移的时候使用的,如果是线上的数据库,还要考虑到锁表、binlog等,一步步来。

    来源:https://baijiahao.baidu.com/s?id=1612957925150051669

    展开全文
  • DB2002 restore离线恢复数据库

    千次阅读 2018-11-24 20:48:43
    查看表空间使用率的sql主要是为了恢复库之后供检查使用,查看一下是否刚恢复完库后某些表空间已经快耗尽了,如果快使用完了就需要扩充表空间,否则可能会影响数据库操作性能。 select char(TBSP_NAME,50) as TBSP...
  • 无数据库日志文件恢复数据库方法两则数据库日志文件的误删或别的原因引起数据库日志的损坏方法一1.新建一个同名的数据库2.再停掉sql server(注意不要分离数据库)3.用原数据库的数据文件覆盖掉这个新建的数据库4.再...
  • oracle 11g卸载重装及恢复数据库实例

    千次阅读 2019-07-30 14:58:08
    建议进行操作之前先把文中的三个教程都参观一下,心里有个大概...顺便把oracle的数据文件夹下面的orcl文件夹 整个删掉,这是全局数据库,如果重装的话,会去重新安装orcl数据库; 路径大概是这个位置:\app\Adminis...
  • 数据库MDF数据文件数据库恢复

    千次阅读 2012-04-01 09:47:28
    数据库MDF数据文件数据库恢复 .mdf文件是数据库中的一个主要数据文件,它是数据库的起点,指向数据库中文件的其它部分。当电脑出现故障无法备份数据库时,只能通过SQL命令的方式将.mdf数据文件附加到当前服务器,...
  • 数据库恢复技术 数据转储 登记日志文件 登记日志文件的作用以及原则 恢复策略 事务故障的恢复 系统故障的恢复 介质故障的恢复 利用检查点技术的恢复策略 数据库镜像   事务(transaction)是一系列的数据库...
  • asp.net在线备份恢复SQL数据库

    千次阅读 2006-08-13 03:05:00
    最近忙于学习asp.net做过几...恢复数据库:Alter Database 被恢复的数据库名 Set Offline with Rollback immediate;restore database 被恢复的数据库名 from disk = 备份文件路径;Alter Database 被恢复
  • 数据库恢复技术 TRANCATION

    千次阅读 2018-02-05 23:48:00
    数据库恢复技术 事务(Transaction)处理技术:事务事一系列的数据库操作,事数据库程序的基本逻辑单元。事务处理技术主要包括数据库恢复技术和并发控制技术。 事务的基本概念 一 事务 事务是用户定义的数据库...
  • 最好还要备份SPFILEMCAIMS.ORA或INITmcaims.ORA文件和重置控制文件的sql语句,这在改变恢复数据库的文件路径时会用到。 具体步骤如下: 首先,找到要备份的文件路径。可用如下语句获得。sqlpl
  • SQLserver数据库恢复的几种方法

    千次阅读 2015-01-08 10:21:38
    问题的产生:最近在完成一个大作业,自己查资料写的一个文件管理系统,用到了SQLserver数据库,但是呢?在数据库移植的时候,遇到了一些问题,经过一天的摸索,特记录如下:  第一种办法:直接从XXX.mdf文件中恢复...
  • PostgreSQL数据库备份和恢复

    千次阅读 2020-09-10 10:48:04
    一、备份 1、cmd到PostgreSQL安装目录bin下 2、备份命令 pg_dump -h 192.168.100.23 -U postgres postgres > D:\postgres.bak 3、指令解释 ...pg_dump 是备份数据库指令;...二、恢复 1、备份命令 psql
  • DB2实验——数据库恢复

    千次阅读 2008-02-11 19:22:00
    实验九 数据库恢复实验内容第1 节– 决定DB2目前的日志配置参数第2 节– 循环日志条件下的数据库恢复第3 节– 归档日志条件下的数据库恢复注意:(1)实验用到的数据在DB2 Lab Data文件夹下的CF23中;(2)在实验...
  • 只能想办法从数据库原始文件 ibdata 和 frm 文件中恢复数据库。因为没有经验,好不容易才找到了恢复方法。特此记录,以备后用。磁盘空间不足之后,mysqld 进程无法启动,提示“Can't connect tolo...
  • MySQL数据库备份和恢复MySQL数据库备份和恢复用到了两个命令,分别是“mysqldump”和“mysql”
  • 这样备份有个缺点,那就是恢复数据库时数据库名要手动创建,否则会出现如下错误: ERROR 1046 (3D000) at line 22: No database selected 但手动创建数据库,我们不一定知道是哪个数据库出错,所以我们备份时...
  • 导出要用到MySQL数据库备份的mysqldump工具,基本用法是: mysqldump [OPTIONS] database [tables] 如果你不给定任何表,整个数据库将被导出。 通过执行mysqldump --help,你能得到你mysqldump的版本支持的选项表
  • 数据库数据误删除恢复

    千次阅读 2018-10-08 08:27:34
    【oracle表误删恢复处理(没有使用PURGE[用于清空回收站]永久删除选项)】   flashback数据库闪回技术 数据库级别:Flashback Database 表级别:Flashback Drop和Flashback Table,Flashback Data Archive 记录级别...
  • MySQL数据库面试题(2020最新版)

    万次阅读 多人点赞 2020-03-10 17:20:40
    文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储...
  • 如何使用sql语句备份和恢复mysql数据库 导出要用到MySQL的mysqldump工具,基本用法是: mysqldump [OPTIONS] database [tables] 如果你不给定任何表,整个数据库将被导出。 一般使用的命令: mysqldump --quick -...
  • MYSQL数据库的备份与恢复

    千次阅读 2010-01-12 09:28:00
    备份与恢复在任何数据库里面都是非常重要的内容,特别是随着数据量的增加,备份问题会越来越突出,因此,好的备份方法与备份策略是非常重要的。结合我所做的项目本身,下面主要就windows平台下MySQL(5.0)数据库的...
  • Rman使用前的准备工作,创建恢复目录所需要使用的表空间,在目录数据库创建rman用户,在目录数据库建立恢复目录建立恢复目录第一步,在目录数据库中创建恢复目录所用表空间:SQL> create tablespace rman_ts datafile...
  • 重装系统后ORACLE数据库恢复的方法

    千次阅读 2012-01-10 09:52:21
    ORACLE数据库恢复的方法我们经常会用到,下面就为您介绍重装系统后ORACLE数据库恢复的方法,希望对您学习ORACLE数据库恢复方面能有所帮助。 第一种: 首先,备份数据库(X:\oracle\oradata)下的数据文件,重新命名...
  • MariaDB数据库的备份与恢复

    千次阅读 2019-05-10 12:12:05
    MariaDB数据库的备份与恢复 前提条件: 开启二进制日志:二进制日志可用于数据库恢复时使用,建议二进制日志与数据库数据分开存放。 开启二进制日志的方法: [ root@Centos~]# vim /etc/my.cnf [mysqld] log_bin=...
  • 最近,我恢复了一个数据库.其中的辛苦不予言表,我想写出自己用到的一些语句,和遇到相同问题的xdjm共勉。首先谈db2数据库的备份,我用的是backup命令。db2 backup database 数据库名(我的库是jsdb)忘了说了,在...
  • 数据库文件备份与恢复
  • 刚刚不小心把数据库删掉了,于是想着上网上找找有没有可以恢复数据库的方法,没想到还真有,除了备份以外,还有以下方法。 在mysql有时执行了错误的update或者delete时导致大量数据错误恢复的办法。执行时没有开启...
  • 上周,以前公司的同事朋友找我帮忙,看看能否帮忙恢复一个MySQL 数据库,具体情况为:数据库版本为MySQL 5.6(具体版本不清楚),也不清楚具体的数据库引擎; 没有数据库备份,只剩下数据库下面的一些文件(frm、idb...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 101,898
精华内容 40,759
关键字:

为了恢复数据库需要用到