ITPub博客

首页 > 数据库 > SQL Server > sqlserver 备份迁移

sqlserver 备份迁移

原创 SQL Server 作者:winnzheng 时间:2024-03-26 16:50:26 0 删除 编辑

1、创建表

USE [ZB_TEST]

GO

/****** Object:  Table [dbo].[zbtest]    Script Date: 2024/3/26 14:13:53 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[zbtest](

[id] [int] IDENTITY(1,1) NOT NULL,

[ND] [datetime] NULL,

PRIMARY KEY CLUSTERED

(

[id] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

2、创建存储过程

USE [ZB_TEST]

GO


/****** Object:  StoredProcedure [dbo].[PR_zbtest]    Script Date: 2024/3/26 14:11:17 ******/

SET ANSI_NULLS ON

GO


SET QUOTED_IDENTIFIER ON

GO


-- =============================================

-- Author:

-- Create date: <Create Date,,>

-- Description:

-- =============================================

CREATE PROCEDURE [dbo].[PR_zbtest]


AS


insert into zbtest(ND) VALUES(GETDATE());

delete from zbtest where datediff(MINUTE,ND,getdate())>=60;



GO

3、创建JOB:需启动代理,每个10分钟插入当前时间,不管什么时候创建的,都是 10、20、30、40 。。。整点执行。

USE [msdb]

GO


/****** Object:  Job [localjbzbtest]    Script Date: 2024/3/26 14:21:00 ******/

BEGIN TRANSACTION

DECLARE @ReturnCode INT

SELECT @ReturnCode = 0

/****** Object:  JobCategory [[Uncategorized (Local)]]    Script Date: 2024/3/26 14:21:00 ******/

IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'[Uncategorized (Local)]' AND category_class=1)

BEGIN

EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]'

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


END


DECLARE @jobId BINARY(16)

EXEC @ReturnCode =  msdb.dbo.sp_add_job @job_name=N'localjbzbtest', 



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

/****** Object:  Step [execzbtest]    Script Date: 2024/3/26 14:21:00 ******/

EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'execzbtest', 



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

EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1

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

EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'plexeczbtest', 




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

EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'

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

COMMIT TRANSACTION

GOTO EndSave

QuitWithRollback:

    IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION

EndSave:


GO

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

查询数据:

use [TF-test]

select max(nd) from [dbo].[zbtest]

union

select min(nd) from [dbo].[zbtest]

select top 5 * from [dbo].[zbtest] order by id desc

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

备份类型:完整

备份组件:数据库

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

设备:选择“完整”备份的备份文件

目标:重新命名个新库名  -- TF-test-restore

恢复状态:RESTORE WITH NORECOVERY

关闭到目标数据库的现有连接--可能需要关闭所有sql窗口

**[这两个不取消,会影响源库,进而影响生产]

还原前进行结尾日志备份(T) 取消

保持源数据库处于正在还原状态,取消


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

源库备份事务日志

备份类型:事务日志

事务日志:截断事务日志

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

还原选择事务日志:

源设备:选择对应日志备份文件集,然后勾选方框

不对数据库执行任何操作,不回滚未提交的事务。还可以还原其他事务日志,RESTORE WITH NORECOVERY

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

源库备份事务日志

备份类型:事务日志

事务日志:截断事务日志

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

还原选择事务日志:

源设备:选择对应日志备份文件集,然后勾选方框

不对数据库执行任何操作,不回滚未提交的事务。还可以还原其他事务日志,RESTORE WITH NORECOVERY  --重复执行,测试是否可以无需追日志

或者选择:使数据库处于只读模式。撤销未提交的事务,但撤销操作保存在文件中,以便可使恢复效果逆转,RESTORE WITH STANDBY

测试只读后能否回退再次经行恢复 --可以多次不停的恢复的,但是不要附加原来的备用文件 *******

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

最后一次还原,修改为启动数据库正常读写。


https://learn.microsoft.com/zh-cn/sql/relational-databases/backup-restore/back-up-a-transaction-log-sql-server?view=sql-server-ver16&redirectedfrom=MSDN


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70031606/viewspace-3010208/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: oracle 内存建议
请登录后发表评论 登录
全部评论
Happy --开心 Appreciation --心怀感恩 Passion --激情四溢 Performance --出类拔萃 Young --充满活力

注册时间:2023-09-04

  • 博文量
    30
  • 访问量
    24390