db2在线备份 没有日志如何恢复

db2在线备份 没有日志如何恢复,第1张

备份文件中备份的是开始点数据库的一切数据,备份的时候数据变更会记载在日志里。通过恢复数据库和前滚日志的方式可以把数据恢复到备份后的状态。恢复的方法是:1》db2restoredb数据库名logtarget日志解压位置2》db2rollforwarddb数据库名toendoflogsandstopoverflowlogpath(“日志解压位置”)是需要把生产的归档日志都copy到测试环境中前滚,活动日志不需要copy

您好,很高兴为您解答。

-----SQLSERVER2008  事务日志传送 备份数据库  

1、在主机上执行完整备份数据库  

2、在备份机上 创建三个文件夹 。  

·  第一个文件夹A(原主机上:比如)用来存放:备份数据库。  

  第二个文件夹B(目标机) 需要共享 存放:为备份数据库传送过来的事务日志。  

  第三个文件组C(目标机) 需要共享 存放:为还原数据库复制的事务日志。--  

3、将主机上备份好的数据库 拷贝复制到 备份主机的对应文件夹中。并还原备份机上的数据库。  

    还原选项为  “覆盖现有数据库(WITH REPLACE)”。  

    .恢复状态 选第二项 即 “不对数据库执行任何 *** 作。不回滚未提交的事务。可以还原其他事务日志” "RESTORE WITH NORECOVERY"   

     也就是恢复模式。  

4、在主数据库服务器上>>>>>>选择数据库,右键>>>>任务>>>>>传送事务日志>>>>>  

5、勾选 将此数据库启用为日志传送配置中的主数据库  

      >>>点击 备份设置>>>>>>填写事务日志备份参数(备份文件夹的网络路径:此处填写备份服务器上建立的用于存放事务日志备份的文件夹的网络路径。  

      此例中为"B"(也可写<a href="file://\\127.0.0.1\B">\\127.0.0.1\B</a>文件夹名)。这里说明一下,此例中将备份文件夹放在了备份服务器上,但这不是必需的,也可以将备份文件夹放在数据库服务器上,或者放在第三台服务器上,只要保证此文件夹能从网络上被数据库服务器和备份服务器访问即可)。备份文件夹位于主机 这项 输入 本机的绝对路径这里输入 A 文件夹的路径。  

6、点击 计划 开始设置备份作业计划。  

7、回到 数据库>>>>属性>>>>传送事务日志的界面。  在 “辅助数据库” 下 点 “添加” >>>>>设置 辅助数据库 即 备份数据库服务器  

8、连接到 备份数据库服务器 (服务器名称 最后写 计算机的名称 不要写 IP地址),并选择 对应的数据库。  

9、由于开始 完成了对 备份数据库服务器上的数据库还原,所以在 “初始化辅助数据库”TBA选项卡 中选择“否”。  

10、点击 “复制文件‘TAB 选项卡>>>>>>在d出的窗体设置中 输入 复制文件的目标文件夹 C(目标机器上的C文件夹路径).填写下面的 复制作业的作业名称 >>>>>>>>>点编辑作业>>>>>>设置作业计划  

11、点击 ”还原事务日志“TAB选项卡>>>>选中下面的 ”备用模式“。同样填写 作业名称 并编辑作业计划  

12、 最后点击确定(OK) 则 备份数据库就会变为 ”备用/只读“的状态。  

  

---备注: 也可以 用第三方工具在 目标机器上通过FTP 的方式将A 路径下的文件拷贝到 B 路径下。(下面的案例就是通过ServU 第三方工具定时将A 中的日子传递到B 下,然后通过日志传送产生的作业,再将B中的日志COPY到C中,然后利用C中的日志 来实现数据库恢复的。)

<p>  

-- 在主服务器上执行下列语句,以便为数据库 [WIN2008R2-SERVER0].[db_name_read]   

-- 配置日志传送。  

-- 需要在主服务器上 [msdb] 数据库的上下文中运行该脚本。    

-------------------------------------------------------------------------------------   

-- 添加日志传送配置 </p><p>-- ****** 开始: 要在主服务器 [WIN2008R2-SERVER0] 上运行的脚本 ******</p><p>  

DECLARE @LS_BackupJobId AS uniqueidentifier   

DECLARE @LS_PrimaryId AS uniqueidentifier   

DECLARE @SP_Add_RetCode As int </p><p>  

EXEC @SP_Add_RetCode = master.dbo.sp_add_log_shipping_primary_database   

  @database = N'db_name_read'   

  ,@backup_directory = N'F:\db_name_log' ---A文件夹  

  ,@backup_share = N'\\127.0.0.1\db_name_share_log' ---B文件夹  

  ,@backup_job_name = N'LSBackup_db_name_read'   

  ,@backup_retention_period = 4320  

  ,@backup_compression = 1  

  ,@backup_threshold = 180   

  ,@threshold_alert_enabled = 1  

  ,@history_retention_period = 5760   

  ,@backup_job_id = @LS_BackupJobId OUTPUT   

  ,@primary_id = @LS_PrimaryId OUTPUT   

  ,@overwrite = 1 </p><p>  

IF (@@ERROR = 0 AND @SP_Add_RetCode = 0)   

BEGIN </p><p>DECLARE @LS_BackUpScheduleUID As uniqueidentifier   

DECLARE @LS_BackUpScheduleID AS int </p><p>  

EXEC msdb.dbo.sp_add_schedule   

  @schedule_name =N'LSBackupSchedule_WIN2008R2-SERVER01'   

  ,@enabled = 1   

  ,@freq_type = 4   

  ,@freq_interval = 1   

  ,@freq_subday_type = 1   

  ,@freq_subday_interval = 15   

  ,@freq_recurrence_factor = 0   

  ,@active_start_date = 20121026   

  ,@active_end_date = 99991231   

  ,@active_start_time = 30000   

  ,@active_end_time = 235959   

  ,@schedule_uid = @LS_BackUpScheduleUID OUTPUT   

  ,@schedule_id = @LS_BackUpScheduleID OUTPUT </p><p>EXEC msdb.dbo.sp_attach_schedule   

  @job_id = @LS_BackupJobId   

  ,@schedule_id = @LS_BackUpScheduleID  </p><p>EXEC msdb.dbo.sp_update_job   

  @job_id = @LS_BackupJobId   

  ,@enabled = 1 </p><p>  

END </p><p>  

EXEC master.dbo.sp_add_log_shipping_alert_job </p><p>EXEC master.dbo.sp_add_log_shipping_primary_secondary   

  @primary_database = N'db_name_read'   

  ,@secondary_server = N'192.168.1.19,18991'   

  ,@secondary_database = N'db_name_read'   

  ,@overwrite = 1 </p><p>-- ****** 结束: 要在主服务器 [WIN2008R2-SERVER0] 上运行的脚本  ******</p><p>  

-- 在辅助服务器上执行下列语句,以便为数据库 [192.168.1.19,18991].[db_name_read]   

-- 配置日志传送。  

-- 需要在辅助服务器上 [msdb] 数据库的上下文中运行该脚本。   

-------------------------------------------------------------------------------------   

-- 添加日志传送配置 </p><p>-- ****** 开始: 要在辅助服务器 [192.168.1.19,18991] 上运行的脚本 ******</p><p>  

DECLARE @LS_Secondary__CopyJobId AS uniqueidentifier   

DECLARE @LS_Secondary__RestoreJobId AS uniqueidentifier   

DECLARE @LS_Secondary__SecondaryId AS uniqueidentifier   

DECLARE @LS_Add_RetCode As int </p><p>  

EXEC @LS_Add_RetCode = master.dbo.sp_add_log_shipping_secondary_primary   

  @primary_server = N'WIN2008R2-SERVER0'   

  ,@primary_database = N'db_name_read'   

  ,@backup_source_directory = N'\\127.0.0.1\db_name_share_log' ---B文件夹  

  ,@backup_destination_directory = N'D:\db_name_log' ---C文件夹  

  ,@copy_job_name = N'LSCopy_WIN2008R2-SERVER0_db_name_read'   

  ,@restore_job_name = N'LSRestore_WIN2008R2-SERVER0_db_name_read'   

  ,@file_retention_period = 4320   

  ,@overwrite = 1   

  ,@copy_job_id = @LS_Secondary__CopyJobId OUTPUT   

  ,@restore_job_id = @LS_Secondary__RestoreJobId OUTPUT   

  ,@secondary_id = @LS_Secondary__SecondaryId OUTPUT </p><p>IF (@@ERROR = 0 AND @LS_Add_RetCode = 0)   

BEGIN </p><p>DECLARE @LS_SecondaryCopyJobScheduleUID As uniqueidentifier   

DECLARE @LS_SecondaryCopyJobScheduleID AS int </p><p>  

EXEC msdb.dbo.sp_add_schedule   

  @schedule_name =N'DefaultCopyJobSchedule'   

  ,@enabled = 1   

  ,@freq_type = 4   

  ,@freq_interval = 1   

  ,@freq_subday_type = 1   

  ,@freq_subday_interval = 15   

  ,@freq_recurrence_factor = 0   

  ,@active_start_date = 20121026   

  ,@active_end_date = 99991231   

  ,@active_start_time = 32500   

  ,@active_end_time = 235959   

  ,@schedule_uid = @LS_SecondaryCopyJobScheduleUID OUTPUT   

  ,@schedule_id = @LS_SecondaryCopyJobScheduleID OUTPUT </p><p>EXEC msdb.dbo.sp_attach_schedule   

  @job_id = @LS_Secondary__CopyJobId   

  ,@schedule_id = @LS_SecondaryCopyJobScheduleID  </p><p>DECLARE @LS_SecondaryRestoreJobScheduleUID As uniqueidentifier   

DECLARE @LS_SecondaryRestoreJobScheduleID AS int </p><p>  

EXEC msdb.dbo.sp_add_schedule   

  @schedule_name =N'DefaultRestoreJobSchedule'   

  ,@enabled = 1   

  ,@freq_type = 4   

  ,@freq_interval = 1   

  ,@freq_subday_type = 1   

  ,@freq_subday_interval = 15   

  ,@freq_recurrence_factor = 0   

  ,@active_start_date = 20121026   

  ,@active_end_date = 99991231   

  ,@active_start_time = 40000   

  ,@active_end_time = 235959   

  ,@schedule_uid = @LS_SecondaryRestoreJobScheduleUID OUTPUT   

  ,@schedule_id = @LS_SecondaryRestoreJobScheduleID OUTPUT </p><p>EXEC msdb.dbo.sp_attach_schedule   

  @job_id = @LS_Secondary__RestoreJobId   

  ,@schedule_id = @LS_SecondaryRestoreJobScheduleID  </p><p>  

END </p><p>  

DECLARE @LS_Add_RetCode2 As int </p><p>  

IF (@@ERROR = 0 AND @LS_Add_RetCode = 0)   

BEGIN </p><p>EXEC @LS_Add_RetCode2 = master.dbo.sp_add_log_shipping_secondary_database   

  @secondary_database = N'db_name_read'   

  ,@primary_server = N'WIN2008R2-SERVER0'   

  ,@primary_database = N'db_name_read'   

  ,@restore_delay = 0   

  ,@restore_mode = 1   

  ,@disconnect_users = 1   

  ,@restore_threshold = 45     

  ,@threshold_alert_enabled = 1   

  ,@history_retention_period = 5760   

  ,@overwrite = 1 </p><p>END </p><p>  

IF (@@error = 0 AND @LS_Add_RetCode = 0)   

BEGIN </p><p>EXEC msdb.dbo.sp_update_job   

  @job_id = @LS_Secondary__CopyJobId   

  ,@enabled = 1 </p><p>EXEC msdb.dbo.sp_update_job   

  @job_id = @LS_Secondary__RestoreJobId   

  ,@enabled = 1 </p><p>END </p><p>  

-- ****** 结束: 要在辅助服务器 [192.168.1.19,18991] 上运行的脚本 ******  

</p>

如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】

希望我的回答对您有所帮助,望采纳!

~ O(∩_∩)O~

连接到相应的 Microsoft SQL Server 数据库引擎实例之后,在对象资源管理器中,单击服务器名称以展开服务器树。

展开“数据库”,然后根据数据库的不同,选择用户数据库,或展开“系统数据库”,再选择系统数据库。

右键单击数据库,指向“任务”,再单击“备份”。将出现“备份数据库”对话框。

在“数据库”列表框中,验证数据库名称。您也可以从列表中选择其他数据库。

验证恢复模式是 FULL 还是 BULK_LOGGED。

在“备份类型”列表框中,选择“事务日志”。

可以接受“名称”文本框中建议的默认备份集名称,也可以为备份集输入其他名称。

或者,在“说明”文本框中,输入备份集的说明。


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

原文地址:https://54852.com/sjk/10050271.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存