sqlserver日志传送SqlServer事务日志传送(不停机不在主库加共享文件版本)logshipping最佳实践郭大侠1

(1)不能停机、重启服务、现在没有加入域

(2)现在已经有一个镜像副本了

现有业务,想做一个从库,有什么好办法?

我遇到的问题:

测试环境我们的策略如下:

我们的测试数据操作到底要多久从库才能同步上去呢?

5分+3秒+10秒+1分钟=6分13秒

(这一分钟是可能文件传过来之前正好运行了一次还原操作,导致错过需要再等下一次周期,周期是一分钟)

主库:

IP/URL

角色

描述

10.20.50.23

主服务器

日志传送主服务器

test

主库

日志传送主库

D:\temp_bak

备份文件夹(本地)

主库日志文件备份

D:\dba_tools

DBA工具文件夹(本地)

复制事务备份到从库

从库:

10.20.50.42

从库

日志传送从库

同名从库

日志传送同名从库

d:\copy_file

备份文件夹(共享)

接收主库备份文件并还原

sxs.rar这个软件包哪里来的?这个就是操作系统镜像(最好是与当前windowsserver版本相同或相近可兼容的iso镜像文件)文件里面的一个叫sxs文件夹。

新建call.vbs调用copy_tran_bakfile.bat

copy_tran_bakfile.bat

@echoofffor/l%%iin(1,1,6)do(dirz:1>nuliferrorlevel1(netusez:\\10.20.50.42\log_shipping\2433_18$GTRwxhi@A6f#!wQ/user:log_shipping)echo%date%%time%>>e:\dba_tools\output.logecho%date%%time%>>e:\dba_tools\error.logreplace/aE:\log_shipping_tran\*z:\>>e:\dba_tools\output.log2>>e:\dba_tools\error.logtimeout/T55/NOBREAK)

删除netuse盘

netusez:/delete/y

call.vbs

setws=WScript.CreateObject("WScript.Shell")ws.Run"e:\dba_tools\copy_file.bat",0到时候定时任务可以用call.vbs,这样调用bat的黑窗就不会弹出

(1)服务器管理器,添加角色与功能

(2)全部下一步下一步,直至功能选择,勾上.NetFrameWork3.5

然后直接下一步下一步完事,但有时候会报错,如下:

(3)这个时候我们重新来一次,指定备用源

然后找到我们传过来文件的这个目录:

输入进去,然后点击确定即可。

然后点击安装,等待安装完成

(1)这个需要开共享,且需要给everyone读取权限,也可以给sqlserver代理启动账户以读取权限,强烈推荐后者

(2)比如代理的log_shipping输入进去,然后点击添加,给只读权限即可。(然后这个账户所在用户组也需要添加进来,比如Users)

(3)或者新建一个账户,然后用这个账户启动从库代理,然后共享文件夹只给这个账户访问即可(注意,修改代理启动账户需要重启代理)

不过反正是新的从库,重启代理服务也是没有关系的。

如果共享失败请检查:

(1)共享功能

(2)共享程序

--构造测试主库test

createdatabasetest;

go

--在test库构造3个测试表test1/test2/test3

select1asidintotest..test1;

select2asidintotest..test2;

select3asidintotest..test3;

(1)全量备份

--全量备份

backupdatabasetesttodisk='D:\temp_bak\test.bak'withstats=10

(2)复制备份文件到从库

--复制主库test.bak文件到从库,这里随便找个文件夹即可,比如我选的就是D:\temp\目录

--以norecovery的方式还原到从库,为避免主从位置不同,必须以move参数来指定还原数据库的文件存放位置

restoredatabasetestfromdisk='D:\temp\test.bak'withnorecovery,replace

,move'test'to'D:\ProgramFiles\MSSQL1\MSSQL13.MSSQLSERVER\MSSQL\DATA\test.mdf'

,move'test_log'to'D:\ProgramFiles\MSSQL1\MSSQL13.MSSQLSERVER\MSSQL\DATA\test_log.ldf'

(3)核验

右击数据库=》刷新,如果出现了test数据库,并且是正在还原的情况,那么就成功了

(4)删除bak文件

操作完之后,为了保证安全,删除主库、从库上的test.bak文件,

把将此数据库启用为事务日志传送配置中的主数据库

我们设置备份目录为实现预设创建好的d:\temp_bak

这里因为是测试我们设置1分钟备份一次,到这里设置好之后,一路确定确定下去就好了。

确定,成功

核验一:作业

我们可以看到我们操作完成后,生成了2个作业

LSBackup_test以及LSAlert_WIN-MMFDQB29HJK,前者是备份作业,后者是报警作业,我们只需要查看备份作业是否存在就好了。

我们来看一下作业是否执行成功,是否是按我们设置的一分钟一次的频率在执行

看一下历史记录,真的是一分钟一次执行,且都执行成功了。

核验二:查看备份文件是否生成在我们指定的目录下

如下图,已经生成了,证明我们主库配置好了。

为什么要暂时禁用这个作业呢,因为我们现在还没配置复制备份到从库,也没有配置在从库还原,如果备份太多会导致从库落后比较多。

等我们全部都配置好了,再开启。

右击LSBackup_test作业=》禁用

我们之前已经手动初始化了,这里我们选择否,辅助数据库已经初始化

点击复制文件选项卡,然后复制文件的目标文件夹填写我们之前预设好的

点击计划=》我们设置和备份一样的频率,一分钟还原一次

一路点击确定=》保存配置信息成功

我们可以看到,从库产生了三个作业,如下图,前面三个作业就是

LSAlert_WIN-6BA1LAPNHHK:告警作业,我们用不上,忽略

LSCopy_WIN-MMFDQB29HJK_test:复制作业,因为本文我们是不停服操作,这个暂时没用上,所以避免浪费资源禁用。

我们下个步骤会在主库使用windows计划任务复制备份

LSRestore_WIN-MMFDQB29HJK_test:恢复作业,对指定文件夹中的事务日志备份进行顺序恢复。

如果有文件则它会还原,如果没有文件它有判定机制不做操作,但作业也会执行成功。

只有当发生还原实际错误的时候,或权限等访问错误的时候作业才会失败。

核验二:数据核验

这个整个都没弄好,见后面整天弄完了才能看到

<1>copyunc(不推荐)

Rem使用直接复制方式(不建议使用,因为如果主从没有相同的windows账户和密码,则无法免密直接访问UNC)echo%date%%time%1>>output.logreplace/ad:\temp_bak\*\\10.20.50.42\copy_file>>d:\dba_tools\output.log2>>d:\dba_tools\error.log<2>netuse(推荐)

Rem使用netuse方式(建议使用,只需要拥有从库账户权限即可)@echoofffor/l%%iin(1,1,6)do(dirz:|find/c"trn"iferrorlevel1(netusez:\\10.20.50.42\log_shipping\1433_17$GTRwxhi@A6f#!wQ/user:log_shipping)echo%date%%time%>>e:\dba_tools\output.logecho%date%%time%>>e:\dba_tools\error.logreplace/aE:\log_shipping_tran\*z:\>>e:\dba_tools\output.log2>>e:\dba_tools\error.logtimeout/T55/NOBREAK)

注意,如果目录、IP不同,脚本需要修改

打开任务计划程序

这里要使用管理员账户,由于我这里没有实际管理员密码,暂时先用这个管理组角色测试

我们新建一个触发器,然后设置策略为每天执行一次,一次运行持续一天,且每5分钟执行一次该任务中的操作。

把我们的脚本路径输入进去。

这个无需怎么修改,注意一下电源那里的复选框即可

好,到现在都配置好了,我们点击确定。

右击=》运行

然后我们可以去我们的脚本所在目录看日志,如下图,没有错误信息且输出日志中告诉了我们添加了日志

这就算运行成功了,但还需实际核验文件到底有没有传输过去

登上从库10.20.50.42,我们发现,已经传到这个目录上来了。

IP/URL/名称

主库服务器

Copy_tranBak_file

Windows计划任务

调用bat复制备份文件到从库

LSBackup_test

数据库作业

test库事务日志备份/1分钟1次,备份到d:\temp_bak

LSRestore_WIN-MMFDQB29HJK_test

之前我们停了主库的LSBackup_test,主库所在服务器的计划任务copy_tranBak_file

我们现在都启动起来

在主库上执行:

selectgetdate()

select4asidintotest..test4

select5asidintotest..test5

select6asidintotest..test6

5分+3秒+10秒+1分钟(这一分钟是可能文件传过来之前正好运行了一次还原操作,导致错过需要再等一秒)

我等了5分多种(没有实时一直等候),查看数据,表已经同步过去了。

到此,大功告成

SELECT'CREATELOGIN['+p.name+']'+CASEWHENp.typeIN('U','G')THEN'FROMwindows'ELSE''END+'WITH'+CASEWHENp.type='S'THEN'password='+master.sys.fn_varbintohexstr(l.password_hash)+'hashed,'+'sid='+master.sys.fn_varbintohexstr(l.sid)+',check_expiration='+CASEWHENl.is_expiration_checked>0THEN'ON,'ELSE'OFF,'END+'check_policy='+CASEWHENl.is_policy_checked>0THEN'ON,'ELSE'OFF,'END+CASEWHENl.credential_id>0THEN'credential='+c.name+','ELSE''ENDELSE''END+'default_database='+p.default_database_name+CASEWHENLEN(p.default_language_name)>0THEN',default_language='+p.default_language_nameELSE''ENDFROMsys.server_principalspLEFTJOINsys.sql_loginslONp.principal_id=l.principal_idLEFTJOINsys.credentialscONl.credential_id=c.credential_idWHEREp.typeIN('S','U','G')ANDp.nameNOTIN('sa')ANDp.nameNOTLIKE'%##%'ANDp.nameNOTLIKE'%NTSERVICE%'ANDp.nameNOTLIKE'%NTAUTHORITY%'

log_shipping_monitor_alert

存储警报作业ID。仅当尚未配置远程监视服务器时,主服务器上才会使用此表。

log_shipping_monitor_error_detail

存储与此主服务器关联的日志传送作业的错误详细信息。

log_shipping_monitor_history_detail

存储与此主服务器关联的日志传送作业的历史记录详细信息。

log_shipping_monitor_primary

存储一条此主数据库的监视记录。

log_shipping_primary_databases

包含指定服务器上主数据库的配置信息。每个主数据库存储一行。

log_shipping_primary_secondaries

将主数据库映射到辅助数据库。

存储过程

sp_add_log_shipping_primary_database

设置日志传送配置(包括备份作业、本地监视记录及远程监视记录)的主数据库。

sp_add_log_shipping_primary_secondary

向现有的主数据库添加辅助数据库名称。

sp_change_log_shipping_primary_database

更改主数据库设置,包括本地和远程监视记录。

sp_cleanup_log_shipping_history

根据保持期清除本地历史记录及监视器上的历史记录。

sp_delete_log_shipping_primary_database

删除主数据库的日志传送,包括备份作业以及本地和远程历史记录。

sp_delete_log_shipping_primary_secondary

从主数据库中删除辅助数据库名称。

sp_help_log_shipping_primary_database

检索主数据库设置并显示log_shipping_primary_databases和log_shipping_monitor_primary表中的值。

sp_help_log_shipping_primary_secondary

检索主数据库的辅助数据库名称。

sp_refresh_log_shipping_monitor

利用指定的日志传送代理的最新信息刷新监视器。

存储警报作业ID。仅当尚未配置远程监视服务器时,辅助服务器上才会使用此表。

存储与此辅助服务器关联的日志传送作业的错误详细信息。

存储与此辅助服务器关联的日志传送作业的历史记录详细信息。

log_shipping_monitor_secondary

存储与此辅助服务器关联的辅助数据库监视记录。每个辅助数据库存储一条监视记录。

log_shipping_secondary

包含指定服务器上辅助数据库的配置信息。每个辅助ID存储一行。

log_shipping_secondary_databases

存储指定辅助数据库的配置信息。每个辅助数据库存储一行。

备注

与指定主数据库位于同一个辅助服务器上的辅助数据库共享log_shipping_secondary表中的设置。如果一个辅助数据库更改了共享设置,所有辅助数据库的设置都将更改。

sp_add_log_shipping_secondary_database

设置用于日志传送的辅助数据库。

sp_add_log_shipping_secondary_primary

为指定的主数据库设置主服务器信息,添加本地和远程监视器链接,并在辅助服务器上创建复制作业和还原作业。

sp_change_log_shipping_secondary_database

更改辅助数据库设置,包括本地和远程监视记录。

sp_change_log_shipping_secondary_primary

更改辅助数据库设置,例如源目录、目标目录和文件保持期。

sp_delete_log_shipping_secondary_database

删除辅助数据库、本地历史记录和远程历史记录。

sp_delete_log_shipping_secondary_primary

从辅助服务器上删除有关指定的主服务器的信息。

sp_help_log_shipping_secondary_database

从log_shipping_secondary、log_shipping_secondary_databases和log_shipping_monitor_secondary表中检索辅助数据库设置。

sp_help_log_shipping_secondary_primary

此存储过程将在辅助服务器上检索给定的主数据库的设置。

存储警报作业ID。

存储日志传送作业的错误详细信息。

存储日志传送作业的历史记录详细信息。

存储与此监视服务器关联的主数据库的监视记录。每个主数据库存储一条监视记录。

存储与此监视服务器关联的辅助数据库的监视记录。每个辅助数据库存储一条监视记录。

sp_add_log_shipping_alert_job

如果尚未创建日志传送警报作业,则创建它。

sp_delete_log_shipping_alert_job

如果没有关联的主数据库,则删除日志传送警报作业。

sp_help_log_shipping_alert_job

返回警报作业的作业ID。

sp_help_log_shipping_monitor_primary

从log_shipping_monitor_primary表中返回指定的主数据库的监视记录。

sp_help_log_shipping_monitor_secondary

从log_shipping_monitor_secondary表中返回指定的辅助数据库的监视记录。

THE END
1.爱妻惨死大侠意志消沉,一声不响离开了众人,老板娘起来一看慌了爱妻惨死大侠意志消沉,一声不响离开了众人,老板娘起来一看慌了2020-01-25 14:52:26 看剧官 举报 0 分享至 0:00 / 0:00 速度 洗脑循环 Error: Hls is not supported. 视频加载失败 看剧官 1242粉丝 将最好看的影视剧分享给大家 01:26 儿媳满心欢喜做好的汤菜,哪料婆婆见后当场摔烂锅,众人...https://www.163.com/v/video/VU2QI92II.html
2.三国志战棋版七级地多少级能打7级地守军难度排名三国志战棋版七级地多少级能打?不少玩家可能还不太清楚游戏中7级地的守军难度排名。下面带来具体的介绍,供各位玩家们参考。 7级地守军难度排名 【七级地开荒门槛】 ?推荐武将等级:35级 ?推荐自身战法等级:10级 ?携带第二战法等级:7级 ?携带第三战法等级:5级 ...https://www.doyo.cn/article/510558
1.大侠立志传陆剑南宠物在哪里大侠立志传陆剑南宠物位置《大侠立志传》陆剑南宠物在哪里? 大侠立志传新版本加入了唐太君、唐婉儿、陆剑南三名npc,其中陆剑南是可邀请角色,另外他还有一个宠物雪豹,有些玩家没找到,不妨参考下文中的路线。 大侠立志传陆剑南宠物位置 找雪豹的路线 大梁拍卖会→齐王府门卫→齐王府亭子...https://gl.ali213.net/html/2023-12/1275239.html
2.原神2.6版本新增成就有哪些2.6版本新增成就一览12、《层岩巨渊矿产志》 阅读层岩巨渊矿产相关书籍的全部断章。 13、生命之谷的居民 寻得干枯的种子,而且没有贸然吃掉它。 14、CREDE TENEBRAE 打开遗迹中的密室。 15、9文字之传言 找到所有密文。 16、狡兔之窟发现盗宝团的藏宝。17、又,又,又中大奖了! https://app.3dmgame.com/mip/gl/385189.html
3.diabetes影响因子2017下面图表中,第一列“排名”是该杂志2017年影响因子的排名,第二列杂志名,第三列为2017年影响因子,第四列是截至2018年1月12日,该杂志的及时影响因子,第五列的是及时影响因子乘以1.1后估算的2018年影响因子。 1. Nature、Science、Cell主刊比较 三个杂志的影响因子相对平稳,变化不大,Cell从31分上升到36分(乘以1....https://blog.csdn.net/weixin_28717611/article/details/112404702
4.大侠立志传宠物怎么选大侠立志传宠物选择攻略游戏攻略大侠立志传中,宠物种类繁多,选择合适的宠物搭配可以大幅提升角色实力。那么,哪些宠物才是最值得拥有的呢?php小编子墨为大家整理了大侠立志传宠物榜单,揭秘哪些宠物具有强大的能力和独特的天赋。本文将深入分析宠物的各项属性、技能和特性,并提供最优搭配建议。 https://m.php.cn/faq/1023609.html