求问我是不是犯了数据库某个基础错误。 - V2EX
ChangHaoWei

求问我是不是犯了数据库某个基础错误。

  •  1
     
  •   ChangHaoWei Sep 18, 2017 3908 views
    This topic created in 3174 days ago, the information mentioned may be changed or developed.

    我假想的应用场景是这样的。

    假设正在运行的产品修改的是 mongoDB 的 pro 数据库下的 page 表( collection )。

    现在数据出现某种错误,需要撤销。

    我想的操作是

    1. 停止产品的运行
    2. dumplicate page 表并命名为 page2
    3. 在 page2 上修复数据并测试
    4. page 更名为 page_old
    5. page2 更名为 page
    6. 启动产品的运行

    我的理由有

    1. 数据库不大,在复制的过程中消耗的时间是可接受的
    2. 产品代码不用再修改,保证了不会出现错误。
    3. 数据的修复过程可能会出现问题,这个时候至少有个备份。

    那么问题来了,这样的操作是不是犯了某个新手错误?先了。

    5 replies    2017-09-18 17:51:27 +08:00
    ChangHaoWei
        1
    ChangHaoWei  
    OP
       Sep 18, 2017
    顶一下,这个问题很急。。
    ChangHaoWei
        2
    ChangHaoWei  
    OP
       Sep 18, 2017
    环境是 单实例的 mongodb,不支持回滚操作的。。
    l00t
        3
    l00t  
       Sep 18, 2017
    我有一个问题啊,你说的在 page2 修改后进行测试,这个测试怎样进行呢?
    nullcc
        4
    nullcc  
       Sep 18, 2017   2
    1.停止产品的运行,光这点可能很多场景就无法接受了。可以尝试先备份一个库出来,在线下做测试,比如用这个备份库直接在内网进行测试,没毛病以后再去操作线上的数据。
    ChangHaoWei
        5
    ChangHaoWei  
    OP
       Sep 18, 2017
    @l00t 细节上的话和我主题没有太大关系,不过可以解释一下。。

    正常的项目 数据库的指向是写在配置或单独一个文件的,且测试环境和产品运行环境的配置信息是分开的。

    也就是说可以直接指向 page2 做试修复,并让测试环境指向这个表( collection )。测试通过后,再停止产品的运行,并重新备份 page,然后再操作。。这样保证了至少有个可以还原的数据。
    About     Help     Advertise     Blog     API     FAQ     Solana     2643 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 63ms UTC 15:45 PVG 23:45 LAX 08:45 JFK 11:45
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86