• mysql同一台服务器上不同数据库中个别表内容同步


    >>>>>>soft_wsx>>>>>>
    --数据备份与还原>>同步备用服务器
    --1、完全备份主数据库
    --2、使用带SANDBY子句的RESTORE DATABASE语句从主数据库的完全备份中还原生成备用数据库
    --3、创建作业,使用BACKUP LOG定时对主数据库时行日志备份
    --4、创建作业,使用带STANDBY子句的RESTORE LOG语句定时从主数据库的日志备份中恢复数据到备用数据库
    --5、主数据库不可用时,使用带RECOVERY子句的RESTORE LOG语句使备用数据库升级为主数据库
    ----具体代码及说明如下
    ---->>首先、创建一个淙用的数据库(主数据库)
    create database db_test_primary
    on
    (
    name=db_test_primary_data,
    filename='d:db_test_primary_data.mdf')
    log on
    (
    name='db_test_primary_log',
    filename='d:db_test_primary_log.ldf'
    )
    go

    --在主数据库上创建表
    create TABLE db_test_primary.dbo.db_test_primary1(id int)
    insert db_test_primary.dbo.db_test_primary1 select top 1000 ID from dbo.sysobjects
    go
    --对主数据库进行备份
    backup database db_test_primary
    to disk='d:db_test_primary_data.bak'
    with format
    go

    --通过主数据库备份文件创建备用数据库(演示主数据库与这个备用数据库之间的同步)
    restore database db_test_second
    from disk='d:db_test_primary_data.bak'
    with replace,
    standby='d:db_test_primary_bak.ldf',
    move 'db_test_primary_data' to 'd:db_test_second_data.mdf',
    move 'db_test_primary_log' to 'd:db_test_second_log.ldf'

    --启动SQL AGENT服务(需要通过作业定时将主数据库同步到备用数据库)
    exec master.dbo.xp_cmdshell 'net start sqlserveragent',no_output
    go

    --创建主服务数据库与备用服务器数据库之间同步的作业
    declare @jobid uniqueidentifier
    exec msdb.dbo.sp_add_job
    @job_id=@jobid output,
    @job_name=N'数据同步'

    --创建同步处理步骤
    exec msdb.dbo.sp_add_jobstep
    @job_id=@jobid,
    @step_name=N'数据同步',
    @subsystem='TSQL',
    @command=N'
    --主数据库中进行日志备份
    backup log db_test_primary
    to disk=''d: est_log_primary.bak''
    with format

    --备用数据中还原主数据库的日志备份(应用主数据库中的最新变化)
    --注:实际应该对主数据库备份与备用数据库的还原作业应该分别在主服务器和备用服务器上建立,
    --并且备份文件应该放在主服务器和备用服务器都能访问的共享目录中
    restore log db_test_second
    from disk=''d: est_log_primary.bak''
    with standby=''d: est_log.ldf''',
    @retry_attempts=5,
    @retry_interval=5
    --创建调度
    exec msdb.dbo.sp_add_jobschedule
    @job_id=@jobid,
    @name='时间安排',
    @freq_TYPE=4,
    @freq_interval=1,
    @freq_subday_type=0x4,
    @freq_subday_interval=1

    --添加目录服务器
    exec msdb.dbo.sp_add_jobserver
    @job_ID=@jobid,
    @server_name=N'(local)'
    go
    --通过上述处理,主数据库与备用数据库之间的同步关系已经设置完成
    --下面开始测试是否能实现同步
    create table db_test_primary.dbo.db_test_primary3(id int)
    go
    insert db_test_primary.dbo.db_test_primary3 select top 5000 id from dbo.sysobjects
    waitfor delay '00:01:30'
    go

    --查询一下备用数据库,看看同步是否成功

    select * from db_test_second.dbo.db_test_primary3


    drop table db_test_primary.dbo.db_test_primary3


    --最后删除测试环境
    drop database msdb.dbo.sp_delete_job
    @job_name=N'数据同步'

  • 相关阅读:
    个人项目:Java实现WC
    第六篇Scrum冲刺博客
    java实现小学生四则运算
    实现wc部分功能 java
    WordCount作业修改
    我的过去、现在和未来
    WordCount
    Window 通过cmd查看端口占用、相应进程、杀死进程等的命令
    《《《在同一台服务器上配置多个Tomcat
    关于Android 5.x的低功耗蓝牙BLE开发简介
  • 原文地址:https://www.cnblogs.com/caozengling/p/5600471.html
Copyright © 2020-2023  润新知