• 关于 中小企业小程序模式多端登录 的搜索结果

回答

能力地图,让你的小程序拥有灵魂 开放能力,是支付宝开放平台为满足开发者不同的业务需求,将支付宝的一些功能 以接口(API)的形式开放出来;开发者通过这些开放的接口与支付宝服务端(也 有部分是支付宝客户端)进行交互,实现业务逻辑。 举个例子,假设你是老王,你开发的小程序是用来卖瓜的。那你要让你的用户在你 的小程序内花钱买你的瓜,这样你就要接入“小程序支付”能力;你要在小程序内 营销你的瓜,那么就录个带货的视频吧,那么就要使用“小程序视频播放”能力。 总之,你需要贴合你的小程业务需求,不断地“武装”你的小程序。而开放能力也 是你的“军火库”,为你提供源源不断的业务支持。 目前,小程序提供如下的开放能力,这些能力构成了一张“能力地图”。根据这张 地图,你的小程序可以走出自己的路。 随着业务的不断发展,“能力地图”的版图会越来越大,为开发者提供更多福利。 点击进入 能力中心 PC 端;或扫码收藏 能力中心 小程序,随时关注能力动态; 分享能力更方便。 能力实战 本章将重点介绍“获取会员基础信息”和“模板消息”的接入。 缘起:获取会员基础信息 盛夏的图书馆总是学生们避暑的热门景点,对软件学院的大二学生小宝♂️来说也 不例外。窗外的知了没完没了的絮叨着,小宝双手赌气似的敲打着键盘,指尖生了 魔法似的溜出一行行代码。刚写完一整段的小明将面前的冰咖啡一饮而尽,顺势将 脑袋抬起来,盯着浅黄色的天花板发呆。正兀自发呆着,精神恍惚小宝被一股淡淡 的茉莉花香拉回了图书馆,循着香味,他将脑袋慢慢地低下。四目相对,香味的源 头♀️也正好奇地盯着他...... 问:所以,小宝要如何主动又不失礼貌,深入而不猥琐地了解关于她的一切呢? 答:通过小程序“获取会员基础信息”能力,在用户授权后,开发者可以获取用户 头像图片、昵称、性别、国家、所在省份、所在市区等信息。 本题干的案例和场景仅为课堂效果定制,纯属虚构,请勿作死模仿。对于恶意获取 用户信息或者其他不合理使用等情况,支付宝开放平台有权永久收回该小程序的接 口权限。 代码千万条,用户第一条。接入不规范,老师两行泪。 105 产品介绍 获取会员基础信息是支付宝会员开放服务之一,在获得用户授权后,允许开发者获 取 头像、昵称、性别、国家码、所在省份、所在市区 等信息。本功能免费,同学 们可以放心使用(别问落地价,因为爱情无价)。 当然,小程序还有 获取会员手机 号 (https://opendocs.alipay.com/mini/introduce/getphonenumber) 的开 放能力,因该功能涉及用户的手机号隐私,且仅开放给有一定资质的企业账户,故 在本章不作接入介绍。(小宝哭晕在厕所......) 用户端示例 用户在登录小程序后,在需要用户授权基础信息的场景(如首次登录,或者授权其 他关联账号登录等),系统出现弹窗让用户确认,用户同意授权后,即可通过接口 获取用户的基础信息。 注意: 通过用户信息授权方式获取用户基础信息是只一种快捷的填写方式。开发过程中, 需要对用户拒绝的情况做充分的考虑与应对方案,如引导用户手动填写或上传。 缘生:模板消息 因为请对面的女生帮忙一起测试“获取会员基础信息”的缘故,小宝无意间得到了 对面女生的昵称和头像。 “原来你叫小美啊,你的支付宝头像是莫奈的《日出》吗?你喜欢画画?” “对呀,我是设计学院的,平时喜欢画画。看不出你个程序员还知道莫奈啊。” “我也很喜欢印象派。但我觉得你更适合莫奈的另外一幅画。” “哦,什么画呀?” “《睡莲》” 问:看得出小宝已经词穷了,再聊下去就很尴尬了,看得出小宝也是个害羞人。请 问小宝要如何进一步拉近关系,约小美出去自习和玩耍呢 ? 答:通过小程序“模板消息”能力,开发者可通过消息高效触达用户,通知用户当 前行为的结果及状态等;同时可在消息中配置跳转小程序指定页面地址,当用户查 看消息时,在消息中点击 进入小程序查看 返回小程序,进入开发者配置的小程序 指定页面。目前仅支持文本消息。 本题干的案例和场景仅为课堂效果定制,纯属虚构,请勿作死模仿。支付宝开放平 台对于模板消息的发送频率和内容均有一定限制。对于恶意发送违规定模板消息的 行为,支付宝会有一定的惩罚策略,详细注意事项可以参考 模板消息准入条件。 代码千万条,用户第一条。接入不规范,老师两行泪。 产品介绍 模板消息有两类:交易类 和 表单类,暂不支持自定义标题等信息。支付类的模 板消息需要依赖用户支付产生的交易号 tradeNo, 因此本章节不重点阐述,好奇 宝宝请前往本章结尾的“拓展阅读”查看。 自己不开店,没有交易号(tradeNo)的小宝别无选择,只能选择表单类模板消 息。 表单类:当用户在小程序内发生过提交表单行为,开发者可以调用接口发送表单类 的模板消息,此时必须要传入 form_id 。开发者获取 formId 或 tradeNo 后, 可在 7 天内向用户推送有限条数的模板消息( 1 次提交表单可下发 3 条,不 限制模板数);超期后 formId 或 tradeNo 将失效,无法推送消息。 本功能免费,同学们可以放心使用(别问落地价,因为爱情无价)。 用户端示例 108 假设小宝在发送模板消息发送成功后,小美可以在支付宝 APP 首页的“服务提 醒”处查看消息,如下图所示。 快速接入 DEMO 支付宝开放平台还为开发者提供了模板消息 DEMO,开发者可以参 考 https://opendocs.alipay.com/mini/quick-example/template-message 文档进 行体验和实现快速接入。 拓展阅读 除了用 formId 发送模板消息外,支付宝开放平台还支持用 tradeNo 发送模板 消息,那如何获取 tradeNo 呢? tradeNo :当用户完成支付行为时,可以获取 tradeNo(即支付交易号) 用于 发送交易类模板消息,如 小程序支付 中的 alipay.trade.create 或 资金授权 以及 当面付 中的 alipay.trade.pay 接口。消息类型为支付类型的只能通过 tradeNo 发送。 上述几个功能的对接文档在此列出,感兴趣的同学可以课后查看哦。需要注意的 是,目前这几大功能仅对企业支付宝账号开放;个人账号暂时无法完成对接。  小程序支付:https://opendocs.alipay.com/mini/introduce/pay  当面付:https://opendocs.alipay.com/open/194/105072/  资金授权:https://opendocs.alipay.com/mini/introduce/pre-authorization 109 缘遂:小程序二维码 “现在到处都是二维码,逼死强迫症哦。忍不住想扫扫看,哈哈哈。” “我这边也有个码,你扫了试试?” “什么二维码啊,这么神秘。扫开了还加载这么久。” “......” “啊,谢谢你。” 夕阳照在小美的脸上,越发得红了。 产品介绍 概述 使用本能力可生成小程序二维码,商户可将生成后的小程序二维码在线上线下进行 贴码推广,更便捷地推广小程序。 产品特色 每个小程序都有一个默认的小程序二维码,目标地址是 小程序首页。  创建 20 个以内小程序二维码。在 开发中心 > 小程序应用 > 我的小程序 中点击已创建 的小程序名称,进入小程序详情页面,左侧目录栏中选择 码管理 > 小程序码。  创建超过 20 个小程序二维码。通过调用二维码接口 alipay.open.app.qrcode.create 实现,一个小程序可通过使用该二维码接口获取无限个带参数的二维码。 页面地址获取方式 小程序页面地址可通过开发者工具在代码中的 app.json 中的 onShow 和 onLaunch 中获取。 110 使用说明 支付宝扫描二维码将按以下匹配规则控制跳转:  页面地址:指定小程序中能访问的路径地址,默认为小程序的首页地址。  启动参数:小程序启动时候需要带入的参数,可以为空。启动参数可以通过 options.query 获取,格式为 key1=value1&key2=value2。 示例代码 准备获取启动参数中 x 的值。 App({ onLaunch(options) { my.alert({content: '启动参数:'+JSON.stringify(options.query.x),}); console.log('query', options.query); console.log('App Launch', options); }, onShow() { console.log('App Show') }, onHide() { console.log('App Hide') }, globalData: { hasLogin: false } }) 输入参数 页面地址:page/component/component-pages/view/view 启动参数:x=1&y=2 示例效果: 111 准入条件 小程序开发者均可使用。 计费模式 不收费。 API 列表 接口名称 描述 alipay.open.app.qrcode.create 小程序生成推广二维码接口 快速接入 DEMO 支付宝开放平台还为开发者提供了小程序二维码 DEMO,开发者可以参考 快速示 例 文档进行体验和实现快速接入。 内容来源:https://developer.aliyun.com/article/756818?spm=a2c6h.12873581.0.dArticle756818.26162b70Su1GZy&groupCode=tech_library

KaFei 2020-04-27 15:46:58 0 浏览量 回答数 0

问题

云服务器ECS下的FTP服务的如何安装配置与使用

boxti 2019-12-01 21:45:58 5158 浏览量 回答数 2

问题

围绕着内存数据库的4个流言

sunny夏筱 2019-12-01 21:46:19 7513 浏览量 回答数 3

新用户福利专场,云服务器ECS低至102元/年

新用户专场,1核2G 102元/年起,2核4G 699.8元/年起

问题

开课吧携手OneAPM:在线教育如何应对千万级用户的挑战?

sunny夏筱 2019-12-01 22:07:12 9951 浏览量 回答数 2

问题

开课吧携手 OneAPM:在线教育如何应对千万级用户的挑战?

doudou1 2019-12-01 21:20:28 10472 浏览量 回答数 0

回答

同步两个SQLServer数据库 如何同步两个sqlserver数据库的内容?程序代码可以有版本管理cvs进行同步管理,可是数据库同步就非常麻烦,只能自己改了一个后再去改另一个,如果忘记了更改另一个经常造成两个数据库的结构或内容上不一致.各位有什么好的方法吗? 一、分发与复制 用强制订阅实现数据库同步操作. 大量和批量的数据可以用数据库的同步机制处理: // 说明: 为方便操作,所有操作均在发布服务器(分发服务器)上操作,并使用推模式 在客户机器使用强制订阅方式。 二、测试通过 1:环境 服务器环境: 机器名称: zehuadb 操作系统:windows 2000 server 数据库版本:sql 2000 server 个人版 客户端 机器名称:zlp 操作系统:windows 2000 server 数据库版本:sql 2000 server 个人版 2:建用户帐号 在服务器端建立域用户帐号 我的电脑管理->本地用户和组->用户->建立 username:zlp userpwd:zlp 3:重新启动服务器mssqlserver 我的电脑->控制面版->管理工具->服务->mssqlserver 服务 (更改为:域用户帐号,我们新建的zlp用户 .\zlp,密码:zlp) 4:安装分发服务器 a:配置分发服务器 工具->复制->配置发布、订阅服务器和分发->下一步->下一步(所有的均采用默认配置) b:配置发布服务器 工具->复制->创建和管理发布->选择要发布的数据库(sz)->下一步->快照发布->下一步->选择要发布的内容->下一步->下一步->下一步->完成 c:强制配置订阅服务器(推模式,拉模式与此雷同) 工具->复制->配置发布、订阅服务器和分发->订阅服务器->新建->sql server数据库->输入客户端服务器名称(zlp)->使用sql server 身份验证(sa,空密码)->确定->应用->确定 d:初始化订阅 复制监视器->发布服务器(zehuadb)->双击订阅->强制新建->下一步->选择启用的订阅服务器->zlp->下一步->下一步->下一步->下一步->完成 5:测试配置是否成功 复制监视器->发布衿?zehuadb)->双击sz:sz->点状态->点立即运行代理程序 查看: 复制监视器->发布服务器(zehuadb)->sz:sz->选择zlp:sz(类型强制)->鼠标右键->启动同步处理 如果没有错误标志(红色叉),恭喜您配置成功 6:测试数据 在服务器执行: 选择一个表,执行如下sql: insert into wq_newsgroup_s select '测试成功',5 复制监视器->发布服务器(zehuadb)->sz:sz->快照->启动代理程序 ->zlp:sz(强制)->启动同步处理 去查看同步的 wq_newsgroup_s 是否插入了一条新的记录 测试完毕,通过。 7:修改数据库的同步时间,一般选择夜晚执行数据库同步处理 (具体操作略) :d /* 注意说明: 服务器一端不能以(local)进行数据的发布与分发,需要先删除注册,然后新建注册本地计算机名称 卸载方式:工具->复制->禁止发布->是在"zehuadb"上静止发布,卸载所有的数据库同步配置服务器 注意:发布服务器、分发服务器中的sqlserveragent服务必须启动 采用推模式: "d:\microsoft sql server\mssql\repldata\unc" 目录文件可以不设置共享 拉模式:则需要共享~! */ 少量数据库同步可以采用触发器实现,同步单表即可。 三、配置过程中可能出现的问题 在sql server 2000里设置和使用数据库复制之前,应先检查相关的几台sql server服务器下面几点是否满足: 1、mssqlserver和sqlserveragent服务是否是以域用户身份启动并运行的(.\administrator用户也是可以的) 如果登录用的是本地系统帐户local,将不具备网络功能,会产生以下错误: 进程未能连接到distributor '@server name' (如果您的服务器已经用了sql server全文检索服务, 请不要修改mssqlserver和sqlserveragent服务的local启动。 会照成全文检索服务不能用。请换另外一台机器来做sql server 2000里复制中的分发服务器。) 修改服务启动的登录用户,需要重新启动mssqlserver和sqlserveragent服务才能生效。 2、检查相关的几台sql server服务器是否改过名称(需要srvid=0的本地机器上srvname和datasource一样) 在查询分析器里执行: use master select srvid,srvname,datasource from sysservers 如果没有srvid=0或者srvid=0(也就是本机器)但srvname和datasource不一样, 需要按如下方法修改: use master go -- 设置两个变量 declare @serverproperty_servername varchar(100), @servername varchar(100) -- 取得windows nt 服务器和与指定的 sql server 实例关联的实例信息 select @serverproperty_servername = convert(varchar(100), serverproperty('servername')) -- 返回运行 microsoft sql server 的本地服务器名称 select @servername = convert(varchar(100), @@servername) -- 显示获取的这两个参数 select @serverproperty_servername,@servername --如果@serverproperty_servername和@servername不同(因为你改过计算机名字),再运行下面的 --删除错误的服务器名 exec sp_dropserver @server=@servername --添加正确的服务器名 exec sp_addserver @server=@serverproperty_servername, @local='local' 修改这项参数,需要重新启动mssqlserver和sqlserveragent服务才能生效。 这样一来就不会在创建复制的过程中出现18482、18483错误了。 3、检查sql server企业管理器里面相关的几台sql server注册名是否和上面第二点里介绍的srvname一样 不能用ip地址的注册名。 (我们可以删掉ip地址的注册,新建以sql server管理员级别的用户注册的服务器名) 这样一来就不会在创建复制的过程中出现14010、20084、18456、18482、18483错误了。 4、检查相关的几台sql server服务器网络是否能够正常访问 如果ping主机ip地址可以,但ping主机名不通的时候,需要在 winnt\system32\drivers\etc\hosts (win2000) windows\system32\drivers\etc\hosts (win2003) 文件里写入数据库服务器ip地址和主机名的对应关系。 例如: 127.0.0.1 localhost 192.168.0.35 oracledb oracledb 192.168.0.65 fengyu02 fengyu02 202.84.10.193 bj_db bj_db 或者在sql server客户端网络实用工具里建立别名,例如: 5、系统需要的扩展存储过程是否存在(如果不存在,需要恢复): sp_addextendedproc 'xp_regenumvalues',@dllname ='xpstar.dll' go sp_addextendedproc 'xp_regdeletevalue',@dllname ='xpstar.dll' go sp_addextendedproc 'xp_regdeletekey',@dllname ='xpstar.dll' go sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll' 接下来就可以用sql server企业管理器里[复制]-> 右键选择 ->[配置发布、订阅服务器和分发]的图形界面来配置数据库复制了。 下面是按顺序列出配置复制的步骤: 1、建立发布和分发服务器 [欢迎使用配置发布和分发向导]->[选择分发服务器]->[使"@servername"成为它自己的分发服务器,sql server将创建分发数据库和日志] ->[制定快照文件夹]-> [自定义配置] -> [否,使用下列的默认配置] -> [完成] 上述步骤完成后, 会在当前"@servername" sql server数据库里建立了一个distribion库和 一个distributor_admin管理员级别的用户(我们可以任意修改密码)。 服务器上新增加了四个作业: [ 代理程序历史记录清除: distribution ] [ 分发清除: distribution ] [ 复制代理程序检查 ] [ 重新初始化存在数据验证失败的订阅 ] sql server企业管理器里多了一个复制监视器, 当前的这台机器就可以发布、分发、订阅了。 我们再次在sql server企业管理器里[复制]-> 右键选择 ->[配置发布、订阅服务器和分发] 我们可以在 [发布服务器和分发服务器的属性] 窗口-> [发布服务器] -> [新增] -> [确定] -> [发布数据库] -> [事务]/[合并] -> [确定] -> [订阅服务器] -> [新增] -> [确定] 把网络上的其它sql server服务器添加成为发布或者订阅服务器. 新增一台发布服务器的选项: 我这里新建立的jin001发布服务器是用管理员级别的数据库用户test连接的, 到发布服务器的管理链接要输入密码的可选框, 默认的是选中的, 在新建的jin001发布服务器上建立和分发服务器fengyu/fengyu的链接的时需要输入distributor_admin用户的密码。到发布服务器的管理链接要输入密码的可选框,也可以不选,也就是不需要密码来建立发布到分发服务器的链接(这当然欠缺安全,在测试环境下可以使用)。 2、新建立的网络上另一台发布服务器(例如jin001)选择分发服务器 [欢迎使用配置发布和分发向导]->[选择分发服务器] -> 使用下列服务器(选定的服务器必须已配置为分发服务器) -> 选定服务器 -> [下一步] -> [输入分发服务器(例如fengyu/fengyu)的distributor_admin用户的密码两次] -> [下一步] -> [自定义配置] -> [否,使用下列的默认配置] -> [下一步] -> [完成] -> [确定] 建立一个数据库复制发布的过程: [复制] -> [发布内容] -> 右键选择 -> [新建发布] -> [下一步] -> [选择发布数据库] -> [选中一个待发布的数据库] -> [下一步] -> [选择发布类型] -> [事务发布]/[合并发布] -> [下一步] -> [指定订阅服务器的类型] -> [运行sql server 2000的服务器] -> [下一步] -> [指定项目] -> [在事务发布中只可以发布带主键的表] -> [选中一个有主键的待发布的表] ->[在合并发布中会给表增加唯一性索引和 rowguidcol 属性的唯一标识符字段[rowguid],默认值是newid()] (添加新列将: 导致不带列列表的 insert 语句失败,增加表的大小,增加生成第一个快照所要求的时间) ->[选中一个待发布的表] -> [下一步] -> [选择发布名称和描述] -> -> [下一步] -> [自定义发布的属性] -> [否,根据指定方式创建发布] -> [下一步] -> [完成] -> [关闭] 发布属性里有很多有用的选项:设定订阅到期(例如24小时) 设定发布表的项目属性: 常规窗口可以指定发布目的表的名称,可以跟原来的表名称不一样。 下图是命令和快照窗口的栏目 ( sql server 数据库复制技术实际上是用insert,update,delete操作在订阅服务器上重做发布服务器上的事务操作 看文档资料需要把发布数据库设成完全恢复模式,事务才不会丢失 但我自己在测试中发现发布数据库是简单恢复模式下,每10秒生成一些大事务,10分钟后再收缩数据库日志, 这期间发布和订阅服务器上的作业都暂停,暂停恢复后并没有丢失任何事务更改 ) 发布表可以做数据筛选,例如只选择表里面的部分列: 例如只选择表里某些符合条件的记录, 我们可以手工编写筛选的sql语句: 发布表的订阅选项,并可以建立强制订阅: 成功建立了发布以后,发布服务器上新增加了一个作业: [ 失效订阅清除 ] 分发服务器上新增加了两个作业: [ jin001-dack-dack-5 ] 类型[ repl快照 ] [ jin001-dack-3 ] 类型[ repl日志读取器 ] 上面蓝色字的名称会根据发布服务器名,发布名及第几次发布而使用不同的编号 repl快照作业是sql server复制的前提条件,它会先把发布的表结构,数据,索引,约束等生成到发布服务器的os目录下文件 (当有订阅的时候才会生成, 当订阅请求初始化或者按照某个时间表调度生成) repl日志读取器在事务复制的时候是一直处于运行状态。(在合并复制的时候可以根据调度的时间表来运行) 建立一个数据库复制订阅的过程: [复制] -> [订阅] -> 右键选择 -> [新建请求订阅] -> [下一步] -> [查找发布] -> [查看已注册服务器所做的发布] -> [下一步] -> [选择发布] -> [选中已经建立发布服务器上的数据库发布名] -> [下一步] -> [指定同步代理程序登录] -> [当代理程序连接到代理服务器时:使用sql server身份验证] (输入发布服务器上distributor_admin用户名和密码) -> [下一步] -> [选择目的数据库] -> [选择在其中创建订阅的数据库名]/[也可以新建一个库名] -> [下一步] -> [允许匿名订阅] -> [是,生成匿名订阅] -> [下一步] -> [初始化订阅] -> [是,初始化架构和数据] -> [下一步] -> [快照传送] -> [使用该发布的默认快照文件夹中的快照文件] (订阅服务器要能访问发布服务器的repldata文件夹,如果有问题,可以手工设置网络共享及共享权限) -> [下一步] -> [快照传送] -> [使用该发布的默认快照文件夹中的快照文件] -> [下一步] -> [设置分发代理程序调度] -> [使用下列调度] -> [更改] -> [例如每五分钟调度一次] -> [下一步] -> [启动要求的服务] -> [该订阅要求在发布服务器上运行sqlserveragent服务] -> [下一步] -> [完成] -> [确定] 成功建立了订阅后,订阅服务器上新增加了一个类别是[repl-分发]作业(合并复制的时候类别是[repl-合并]) 它会按照我们给的时间调度表运行数据库同步复制的作业。 3、sql server复制配置好后, 可能出现异常情况的实验日志: 1.发布服务器断网,sql server服务关闭,重启动,关机的时候,对已经设置好的复制没有多大影响 中断期间,分发和订阅都接收到没有复制的事务信息 2.分发服务器断网,sql server服务关闭,重启动,关机的时候,对已经设置好的复制有一些影响 中断期间,发布服务器的事务排队堆积起来 (如果设置了较长时间才删除过期订阅的选项, 繁忙发布数据库的事务日志可能会较快速膨胀), 订阅服务器会因为访问不到发布服务器,反复重试 我们可以设置重试次数和重试的时间间隔(最大的重试次数是9999, 如果每分钟重试一次,可以支持约6.9天不出错) 分发服务器sql server服务启动,网络接通以后,发布服务器上的堆积作业将按时间顺序作用到订阅机器上: 会需要一个比较长的时间(实际上是生成所有事务的insert,update,delete语句,在订阅服务器上去执行) 我们在普通的pc机上实验的58个事务100228个命令执行花了7分28秒. 3.订阅服务器断网,sql server服务关闭,重启动,关机的时候,对已经设置好的复制影响比较大,可能需要重新初试化 我们实验环境(订阅服务器)从18:46分意外停机以, 第二天8:40分重启动后, 已经设好的复制在8:40分以后又开始正常运行了, 发布服务器上的堆积作业将按时间顺序作用到订阅机器上, 但复制管理器里出现快照的错误提示, 快照可能需要重新初试化,复制可能需要重新启动.(我们实验环境的机器并没有进行快照初试化,复制仍然是成功运行的) 4、删除已经建好的发布和定阅可以直接用delete删除按钮 我们最好总是按先删定阅,再删发布,最后禁用发布的顺序来操作。 如果要彻底删去sql server上面的复制设置, 可以这样操作: [复制] -> 右键选择 [禁用发布] -> [欢迎使用禁用发布和分发向导] -> [下一步] -> [禁用发布] -> [要在"@servername"上禁用发布] -> [下一步] -> [完成禁用发布和分发向导] -> [完成] 我们也可以用t-sql命令来完成复制中发布及订阅的创建和删除, 选中已经设好的发布和订阅, 按属标右键可以[生成sql脚本]。(这里就不详细讲了, 后面推荐的网站内有比较详细的内容) 当你试图删除或者变更一个table时,出现以下错误 server: msg 3724, level 16, state 2, line 1 cannot drop the table 'object_name' because it is being used for replication. 比较典型的情况是该table曾经用于复制,但是后来又删除了复制。 处理办法: select * from sysobjects where replinfo >'0' sp_configure 'allow updates', 1 go reconfigure with override go begin transaction update sysobjects set replinfo = '0' where replinfo >'0' commit transaction go rollback transaction go sp_configure 'allow updates', 0 go reconfigure with override go 答案来源于网络

养狐狸的猫 2019-12-02 02:18:58 0 浏览量 回答数 0

问题

python怎么爬取天眼查工商基本信息?

游客bnlxddh3fwntw 2020-04-24 22:43:34 19 浏览量 回答数 1

回答

同步两个SQLServer数据库 如何同步两个sqlserver数据库的内容?程序代码可以有版本管理cvs进行同步管理,可是数据库同步就非常麻烦,只能自己改了一个后再去改另一个,如果忘记了更改另一个经常造成两个数据库的结构或内容上不一致.各位有什么好的方法吗? 一、分发与复制 用强制订阅实现数据库同步操作. 大量和批量的数据可以用数据库的同步机制处理: // 说明: 为方便操作,所有操作均在发布服务器(分发服务器)上操作,并使用推模式 在客户机器使用强制订阅方式。 二、测试通过 1:环境 服务器环境: 机器名称: zehuadb 操作系统:windows 2000 server 数据库版本:sql 2000 server 个人版 客户端 机器名称:zlp 操作系统:windows 2000 server 数据库版本:sql 2000 server 个人版 2:建用户帐号 在服务器端建立域用户帐号 我的电脑管理->本地用户和组->用户->建立 username:zlp userpwd:zlp 3:重新启动服务器mssqlserver 我的电脑->控制面版->管理工具->服务->mssqlserver 服务 (更改为:域用户帐号,我们新建的zlp用户 .\zlp,密码:zlp) 4:安装分发服务器 a:配置分发服务器 工具->复制->配置发布、订阅服务器和分发->下一步->下一步(所有的均采用默认配置) b:配置发布服务器 工具->复制->创建和管理发布->选择要发布的数据库(sz)->下一步->快照发布->下一步->选择要发布的内容->下一步->下一步->下一步->完成 c:强制配置订阅服务器(推模式,拉模式与此雷同) 工具->复制->配置发布、订阅服务器和分发->订阅服务器->新建->sql server数据库->输入客户端服务器名称(zlp)->使用sql server 身份验证(sa,空密码)->确定->应用->确定 d:初始化订阅 复制监视器->发布服务器(zehuadb)->双击订阅->强制新建->下一步->选择启用的订阅服务器->zlp->下一步->下一步->下一步->下一步->完成 5:测试配置是否成功 复制监视器->发布衿?zehuadb)->双击sz:sz->点状态->点立即运行代理程序 查看: 复制监视器->发布服务器(zehuadb)->sz:sz->选择zlp:sz(类型强制)->鼠标右键->启动同步处理 如果没有错误标志(红色叉),恭喜您配置成功 6:测试数据 在服务器执行: 选择一个表,执行如下sql:        insert into wq_newsgroup_s select '测试成功',5 复制监视器->发布服务器(zehuadb)->sz:sz->快照->启动代理程序 ->zlp:sz(强制)->启动同步处理 去查看同步的 wq_newsgroup_s 是否插入了一条新的记录 测试完毕,通过。 7:修改数据库的同步时间,一般选择夜晚执行数据库同步处理 (具体操作略) :d /* 注意说明: 服务器一端不能以(local)进行数据的发布与分发,需要先删除注册,然后新建注册本地计算机名称 卸载方式:工具->复制->禁止发布->是在"zehuadb"上静止发布,卸载所有的数据库同步配置服务器 注意:发布服务器、分发服务器中的sqlserveragent服务必须启动 采用推模式: "d:\microsoft sql server\mssql\repldata\unc" 目录文件可以不设置共享 拉模式:则需要共享~! */ 少量数据库同步可以采用触发器实现,同步单表即可。 三、配置过程中可能出现的问题 在sql server 2000里设置和使用数据库复制之前,应先检查相关的几台sql server服务器下面几点是否满足: 1、mssqlserver和sqlserveragent服务是否是以域用户身份启动并运行的(.\administrator用户也是可以的) 如果登录用的是本地系统帐户local,将不具备网络功能,会产生以下错误: 进程未能连接到distributor '@server name' (如果您的服务器已经用了sql server全文检索服务, 请不要修改mssqlserver和sqlserveragent服务的local启动。 会照成全文检索服务不能用。请换另外一台机器来做sql server 2000里复制中的分发服务器。) 修改服务启动的登录用户,需要重新启动mssqlserver和sqlserveragent服务才能生效。 2、检查相关的几台sql server服务器是否改过名称(需要srvid=0的本地机器上srvname和datasource一样) 在查询分析器里执行: use master select srvid,srvname,datasource from sysservers 如果没有srvid=0或者srvid=0(也就是本机器)但srvname和datasource不一样, 需要按如下方法修改: use master go -- 设置两个变量 declare @serverproperty_servername  varchar(100), @servername    varchar(100) -- 取得windows nt 服务器和与指定的 sql server 实例关联的实例信息 select @serverproperty_servername = convert(varchar(100), serverproperty('servername')) -- 返回运行 microsoft sql server 的本地服务器名称 select @servername = convert(varchar(100), @@servername) -- 显示获取的这两个参数 select @serverproperty_servername,@servername --如果@serverproperty_servername和@servername不同(因为你改过计算机名字),再运行下面的 --删除错误的服务器名 exec sp_dropserver @server=@servername --添加正确的服务器名 exec sp_addserver @server=@serverproperty_servername, @local='local' 修改这项参数,需要重新启动mssqlserver和sqlserveragent服务才能生效。 这样一来就不会在创建复制的过程中出现18482、18483错误了。 3、检查sql server企业管理器里面相关的几台sql server注册名是否和上面第二点里介绍的srvname一样 不能用ip地址的注册名。 (我们可以删掉ip地址的注册,新建以sql server管理员级别的用户注册的服务器名) 这样一来就不会在创建复制的过程中出现14010、20084、18456、18482、18483错误了。 4、检查相关的几台sql server服务器网络是否能够正常访问 如果ping主机ip地址可以,但ping主机名不通的时候,需要在 winnt\system32\drivers\etc\hosts   (win2000) windows\system32\drivers\etc\hosts (win2003) 文件里写入数据库服务器ip地址和主机名的对应关系。 例如: 127.0.0.1       localhost 192.168.0.35    oracledb    oracledb 192.168.0.65    fengyu02    fengyu02 202.84.10.193   bj_db       bj_db 或者在sql server客户端网络实用工具里建立别名,例如: 5、系统需要的扩展存储过程是否存在(如果不存在,需要恢复): sp_addextendedproc 'xp_regenumvalues',@dllname ='xpstar.dll' go sp_addextendedproc 'xp_regdeletevalue',@dllname ='xpstar.dll' go sp_addextendedproc 'xp_regdeletekey',@dllname ='xpstar.dll' go sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'  接下来就可以用sql server企业管理器里[复制]-> 右键选择 ->[配置发布、订阅服务器和分发]的图形界面来配置数据库复制了。 下面是按顺序列出配置复制的步骤: 1、建立发布和分发服务器 [欢迎使用配置发布和分发向导]->[选择分发服务器]->[使"@servername"成为它自己的分发服务器,sql server将创建分发数据库和日志] ->[制定快照文件夹]-> [自定义配置] -> [否,使用下列的默认配置] -> [完成] 上述步骤完成后, 会在当前"@servername" sql server数据库里建立了一个distribion库和 一个distributor_admin管理员级别的用户(我们可以任意修改密码)。 服务器上新增加了四个作业: [ 代理程序历史记录清除: distribution ] [ 分发清除: distribution ] [ 复制代理程序检查 ] [ 重新初始化存在数据验证失败的订阅 ] sql server企业管理器里多了一个复制监视器, 当前的这台机器就可以发布、分发、订阅了。 我们再次在sql server企业管理器里[复制]-> 右键选择 ->[配置发布、订阅服务器和分发] 我们可以在 [发布服务器和分发服务器的属性] 窗口-> [发布服务器] -> [新增]   -> [确定] -> [发布数据库] -> [事务]/[合并] -> [确定]  -> [订阅服务器] -> [新增]  -> [确定] 把网络上的其它sql server服务器添加成为发布或者订阅服务器. 新增一台发布服务器的选项: 我这里新建立的jin001发布服务器是用管理员级别的数据库用户test连接的, 到发布服务器的管理链接要输入密码的可选框, 默认的是选中的, 在新建的jin001发布服务器上建立和分发服务器fengyu/fengyu的链接的时需要输入distributor_admin用户的密码。到发布服务器的管理链接要输入密码的可选框,也可以不选,也就是不需要密码来建立发布到分发服务器的链接(这当然欠缺安全,在测试环境下可以使用)。 2、新建立的网络上另一台发布服务器(例如jin001)选择分发服务器 [欢迎使用配置发布和分发向导]->[选择分发服务器] -> 使用下列服务器(选定的服务器必须已配置为分发服务器) -> [选定服务器](例如fengyu/fengyu) -> [下一步] -> [输入分发服务器(例如fengyu/fengyu)的distributor_admin用户的密码两次] -> [下一步] -> [自定义配置] -> [否,使用下列的默认配置] -> [下一步] -> [完成] -> [确定] 建立一个数据库复制发布的过程: [复制] -> [发布内容] -> 右键选择 -> [新建发布] -> [下一步] -> [选择发布数据库] -> [选中一个待发布的数据库] -> [下一步] -> [选择发布类型] -> [事务发布]/[合并发布] -> [下一步] -> [指定订阅服务器的类型] -> [运行sql server 2000的服务器] -> [下一步] -> [指定项目] -> [在事务发布中只可以发布带主键的表] -> [选中一个有主键的待发布的表] ->[在合并发布中会给表增加唯一性索引和 rowguidcol 属性的唯一标识符字段[rowguid],默认值是newid()] (添加新列将: 导致不带列列表的 insert 语句失败,增加表的大小,增加生成第一个快照所要求的时间) ->[选中一个待发布的表] -> [下一步] -> [选择发布名称和描述] -> -> [下一步] -> [自定义发布的属性] -> [否,根据指定方式创建发布] -> [下一步] -> [完成] -> [关闭] 发布属性里有很多有用的选项:设定订阅到期(例如24小时) 设定发布表的项目属性: 常规窗口可以指定发布目的表的名称,可以跟原来的表名称不一样。 下图是命令和快照窗口的栏目 ( sql server 数据库复制技术实际上是用insert,update,delete操作在订阅服务器上重做发布服务器上的事务操作 看文档资料需要把发布数据库设成完全恢复模式,事务才不会丢失 但我自己在测试中发现发布数据库是简单恢复模式下,每10秒生成一些大事务,10分钟后再收缩数据库日志, 这期间发布和订阅服务器上的作业都暂停,暂停恢复后并没有丢失任何事务更改 ) 发布表可以做数据筛选,例如只选择表里面的部分列: 例如只选择表里某些符合条件的记录, 我们可以手工编写筛选的sql语句: 发布表的订阅选项,并可以建立强制订阅: 成功建立了发布以后,发布服务器上新增加了一个作业: [ 失效订阅清除 ] 分发服务器上新增加了两个作业: [ jin001-dack-dack-5 ] 类型[ repl快照 ] [ jin001-dack-3 ]      类型[ repl日志读取器 ] 上面蓝色字的名称会根据发布服务器名,发布名及第几次发布而使用不同的编号 repl快照作业是sql server复制的前提条件,它会先把发布的表结构,数据,索引,约束等生成到发布服务器的os目录下文件 (当有订阅的时候才会生成, 当订阅请求初始化或者按照某个时间表调度生成) repl日志读取器在事务复制的时候是一直处于运行状态。(在合并复制的时候可以根据调度的时间表来运行) 建立一个数据库复制订阅的过程: [复制] -> [订阅] -> 右键选择 -> [新建请求订阅] -> [下一步] -> [查找发布] -> [查看已注册服务器所做的发布] -> [下一步] -> [选择发布] -> [选中已经建立发布服务器上的数据库发布名] -> [下一步] -> [指定同步代理程序登录] -> [当代理程序连接到代理服务器时:使用sql server身份验证] (输入发布服务器上distributor_admin用户名和密码) -> [下一步] -> [选择目的数据库] -> [选择在其中创建订阅的数据库名]/[也可以新建一个库名] -> [下一步] -> [允许匿名订阅] -> [是,生成匿名订阅] -> [下一步] -> [初始化订阅] -> [是,初始化架构和数据] -> [下一步] -> [快照传送] -> [使用该发布的默认快照文件夹中的快照文件] (订阅服务器要能访问发布服务器的repldata文件夹,如果有问题,可以手工设置网络共享及共享权限) -> [下一步] -> [快照传送] -> [使用该发布的默认快照文件夹中的快照文件] -> [下一步] -> [设置分发代理程序调度] -> [使用下列调度] -> [更改] -> [例如每五分钟调度一次] -> [下一步] -> [启动要求的服务] -> [该订阅要求在发布服务器上运行sqlserveragent服务] -> [下一步] -> [完成] -> [确定] 成功建立了订阅后,订阅服务器上新增加了一个类别是[repl-分发]作业(合并复制的时候类别是[repl-合并]) 它会按照我们给的时间调度表运行数据库同步复制的作业。 3、sql server复制配置好后, 可能出现异常情况的实验日志: 1.发布服务器断网,sql server服务关闭,重启动,关机的时候,对已经设置好的复制没有多大影响 中断期间,分发和订阅都接收到没有复制的事务信息 2.分发服务器断网,sql server服务关闭,重启动,关机的时候,对已经设置好的复制有一些影响 中断期间,发布服务器的事务排队堆积起来 (如果设置了较长时间才删除过期订阅的选项, 繁忙发布数据库的事务日志可能会较快速膨胀), 订阅服务器会因为访问不到发布服务器,反复重试 我们可以设置重试次数和重试的时间间隔(最大的重试次数是9999, 如果每分钟重试一次,可以支持约6.9天不出错) 分发服务器sql server服务启动,网络接通以后,发布服务器上的堆积作业将按时间顺序作用到订阅机器上: 会需要一个比较长的时间(实际上是生成所有事务的insert,update,delete语句,在订阅服务器上去执行) 我们在普通的pc机上实验的58个事务100228个命令执行花了7分28秒. 3.订阅服务器断网,sql server服务关闭,重启动,关机的时候,对已经设置好的复制影响比较大,可能需要重新初试化 我们实验环境(订阅服务器)从18:46分意外停机以, 第二天8:40分重启动后, 已经设好的复制在8:40分以后又开始正常运行了, 发布服务器上的堆积作业将按时间顺序作用到订阅机器上, 但复制管理器里出现快照的错误提示, 快照可能需要重新初试化,复制可能需要重新启动.(我们实验环境的机器并没有进行快照初试化,复制仍然是成功运行的) 4、删除已经建好的发布和定阅可以直接用delete删除按钮 我们最好总是按先删定阅,再删发布,最后禁用发布的顺序来操作。 如果要彻底删去sql server上面的复制设置, 可以这样操作: [复制] -> 右键选择 [禁用发布] -> [欢迎使用禁用发布和分发向导] -> [下一步] -> [禁用发布] -> [要在"@servername"上禁用发布] -> [下一步] -> [完成禁用发布和分发向导] -> [完成] 我们也可以用t-sql命令来完成复制中发布及订阅的创建和删除, 选中已经设好的发布和订阅, 按属标右键可以[生成sql脚本]。(这里就不详细讲了, 后面推荐的网站内有比较详细的内容) 当你试图删除或者变更一个table时,出现以下错误 server: msg 3724, level 16, state 2, line 1 cannot drop the table 'object_name' because it is being used for replication. 比较典型的情况是该table曾经用于复制,但是后来又删除了复制。 处理办法: select * from sysobjects where replinfo >'0' sp_configure 'allow updates', 1 go reconfigure with override go begin transaction update sysobjects set replinfo = '0' where replinfo >'0' commit transaction go rollback transaction go sp_configure 'allow updates', 0 go reconfigure with override go 答案来源网络,供参考,希望对您有帮助

问问小秘 2019-12-02 03:02:42 0 浏览量 回答数 0

问题

Web测试方法

技术小菜鸟 2019-12-01 21:41:32 7022 浏览量 回答数 1

问题

词汇表是什么样的?(S-V)

轩墨 2019-12-01 22:06:08 2089 浏览量 回答数 0

问题

如何深入理解StatsD与Graphite?

doudou1 2019-12-01 22:07:08 12758 浏览量 回答数 1

问题

【Java学习全家桶】1460道Java热门问题,阿里百位技术专家答疑解惑

管理贝贝 2019-12-01 20:07:15 27612 浏览量 回答数 19
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 SSL证书 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 2020中国云原生 阿里云云栖号