• [行业资讯] 华为云 SQL Server 亮相西安,关键性能指标破百万
    12月1日,ACMUG & CRUG技术沙龙迎来全国巡演第十站 -- 西安站。华为云数据库技术专家带来的主题演讲:《华为云 Microsoft SQL Server 助力企业数字化转型无忧》也随之亮相,将活动推向新高潮。西安作为中华文明和中华民族的重要发祥地,自古就有**都之称。这是 ACMUG & CRUG第一次到西安举办技术沙龙活动,也是西安技术者们期待已久的盛宴。华为云的到来,为本次技术普及添上浓厚一笔。 随着近年来企业上云,数字化转型逐渐成为大家认同的趋势。如何选择云上数据库,如何帮助企业快速上云,如何让企业在云平台上用的更好,更省,更放心,是广大企业管理者和数据库开发维护人员都关注的主题。 华为云数据库技术专家的本次分享,也正是从以上问题切入,全方位介绍了企业应该如何多快好省的实现数字化转型。 传统企业 SQL Server 上云四大痛 1.数据库账号权限限制大,开发习惯受影响 SQL Server 作为一款商用数据库,上云过程中会面临账号权限受限、影响开发习惯,导致效率降低的问题。 常见的受限权限,包括:不能创建数据库、没有常用系统视图的查询权限、不能创建子账号并授权、一些数据库高级功能无法使用、不能直接 Kill 进程。 2.商用数据库功能特性阉割多,商用价值打折扣 众所周知,SQL Server 最受欢迎的特点,莫过于功能特性齐全、使用方便。但是在上云过程中,受技术、兼容性等因素的影响,功能特性遭遇阉割,导致商用价值大打折扣。 常见被阉割的功能,包括:链接服务、优化顾问、SQL Profiler、变更数据捕获、数据库审计功能等等。 3.三方应用兼容能力差,上云通道受阻塞 云服务最大的价值点,在于资源调用的便利性和生态的完整性。但在商用服务上云的过程中,往往面临第三方应用兼容能力差,上云通道受阻塞的问题。这就导致用户不得不面对以下挑战:本地使用的三方软件无法直接迁移到云上无法支持传统软件供应商提供云上服务云上云下数据文件交互困难用户基于数据库管理迁移不灵活 4.版本覆盖不全,使用选择不灵活 SQL Server 版本众多,目前云数据库市场上的商用版本不能完整覆盖。一些服务商仅提供企业版、或仅提供 2008 和少数几个大版本、再或者仅提供双机高可用版本,导致用户在上云过程中选择受限。 重拳出击:华为云 SQL Server 对症下药四方案 针对传统企业 SQL Server 上云的四大痛点,华为云给出了一套对症下药的解决方案组合拳。 1.精准权限隔离,线上线**验一致 华为云 SQL Server 对用户权限和系统运**限进行有效隔离,将 SQL Server 的所有引擎特性开放给用户使用(链接服务、优化顾问、SQL Profiler、变更数据捕获、数据库审计功能等等),并保证 DBA 运维人员和数据库开发人员,线上线**验的一致性,同时将权限管理不当对数据库可能造成的危害降到最低。 2.六大特性,打通线上线下数据文件交互为了保证用户灵活对线上线下数据库的迁移和管理,华为云开发了6大特性,打通线上线下数据文件交互渠道,并将整个过程做到了以数据库粒度进行交互,而不是传统的以实例为单位进行处理。 备份文件下载:支持用户按数据库下载实例上的备份文件,加速用户快速获取线上数据备份文件上传还原:通过 DRS 离线迁移任务,用户可以把本地实例上多个数据库文件备份到一个 或多个bak 备份文件中,一次性上传还原到目标实例。手动数据库快照:支持用户创建手动快照时,可选择该实例上对应数据库。增量备份上传还原:通过 DRS 离线迁移任务,用户可以把本地实例数据库的全备 & 日备文件增量上传还原到目标实例。备份还原 & PITR 还原:当用户对当前实例进行还原操作时,支持用户选择部分数据库进行还原操作。数据库快速迁移:通过 DRS 离线迁移任务,用户可以通过实例上的手动快照和自动快照,快速将其中一个数据库迁移到同 Region 的实例上。 3.提供超全版本保证客户 SQL SERVER 上线兼容能力 当前,华为云 SQL Server 提供业内最全版本的云服务,支持范围覆盖 2008、2014、2016 全系列标准版、企业版、Web版、2017 企业版,并将上线 2012 版本,多种规格让用户可以根据不同场景选用最合适实例,节省成本 90% 以上。 超高性能、超高可靠企业版企业版:最高规格 60U512G;现已提供 2008 | 2014 | 2016 三个版本,支持跨AZ高可用完全同步模式,保障事务强一致性,是用户核心业务的不二选择。 价格实惠、功能齐全标准版标准版:最高规格支持16U128G;现已提供2014,2016两个版本,支持跨AZ高可用完全同步模式。 超高性价比 Web版:最高规格支持16U64G;现已提供2008,2014,2016三个版本,支持单机模式,商用的服务,开源的价格。 4.软硬件结合,绝佳云上数据库体验华为云SQL SERVER 采用最新硬件配置,全面遵循微软最佳实践,给用户提供最佳的云上数据库服务。所有实例规格均采用华为V5系列最新硬件配置。完成 200 多项 Windows 实例设置。完成 40 多项 SQL SERVER 服务器配置。完成 SQL SERVER 九个版本 74 个实例参数值最佳配比。 值得一提的是,在最新的 TPCC 性能压测中,华为云 SQL SERVER 无论单实例还是高可用实例下,TPM、IOPS 等各项性能指标均远远高于市场上的其它云服务,TPM 更是突破百万以上!不久前,华为云数据库 SQL Server 2017 企业版首发,采用微软 Always On 高可用架构,支持读写分离,负载均衡。该版本最高支持 5 只读副本,搭载华为云智能生态服务,助力用户轻松应对海量数据处理,让运维无忧!了解华为云SQL Server 更多信息,请访问官网:https://www.huaweicloud.com/product/mssql.html新用户点击下方链接登录/注册华为云账号实名认证(企业/个人)选择引擎立即领取免费试用地址:https://activity.huaweicloud.com/free_test/index.html#sql
  • [技术干货] 华为云 SQL Server 2017 企业版首发,轻松应对海量数据
    日前,华为云数据库高可用只读副本 SQL Server 2017 企业版首发,采用微软 Always On 高可用架构,支持读写分离,负载均衡。该版本最高支持 5 只读副本,搭载华为云智能生态服务,助力用户轻松应对海量数据处理,让运维无忧!作为全球广受欢迎的商用数据库之一,SQL Server 不但性能卓越稳定,集成微软 CRM,SharePoint,PowerBI 等所有旗下产品,而且云化后拥有即开即用、弹性伸缩、轻松管理、经济实用等特点。 SQL Server 2017 在 Linux、Docker 以及微软云端环境 Azure 上均可执行,推出后成为第一个为云而生、也能在本地部署,且跨不同操作系统的数据库。其中企业版提供全面的高端数据中心功能,性能优异且具有端到端的商业智能,支持最终用户访问深层数据,是众多商用数据库用户的理想选择。 众所周知,在网站创立初期,从成本角度考虑,用户往往使用单台机器提供集中式服务。但随着业务的发展和应用增长,数据库无论在性能还是稳定性上,都面临挑战。 尤其在一些大型网站或者应用中,高并发场景下,单台 SQL Server 服务器难以支撑非常大的访问压力。因此,要解决这个问题,就会用到负载均衡或读写分离。 负载均衡是把多台机器组成一个集群对外提供服务,在云数据库服务中则是将后端服务器作为计算资源、存储资源,由某台管理服务器封装成一个服务对外提供,客户无需关心真正提供服务的是哪台机器,只需专注业务发展。 读写分离通过将数据从主服务器同步到其他从服务器,提供非实时的查询功能,扩展性能并提高并发性,是中型规模应用的数据库系统常见设计方案。 数据库实现读写分离后,对用户而言好处颇多: 1. 通过将“读”操作和“写”操作分离到不同的数据库服务器上,降低对主服务器的CPU、内存、存储、网络资源的争用;2. 主服务器的增删改进行时,不影响查询服务器的查询,降低阻塞的发生,提高了并发性;3. 在应用程序提交了报表请求、不合理的查询请求时,不会导致长时间的锁表;4. 建立容灾副本甚至实现异地容灾,在发生灾难时,可以减少数据的损失。 此番华为云数据库首次推出支持 5 只读副本的云数据库 SQL Server 2017 企业版,对业务发展日新月异的互联网用户而言,无论是读写分离还是负载均衡的支持,都是一大喜讯。 值得一提的是,华为云数据库近期还推出了智能运维助手云DBA、云端数据管理服务 DAS、数据迁移服务 DRS 等配套服务,提供了丰富的数据库容灾/迁移方案和完善的数据库生态,帮助客户完成数据库搭建、运维、管理的智能化和自动化,实现业务及应用轻松上云,便捷管理。 后续,华为云SQL Server 将持续支持更多功能,将数据库人才从繁复的日常开发、运维中解放出来,投入到架构升级、应用优化等更重要的工作中去,打造智能时代的云数据库服务标杆。免费试用云数据库畅销引擎:https://activity.huaweicloud.com/free_test/index.html 了解华为云SQL Server 更多信息:https://www.huaweicloud.com/product/mssql.html想了解华为云数据库更多信息,请关注华为云数据库公众号。
  • [技术干货] RDS SQL SERVER 上主账号rdsuser的权限边界,以及他创建的子账号授权范围(新增2008R2)
    适用场景:通过诠释rdsuser账号的权限边界,让用户能够更好的使用和理解华为云RDS SQL SERVER。同时给出了全套的授权脚本,用户可以通过使用该脚本在rdsuser下创建子账号并进行有效管理。 rdsuser权限如下:实例级权限:实例级角色权限:[processadmin][setupadmin]实例级对象权限:ALTER ANY CONNECTIONALTER ANY LOGINALTER ANY SERVER ROLEALTER SERVER STATEALTER TRACECONNECT ANY DATABASECONTROL SERVERCONNECT SQLCREATE ANY DATABASESELECT ALL USER SECURABLESVIEW ANY DEFINITIONVIEW ANY DATABASEVIEW SERVER STATE数据库权限:master:publicMsdb:PublicSQLAentUserRoleModel:PublicRdsadmin:PublicOtherDB:Db_Owner rdsuser子账号创建+授权脚本:为了帮助大家快速的通过rdsuser创建子账号,并授予对应的最大操作权限,特此给出授权脚本。备注:本脚本只适用于SQL SERVER 2014 及以上版本,2008R2在下面use [master] DECLARE @DBName NVARCHAR(128)DECLARE @SQL NVARCHAR(max)DECLARE @Login_Name nvarchar(128)DECLARE @Login_Password nvarchar(128) set @Login_Name = 'TestLogin3'        --change your login nameset @Login_Password = '1qaz!QAZ'         SET @SQL='            USE [master] CREATE LOGIN  '+@Login_name+' WITH PASSWORD=N'''+ @Login_Password +''', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF                       alter server role [processadmin] add member  '+@Login_name+'            alter server role [setupadmin] add member '+@Login_name+'            GRANT VIEW SERVER STATE TO '+@Login_name+' WITH GRANT OPTION            GRANT VIEW ANY DEFINITION TO '+@Login_name+' WITH GRANT OPTION            GRANT VIEW ANY DATABASE TO '+@Login_name+' WITH GRANT OPTION            GRANT CREATE ANY DATABASE TO '+@Login_name+' WITH GRANT OPTION            GRANT ALTER SERVER STATE TO '+@Login_name+' WITH GRANT OPTION            GRANT ALTER TRACE TO '+@Login_name+' WITH GRANT OPTION            GRANT ALTER ANY SERVER ROLE TO '+@Login_name+' WITH GRANT OPTION            GRANT ALTER ANY LOGIN TO '+@Login_name+' WITH GRANT OPTION            GRANT ALTER ANY CONNECTION TO '+@Login_name+' WITH GRANT OPTION            GRANT CONNECT SQL TO '+@Login_name+' WITH GRANT OPTION            GRANT VIEW SERVER STATE TO '+@Login_name+' WITH GRANT OPTION        'print @SQL        exec (@SQL)         SET @SQL='            use [msdb]            if exists(select top 1 1 from sys.sysusers where name = '''+ @Login_Name +''')            begin                ALTER USER '+@Login_name+' with login = '+@Login_name+';            end            else            begin                CREATE USER '+@Login_name+' FOR LOGIN '+@Login_name+';            end            ALTER ROLE [SQLAgentUserRole] ADD MEMBER '+@Login_name+'            GRANT ALTER ON ROLE::[SQLAgentUserRole] TO '+@Login_name+' WITH GRANT OPTION            GRANT ALTER ANY USER TO  '+@Login_name+'  WITH GRANT OPTION            GRANT EXEC ON msdb.dbo.sp_delete_database_backuphistory TO   '+@Login_name+'    WITH GRANT OPTION            GRANT EXEC ON msdb.dbo.sp_purge_jobhistory TO   '+@Login_name+'    WITH GRANT OPTION             GRANT SELECT ON msdb.dbo.sysjobs TO '+@Login_name+'  WITH GRANT OPTION;            GRANT SELECT ON msdb.dbo.sysschedules TO '+@Login_name+'  WITH GRANT OPTION;            GRANT SELECT ON msdb.dbo.sysjobsteps TO '+@Login_name+'  WITH GRANT OPTION;            GRANT SELECT ON msdb.dbo.sysjobhistory TO '+@Login_name+'  WITH GRANT OPTION;            GRANT SELECT ON msdb.dbo.syscategories TO '+@Login_name+'  WITH GRANT OPTION;            GRANT SELECT ON msdb.dbo.sysjobschedules TO '+@Login_name+'  WITH GRANT OPTION;        'print @SQL        exec (@SQL)         declare DBName_Cursor cursor  for        select quotename(name) from sys.databases where database_id > 4 and state = 0        and name not like '%$%'        and name <> 'rdsadmin'        open DBName_Cursor            fetch next from DBName_Cursor into @DBName            WHILE @@FETCH_STATUS = 0            begin                SET @SQL='        USE ' + (@DBName) + '                            if exists(select top 1 1 from sys.sysusers where name = '''+ @Login_Name +''')                            begin                                ALTER USER '+@Login_name+' with login = '+@Login_name+';                                ALTER ROLE [db_owner] ADD MEMBER '+@Login_name+';                            end                            else                            begin                                CREATE USER '+@Login_name+' FOR LOGIN '+@Login_name+';                                ALTER ROLE [db_owner] ADD MEMBER '+@Login_name+';                            end                            'print @SQL                EXEC (@SQL)                fetch next from DBName_Cursor into @DBName            end        close DBName_Cursor        deallocate DBName_Cursor    备注:本脚本只适用于SQL SERVER 2008R2 版本,2014以上版本看上面滴        use [master]        DECLARE @DBName NVARCHAR(128)        DECLARE @SQL NVARCHAR(max)        DECLARE @Login_Name nvarchar(128)        DECLARE @Login_Password nvarchar(128)        set @Login_Name = 'TestLogin7'        --change your login name        set @Login_Password = '1qaz!QAZ'        SET @SQL='        USE [master]        CREATE LOGIN  '+@Login_name+' WITH PASSWORD=N'''+ @Login_Password +''', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF        EXEC sp_addsrvrolemember '+ @Login_name +' , [processadmin]        EXEC sp_addsrvrolemember '+ @Login_name +' , [setupadmin]             GRANT VIEW SERVER STATE TO '+@Login_name+' WITH GRANT OPTION        GRANT VIEW ANY DEFINITION TO '+@Login_name+' WITH GRANT OPTION        GRANT VIEW ANY DATABASE TO '+@Login_name+' WITH GRANT OPTION        GRANT CREATE ANY DATABASE TO '+@Login_name+' WITH GRANT OPTION        GRANT ALTER SERVER STATE TO '+@Login_name+' WITH GRANT OPTION        GRANT ALTER TRACE TO '+@Login_name+' WITH GRANT OPTION        GRANT ALTER ANY LOGIN TO '+@Login_name+' WITH GRANT OPTION        GRANT ALTER ANY CONNECTION TO '+@Login_name+' WITH GRANT OPTION        GRANT CONNECT SQL TO '+@Login_name+' WITH GRANT OPTION        GRANT VIEW SERVER STATE TO '+@Login_name+' WITH GRANT OPTION        '        print @SQL        exec (@SQL)        SET @SQL='            use [msdb]            if exists(select top 1 1 from sys.sysusers where name = '''+ @Login_Name +''')            begin                ALTER USER '+@Login_name+' with login = '+@Login_name+';            end            else            begin                CREATE USER '+@Login_name+' FOR LOGIN '+@Login_name+';            end            EXEC sp_addrolemember [SQLAgentUserRole], '+@Login_name+'                               GRANT ALTER ON ROLE::[SQLAgentUserRole] TO '+@Login_name+' WITH GRANT OPTION            GRANT ALTER ANY USER TO  '+@Login_name+'  WITH GRANT OPTION            GRANT EXEC ON msdb.dbo.sp_delete_database_backuphistory TO   '+@Login_name+'    WITH GRANT OPTION            GRANT EXEC ON msdb.dbo.sp_purge_jobhistory TO   '+@Login_name+'    WITH GRANT OPTION            GRANT SELECT ON msdb.dbo.sysjobs TO '+@Login_name+'  WITH GRANT OPTION;            GRANT SELECT ON msdb.dbo.sysschedules TO '+@Login_name+'  WITH GRANT OPTION;            GRANT SELECT ON msdb.dbo.sysjobsteps TO '+@Login_name+'  WITH GRANT OPTION;            GRANT SELECT ON msdb.dbo.sysjobhistory TO '+@Login_name+'  WITH GRANT OPTION;            GRANT SELECT ON msdb.dbo.syscategories TO '+@Login_name+'  WITH GRANT OPTION;            GRANT SELECT ON msdb.dbo.sysjobschedules TO '+@Login_name+'  WITH GRANT OPTION;        '        print @SQL        exec (@SQL)                declare DBName_Cursor cursor  for        select quotename(name)from sys.databases where   database_id > 4 and state = 0        and name not like '%$%'        and name <> 'rdsadmin'        open DBName_Cursor        fetch next from DBName_Cursor into @DBName        WHILE @@FETCH_STATUS= 0        begin            SET @SQL='        USE '+ (@DBName)+ '                        if exists(select top 1 1 from sys.sysusers where name = '''+ @Login_Name +''')                        begin                            ALTER USER '+@Login_name+' with login = '+@Login_name+';                                EXEC sp_addrolemember N''db_owner'', N'''+@Login_name+''';                                                                end                        else                        begin                            CREATE USER '+@Login_name+' FOR LOGIN '+@Login_name+';                            EXEC sp_addrolemember N''db_owner'', N'''+@Login_name+''';                        end                        '        print @SQL            EXEC (@SQL)            fetch next from DBName_Cursor into @DBName        end        close DBName_Cursor        deallocate DBName_Cursor        
  • [技术干货] RDS SQL SERVER通过Generate Script(生成脚本)功能对数据库进行逻辑迁移
    适用场景:1.用户在本地的实例或者在ECS上的实例2.数据库整体大小不是很大(最好不超过300M)3.适用于华为云合营云场景,在没有部署DRS,甚至没有公网IP的情况下可选择本方案 操作步骤:1.在你本地或ECS上,通过SSMS连接你的实例2.通过SQL SERVER自带的脚本生成工具,将数据库结构脚本和每个对象的静态数据库通过SQL脚本生成出来,步骤如下:a.选中要生成schema脚本的数据库,点击鼠标右键选择任务-->生成脚本    b.在导航页中根据提示选择下一步,并确认要导出的对象,可选全部,也可以选择独立对象模块导出    c.下一步,选择将要导出的文件保存到对应的位置i.当你的数据库整体大小<=50M时,可以选择单个文件ii.当你的数据库大小>50M时,可以选择每个对象一个文件    d.同时点击高级按钮进入详细选项页面,根据实际需要选择具体脚本生成规则和相关细节,例如:触发器,索引,唯一键,主键,服务器版本等重要选项。特别注意:要编写脚本的数据库的类型选择为架构和数据    e.最后点击下一步完成脚本生成5.将生成的每一个SQL脚本文件在SSMS上打开,远程连接到RDS对应实例上,逐个进行执行就可以将数据库结构和数据在远端重新生成。 备注:该方案在某些表中数据库特别大的时候,可能无法直接在SSMS管理工具中直接打开执行,需要通过SQLCMD命令远程连接到实例端直接进行执行。例如:sqlcmd -s 127.0.0.1 -i g:\1.sql -U rdsuser -P 123456官方地址:https://docs.microsoft.com/zh-cn/sql/relational-databases/scripting/sqlcmd-start-the-utility?view=sql-server-2017
  • [技术干货] RDS SQL SERVER 支持DMV动态管理视图,方便用户快速查询实例上性能消耗最高的10条SQL语句
    适用场景:1.用户实例出现性能瓶颈,感觉自己的数据库执行效率越来越低2.或通过监控发现在某些时段CPU,IO较高 操作步骤:1.首先在客户端通过rdsuser账号连接到你的实例,在管理面中执行以下语句 declare @DatabaseName nvarchar(100)set @DatabaseName = 'Wisdom_TT_ODS' select top 100DB_NAME(st.dbid) as DBName, OBJECT_NAME(st.objectid,st.dbid) as ObjectName,substring(st.text,(qs.statement_start_offset/2)+1,((case qs.statement_end_offset when -1 then datalength(st.text) else qs.statement_end_offset end - qs.statement_start_offset)/2) + 1) as Statement,st.text as Query,qp.query_plan,plan_generation_num,creation_time,last_execution_time,execution_count,total_worker_time,min_worker_time  ,max_worker_time,total_logical_reads,min_logical_reads,max_logical_reads,total_elapsed_time,min_elapsed_time,max_elapsed_time,total_rows,min_rows,max_rows,total_worker_time/execution_count as avg_worker_time                                --平均CPU耗时,total_logical_reads/execution_count as avg_logical_reads                        --平均逻辑读,total_elapsed_time/execution_count as avg_elapsed_time                                --平均总耗时,total_rows/execution_count as avg_rows                                                        --平均处理数据行,sql_handle                ,plan_handle,query_hash,query_plan_hashfrom sys.dm_exec_query_stats qscross apply sys.dm_exec_sql_text(plan_handle) stcross apply sys.dm_exec_query_plan(plan_handle) qpwhere st.dbid=DB_ID(@DatabaseName)and text not like '%sys.%'and text not like '%[[]sys]%'order by avg_worker_time desc 2.我们可以看到查询结果中相应数据库中的SQL执行记录以及对应的资源消耗详情。字段说明详见:http://technet.microsoft.com/zh-tw/library/ms189741.aspx 3.其中最常用的是total_worker_time 和 total_elapsed_time,这两个参数一个是CPU累计消耗时间,一个是SQL执行累计消耗时间,通过倒序排序,从而获得该数据库或整个实例上面消耗最高的前10 SQL语句 4.后面就需要用户自己通过Statement中的SQL语句,结合自身应用业务场景进行优化了。注:query_plan里面的执行计划有很好的参考价值 如果你实在无法优化也没关系,可以花钱购买华为RDS DBA服务,我们来帮你优化。
  • 通过ECS虚拟机+RDS SQL Server10分钟搭建一套爬虫环境,迎娶白富美走上人生巅峰不是梦
    基于RDS For SQL Server爬虫实践云数据库(SQL Server)+云数据库客户端(DAS)背景本教程爬取的是新浪微博微公益平台的微拍卖拍品信息列表。爬虫爬取的信息为拍品序号、拍品名称、起拍价和当前价。我们需要在数据库中构建一个存储这4个信息的表格,随后用爬虫爬取数据将数据存入数据库中。字段名字段说明举例Id序号1project_name拍品名称春节晚会小虎队演出服-霹雳虎project_start_price起拍价100Project_now_price当前价57680 下面,让我们开始搭建小爬虫吧!1.下载软件1.1 下载pycharm community版>下载路径:https://www.jetbrains.com/pycharm/download/#section=windows 选择community版1.2下载python2.7.15>下载路径:https://www.python.org/downloads/release/python-2715/,选择Windows x86-64 MSI installer2.安装2.1 安装python-2.7.15>运行python-2.7.15.amd64.msi>Install for all users>选择目标路径,点击Next>点击Next>点击Finish2.2 安装PyCharm>运行pycharm-community-2018.2.1.exe>点击Next>选择默认路径即可,也可以自定义路径,点击Next。>根据系统操作系统版本选择, 64位系统选择64-bit launcher, 其他勾选如上图。>点击Install>勾选Run Pycharm Community **,点击Finish>运行PyCharm>阅读完政策说明后点击Accept>点击create new project>设置Project的存储路径>点击create>点击close2.3在pycharm中安装第三方库>点击file>点击settings>点击project untitled1(其中untitled1为自定义的项目名)>点击 project interpreter>点击右侧的“+”号>在搜索框中输入pymssql,选中pymssql, 点击Install Package出现以下提示说明安装成功,关闭PyCharm 3.购买云数据库在华为云官网开发者支持计划领取免费套餐,或者购买SQL Server数据库4.申请数据库客户端DAS>目前DAS在公测阶段,您可以通过以下链接申请免费试用https://www.huaweicloud.com/product/das.html5.登录华为云数据库管理页面>DAS服务申请成功后登陆管理控制台,选择您要存储数据的实例,点击登陆,跳转到DAS登陆页面输入管理员账户名和密码,账户名可在实例信息页面查到,一般默认为rdsuser,密码为您在购买数据库实例时输入的管理员密码。 >登陆DAS后右键点击实例名>点击SQL窗口,将以下SQL语句输入编辑框中,点击执行SQL语句,执行成功后sina数据库就建好啦。CREATE DATABASE [sina]CONTAINMENT = NONEON PRIMARY ( NAME = N'sina', FILENAME = N'D:\RDSDBDATA\DATA\sina.mdf' , SIZE = 5120KB , FILEGROWTH = 1024KB )LOG ON ( NAME = N'sina_log', FILENAME = N'D:\RDSDBDATA\DATA\sina_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)随后删除上述SQL语句,并在在SQL语句输入框中输入以下SQL语句,建立sina_paimai表USE [sina];CREATE TABLE [sina].[dbo].[sina_paimai]([id] int NOT NULL IDENTITY (1,1) ,[project_name] nvarchar(max) NULL ,[project_start_price] nvarchar(max) NULL ,[project_now_price] nvarchar(max) NULL );ALTER TABLE [dbo].[sina_paimai] ADD CONSTRAINT[PK_sina_paimai] PRIMARY KEY CLUSTERED ([id]) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY];ALTER TABLE [dbo].[sina_paimai] SET (LOCK_ESCALATION = TABLE);完成上述步骤后我们已经在sina中新建了一张名为sina_paimai的表,表**有四个字段,分别是id,project_name,project_start_price,project_now_price 6.完成以上步骤后,只差最后一步,爬虫就搭建完成啦。>打开pycharm>右键点击project untitled1>点击new>点击python file 给你要创建的python程序起一个名字,点击OK.然后把以下“sina爬虫.txt”代码复制进你刚刚创建的python文件中,并把以下这段代码中的前四个字段依次改成你的数据库实例公网IP:端口号,数据库账户名,密码和数据库名保存就可以啦~connection=pymssql.connect(    'xxx.xxx.x.xxx:xxxx',    'rdsuser',    'xxxxxxxx',    'sina',    charset='utf8',   )爬虫代码:见下方附件 最后点击run!7.在数据库客户端DAS中查看爬取的数据>登录DAS, 在SQL窗口中输入SELECT * FROM `sina_paimai`,点击执行SQL就可以看到爬取的结果啦
  • [技术干货] 微软官方学习库Adventure示例数据库安装方法,最后附赠微软SQL SERVER入门Step by Step
    适用场景:微软Adventure示例数据库是微软提供的官方学习数据库,里面提供OLTP和OLAP的真实数据库场景,极大的便利了新人学习数据库的使用和入门,并且该数据库紧密的结合了微软的官方文档和三方学习资料,是用户入门SQL SERVER 的不二选择。 下载地址:请下载一个SQL SERVER 2014 以上版本的AdventureWorks数据库https://github.com/Microsoft/sql-server-samples/releases/tag/adventureworks 准备阶段:在一切开始之前,你需要到华为官网注册一个账号,并申请一个RDS SQL SERVER 2014 Web 或 RDS SQL SERVER 2016 Web版实例 安装步骤:1.点击上面链接进入微软官网下载最新Adventure实例数据库,进入页面后点击要下载的bak文件(推荐AdventureWorks2014.bak)。备注:AdventureWorks是OLTP场景的业务数据库;AdventureWorksDW是OLAP的的分析型数据库;大家根据需要选择下载,考虑到大小关系,本次就仅下载AdventureWorks2014.bak,给大家进行演示。sql-server-2016-samples.zip:是微软2016新特性的用例脚本,方便大家对2016新特性进行学习用的。2.将AdventureWorks2014.bak备份文件保存到本地后,我们账号登录华为云官网,进入对象存储服务 3.我们在上面先创建一个公共桶obs-qian。注意:1.该桶所在区域必须跟RDS SQL SERVER 实例所在区域一致  2.该桶最好设置为公共读写   4.桶建好之后,可以直接通过在线页面能进行上传点击刚才生成的桶,在对象里面可以上传文件到根目录。注意:1.小于50M的文件支持页面上传2.目前DRS服务仅支持根目录上的备份文件上传,所以请直接上传文件,不要添加文件夹3.注意上传时不要点击KMS加密功能 5.如果你的备份文件大于50M,则需要下载OBS客户端进行上传操作。a.工具下载地址:https://developer.huaweicloud.com/toolsb.选择业务工具,下载OBS Browser工具 到本地,下载完成后可直接解压使用c.解压后双机obs.exe打开客户端通过AKSK密钥登录,AKSK可以在我的凭证下进行创建和管理,具体为:1).进入我的凭证2).选中管访问密钥,改密钥如果遗失,仅能通过删除重建进行重置。3).通过新获得的密钥,登录OBS Browser4).打开OBS Browser,点中右上方用户信息,选择账号管理,在账号管理中,输入上面的信息,在确认后跳转到该账号5).登录成功后选择进入刚才添加的桶名obs-qian,在根目录下上传bak文件。    7.备份文件上传成功后就可以进入DRS服务,进行离线还原操作了。a.在页面上找到DRS数据库复制服务b.进入DRS控制台界面后,点击左侧离线迁移管理,再点击右侧创建迁移任务备注:如果你欠费了就看不到右边的创建迁移任务的按钮,请充值哦c.进入任务界面后在下方选中刚才上传备份文件的桶名,这是他会自动刷出该桶根目录下的所有.bak的备份文件,选中刚才上传的备份文件,点击下一步。备注:1.备份文件后缀必为.bak2.备份文件必须在桶的根目录下d.在目标RDS实例名选中你要还原的目标实例;该实例必须是SQL SERVER 2014或以上版本,在待还原数据库名输入你要还原的数据库名称,如果已有同名数据库存在于该目标实例上,请选中覆盖还原按钮。备注:1.目标实例的版本必须要大于等于你的备份文件源实例的版本,例如:你是从2014实例上备份下来的备份文件,你就只能在2014,2016实例上进行还原,无法还原到2008上2.待还原数据库名称需要注意大小写,必须跟备份文件中的数据库名称一致。e.点击下一步,最后生成离线迁移任务,并在离线迁移管理界面可查看到该任务的进展。备注:1.迁移过程中请耐心等待,原则上100G大小的备份文件还原只需要1小时2.迁移过程失败会有详细的报错提示,可根据报错提示修改对应设置再行上传,如有问题可联系在线客服或提工单寻求帮助f.迁移任务成功后可通过实例管理界面登录功能连接在线实例进行查看。1)进入关系型数据库管控面,点击登录2)在弹出页面输入该实例rdsuser主账号+密码,即可登入Das在线管理工具。3)登入后我们可以看到AdventureWorks数据库已经还原成功,大家快去使用吧。备注:DAS是华为公有云RDS全新上线的在线数据库管理工具,兼容MYSQL&SQL SERVER,便捷易用,目前公测中,申请入口:http://www.huaweicloud.com/product/das.html 微软官方学习链接:微软培训体系:https://www.microsoft.com/zh-cn/learning/sql-training.aspx 微软认证体系;https://www.microsoft.com/zh-cn/learning/sql-certification.aspx SQL SERVER 2014在线学习:了解核心数据库概念 (20–25%)了解数据在表中的存储方式了解什么是表,它与将存储在数据库内的数据有怎样的关系;列/字段,行/记录了解关系数据库概念了解什么是关系数据库,关系数据库管理系统      (RDBMS) 的需求,以及如何建立关系了解数据操作语言      (DML)了解什么是      DML,了解它在数据库中的角色了解数据定义语言      (DDL)了解如何使用 T-SQL      创建数据库对象,例如表和视图MSDN官方资料:设计表3 - 实施关系数据库数据操作语言 (DML) 语句 (Transact-SQL) 创建数据库对象 (20–25%)选择数据类型了解什么是数据类型,数据类型重要意义所在,以及数据类型对存储需求的影响了解表和如何创建表表的用途;使用恰当的      ANSI SQL 语法在数据库中创建表创建视图了解何时使用视图,如何使用      T-SQL 或图形设计器创建视图创建存储过程和函数选择、**、更新或删除数据MSDN官方资料:发布数据和数据库对象CREATE TABLE (Transact-SQL)如何:创建视图 (Visual Database Tools)  操作数据 (25–30%)选择数据利用 SELECT      查询从一个表中提取数据,使用联接提取数据,使用 UNION 和 INTERSECT 合并结果集**数据了解如何将数据**数据库,如何使用      INSERT 语句更新数据了解如何使用恰当的      UPDATE 语句更新数据库内的数据,如何将更新后的数据写入数据库,如何使用表进行更新删除数据从一个或多个表中删除数据,使用事务确保数据完整性和参照完整性MSDN官方资料:使用 SqlDataSource 控件选择数据演练:使用 LinqDataSource 和 DetailsView 控件检索、更新、**和删除数据如何:从数据库中删除行 (LINQ to SQL) 了解数据存储 (15–20%)了解规范化了解规范化的原因,五种最常见的规范化级别,如何将数据库规范化为第三种规范形式了解主键、外键和组合键了解数据库中使用键的原因,选择恰当的主键,为键选择恰当的数据类型,为组合键选择恰当的字段,了解外键与主键之间的关系了解索引了解聚集索引和非聚集索引及其在数据库中的用途MSDN官方资料:使用键如何:在查询中处理组合键 (LINQ to SQL)使用索引 管理数据库 (10–15%)了解数据库安全概念了解保护数据库的需求、可保护的对象以及应保护的对象,了解用户帐户和角色了解数据库备份和还原了解各种备份类型,例如完整备份和增量备份,备份的重要性,如何还原数据库MSDN官方资料:SQL Server 安装的安全性考虑因素SQL Server 安全性 (ADO.NET)在 SQL Server 中备份和还原数据库
  • [技术干货] 将本地备份文件上传OBS,并还原到RDS SQL SERVER实例
    适用场景:1.用户可以将本地实例上的数据库通过全量备份生成备份文件,并通过OBS服务与DRS服务,将该备份文件直接还原到RDS SQL SERVER实例上2.用户从本地备份出来的备份文件的版本必须小于等于要还原的目标实例的版本。例如:你本地是2012标准版的实例,你备份出来的文件就只能还原到2014,2016标准版或企业版,不能还原到2008 的所有版本,和2014,2016的Web版上 操作步骤:1.首先备份你的本地实例上的一个数据库或多个数据库到一个备份文件中,备份文件后缀必须为.bak。脚本命令如下,我们可以将多个数据库备份到同一个备份文件中,也可分开来备份:BACKUP DATABASE [AdventureWorks] TO  DISK = N'D:\RDSDBDATA\BACKUP\LocalDatabase.bak' WITH NOFORMAT, NOINIT,  NAME = N'本地备份文件上传RDS [AdventureWokrs]', SKIP, NOREWIND, NOUNLOAD,  STATS = 10 BACKUP DATABASE [CBC] TO  DISK = N'D:\RDSDBDATA\BACKUP\LocalDatabase.bak' WITH NOFORMAT, NOINIT,  NAME = N'本地备份文件上传RDS [AdventureWokrs]', SKIP, NOREWIND, NOUNLOAD,  STATS = 10 BACKUP DATABASE [RDM_Count] TO  DISK = N'D:\RDSDBDATA\BACKUP\LocalDatabase.bak' WITH NOFORMAT, NOINIT,  NAME = N'本地备份文件上传RDS [AdventureWokrs]', SKIP, NOREWIND, NOUNLOAD,  STATS = 10 2.在备份前,需要对每一个数据库进行以下信息的确认:1.点击数据库属性,确认该数据库的恢复模式必须是完整;兼容性级别必须大于等于100;如果不是请更新该数据库,避免迁移报错2.同时数据库的恢复模式请改为完整 3.完成以上工作后,我们账号登录华为云官网,进入对象存储服务 4.我们在上面先创建一个公共桶。注意:1.该桶所在区域必须跟RDS SQL SERVER 实例所在区域一致  2.该桶最好设置为公共读写5.桶建好之后,可以直接通过在线页面能进行上传点击刚才生成的桶,在对象里面可以上传文件到根目录。注意:1.小于50M的文件支持页面上传2.目前DRS服务仅支持根目录上的备份文件上传,所以请直接上传文件,不要添加文件夹 6.如果你的备份文件大于50M,则需要下载OBS客户端进行上传操作。a.工具下载地址:https://developer.huaweicloud.com/toolsb.选择业务工具,下载OBS Browser工具 到本地,下载完成后可直接解压使用c.解压后双机obs.exe打开客户端通过AKSK密钥登录,AKSK可以在我的凭证下进行创建和管理,具体为:1).进入我的凭证2).选中管访问密钥,改密钥如果遗失,仅能通过删除重建进行重置。3).通过新获得的密钥,登录OBS Browser4).打开OBS Browser,点中右上方用户信息,选择账号管理,在账号管理中,输入上面的信息,在确认后跳转到该账号5).登录成功后选择添加桶,选择添加外部桶,输入下载页面上给出的桶名6).添加成功后点击进入该桶,在根目录下上传bak文件。 7.备份文件上传成功后就可以进入DRS服务,进行离线还原操作了。a.在页面上找到DRS数据库复制服务b.进入DRS控制台界面后,点击左侧离线迁移管理,再点击右侧创建迁移任务备注:如果你欠费了就看不到右边的创建迁移任务的按钮,请充值哦c.进入任务界面后在下方选中刚才上传备份文件的桶名,这是他会自动刷出该桶根目录下的所有.bak的备份文件,选中刚才上传的备份文件,点击下一步。备注:1.备份文件后缀必为.bak2.备份文件必须在桶的根目录下d.在目标RDS实例名选中你要还原的目标实例;在待还原数据库名输入你要还原的数据库名称,如果已有同名数据库存在于该目标实例上,请选中覆盖还原按钮。备注:1.目标实例的版本必须要大于等于你的备份文件源实例的版本,例如:你是从2014实例上备份下来的备份文件,你就只能在2014,2016实例上进行还原,无法还原到2008上2.待还原数据库名称需要注意大小写,必须跟备份文件中的数据库名称一致。e.点击下一步,最后生成离线迁移任务,并在离线迁移管理界面可查看到该任务的进展。备注:1.迁移过程中请耐心等待,原则上100G大小的备份文件还原只需要1小时2.迁移过程失败会有详细的报错提示,可根据报错提示修改对应设置再行上传,如有问题可联系在线客服或提工单寻求帮助f.迁移任务成功后可通过实例管理界面登录功能连接在线实例进行查看。1)进入关系型数据库管控面,点击登录2)在弹出页面输入该实例rdsuser主账号+密码,即可登入Das在线管理工具。3)登入后我们可以看到3个数据库已经全部还原成功,大家快去使用吧。备注:DAS是华为公有云RDS全新上线的在线数据库管理工具,兼容MYSQL&SQL SERVER,便捷易用,目前公测中,申请入口:http://www.huaweicloud.com/product/das.html
  • [技术干货] RDS SQL SERVER 参数组最佳实践
    使用说明:实例参数修改:1.每一个实例都有自己唯一的参数组,在实例管理页面-->实例详情页-->参数修改 2.每个实例的参数都是唯一的修改后不会对其他实例产生影响 参数组管理:系统默认:1.每个SQL SERVER 版本都有对应的唯一默认参数组模板:        2.选中对应版本的模板,点击更多下面的应用,可将该默认参数组模板上的参数覆盖选中的实例对应参数 备注:默认参数组中的所有参数组都是不可以修改的。 自定义:1.同时你可以在自定义页面下根据一个默认参数组模板来创建自定义参数组。 2.创建的自定义参数组可以有限的修改其中部分参数的值,修改完成后点击保存,同时可将该自定义参数组应用到对应版本的多个实例上。          更具不同的场景来配置你的参数值:SQL SERVER 的默认参数组模板中已经给出了不同版本下的参数值最佳实践,我们仅需要针对不同场景改动如下参数即可有效的控制实例匹配对的场景。max degree of parallelism:参数说明:每个执行语句的CPU最大并行度,该参数值默认为0,当你在使用实例时,SQL SERVER会通过查询引擎自动的给你的每一个请求分配CPU执行计划,以通过并行执行的方式有效提升你的执行性能。参数值对应的场景:1.当你本地实例以查询获取结果为主,该参数值为02.当你本地实例以写入,更新,删除为主,该参数可设置为1 max server memory (MB)参数说明:该参数用于控制实例上SQL SERVER数据库服务占用整个服务器的最大内存的上限参数值对应的场景:华为RDS SQL SERVER已经根据你的每个实例自身大小做出了对应的适当配置,该值你可不必更改,如果实在要改请注意以下限制条件。1.不能低于2G2.不能高于你实例最大内存的95% user connections参数说明:该参数用户控制实例上用户发起的最大连接数参数值对应的场景:该参数目前默认为1000,可根据实际情况进行调整。1.设置为0,该实例连接数不受限制2.不能设置1-10之间的值 
  • [技术干货] 通过Navicat客户端,连接使用RDS SQL SERVER 需要注意的事项
    适用场景:用户本地长期使用Navicat等三方客户端,在上云到RDS SQL SERVER后需要在连接和创建数据库的时候注意一些配置选项。 推荐:目前华为云RDS SQL SERVER是可以完美适配SQL SERVER官方客户端SSMS的推荐大家选用。官网最新下载地址:https://docs.microsoft.com/zh-cn/sql/ssms/sql-server-management-studio-changelog-ssms?view=sql-server-2017 使用帮助:同时,我们也发现大量的小伙伴在使用一些比较流行的三方客户端工具的时候出现了一些适配问题,在下面我将主要针对Navicat这款当前比较流行的三方数据库客户端工具,连接RDS SQL SERVER数据库服务进行操作上的一些问题进行详细说明:1.在打开NAVICAT客户端后点击连接弹出客户连接界面,在界面上需要输入一个连接名称,同时需要输入你的实例IP+端口号,rdsuser主账号加密码,点击连接测试成功后再确定,就可以连接到实例了。备注:注意IP和端口之间用英文逗号隔开',' 2.连接到实例后下一步就是开始创建数据库,右键实例选择新建数据库第一步,输入数据库名称,拥有者推荐选择rdsuser主账号,排序规则最好跟实例默认规则一致,查询实例默认排序规则脚本如下:SELECT SERVERPROPERTY('Collation')恢复模式必选FULL,不然该数据库不会纳入备份策略兼容性级别跟据需要选择100以上即可 第二步,文件组一般情况下无需修改第三步,文件中文件目录必须是D:\RDSDBDATA\DATA\,这个地址是RDS实例唯一允许建库地址,同时修改完mdf的数据文件后,还要注意同时修改下面的log文件名,修改日志的文件目录同数据文件目录,其余选项根据需要设置就好。 第四步,最后点SQL预览,脚本大致如下,点击确定数据库创建成功CREATE DATABASE [Test20180717]ON PRIMARY(NAME = N'Test20180717',FILENAME = N'D:\RDSDBDATA\DATA\Test20180717.mdf',SIZE = 2304KB,MAXSIZE = UNLIMITED,FILEGROWTH = 1024KB)LOG ON(NAME = N'Test20180717_log',FILENAME = N'D:\RDSDBDATA\DATA\Test20180717_log.ldf',SIZE = 2304KB,MAXSIZE = UNLIMITED,FILEGROWTH = 10%)COLLATE Chinese_PRC_CI_AS GO EXEC [Test20180717].dbo.sp_changedbowner N'rdsuser'GO 根据以上步骤建库建表成功后,下面的具体操作通过T-sql语句来进行执行问题就不大了。同时我们可以看到在缺乏管理员权限的支撑下,三方工具的友好性的确大打折扣,所以强烈推荐大家还是尽量使用官方客户端SSMS,是完全免费下载使用的。
  • [技术干货] 本地SQL SERVER 数据库通过导入导出功能迁移到RDS SQL SERVER Step by Step
    适用场景:1.用户在本地实例上创建的SQL SERVER数据库2本地SQL SERVER实例的版本高于RDS SQL SERVER实例的版本时,无法通过DRS提供的备份还原进行迁移3.不想进行数据库粒度的同步,仅针对其中个别表对象进行同步 操作步骤:1.需给你的RDS SQL SERVER实例绑定一个EIP点击实例管理,在基本信息下点击弹性IP绑定,通过弹出框选中对应的弹性IP。2.在本地安装SQL SERVER客户端管理工具,通过弹性IP进行连接微软官网客户端下载地址(注意根据本地环境的语言选择下载安装包):https://docs.microsoft.com/zh-cn/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-2017下载完成后通过客户端工具测试连接目标实例:你可以在本地同时连接本地实例&RDS实例3.通过SQL SERVER自带的脚本生成工具,将ECS上的数据库结构脚本化生成出来,步骤如下:a.选中要生成schema脚本的数据库,点击鼠标右键选择任务-->生成脚本    b.在导航页中根据提示选择下一步,并确认要导出的对象,可选全部,也可以选择独立对象模块导出c.下一步,选择将要导出的文件保存到对应的位置(推荐保存到本机上生成一个SQL 脚本方便保存执行)d.同时点击高级按钮进入详细选项页面,根据实际需要选择具体脚本生成规则和相关细节,例如:触发器,索引,唯一键,主键,服务器版本等重要选项。特别注意:脚本Drop 和 Create;要编写脚本的数据的类型两个重要选项e.最后点击下一步完成脚本生成5.将生成的脚本SQL 文件在SSMS上打开,连接到RDS对应实例上,先创建一个空数据库,再通过刚才创建的脚本在该数据库上执行,以创建相关结构。6.完成以上步骤后通过SQL SERVER自带的导入导出功能完成数据迁移,步骤如下:a.选择要导出数据库的数据库,右键点击选择任务-->导出数据   b.根据导航选择下一步,在选择数据源里面数据源:选择SQL SERVER Native Client(该选项根据你的数据源类型进行选择)服务器名称:输入数据源实例所在的IP加端口号,如果是本地可以直接输入实例名或者localhost身份验证:选择使用SQL SERVER身份验证,并在下方输入rdsuser账号和密码最后选中你要导出的数据库作为数据源c.在选择目标栏目中,一切同上,主要选择数据库的时候要选中要导入的对应数据库,然后点击下一步,选中复制一个或多个表或视图的数据d.在选择源表和视图中,根据需要的选择导出的对象进行选中,可通过shift进行多选,注意一般会去掉后面的对应视图。此时如果该对应已经在目标库上创建完则会自动根据名称进行匹配,如果没有则会自动生成初始框架不带索引,外键。e.关键来了,全选你要导出的所有对象,再点编辑映射,根据实际需要进行选择,但是至少要选中启用标识**f.后面点击下一步开始数据导出导入进度查看,一般效率为4000行/秒 备注:在整体流程中架构同步相关的步骤可以是不做的,但是迁移过去的仅包含相关数据,结构可能不一致;同时如果先做了架构同步后再迁移数据库,数据迁移过程可能会因为架构约束导致失败(如:外键约束,自增长键,timestamp),所以具体实现过程中请大家根据实际情况选择性操作。
  • [技术干货] ECS 上的SQL SERVER数据库通过导入导出功能迁移到RDS SQL SERVER Step by Step
    适用场景:1.用户在ECS上创建的SQL SERVER数据库2.当你ECS上SQL SERVER实例的版本高于RDS SQL SERVER实例的版本时,无法通过DRS提供的备份还原进行迁移3.不想进行数据库粒度的同步,仅针对其中个别表对象进行同步 操作步骤:1.创建一个ECS虚拟机,注意虚拟机跟对应的RDS应在通Region,同VPC下2.在ECS上安装的SQL SERVER 2014,2012,2008版本,至少是标准版,最好跟要还原的目标实例版本一致3.将本地bak文件上传至ECS服务器端,并通过该ECS上的SQL SERVER服务器进行本地还原4.通过SQL SERVER自带的脚本生成工具,将ECS上的数据库结构脚本化生成出来,步骤如下:a.选中要生成schema脚本的数据库,点击鼠标右键选择任务-->生成脚本b.在导航页中根据提示选择下一步,并确认要导出的对象,可选全部,也可以选择独立对象模块导出c.下一步,选择将要导出的文件保存到对应的位置(推荐保存到本机上生成一个SQL 脚本方便保存执行)    d.同时点击高级按钮进入详细选项页面,根据实际需要选择具体脚本生成规则和相关细节,例如:触发器,索引,唯一键,主键,服务器版本等重要选项。特别注意:脚本Drop 和 Create;要编写脚本的数据的类型两个重要选项    e.最后点击下一步完成脚本生成5.将生成的脚本SQL 文件在SSMS上打开,连接到RDS对应实例上,先创建一个空数据库,在通过该脚本在该数据库上创建相关结构。6.完成以上步骤后通过SQL SERVER自带的导入导出功能完成数据迁移,步骤如下:a.选择要导出数据库的数据库,右键点击选择任务-->导出数据    b.根据导航选择下一步,在选择数据源里面数据源:选择SQL SERVER Native Client(该选项根据你的数据源类型进行选择)服务器名称:输入数据源实例所在的IP加端口号,如果是本地可以直接输入实例名或者localhost身份验证:选择使用SQL SERVER身份验证,并在下方输入rdsuser账号和密码最后选中你要导出的数据库作为数据源c.在选择目标栏目中,一切同上,主要选择数据库的时候要选中要导入的对应数据库,然后点击下一步,选中复制一个或多个表或视图的数据d.在选择源表和视图中,根据需要的选择导出的对象进行选中,可通过shift进行多选,注意一般会去掉后面的对应视图。此时如果该对应已经在目标库上创建完则会自动根据名称进行匹配,如果没有则会自动生成初始框架不带索引,外键。e.关键来了,全选你要导出的所有对象,再点编辑映射,根据实际需要进行选择,但是至少要选中启用标识**    f.后面点击下一步开始数据导出导入进度查看,一般效率为4000行/秒         备注:在整体流程中架构同步相关的步骤可以是不做的,但是迁移过去的仅包含相关数据;同时如果先做了架构同步后再迁移数据库,数据迁移过程可能会因为架构约束导致失败,所以具体实现过程中请大家根据实际情况选择性操作。
  • [技术干货] RDS SQL SERVER 快照下载Step by Step
    1.首先通过客户端连接到你的实例,确认你当前RDS实例上的数据库的兼容级别跟你要还原到本地实例上的数据库版本:选中该数据库,右键属性,点击选项,确认兼容性级别。备注:备份文件仅能还原到同版本或高板的数据库实例上,例如:2014实例上备份下来的数据库就不能还原到2012实例,即便他的兼容性级别是一致的也不行!2.回到管控面,点击备份管理,根据你的要求选中你要下载的手动快照或自动快照,并点击下载,进入下载页面。3.进入下载页面后,根据提示步骤进行: a.下载华为云官网最新OBS Browser工具b.打开该工具,通过AKSK密钥登录,AKSK可以在我的凭证下进行创建和管理,具体为:1).进入我的凭证2).选中管访问密钥,改密钥如果遗失,仅能通过删除重建进行重置。3).通过新获得的密钥,登录OBS Browser4).打开OBS Browser,点中右上方用户信息,选择账号管理,在账号管理中,输入上面的信息,在确认后跳转到该账号5).登录成功后选择添加桶,选择添加外部桶,输入下载页面上给出的桶名6).添加成功后点击进入该桶,并输入下载页面中的具体备份文件名,选中后进行下载到本地。4.根据下载到本地的文件,通过数据库还原脚本进行还原USE [master]RESTORE DATABASE [DBName] FROM  DISK = N'D:\temp\01a97e94b83c421386b8161f2aff1cdc_36a22d4e01e34945b70e4999021b731din04_Db_fb114c9070ff403ba042273af301c2afbr04_20180305050650014_20180305050712106_2a0eb1b4d3b6405eb1e5ea069c0a58c7no04_.tar.gz' WITH  FILE = 1,  NOUNLOAD,  REPLACE,  STATS = 5备注:该文件无需解压!直接使用,觉得备份文件名字长可以改短点(文中脚本仅供参考,以用户自身实际场景为主)。
  • [技术干货] 华为云RDS SQL SERVER 适配Navicat客户端工具
    目前华为云RDS SQL SERVER是可以完美适配SQL SERVER官方客户端SSMS的推荐大家选用。官网最新下载地址:https://docs.microsoft.com/zh-cn/sql/ssms/sql-server-management-studio-changelog-ssms?view=sql-server-2017 同时,我们也发现大量的小伙伴在使用一些比较流行的三方客户端工具的时候出现了一些适配问题,在下面我将主要针对Navicat这款当前比较流行的三方数据库客户端工具,连接RDS SQL SERVER数据库服务进行操作上的一些问题进行详细说明:1.在打开NAVICAT客户端后点击连接弹出客户连接界面,在界面上需要输入一个连接名称,同时需要输入你的实例IP+端口号,rdsuser主账号加密码,点击连接测试成功后再确定,就可以连接到实例了。备注:注意IP和端口之间用英文逗号隔开',' 2.连接到实例后下一步就是开始创建数据库,右键实例选择新建数据库第一步,输入数据库名称,拥有者推荐选择rdsuser主账号,排序规则最好跟实例默认规则一致,查询实例默认排序规则脚本如下:SELECT SERVERPROPERTY('Collation')恢复模式必选FULL,不然该数据库不会纳入备份策略兼容性级别跟据需要选择100以上即可 第二步,文件组一般情况下无需修改第三步,文件中文件目录必须是D:\RDSDBDATA\DATA\,这个地址是RDS实例唯一允许建库地址,同时修改完mdf的数据文件后,还要注意同时修改下面的log文件名,修改日志的文件目录同数据文件目录,其余选项根据需要设置就好。 第四步,最后点SQL预览,脚本大致如下,点击确定数据库创建成功CREATE DATABASE [Test20180717]ON PRIMARY(NAME = N'Test20180717',FILENAME = N'D:\RDSDBDATA\DATA\Test20180717.mdf',SIZE = 2304KB,MAXSIZE = UNLIMITED,FILEGROWTH = 1024KB)LOG ON(NAME = N'Test20180717_log',FILENAME = N'D:\RDSDBDATA\DATA\Test20180717_log.ldf',SIZE = 2304KB,MAXSIZE = UNLIMITED,FILEGROWTH = 10%)COLLATE Chinese_PRC_CI_AS GO EXEC [Test20180717].dbo.sp_changedbowner N'rdsuser'GO 根据以上步骤建库建表成功后,下面的具体操作通过T-sql语句来进行执行问题就不大了。同时我们可以看到在缺乏管理员权限的支撑下,三方工具的友好性的确大打折扣,所以强烈推荐大家还是尽量使用官方客户端SSMS,是完全免费下载使用的。
  • 【RDS运维案例--006】SQL Server连接不上的判断方法
    场景排查1. ECS能否ping通RDS。如果ping不通,可以查看ECS和RDS是否处于同一个VPC内,是否使用同一个安全组。2. 检查连接IP和端口号是否正确。注意IP和端口号之间使用“逗号”隔开。3. 检查RDS服务的运行状态是否异常。4.查看用户名密码是否正确,尝试重置密码。5. 尝试重启RDS实例,看看是否改善。 解决方案步骤 1 登录管理控制台,选择区域和项目,选择“数据库 > 关系型数据库”。进入关系型数据库“实例管理”页面,单击目标实例名称,进入“基本信息”页面和“备份恢复”页面确定连接信息和备份信息。步骤 2 在实例“基本信息”页面查看管理员账户名。步骤 3 下载并在ECS上安装SSMS客户端。步骤 4 从ECS连接到RDS。----结束18782
总条数:109 到第
上滑加载中