SQLSERVER2000中执行的SQL语句记录在哪的?

jayqian 2004-04-13 04:48:54
现在的问题是有两台数据库服务器,一样的数据库
我想其中一台记录下当天所有执行的除select以外的SQL,存到文件,然后每天定时把这个文件传给另一台服务器上去执行一遍,可能我说的不太明白,如果有人碰到过这种问题有好的解决方法请告知
(分8够再加,谢谢)
...全文
1550 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
yzssg 2004-04-14
  • 打赏
  • 举报
回复
在sql server里所有的操作都会记录到日志里,这样可以回滚,但像truncate这样的语句不会把记录保存的
jayqian 2004-04-14
  • 打赏
  • 举报
回复
谢谢大家给了很多意见,不过现在存在的问题是两台服务器不是一直联网的,一台是托管的(主),一台是局域网的(子),子每天定时联网,而且网络可能不是太好,所以用SQL内部的怕出问题,占用数据量肯定大,所以我人为比较好的办法就把这台数据库今天执行的SQL记成文件,传一个1M左右的TXT文件是最省时省力的,但我程序里用的hibernate,所以无法记录操作的SQL,我想知道SQLSERVER里如何记录当天执行的SQL
zjcxc 元老 2004-04-13
  • 打赏
  • 举报
回复
使用数据库维护计划向导配置日志传送
若要很容易地配置日志传送,请使用数据库维护计划向导。利用此向导您将可以:

定义日志生成频率、备份与还原操作之间的时间以及什么时候目的服务器与源服务器异步。


注册任何新的服务器。


在所有目的服务器上创建源数据库。在通过数据库维护计划向导添加目的数据库时,可以选择在目的服务器上创建数据库或使用现有数据库。在为日志传送配置数据库之前,任何现有数据库必须为备用模式。


指定哪台目的服务器可以采用源服务器角色。


设置还原延迟。还原延迟定义还原事务日志前必须等待的时间。如果源服务器出现故障,该延迟将为损坏的日志被还原到目的服务器上之前提供额外时间。


创建调度来设置备份调度。
在使用数据库维护计划向导之前,需要考虑下列事项:

配置日志传送的用户必须是 sysadmin 服务器角色成员,以便有权修改要进行日志传送的数据库。


一次只能在一个数据库上配置日志传送。如果选择的数据库不止一个,向导上的日志传送选项将禁用。


用于启动 MSSQLServer 和 SQLServerAgent 服务的登录必须能够访问日志传送计划作业、源服务器和目的服务器。


当使用数据库维护计划向导配置日志传送时,只能将日志传送到磁盘。备份到磁带选项不可用。
手工配置日志传送
如果在运行 SQL Server 7.0 Service Pack 2 (SP2) 的计算机上启用挂起升级选项,则 SQL Server 2000 支持从 SP2 事务日志手工传送日志。

若要启用此选项,请执行下列代码:

EXEC sp_dboption 'database name', 'pending upgrade', 'true'

但是,当在传送日志后还原数据库时,只能使用 NORECOVERY 选项恢复数据库。



说明 在运行 SP2 的计算机和运行 SQL Server 2000 实例的计算机之间手工配置日志传送时,不能使用 SQL Server 复制。


有关更多信息,请参见 SP2 文档。

配置日志传送

企业管理器

如何配置日志传送(企业管理器)
新增信息 - SQL Server 2000 SP3。

使用数据库维护计划向导配置日志传送



说明 在配置日志传送之前,必须在主数据库上创建一个共享以使事务日志可用。这是从事务日志转储目录创建的共享。例如,如果将日志转储到目录 e:\data\tlogs\,则可以从该目录创建 \\logshipping\tlogs 共享。

在"选择数据库"屏幕上,选择"如下数据库"复选框,然后选择要进行日志传送的数据库。
如果选择了多个数据库,则不会执行日志传送,日志传送选项也不可用。不允许选择已配置了日志传送的数据库。

选择"将事务日志传送到其它的 SQL Server(日志传送)"复选框。


继续执行向导,指定其余的数据库维护选项,直到到达"指定日志传送目的"屏幕。


单击"添加"按钮添加目的数据库。
要使该选项可用,必须已经在向导的前面步骤中选择了使用日志传送。

在"添加目的数据库"屏幕中,选择一个服务器名。
该服务器必须已经注册,而且正在运行 Microsoft® SQL Server™ 2000 企业版,这样才能显示在下拉列表中。如果要使该目的成为可用的源数据库,必须选择“允许数据库采用主角色”复选框。如果该复选框未被选中,则该目的数据库将来就无法采用源数据库角色。如果已选定“允许数据库采用主角色”复选框,还必须在日志将要备份到的目的数据库中指定"事务日志备份目录"。

若要从默认位置更改事务日志目的数据库,请在"目录"框中输入一个位置。


如果源数据库不在目的数据库上,则选择"创建新数据库"复选框。
"数据库名称"框将默认为源数据库名。如果想要在目的服务器上用另一个数据库名,则指定一个新名称。如果已经选择了允许该目的数据库承担源角色,就无法从默认值改变该数据库的名称。

如果已经选择了"创建新数据库"复选框,则还必须在"用于数据"和"用于日志"框中指定目的数据库上数据和日志的文件目录。


如果源数据库已经存在于目的数据库上,则选择"使用现有数据库"复选框。如果目的服务器上的数据库名不同,则在"数据库名称"框中输入该名。该数据库必须是使用 WITH STANDBY 选项还原过的,以便正确接受日志。


在"初始化目的数据库"屏幕上,执行下列操作之一:
单击"立即提取完全数据库备份"。
–或-

单击"使用最新备份文件"以初始化目的数据库。
在"日志传送调度"屏幕上,查看默认的日志传送调度。如果要改变调度,请单击"更改"。


在"复制/装载的频率"框中,设置希望目的服务器从源服务器备份和还原事务日志的频率(以分钟计)。


在"装载延迟"框中,设置希望目的数据库从源服务器还原事务日志之前要等待的延迟(以分钟计)。
该框的默认值为 0 分钟,表示目的数据库应立即还原所有事务日志备份。

在"文件保持期"框中指定事务日志在删除之前应该存留的时间长度。


从"日志传送阈值"对话框中,设置"备份警报阈值"。
这是距离源服务器上一次事务日志备份时间的最长期限。一旦时间超过此指定阈值,监视服务器将生成警报。

在"不同步警报阈值"框中,指定源服务器上最近一次事务日志备份与目的服务器最近一次事务日志还原之间的时间。
一旦时间超过此指定阈值,监视服务器将生成警报。

在"指定日志传送监视器信息"屏幕中,键入将监视日志传送的服务器名称。


单击"使用 Windows 身份验证"或"使用 SQL Server 身份验证"连接到监视服务器。log_shipping_monitor_probe 登录名是固定的,必须使用它连接到监视服务器。如果这是一个新帐户,则选择一个新密码。如果该帐户已经存在于监视服务器上,则必须指定现有的密码。


安全说明 如果可能,请使用 Windows 身份验证。



说明 使用数据库维护向导设置日志传送,只可以向磁盘传送日志,而不能使用"备份到磁带"选项。


删除日志传送

企业管理器

如何删除日志传送(企业管理器)
删除日志传送

展开一个服务器组,然后展开一个主服务器。


展开管理,然后单击"数据库维护计划"。


在详细信息窗格中,右击要删除的数据库维护计划,然后单击"属性"。


单击"日志传送"选项卡,然后单击"删除日志传送"。
这可以停止主服务器上的日志传送,并删除所有辅助服务器以及监视服务器。必须删除数据库维护计划,才能删除附加的作业。
zjcxc 元老 2004-04-13
  • 打赏
  • 举报
回复
直接用日志传送来实现就行了:

日志传送
在 Microsoft® SQL Server™ 2000 企业版中,可以使用日志传送不间断地将事务日志从一个数据库提供给另一个。不间断地从源数据库中备份事务日志,然后将它们复制并还原到目的数据库,使目的数据库与源数据库保持同步。这使您得以有一台备用服务器,为将查询处理从主计算机(源服务器)卸载到只读目的服务器上提供了一条途径。日志传送使用的所有服务器上都必须安装 SQL Server 2000 企业版。

DigJim 2004-04-13
  • 打赏
  • 举报
回复
我覺得LogShipping比複製好很多!!
DigJim 2004-04-13
  • 打赏
  • 举报
回复
使用SQL Server的LogShipping功能完全可以達到這個要求!

progress99 2004-04-13
  • 打赏
  • 举报
回复
你的需求建議用:

利用数据库复制技术 实现数据同步更新
复制的概念
复制是将一组数据从一个数据源拷贝到多个数据源的技术,是将一份数据发布到多个存储站点上的有效方式。使用复制技术,用户可以将一份数据发布到多台服务器上,从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据。复制技术可以确保分布在不同地点的数据自动同步更新,从而保证数据的一致性。
SQL复制的基本元素包括
出版服务器、订阅服务器、分发服务器、出版物、文章
SQL复制的工作原理
SQL SERVER 主要采用出版物、订阅的方式来处理复制。源数据所在的服务器是出版服务器,负责发表数据。出版服务器把要发表的数据的所有改变情况的拷贝复制到分发服务器,分发服务器包含有一个分发数据库,可接收数据的所有改变,并保存这些改变,再把这些改变分发给订阅服务器
SQL SERVER复制技术类型
SQL SERVER提供了三种复制技术,分别是:
1、快照复制(呆会我们就使用这个)
2、事务复制
3、合并复制
只要把上面这些概念弄清楚了那么对复制也就有了一定的理解。接下来我们就一步一步来实现复制的步骤。
第一先来配置出版服务器
(1)选中指定[服务器]节点
(2)从[工具]下拉菜单的[复制]子菜单中选择[发布、订阅服务器和分发]命令
(3)系统弹出一个对话框点[下一步]然后看着提示一直操作到完成。
(4)当完成了出版服务器的设置以后系统会为该服务器的树形结构中添加一个复制监视器。同时也生成一个分发数据库(distribution)
第二创建出版物
(1)选中指定的服务器
(2)从[工具]菜单的[复制]子菜单中选择[创建和管理发布]命令。此时系统会弹出一个对话框
(3)选择要创建出版物的数据库,然后单击[创建发布]
(4)在[创建发布向导]的提示对话框中单击[下一步]系统就会弹出一个对话框。对话框上的内容是复制的三个类型。我们现在选第一个也就是默认的快照发布(其他两个大家可以去看看帮助)
(5)单击[下一步]系统要求指定可以订阅该发布的数据库服务器类型,SQLSERVER允许在不同的数据库如 ORACLE或ACCESS之间进行数据复制。但是在这里我们选择运行"SQL SERVER 2000"的数据库服务器
(6)单击[下一步]系统就弹出一个定义文章的对话框也就是选择要出版的表
(7)然后[下一步]直到操作完成。当完成出版物的创建后创建出版物的数据库也就变成了一个共享数据库。
第三设计订阅
(1)选中指定的订阅服务器
(2)从[工具]下拉菜单中选择[复制]子菜单的[请求订阅]
(3)按照单击[下一步]操作直到系统会提示检查SQL SERVER代理服务的运行状态,执行复制操作的前提条件是SQL SERVER代理服务必须已经启动。
(4)单击[完成]。完成订阅操作。
完成上面的步骤其实复制也就是成功了。但是如何来知道复制是否成功了呢?这里可以通过这种方法来快速看是否成功。展开出版服务器下面的复制——发布内容——右键发布内容——属性——击活——状态然后点立即运行代理程序接着点代理程序属性击活调度把调度设置为每一天发生,每一分钟,在0:00:00和23:59:59之间。接下来就是判断复制是否成功了打开C:\Program Files\Microsoft SQL Server\MSSQL\REPLDATA\unc\XIAOWANGZI_database_database下面看是不是有一些以时间做为文件名的文件夹差不多一分中就产生一个。要是你还不信的话就打开你的数据库看在订阅的服务器的指定订阅数据库下看是不是看到了你刚才所发布的表


/***************** 常见问题:权限问题

启动代理的域用户账号必须具有读取发布-分发服务器目录的权限
你用的账号没有读取\\ServerA\D$\Program Files\Microsoft SQL Server\MSSQL\repldata\unc\这个目录下的文件的权限。


启动代理的域用户账号必须具有读取发布-分发服务器目录的权限
----^^^^^^^^^^^^^^^在控制面板-->管理-->服务-->sqlagent-->属性里的那个启动用户



progress99 2004-04-13
  • 打赏
  • 举报
回复
SQL Profiler可記錄所有的操作

---
开始--程序--MS SQLSERVER
--事件探察器(SQL Profiler)
--文件
--新建
--设置跟踪的项目...
--然后数据库的调用情况就会显示出来
Rotaxe 2004-04-13
  • 打赏
  • 举报
回复
用复制不行吗?
ghostzxp 2004-04-13
  • 打赏
  • 举报
回复
只是一个想法!
备份今天的事务日志,再到另一个数据库利用事物日志进行恢复!
solidpanther 2004-04-13
  • 打赏
  • 举报
回复
我原来做的是每个表加上3种触发器,每个触发器都向建立的日志表里写入操作类型和操作的语句,然后远程服务器查询这个服务器的语句并执行
jiayongqiang 2004-04-13
  • 打赏
  • 举报
回复
这个还真没做过,现在看看。
xiangsu 2004-04-13
  • 打赏
  • 举报
回复
我來看看...

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧