sql server 2000 日志备份
发布网友
发布时间:2022-04-10 05:40
我来回答
共6个回答
懂视网
时间:2022-04-10 10:02
![](https://img.51dongshi.com/20210302/wz/76726352.jpg)
==Scripting Parameters==
Source Server Version : SQL Server 2016 (13.0.1601)
Source Database Engine Edition : Microsoft SQL Server Enterprise Edition
Source Database Engine Type : Standalone SQL Server
Target Server Version : SQL Server 2016
Target Database Engine Edition : Microsoft SQL Server Enterprise Edition
Target Database Engine Type : Standalone SQL Server
*/
USE [msdb]
GO
/****** Object: Job [FullBackup] Script Date: 9/11/2017 7:50:54 PM ******/
BEGIN TRANSACTION
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
/****** Object: JobCategory [[Uncategorized (Local)]] Script Date: 9/11/2017 7:50:54 PM ******/
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‘FullBackup‘,
@enabled=1,
@notify_level_eventlog=0,
@notify_level_email=0,
@notify_level_netsend=0,
@notify_level_page=0,
@delete_level=0,
@description=N‘No description available.‘,
@category_name=N‘[Uncategorized (Local)]‘,
@owner_login_name=N‘CLOUD-88Administrator‘, @job_id = @jobId OUTPUT
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
/****** Object: Step [FullBackup] Script Date: 9/11/2017 7:50:54 PM ******/
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N‘FullBackup‘,
@step_id=1,
@cmdexec_success_code=0,
@on_success_action=1,
@on_success_step_id=0,
@on_fail_action=2,
@on_fail_step_id=0,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0, @subsystem=N‘TSQL‘,
@command=N‘BACKUP DATABASE [master] TO DISK = N‘‘\SQL-AGBACKUPAGmaster.bak‘‘ WITH COPY_ONLY, NOFORMAT, NOINIT, NAME = N‘‘master_backup‘‘, SKIP, REWIND, NOUNLOAD, STATS = 10
GO
BACKUP DATABASE [model] TO DISK = N‘‘\SQL-AGBACKUPAGmodel.bak‘‘ WITH COPY_ONLY, NOFORMAT, NOINIT, NAME = N‘‘model_backup‘‘, SKIP, REWIND, NOUNLOAD, STATS = 10
GO
BACKUP DATABASE [msdb] TO DISK = N‘‘\SQL-AGBACKUPAGmsdb.bak‘‘ WITH COPY_ONLY, NOFORMAT, NOINIT, NAME = N‘‘msdb_backup‘‘, SKIP, REWIND, NOUNLOAD, STATS = 10
GO
DECLARE @preferredReplica int
SET @preferredReplica = (SELECT [master].sys.fn_hadr_backup_is_preferred_replica(‘‘OnlineLoansCommon‘‘))
IF (@preferredReplica = 1)
BEGIN
BACKUP DATABASE [OnlineLoansCommon] TO DISK = N‘‘\SQL-AGBACKUPAGOnlineLoansCommon.bak‘‘ WITH COPY_ONLY, NOFORMAT, NOINIT, NAME = N‘‘OnlineLoansCommon‘‘, SKIP, REWIND, NOUNLOAD, STATS = 10
END
GO
DECLARE @preferredReplica int
SET @preferredReplica = (SELECT [master].sys.fn_hadr_backup_is_preferred_replica(‘‘OnlineLoansCommonQA‘‘))
IF (@preferredReplica = 1)
BEGIN
BACKUP DATABASE [OnlineLoansCommonQA] TO DISK = N‘‘\SQL-AGBACKUPAGOnlineLoansCommonQA.bak‘‘ WITH COPY_ONLY, NOFORMAT, NOINIT, NAME = N‘‘OnlineLoansCommonQA‘‘, SKIP, REWIND, NOUNLOAD, STATS = 10
END
‘,
@database_name=N‘master‘,
@flags=0
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_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
SQLFullbackup
标签:ros version run select min ini ret start blog
热心网友
时间:2022-04-10 07:10
日志处理方法:
/*--特别注意
请按步骤进行,未进行前面的步骤,请不要做后面的步骤
否则可能损坏你的数据库.
一般不建议做第4,6两步
第4步不安全,有可能损坏数据库或丢失数据
第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.
--*/
--下面的所有库名都指你要处理的数据库的库名
1.清空日志
DUMP TRANSACTION 库名 WITH NO_LOG
2.截断事务日志:
BACKUP LOG 库名 WITH NO_LOG
3.收缩数据库文件(如果不压缩,数据库的文件不会减小
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
也可以用SQL语句来完成
--收缩数据库
DBCC SHRINKDATABASE(库名)
--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles
DBCC SHRINKFILE(1)
4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)
a.分离数据库:
企业管理器--服务器--数据库--右键--分离数据库
b.在我的电脑中删除LOG文件
c.附加数据库:
企业管理器--服务器--数据库--右键--附加数据库
此法将生成新的LOG,大小只有500多K
或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
a.分离
EXEC sp_detach_db @dbname = '库名'
b.删除日志文件
c.再附加
EXEC sp_attach_single_file_db @dbname = '库名',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\库名.mdf'
5.为了以后能自动收缩,做如下设置:
企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"
--SQL语句设置方式:
EXEC sp_dboption '库名', 'autoshrink', 'TRUE'
6.如果想以后不让它日志增长得太大
企业管理器--服务器--右键数据库--属性--事务日志
--将文件增长*为xM(x是你允许的最大数据文件大小)
--SQL语句的设置方式:
alter database 库名 modify file(name=逻辑文件名,maxsize=20)
热心网友
时间:2022-04-10 08:28
日志文件和数据文件分开存放在各个盘(注意文件权限的设置)
数据文件自动备份
日志文件手动清除
热心网友
时间:2022-04-10 10:02
你应该先搞清楚基本概念:
bakup 有三种:full/differential/log,log backup 可搭配 full backup 使用,甚至再加上 diff backup.
通常日志备份的原因是,full backup 太大了,但又需要频繁地备份以保证数据安全。
如果你不属于这种情况那么可以不备份日志。
另外个人建议不要依赖 GUI 向导来完成工作,很多时候你并不理解到底执行了什么操作。
热心网友
时间:2022-04-10 11:54
新建如下数据库存储过程:
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
*/
/* 用 途:用于清空数据库日志并备份数据库,且备份文件名根据系统时间产生, */
/* 如系统时间为2003.11.26,则备份文件为 gsj20031126.dat */
/* 使用方法:1、在查询分析器中执行命令: */
/* exec 数据库名称.dbo.自己用的名称 */
/* 2、在作业的步骤中输入‘命令: */
/* exec 数据库名称.dbo.自己用的名称 */
/** 存储过程名称:dbo.自己用的名称 **/
CREATE PROCEDURE dbo.自己用的名称
as
declare @backupname varchar(50)
declare @i int
/** 生成备份文件名 **/
set @backupname=convert(varchar(4),year(getdate()))+convert(varchar(2),month(getdate()))+convert(varchar(2),day(getdate()))
set @backupname = 'e:\xxxx+@backupname+'.dat'
set @i=1
while @i <= 5
begin
/** 清空日志 **/
backup log (需要清空的日志数据库名称) with no_log
set @i = @i + 1
end
/** 备份数据库 **/
backup database 数据库名称 to disk=@backupname with init
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
********************
在新建作业进行调度即可,如此备份就可在每次自动备份时自动删除日志
热心网友
时间:2022-04-10 14:02
事物日志不是非的备份才能还原数据的,正常状态的事物日志就能还原数据库到事故点,但是事物日志有大小,根据你的设置,到达设置的大小,它会删除最早的日志来腾出空间存储新的日志,备份是为了把之前的备份下来,防止过大,把以往日志冲掉.
不知道我说明白没有