新足迹

 找回密码
 注册

精华好帖回顾

· 2022雪季更新, 给平淡的生活添点颜色,学滑雪十天,从入门到蓝道. (2019-9-18) Sydneier · 笑忘书——亲子关系和爸爸参与教育——完结 (2018-10-29) 小小白虎
· 我的“自白” (2008-9-22) 着我青衣永飘零 · 80年代经典电视译制片之三 (2008-11-4) zmzhu
Advertisement
Advertisement
查看: 4269|回复: 33

月亮女神在不?? [复制链接]

头像被屏蔽

禁止发言

发表于 2011-2-2 08:19 |显示全部楼层
此文章由 澳贼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 澳贼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
啥 sql statement to check who and when the rows of a table were deleted?
Advertisement
Advertisement

参与宝库编辑功臣

发表于 2011-2-2 08:25 |显示全部楼层
此文章由 bffbffbff 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bffbffbff 所有!转贴必须注明作者、出处和本声明,并保持内容完整
, 女神
你用的什么版本数据库? 2008或者更新的不知道,反正2005或者更老的好像没法查,除非你们有 自己的audit table记录table的更新历史,不过那些table要带trigger。

评分

参与人数 1积分 +3 收起 理由
澳贼 + 3 谢谢,死心了

查看全部评分

永远的junior programmer

发表于 2011-2-2 08:26 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整

评分

参与人数 1积分 +3 收起 理由
澳贼 + 3 谢谢,死心了

查看全部评分

退役斑竹

发表于 2011-2-2 08:29 |显示全部楼层
此文章由 月亮 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 月亮 所有!转贴必须注明作者、出处和本声明,并保持内容完整
没法查,除非之前写过trigger

评分

参与人数 1积分 +3 收起 理由
澳贼 + 3 你要分有用么?

查看全部评分

发表于 2011-2-2 08:49 |显示全部楼层
此文章由 findcaiyzh 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 findcaiyzh 所有!转贴必须注明作者、出处和本声明,并保持内容完整
transaction log里应该有吧。
不过从transaction log里恢复删除时的语句比较麻烦,反正我是我不会。

我用过Apex SQL log的试用版(买的话要一千美元左右),是可以查到的,当然前提是transaction log没有被truncated.

http://www.apexsql.com/sql_tools_log.aspx

发表于 2011-2-2 09:02 |显示全部楼层
此文章由 北风 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 北风 所有!转贴必须注明作者、出处和本声明,并保持内容完整
如果想恢复的话有办法,不过你得知道什么时候它还没被删除
光想知道什么时候谁改的,好像没办法
Advertisement
Advertisement

特殊贡献奖章

发表于 2011-2-2 09:06 |显示全部楼层
此文章由 kr2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kr2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
澳贼,谁让你背黑锅了?

参与宝库编辑功臣

发表于 2011-2-2 09:11 |显示全部楼层
此文章由 bffbffbff 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bffbffbff 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 kr2000 于 2011-2-2 10:06 发表
澳贼,谁让你背黑锅了?


ms他的数据被黑了
永远的junior programmer

发表于 2011-2-2 09:17 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
We are using SQL audit (2008)
We are able to track user / time / action (delete / update / insert)

To do further you can use CDC (not realy sure)

评分

参与人数 1积分 +3 收起 理由
bffbffbff + 3 谢谢奉献

查看全部评分

发表于 2011-2-2 09:26 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
But for delete, we do not allow anybody to delete production data, even the admin account.

发表于 2011-2-2 11:05 |显示全部楼层
此文章由 uowzd01 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 uowzd01 所有!转贴必须注明作者、出处和本声明,并保持内容完整
prodution的data不应当删除,mark一下就可以了
Advertisement
Advertisement
头像被屏蔽

禁止发言

发表于 2011-2-2 11:15 |显示全部楼层

谢谢楼上各位。是前人的一个SSIS packag 造成的。

此文章由 澳贼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 澳贼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
先delete 了 一个表里的全部数据,然后load data from files, then fill in all tables.

所以会出现暂时无数据的情况。

各位高手都是怎么解决这种情况的??是不是该先把新数据load到一个tempTable,然后再delete * from tableA,  然后再
insert into tableA select *
   from tempTable
签名被屏蔽
头像被屏蔽

禁止发言

发表于 2011-2-2 11:19 |显示全部楼层
此文章由 澳贼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 澳贼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 于 2011-2-2 10:17 发表
We are using SQL audit (2008)
We are able to track user / time / action (delete / update / insert)

To do further you can use CDC (not realy sure)


2008 以前没有 auditing 吧?
签名被屏蔽

退役斑竹

发表于 2011-2-2 11:23 |显示全部楼层
此文章由 月亮 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 月亮 所有!转贴必须注明作者、出处和本声明,并保持内容完整
如果只是copy大量数据,SSIS pkg一般都先delete然后再load,因为没必要多一道temp table,如果fail了,系统会自动发邮件给DBA或者其他负责的人(一般都会这么设定),只要手动再运行一次就可以了。
头像被屏蔽

禁止发言

发表于 2011-2-2 11:33 |显示全部楼层
此文章由 澳贼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 澳贼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 月亮 于 2011-2-2 12:23 发表
如果只是copy大量数据,SSIS pkg一般都先delete然后再load,因为没必要多一道temp table,如果fail了,系统会自动发邮件给DBA或者其他负责的人(一般都会这么设定),只要手动再运行一次就可以了。


那就会有这问题。loading的时候,table 是空的。 poor design
签名被屏蔽

发表于 2011-2-2 11:42 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Should run SSIS package overnight only?  (or make sure nobody accessing?)
Advertisement
Advertisement

退役斑竹

发表于 2011-2-2 11:43 |显示全部楼层
此文章由 月亮 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 月亮 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 于 2011-2-2 12:42 发表
Should run SSIS package overnight only?  (or make sure nobody accessing?)


应该都是midnight的时候运行的,可能是fail了,所以第二天table里面什么都没有,以为被人删了
头像被屏蔽

禁止发言

发表于 2011-2-2 11:44 |显示全部楼层
此文章由 澳贼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 澳贼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 于 2011-2-2 12:42 发表
Should run SSIS package overnight only?  (or make sure nobody accessing?)


问题是有的程序24小时都有人用。
签名被屏蔽

发表于 2011-2-2 11:55 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
To avoid "empty data to the user", I think you may change the isolation level of the table( or add hints to the delete command)
When the SSIS starts to truncate (or delete) the table, the table is locked, then no users are allowed to access the table,
头像被屏蔽

禁止发言

发表于 2011-2-2 12:12 |显示全部楼层
此文章由 澳贼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 澳贼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 于 2011-2-2 12:55 发表
To avoid "empty data to the user", I think you may change the isolation level of the table( or add hints to the delete command)
When the SSIS starts to truncate (or delete) the table, the table is loc ...


‘no users are allowed to access the table’ ?? 这个设计也太野蛮了吧??
签名被屏蔽

发表于 2011-2-2 12:25 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 澳贼 于 2011-2-2 12:12 发表


‘no users are allowed to access the table’ ?? 这个设计也太野蛮了吧??


Actually it's waiting.
When the table is locked by your hints, other users need to wait for the lock to be released. It may be only few seconds waiting(Assume your SSIS is fast enough)
Advertisement
Advertisement
头像被屏蔽

禁止发言

发表于 2011-2-2 12:54 |显示全部楼层
此文章由 澳贼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 澳贼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 于 2011-2-2 13:25 发表


Actually it's waiting.
When the table is locked by your hints, other users need to wait for the lock to be released. It may be only few seconds waiting(Assume your SSIS is fast enough)


要是几秒钟,我能发现问题么?? 因为这个SSIS太复杂了。load的时候,要validate很多数据。每次运行5-10分钟。
签名被屏蔽

发表于 2011-2-2 13:34 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
For this case,
The lock only happens after you issued the "delete" command, nothing to do with validation or calculation.

I am not trying to convince you, just some sort of silly ideas
头像被屏蔽

禁止发言

发表于 2011-2-2 13:53 |显示全部楼层
此文章由 澳贼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 澳贼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 于 2011-2-2 14:34 发表
For this case,
The lock only happens after you issued the "delete" command, nothing to do with validation or calculation.

I am not trying to convince you, just some sort of silly ideas


"after you issued the "delete" command," 才会load.一些不合格的data要在后面过滤掉,你的明白?
签名被屏蔽

发表于 2011-2-2 14:33 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 澳贼 于 2011-2-2 13:53 发表


"after you issued the "delete" command," 才会load.一些不合格的data要在后面过滤掉,你的明白?

Now 明白
your original thought of  temp-table may be better.
Anyway, it's a bad solution to run SSIS to the production DB withouth lock_out users.

评分

参与人数 2积分 +9 收起 理由
澳贼 + 4 补上了
乱码 + 5 帮澳贼加的~~

查看全部评分

头像被屏蔽

禁止发言

发表于 2011-2-2 14:58 |显示全部楼层
此文章由 澳贼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 澳贼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 于 2011-2-2 15:33 发表

Now 明白
your original thought of  temp-table may be better.
Anyway, it's a bad solution to run SSIS to the production DB withouth lock_out users.


谢谢.经验之谈,我以后多注意.今天分都光了.改日补上
签名被屏蔽
Advertisement
Advertisement
头像被屏蔽

禁止发言

发表于 2021-7-20 17:01 |显示全部楼层
此文章由 澳贼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 澳贼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
十年了

发表于 2021-7-20 17:17 |显示全部楼层
此文章由 stoneage 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 stoneage 所有!转贴必须注明作者、出处和本声明,并保持内容完整
女神还没老!

发表于 2021-7-20 17:18 |显示全部楼层
此文章由 swe 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 swe 所有!转贴必须注明作者、出处和本声明,并保持内容完整
金瓶梅读完了吗
头像被屏蔽

禁止发言

发表于 2021-7-27 18:19 |显示全部楼层
此文章由 澳贼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 澳贼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
stoneage 发表于 2021-7-20 17:17
女神还没老!

不能老
签名被屏蔽

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部