当前位置: 首页>后端>正文

sqlite3 放在共享内存会消耗IO吗 sql数据库如何共享

sqlserver对等发布,将两个或多个数据库进行实施同步,主要功能:

比如 db_a 和 db_b ,

1、db_a上的crud,db_b也会同步操作,反之亦然;

2、其中一个数据库当机重启以后,也能同步另一个数据库在当机期间的操作。

 

以下是准备工作,请严格参考每一个步骤:

 

1、两台服务器:HK1 和 HK2,必须在同一个局域网中。

  1)我是通过一个电脑上的两个虚拟机来实现的,系统是 win7 64,虚拟机中,网络连接模式需要设置为桥接模式

sqlite3 放在共享内存会消耗IO吗 sql数据库如何共享,sqlite3 放在共享内存会消耗IO吗 sql数据库如何共享_sql,第1张

  

sqlite3 放在共享内存会消耗IO吗 sql数据库如何共享,sqlite3 放在共享内存会消耗IO吗 sql数据库如何共享_sql_02,第2张

  2)HK1 和 HK2 除了相互能ping通,还必须保证在网络中可以看到相互的计算机名。

sqlite3 放在共享内存会消耗IO吗 sql数据库如何共享,sqlite3 放在共享内存会消耗IO吗 sql数据库如何共享_数据库_03,第3张

 

  3) 如非必要,不建议更改计算机名。

 

2、HK1 和 HK2 分别设置管理员账户密码,建议使用系统默认的 administrator 帐号。

  1)非必要,不建议使用其他的管理员账户;

  2)给 administrator 设置密码后,如有需要,可以设置为开机自动登录(首先同时按下“Windows+R”快捷键调出运行命令窗口,然后在窗口中输入“control userpasswords2”后回车,取消勾选 必须使用账户密码登录系统,点应用,在弹出的对话框里输入默认的账户和密码即可。)

sqlite3 放在共享内存会消耗IO吗 sql数据库如何共享,sqlite3 放在共享内存会消耗IO吗 sql数据库如何共享_服务器_04,第4张

 

  3)建议关闭账户密码策略(非必须),操作位置如下图。

sqlite3 放在共享内存会消耗IO吗 sql数据库如何共享,sqlite3 放在共享内存会消耗IO吗 sql数据库如何共享_数据库_05,第5张

 

 

3、HK1 和 HK2 分别安装sqlserver(对应 sql_a  和 sql_b),版本要求sqlserver2005企业版以上的版本,我用的是 2014企业版,如果版本不支持,在发布数据库的时候,会有提示。

  1)安装的时候,登录模式选择混合模式,并给sa设置一个至少6位的密码,建议给  sql_a  和 sql_b 设置相同的 sa 密码。

  2)如果修改过计算机名,请确认 安装后的 sqlserver,主机服务器名,是否和当前的计算机名一致。

    select @@servername   查看服务器名是否和现在服务器名一致

    不一致执行:     

    sp_dropserver '旧服务器名'

    sp_addserver '新服务器名','LOCAL'

 

表结构必须相同,数据也必须相同,否则在对等同步时,主键会出现错误导致同步失败。

  1)数据表必须要有主键

    如果数据表中没有主键,如果没有的话,可以通过以下命令,批量生成 设置主键 的脚本命令:

SELECT 'alter table ' + TABLE_NAME + ' add constraint PK_'+TABLE_NAME +'_'+ COLUMN_NAME +

'   primary key ('+COLUMN_NAME+') ;'
         FROM INFORMATION_SCHEMA.COLUMNS
                  WHERE COLUMN_NAME='keyId' order by TABLE_NAME;

    生成以后,复制粘贴再执行。

  2)附加数据库时,请修改 被附加文件 的操作权限,增加 everyone ,完全控制

sqlite3 放在共享内存会消耗IO吗 sql数据库如何共享,sqlite3 放在共享内存会消耗IO吗 sql数据库如何共享_数据库_06,第6张

 

  

3)如果是附加的数据库,请检查数据库 dbo 的登录名是否是sa,如下图:

sqlite3 放在共享内存会消耗IO吗 sql数据库如何共享,sqlite3 放在共享内存会消耗IO吗 sql数据库如何共享_服务器_07,第7张

 

   如果不是sa,使用以下脚本修改:  

  USE [CDYTSS_Y]
  GO
  EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
  GO

 

 

 

  5、开启 sql server 代理

 

  1)打开 sql server 配置管理器,选中 sql server 服务,双击右侧 sql server 代理,选择 开始设置过密码 的管理员账户,并输入密码,点应用,弹出窗口别关,看下一步

  

sqlite3 放在共享内存会消耗IO吗 sql数据库如何共享,sqlite3 放在共享内存会消耗IO吗 sql数据库如何共享_服务器_08,第8张

 

  2)打开弹出窗口的第二个选项卡,服务,把启动模式改为自动:

  

sqlite3 放在共享内存会消耗IO吗 sql数据库如何共享,sqlite3 放在共享内存会消耗IO吗 sql数据库如何共享_sql_09,第9张

 

 

 

请注意,以上操作,在 HK1 和 HK2,或者在 sql_a  和 sql_b ,都需要进行操作,并且是相同的操作。

准备工作已完成,下一节详细介绍如何配置。

 




https://www.xamrdz.com/backend/3az1925820.html

相关文章: