×

Loading...
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务

这是一个很好的问题。它要从SQL SERVER 的DB 和 LOG 的BACKUP 的关系上去说明。

1。"LOG能被HOLD多久",只要你的LOG 对应的 .ldf file足够大, 你的LOG想HOLD多久都可以。不过HOLD的时间越长,BACKUP 的时间也越长, COPY 和 RESTORE 的时间也越长
2。 做LOG SHIPPING 的时候一定要注意保持TRANSACTION LOG BACKUP 的 SEQUENCE. 什么意思呢? 就是说但LOG SHIPPING PROCESS 已经在做 LOG 的BACKUP的时候,你的平常的ROUTINE BACKUP就不要额外去做LOG BACKUP 了,否则会出现错误 : TRANSACTION LOG IS OUT OF SEQUENCE. 当然你如果一定要做,那一定要把你的维护计划所做的 LOG BACKUP 和 LOG SHIPPING 所作的放在一起,然后按次序SHIP 到SECONDARY SRV 上去RESTORE. LOG RESTORE 的时候次序一点不能错。
3。不过你平时做的DB 的BACKUP 不会影响 LOG SHIPPING 的进行
在LOG SHIPPING 已经允许的情况下,通常把LOG BACKUP(APPEND)到一个DEVICE上,这样如果出现问题, PRIMARY SERVER 需要那个LOG 来恢复,你只要找到那个DEVICE然后找到相信的LOG就可以了,否则BY DEFAULT, LOG SHIPPING 只保留当前的BACKUP,如果你要恢复到以前,就问题大了。

平时的BACKUP虽然只作DB部分,你也可以设置DIFFERENCIAL BACKUP 来弥补
Report

Replies, comments and Discussions:

  • 工作学习 / 专业技术讨论 / 请问专业人士SQL Server 和 Oracle相比较的问题. 现可能存2亿条记录, 是公司的一些基本信息, 如公司名, 地址等. Search的时候,两者的performance不会有区别吧? 另外两者的安全性相比较如何? 要在外面租Web Hosting. 多谢.
    • 我来抛砖引玉,班门弄斧了。MS SQL SERVER 和 Oracle都是关系型数据处理系统,都遵守SQL92标准又有所扩展。各自有不同的数据类型,函数,和程序结构。从数据库体系的角度来讲
      Oracle的数据库设计体系更为严谨,Oracle下各个processes,SGA,control files group,log files group,rollback segment临,temp segment,PL/SQL语言各个components共同工作,共同保障数据的完整性和一致性。Oracle数据库在稳定性和可靠性一直口碑不错。初始化参数的定制也可以使用户Oracle数据库在不同应用的需求下达到最佳性能配置。
      MS SQL SERVER同Window system一样,以良好的性能和功能强大的开发管理界面,优良的数据库接口,多样的开发工具都是其优势所在。在C/S架构下的软件体系中,SQL SERVER应该是软件开发商最多的选择。
      对于2亿条记录的这个问题,我不清楚你是指一个表中有这么多记录还是整个数据库中。但是Oracle和SQL SERVER应该都可以handle的住。至于performanece的问题,这个很大程度上还取决与数据库的设计,比如表结构,索引的建立,查询语句的结构,使用什么样的优化器和优化方式。如果有条件使用表分区的话,Oracle的性能绝对要优于SQL SERVER的性能。如果是对于web applications和web hosting的话,最流行的应该是SQL SERVER和MY SQL,Oracle价格比较昂贵,买Oracle做后台数据库处理系统的公司不多。
      • 应该说,硬件资源差得情况下,sql server性能估计要好些,sqlserver和sybase都是单进程,多线程。oracle应是多进程。一个表是难说点。
        • if partition/parallel feature is not supported/used, both of them use one thread/process to scan data for a SQL, when once sql request is submited. Even multiple request are submit, disk still the bottle neck
          • yes ...that is so true ....senior person are always on senior level.....
          • 请教一下SQL Srv 的DISK PARTITION(DP)和RAID5的关系:DP将1个表横跨N个裸盘,裸盘们并发读写速度快,可是一旦某个盘坏了,表就毁了.RAID5靠SQL以外的软件来管理裸盘,某个盘坏了没事.但SQL的DP是不是就在RAID5上没意义了?
            • if i was right ...SQL server does not support DISK PARTITION. A table crosses diskes could be defined by using tablespace. for sure disk failure could cause data lost.
              But with RAID5 feature . no data lost. Like senior ppl said. SQL server is one -thread DB. I don't think it is really matter for IO operation. In oracle, the mainly goal for crossing datafiles is to balance IO other than data safety.
              • now i know i was wrong....SQL SERVER with DISH partition feature....as a logical unit on Analysis Server. I just messed with Oracle Table Partition. SRY.
              • 谢谢. 算上ORA,如果RDBMS的磁盘并发是以牺牲安全(RAID5)为代价的,有点怕. 有没有兄弟真的在裸盘上建PARTITION? 而且管理起来也比较原始:比如一个PAR里的数据疯长,要超过裸盘大小时,还得手工加盘.//或者有更高级的裸盘可以不用RAID不怕坏.
                • 为什么说RAID5是牺牲安全呢?我觉得做RAID集是增加成本保证安全。看了看关于SQL PARTITION的文档,这个只是一个逻辑的分区概念,真正用来保障安全的还是在操作系统级。
                  原始方法:买硬盘,不断加数据文件,制定Backup策略,或者用DTS or JOBS 对数据做backup。数据库不backup,数据就是不安全的。
                  • 不用RAID5不安全;可用了RAID5,即将数据文件建立在RAID5上,数据库的PARTITION并发就用不上了,因为裸盘不归数据库直接管.RIGHT?
                    • 概念完全不对。
                      1。谈到RAID,不是只有RAID 5一种。从经济上考虑,RAID 5成本相对而言比较小,可是从PERFORMANCE来看,RAID 5对WRITING是有很大影响的。基本上,DATA: RAID 0+1; LOG: RAID 1; TEMPDB: RAID 1 ; BACKUP: RAID 5 OR RAID 1 都可以
                      2。 SQL SERVER从来只认LOGICAL DRIVE的。 它的PARTITION其实也是对LOGICAL DRIVE来实现的,不存在什么因为用了RAID就不能实现PARTITION的问题。现在的SQL SERVER系统,几乎没有单一PHYSICAL DRIVE来作LOGICAL DRIVE 的情况了。
                      3。 要实现SQL SERVER的PARTITION, 不是对HARD DRIVE CONFIGURATION 的要求,而是对DATABASE TABLE STRUCTURE 的要求。
                      4。DATABASE 的BACKUP 和HARDDRIVE的HIGH AVAILABLITY完全不是一回事情。前者无论怎么做,都可能出现数据的丢失,因为你的BACKUP PLAN 是有DELAY的。BACKUP 是为了RECOVERY, 但除非你及时做了TRANSACTION LOG的BACKUP, 否则你很难保证RECOVER 到任何一个时间点的。BACKUP 是任何DATABASE SYSTEM的基本要求,但它不能保证SYSTEM 的HIGH AVAILABILITY.要实现这个,除了硬件之外,还要通过诸如LOG SHIPPING, REPLICATION或者CLUSTERED来实现。
                      • 请问"DATA: RAID 0+1"是怎么回事?是把整个PARTITION的RAID0再给MIRROR起来吗?//我一直在讲基于RAID5的PARTITION并发没意义而不是实现不了. 我的理解对吗? xie!
                        • RAID 0+1就是STRIPPING + MIRRORING. 你所说的基于RAID5的PARTITION并发没意义而不是实现不了, 不正确。 RAID 5只是某种程度上是增加的READING的PERFORMANCE,和PARTITIONING不矛盾。
                          LOGICAL上的PARTITION是可以通过不同的DISK CONTROLLER来进行的,不仅可以提高READING,同时可以提高WRITING的PERFORMANCE。而且SQL2000的PARTITION还可以通过PARTITION VIEW的形式来实现的。这已经是CROSS SERVER的SCALE OUT SOLUTION了。
                          • 楼上的说得没错。RAID5是操作系统级别的,提高IO效率。PARTITION是数据库级别的,通过逻辑单元增强访问功能和效率。可以跨表,文件,分区,磁盘和服务器。
                            两者并不冲突。或者说他俩根本没什么关系。
                      • 请教,我想知道Log Shipping具体是怎么回事?只是导出Log传到另外的机器上再导入吗?可以在两个Site之间通过Log Shipping实现实时的数据同步吗?谢了
                        • LOG SHIPPING 是一种WARM STANDBY 的 database recovery solution. 之所以称其是WARM 而不是HOT STANDBY是因为在SWITCH 的时候,是有一定DELAY和人为介入的。
                          LOG SHIPPING 一般分为一下几个阶段: 1. BACKUP DATABASE OR LOG. 2. COPY THE BACKUP FILE OF DB OR LOG FROM THE PRIMARY TO SECONDARY
                          3. RESTORE THE DB OR LOG ON THE SECONDARY. LOG SHIPPING 必须首先BACKUP , COPY AND RESTORE THE DB, 然后才能联系不断的SHIP LOG. 如果因为某些原因这个 PROCESS FAIL 了,那一切必须从头做起(从新开始DB 的SHIPPING). 没有一个DRP 的SOLUTION(无论是LOG SHIPPING, REPLICATION 还是CLUSTER) 能够完全做到实时的,总是有一定的DELAY. 相比较REPLICATION 和CLUSTER而言, LOG SHIPPING 比较简单且容易实现。但缺点是SECONDAY的DB必须始终保持STANDBY , READ ONLY AND SINGLE USER, 否则DB 和 LOG无法RESTORE.

                          虽然相对简单,但LOG SHIPPING 我也是可以写出很大一个篇幅的东西的。这儿只能简单谈谈了。欢迎讨论。谢谢。
                          • 请教专家: LOG能被HOLD多久? 在HOLD的时候源SERVER能不能做数据库的BACKUP?我的实际情况是:在源SRV上的改动需要用户确认后才能PUSH到目的SRV.用户要是一懒或休假了就可能等2周,我每周的备份会不会影响LOG SHIP?谢!
                            • 这是一个很好的问题。它要从SQL SERVER 的DB 和 LOG 的BACKUP 的关系上去说明。
                              1。"LOG能被HOLD多久",只要你的LOG 对应的 .ldf file足够大, 你的LOG想HOLD多久都可以。不过HOLD的时间越长,BACKUP 的时间也越长, COPY 和 RESTORE 的时间也越长
                              2。 做LOG SHIPPING 的时候一定要注意保持TRANSACTION LOG BACKUP 的 SEQUENCE. 什么意思呢? 就是说但LOG SHIPPING PROCESS 已经在做 LOG 的BACKUP的时候,你的平常的ROUTINE BACKUP就不要额外去做LOG BACKUP 了,否则会出现错误 : TRANSACTION LOG IS OUT OF SEQUENCE. 当然你如果一定要做,那一定要把你的维护计划所做的 LOG BACKUP 和 LOG SHIPPING 所作的放在一起,然后按次序SHIP 到SECONDARY SRV 上去RESTORE. LOG RESTORE 的时候次序一点不能错。
                              3。不过你平时做的DB 的BACKUP 不会影响 LOG SHIPPING 的进行
                              在LOG SHIPPING 已经允许的情况下,通常把LOG BACKUP(APPEND)到一个DEVICE上,这样如果出现问题, PRIMARY SERVER 需要那个LOG 来恢复,你只要找到那个DEVICE然后找到相信的LOG就可以了,否则BY DEFAULT, LOG SHIPPING 只保留当前的BACKUP,如果你要恢复到以前,就问题大了。

                              平时的BACKUP虽然只作DB部分,你也可以设置DIFFERENCIAL BACKUP 来弥补
                              • 多谢RAYMOND细致,浅显的讲解.
                                • ai...mei ren xie wo ...tong ren bu tong ming a
                                  • 当然也要谢谢硬老师啦.您们都是专科医生,我是自学成才的实习赤脚医生.以后有比较难的病例REFER给您可不要不收新病人哟.
                                  • 也谢谢你
                          • 多谢Ray的讲解。明白很多了。
    • 忘了回答安全性了,从数据库系统的角度来说,安全性应该是相当的。但如果加上操作系统的安全性的话,MS SQL SERVER+Windows < Unix (Linux) + Oracle.
      当然,这个也是相对的,象root/12345 ,system/manager这种密码安全性肯定是不高的啦。
      • 偶们公司的密码,你怎么知道的?lol:
        • 真的啊,你们公司IP多少,Instance啥名,我看看里面有什么宝贝。
    • oracle may have 15% overhead on disk space when store the value.
    • 2亿条的表估计能有40G. 如果只在某一列上建索引的话,ORACLE的BITMAP INDEX 占的空间比SQL SERVER的NON-CLUSTER INDEX小得多.性能要好.
      • SQL的实时恢复是假的,备份了才能恢复.ORACLE 可以根据日志实时恢复.
      • there are certain requiremnt for bitmap index: the value of the column only has few unique value, like: sex, age. if the value is like name, primary id... bitmap index perfromance is bad.
        • You right senior. Could you please comment my relay #2379698 in your "Million Dollor" post? . I am exciting to consult so many experienced seniors here and I'd say really sorry to LZ for distracting the topic. Thanks!