㈠ 云存储的核心技术:虚拟化存储,究竟虚拟是怎样实现的
虚拟化改变了计算机使用存储的方式。就像物理机器抽象成虚拟机(VM:Virtual Machine)一样,物理存储设备也被抽象成虚拟磁盘(Virtual Disk)。今天我们就来聊聊虚拟化存储(Storage Virtualization)技术,究竟虚拟磁盘是怎样实现的?
虚拟磁盘的实现
我们知道,服务器扩展存储的手段主要有直连存储(DAS)、存储区域网络(SAN)和网络附加存储(NAS)这三种类型。那么哪种存储类型可以用来实现虚拟磁盘呢?
在虚拟化环境中,类似VMWare这样的虚拟机管理程序hypervisor,要同时给很多VM分配存储空间。这个过程中,我们需要先把物理存储资源重新划分成虚拟磁盘,然后再分配给VM。
显然我们不能用DAS方式把物理磁盘直连到VM上,如果这样,需要的物理磁盘就太多了。SAN是以逻辑单元(LUN:Logic Unit)的形式提供存储资源,但是虚拟环境中VM的数量是很大的,而且伦的数量不足以支持这么多虚拟磁盘。
更重要的是,虚拟磁盘是为大量VM共享的,由于VM需要随时创建、删除或迁移,所以需要在迁移VM时共享存储空间,只有原始数据不会丢失。DAS还是SAN,都不适合共享存储。
考虑到资源分配以及共享的问题,虚拟机管理程序以NAS的方式实现虚拟磁盘。VMware通常使用VMFS(虚拟机文件系统)或NFS协议实现虚拟磁盘,VMFS文件系统是专门针对虚拟机环境协议。
每一个虚拟机的数据实际上是一堆文件,及最重要的文件的虚拟磁盘文件(VMDK文件),也有交换分区文件(VSWP文件,等价交换),非易失性存储器(NVRAM的文件相当于BIOS),等等。每个VM对虚拟磁盘的IO操作实际上是对虚拟磁盘文件的读写操作。
设计、施工、和虚拟服务器环境和优化,允许多个虚拟机访问集成的集群存储池,从而大大提高了资源的利用率。使用和实现资源共享,管理员可以直接从更高的效率和存储利用率中获益。
那么我们如何在云计算中使用虚拟磁盘呢?
实例存储
最主要的一种使用虚拟磁盘的方式就是实例存储,每个VM都是虚拟机的一个实例,虚拟机管理程序在每个实例中提供一个仿真硬件环境,它包括CPU、内存和磁盘。这样,虚拟磁盘就是虚拟机实例的一部分,就像物质世界。删除VM后,虚拟磁盘也将被删除。
在这个实例存储模型中,虚拟磁盘与虚拟机之间的存储关系,事实上,它是DAS存储。但是虚拟磁盘的底层实现,我们说,它是以NAS的方式实现的。虚拟机管理程序的作用是存储VM层的存储模型,这是从实施协议分离(VMFS或NFS)的虚拟机的低层。
VMFS协议实现了存储资源的虚拟化,再分配各VMs
卷存储
实例存储有它的限制,开发人员通常希望分离实例数据,例如OS和安装的一些服务器应用程序和用户数据,这样重建VM的时候可以保留用户的数据。
这个需求衍生出另外一种存储模型:卷存储。卷是存储的主要单元,相当于虚拟磁盘分区。它不是虚拟机实例的一部分,它可以被认为是虚拟机的外部存储设备。
该卷可以从一个VM卸载,然后附加到另一个VM。通过这种方式,我们实现了实例数据与用户数据的分离。OpenStack的煤渣是一个体积存储的实现。
除了实例存储和卷存储之外,最后我们还提到另一种特殊的虚拟存储:对象存储。
对象存储
很多云应用需要在不同的VM之间共享数据,它常常需要跨越多个数据中心,而对象存储可以解决这个问题。在前一篇文章中的云计算IaaS管理平台的基本功能是什么?》中曾经提到过对象存储。
在对象存储模型中,数据存储在存储段(bucket)中,桶也可以被称为“水桶”,因为它字面意思。我们可以用硬盘来类推,对象像一个文件,而存储段就像一个文件夹(或目录)。可以通过统一资源标识符(URI:统一资源标识符)找到对象和存储段。
对象存储的核心设计思想实际上是虚拟化,它是文件的物理存储位置,如卷、目录、磁盘等,虚拟化是木桶,它将文件虚拟化为对象。对于应用层,简化了对数据访问的访问,屏蔽了底层存储技术的异构性和复杂性。
对象存储模型
NAS与对象存储各有所长
当然你也许会问,NAS存储技术也是一个可以解决数据共享的问题吗?由于对象存储的大小和成本优势,许多云环境使用对象存储而不是NAS。
因为对象存储将跨多个节点传播,最新数据并不总是可用的 因此,对象存储的数据一致性不强。如果有强一致性的要求,然后你可以使用NAS。目前,在云计算环境中,NAS和对象存储是共存的。
和NAS一样,对象存储也是软件体系结构,而不是硬件体系结构。应用程序通过REST API直接访问对象存储。公共对象存储包括:Amazon S3和OpenStack的Swift。
结语
在实际的云平台应用中,我们需要根据自己的实际情况来合理运用不同的虚拟化存储技术。
对于非结构化的静态数据文件,如音视频、图片等,我们一般使用对象存储。
对于系统镜像以及应用程序,我们需要使用云主机实例存储或者卷存储。
对于应用产生的动态数据,我们一般还需要利用云数据库来对数据进行管理。
㈡ 什么事虚拟存储器.其实现方式有哪些
指将多个不同类型、独立存在的物理存储体,通过软、硬件技术,集成转化为一个逻辑上的虚拟的存储单元,集中管理供用户统一使用。这个虚拟逻辑存储单元的存储容量是它所集中管理的各物理存储体的存储量的总和,而它具有的访问带宽则在一定程度上接近各个物理存储体的访问带宽之和。
从虚拟化存储的拓扑结构来讲主要有两种方式:即对称式与非对称式。对称式虚拟存储技术指虚拟存储控制设备与存储软件系统、交换设备集成为一个整体,内嵌在网络数据传输路径中;非对称式虚拟存储技术指虚拟存储控制设备独立于数据传输路径之外。从虚拟化存储的实现原理来讲也有两种方式;即数据块虚拟与虚拟文件系统。
(2)模拟设计物理文件的存储过程扩展阅读
虚拟存储器地址变换基本上有3种形虚拟存储器工作过程式:全联想变换、直接变换和组联想变换。任何逻辑空间页面能够变换到物理空间任何页面位置的方式称为全联想变换。每个逻辑空间页面只能变换到物理空间一个特定页面的方式称为直接变换。
组联想变换是指各组之间是直接变换,而组内各页间则是全联想变换。替换规则用来确定替换主存中哪一部分,以便腾空部分主存,存放来自辅存要调入的那部分内容。常见的替换算法有4种。
1、随机算法:用软件或硬件随机数产生器确定替换的页面。
2、先进先出:先调入主存的页面先替换。
3、近期最少使用算法(LRU,Least Recently Used):替换最长时间不用的页面。
4、最优算法:替换最长时间以后才使用的页面。这是理想化的算法,只能作为衡量其他各种算法优劣的标准。
㈢ 数据库存储过程有哪些,面试题
数据库存储过程有哪些
/*
系统存储过程很多,有些常用,有些不常用
常用:
sp_attach_db 附加数据库到一个服务器中
sp_columns 返回在当前环境中列的信息
sp_databases 列出当前系统中的数据库
sp_configure 显示或修改当前服务器的全局配置
sp_depends 显示数据库对象的依赖信息
sp_executesql 执行动态的T-SQL语句
sp_help 报告有关数据库对象的信息
sp_helpdb 返回指定数据库或全部数据库的信息
sp_helptext 显示规则、默认值、存储过程、触发器、视图等的未加密的文本定义信息
sp_indexes 返回指定远程表的索引信息
sp_lock 返回有关锁的信息
sp_password 增加或者修改指定login的口令
sp_rename 更改用户创建的数据库对象名称
sp_renamedb 更改数据库名称
sp_spaceused 显示数据库的空间使用情况
sp_tables 返回在当前环境中可以被查询的对象的列表
sp_who 提供当前用户和进程的信息
不常用:
sp_addlinkedserver 创建一个允许执行分布式查询的链接服务器
sp_addlinkedsrvlogin 在本地服务器和远程服务器之间创建login帐户的映射关系
sp_addlogin 创建一个新的login帐户
sp_add_agent_parameter 在代理文件中增加一个参数
sp_add_agent_profile 为复制代理增加一个代理文件
sp_add_alert 创建一个警报
sp_add_category 在服务器上,增加一种作业、警报或者操作员的特定分类
sp_add_data_file_recover_suspect_db 当数据库复原不能完成时,向文件组增加一个数据文件
sp_add_file_recover_suspect_db 对于复原有问题的数据库增加一个文件
sp_add_job 增加一个sql server agent可以执行的作业
sp_add_jobschele 为作业创建调度
sp_add_jobserver 把指定的作业增加到指定服务器上
sp_add_jobstep 在作业中增加一步或一个操作
sp_add_log_file_recover_suspect_db 当数据库复原不能完成时,向文件组增加一个日志文件
sp_add_notification 为警报创建一个通知
sp_add_operator 为警报或者作业创建一个操作员
sp_add_targetservergroup 增加指定的服务器组
sp_add_targetsvrgrp_member 在指定的目标服务器组增加一个目标服务器
sp_addalias 在数据库中为login帐户增加一个别名
sp_addapprole 在数据库中增加一个特殊的应用程序角色
sp_addarticle 创建文章,并把该文章添加到出版物中
sp_adddistpublisher 创建一个使用本地分布服务器的出版服务器
sp_adddistributiondb 在分布服务器上创建一个新的distribution数据库
sp_adddistributor 增加一个分布服务器
sp_addextendedproc 在系统中增加一个扩展存储过程
sp_addgroup 在当前数据库中增加一个组
sp_addmergearticle 为一个已有的合并出版物创建一个文章
sp_addmergefilter 为了连接另外一个表,创建一个合并过滤器
sp_addmergepublication 创建一个新的合并出版物
sp_addmergepullsubscription 增加一个拉回类型的订阅物
sp_addmergepullsubscription_agent 在订阅服务器上,为合并拉回订阅物创建一个代理
sp_addmergesubscription 创建一个推出或者拉回类型的订阅物
sp_addmessage 在系统中增加一个新的错误消息
sp_addpublicaton 创建一个快照复制或者事务复制出版物
sp_addpublicaton_snapshot 创建一个快照代理
sp_addpullsusscription 在当前订阅服务器的数据库中增加一个拉回或者匿名订阅物
sp_addpullsusscription_agent 在订阅服务器的数据库中增加一个新的代理
sp_addremotelogin 在本地服务器上增加一个远程login帐户,允许执行远程存储过程调用
sp_addrole 在当前数据库中增加一个角色
sp_addrolemember 为当前数据库中的一个角色增加一个安全性帐户
sp_addserver 添加一个远程或者本地服务器
sp_addsrvrolemember 为固定的服务器角色增加一个成员
sp_addsubscriber 增加一个新的订阅服务器
sp_addsubscriber_schele 为分布代理和合并代理增加一个调度
sp_addsubscription 订阅文章并且设置订阅服务器的状态
sp_addsynctrigers 在订阅服务器上创建一个立即修改触发器
sp_addtabletocontents 在合并跟踪表中插入一个参考
sp_addtype 创建一个用户定义的数据类型
sp_admpdevice 增加一个备份设备
sp_adser 在当前数据库中为一个新用户增加一个安全性帐户
sp_altermessage 修改错误信息的状态
sp_addly_job_to_targets 把作业应用到一个或者多个目标服务器
sp_approlepassword 在当前数据库中改变应用程序角色的口令
sp_aarticle_validation 为指定的文章初始化确认请求
sp_aarticlecolumn 指定在文章中使用的列
sp_aarticlefilter 创建一个用于水平过滤数据的过滤器
sp_articleview 当表被过滤时,为文章创建一个同步化对象
sp_attach_single_file_db 在当前服务器中,附加一个只有一个数据文件的数据库
sp_aautostats 对于一个指定的索引或统计,自动显示update statistics的状态
sp_bindefault 把默认值绑定到列或用户定义的数据类型上
sp_bindrule 把规则绑定到列或用户定义的数据类型上
sp_bindsession 绑定或解除绑定与实例中的其它事务的连接
sp_browsereplcmds 在分布数据库中返回一种可读格式的结果集
sp_catalogs 返回指定连接服务器中的系统目录列表,在本地服务器中等价于数据库列表
sp_certify_removable 确认在可移动介质上用于分布的数据库是否正确配置
sp_change_agent_parameter 修改复制代理配置使用的参数
sp_change_agent_profile 修改复制代理配置使用的配置参数
sp_change_users_login 修改login与当前数据库中用户之间的关系
sp_changearticle 改变文章的属性
sp_changedbowner 改变当前数据库的所有者
sp_changedistpublisher 改变分布出版服务器的属性
sp_changedistributor_password 改变分布服务器的口令
sp_changedistributor_property 改变分布服务器的属性
sp_changedistribtutiondb 改变分布数据库的属性
sp_changegroup 改变安全性帐户所属的角色
sp_changemergearticle 改变合并文章的属性
sp_changemergefilter 改变一些合并过滤器的属性
sp_changemergepublication 改变合并出版物的属性
sp_changemergepullsubscription 改变合并拉回出版物的属性
sp_changemergesubscription 改变合并的推出或者拉回出版物的属性
sp_changeobjectowner 改变对象的所有者
sp_changepublication 改变出版物的属性
sp_changesubscriber 改变用于订阅服务器的选项
sp_changesubscriber_schele 改变用于分布式代理和事务代理的订阅服务器的调度
sp_changesubstatus 改变订阅服务器的状态
sp_column_privileges 返回列的权限信息
sp_column_privileges_ex 返回在链接服务器上指定表的列的权限信息
sp_columns_ex 返回在链接服务器上列的信息
sp_create_removable 创建一个可移动介质数据库
sp_createstats 创建单列的统计信息
sp_cursor 用于请求定位更新
sp_cursor_list 报告当前打开的服务器游标属性
sp_cursorclose 关闭和释放游标
sp_cursorfetch 从游标中取出数据行
sp_cursoropen 定义与游标和游标选项相关联的 SQL 语句,然后填充游标
sp_cursoroption 用于设置各种游标选项
sp_cycle_errorlog 关闭错误日志文件重新开始错误记录
sp_datatype_info 返回当前环境支持的数据类型信息
sp_dbfixedrolepermission 显示每一个固定数据库角色的许可
sp_dboption 显示或修改数据库选项
sp_dbremove 删除数据库和与该数据库相关的所有文件
sp_defaultdb 设置登录帐户的默认数据库
sp_defaultlanguage 设置登录帐户的默认语言
sp_delete_alert 删除警报
sp_delete_backuphistory 删除备份和恢复的历史信息
sp_delete_category 删除指定类型的作业、警报和操作员
sp_delete_job 删除一个作业
sp_delete_jobschele 删除作业的调度
sp_delete_jobserver 删除指定的目标服务器
sp_delete_jobstep 从作业中删除指定的作业步骤
sp_delete_notfication 删除发送给某个操作员的所有通知
sp_delete_operator 删除操作员
sp_delete_targetserver 从可以使用的目标服务器列表中删除指定的服务器
sp_delete_targetservergroup 删除指定的目标服务器组
sp_delete_targetsvrgrp_member 从目标服务器组中删除一个目标服务器
sp_deletemergeconflictrow 删除冲突表中的记录行
sp_denylogin 防止window用户或群组连接到 sql server
sp_describe_cursor 报告服务器游标的属性
sp_describe_cursor_columns 报告在服务器游标的结果集中列的属性
sp_describe_cursor_tables 报告服务器游标参考的基表信息
sp_detach_db 分享服务器中的数据库
sp_drop_agentparameger 删除配置文件中的一个或者多个参数
sp_drop_profile 删除配置文件
sp_dropalias 删除一个帐户的别名
sp_dropapprole 删除当前数据库中的应用程序角色
sp_droparticle 从出版物中删除一篇文章
sp_dropdevice 删除数据库或者备份设备
sp_dropdistpublisher 删除出版服务器
sp_dropdistributiondb 删除分布数据库
sp_dropdistributor 删除分布服务器
sp_dropdropextendedproc 删除一个扩展存储过程
sp_dropgroup 从当前数据库中删除角色
sp_droplinkedsrvlogin 删除一个本地服务器和连接服务器的映射帐户
sp_droplogin 删除一个登录帐户
sp_dropmergearticle 从合并出版物中删除一篇文章
sp_dropmergefilter 删除一个合并过滤器
sp_dropmergepublication 删除一个合并出版物和与其相关的快照复制
sp_dropmergepullsubscription 删除一个合并拉回订购物
sp_dropmergesubscription 删除一个订阅物
sp_dropmessage 删除一个消息
sp_droppublication 删除出版物和与其相关的文章
sp_droppullsubscription 删除当前订阅服务器数据库中的订阅物
sp_dropremotelogin 删除一个远程登录帐户
sp_droprole 从当前数据库中删除一个角色
sp_droprolemember 从当前数据库中的一个角色中删除一个安全性帐户
sp_dropserver 删除一个远程或者连接服务器列表中的服务器
sp_dropsrvrolemember 从一个固定的服务器角色中删除一个帐户
sp_dropsubscriber 删除一个订阅服务器
sp_dropsubscription 删除订阅物
sp_droptype 删除一种用户定义的数据类型
sp_dropuser 从当前数据库中删除一个用户
sp_dropdropwebtask 删除以前版本定义的web任务
sp_dsninfo 从一个与当前服务器相关的分布服务器返回ODBC和OLE DB数据源的信息
sp_mpparamcmd 返回存储在分布数据库中的参数化命令的详细信息
sp_enumcodepages 返回一个字符集和代码页的列表
sp_enumcustomresovers 返回所有可用的定制解决方案表表
sp_enumdsn 返回所有可用的odbc和ole db数据源列表
sp_enumfullsubscribers 返回订阅服务器的列表
sp_expired_subscription_cleanup 周期性地检查订阅物的状态是否失效
sp_fkeys 返回当前环境的外键信息
sp_foreignkeys 返回参照连接服务器的表的主键的外键
sp_fulltext_catalog 创建和删除全文本目录
sp_fulltext_column 指定某一个列是否参加全文本索引
sp_fulltext_database 从当前数据库中初始化全文本索引
sp_fulltext_service 改变Microsoft Search Service属性
sp_fulltext_table 标记用于全文本索引的表
sp_generatefilters 在外键表上创建一个过滤器
sp_get_distributor 确定一个分布服务器是否安装在某个服务器上
sp_getbindtoken 创建一个绑定的连接文本
sp_getmergedeletype 返回合并删除的类型
sp_grant_publication_access 在出版物的访问列表中增加一个用户
sp_grantdbaccess 在当前数据库中增加一个安全性帐户
sp_grantlogin 允许Windows用户或群组连接到 SQL Server
sp_help_agent_default 检索作为参数传送的代理类型的默认配置的标识号
sp_help_agent_parameter 返回代理配置的所有参数
sp_help_agent_profile 返回指定代理的配置
sp_help_alert 报告有关警报的信息
sp_help_category 提供有关作业、警报、操作员的指定种类的信息
sp_help_downloadlist 列出有关作业的信息
sp_help_fulltext_catalogs 返回有关全文本索引表的信息
sp_help_fulltext_columns 返回标记全文本索引的列信息
sp_help_fulltext_columns_cursor 使用游标检索标记为全文本的索引列
sp_help_fulltext_tables 返回标记为全文本索引的表
sp_help_fulltext_tables_cursor 使用游标返回标记为全文本索引的表
sp_help_job 返回有关作业的信息
sp_help_jobhistory 提供有关作业的历史信息
sp_help_jobschele 返回作业的调度信息
sp_help_jobserver 返回给定作业的服务器信息
sp_help_jobstep 返回作业的步骤信息
sp_help_operator 返回有关操作员的信息
sp_help_publication_access 返回可以访问指定出版物的帐户列表
sp_help_targetserver 列出全部目标服务器
sp_help_targetservergroup 列出指定服务器组中的全部目标服务器
sp_helparticle 显示有关文章的信息
sp_helpconstraint 返回有关约束的类型、名称等信息
sp_helpdbfixedrole 返回固定的服务器角色的列表
sp_helpdevice 返回有关数据库文件的信息
sp_helpdistpublisher 返回充当分布服务器的出版服务器的属性
sp_helpdistributiondb 返回分布数据库的属性信息
sp_helpdistributor 列出分布服务器、分布数据库、工作目录等信息
sp_helpextendproc 显示当前定义的扩展存储过程信息
sp_helpfile 返回与当前数据库相关的物理文件信息
sp_helpfilegroup 返回与当前数据库相关的文件组信息
sp_helpgroup 返回当前数据库中的角色信息
sp_helpindex 返回有关表的索引信息
sp_helplanguage 返回有关语言的信息
sp_helplinkedsrvlogin 返回链接服务器中映射的帐户信息
sp_helplogins 返回有关login和与其相关的数据库用户信息
sp_helpmergearticle 返回有关合并文章的信息
sp_helpmergearticleconflicts 返回有关冲突的出版物中的文章信息
sp_helpmergeconflictrows 返回在指定冲突表中的行
sp_helpmergefilter 返回有关合并过滤器的信息
sp_helpmergepublication 返回有关合并出版物的信息
sp_helpmergepullsubscription 返回有关拉回订阅物的信息
sp_helpmergesubscription 返回有关推出订阅物的信息
sp_help_notification 报告对于给定操作员的警报信息
sp_helppublication 返回有关出版物的信息
sp_helprole 返回当前数据库中的角色信息
sp_helprolemember 返回当前数据库中角色成员的信息
sp_helprotect 返回有关用户许可的信息
sp_helpserver 显示特定远程或者复制服务器的信息
sp_helpsort 显示系统的排列顺序和字符集的信息
sp_helpsrvrole 显示系统中的固定服务器角色列表
sp_helpsrvrolemember 显示系统中的固定服务器角色成员的信息
sp_helpsubscrberinfo 显示有关订阅服务器的信息
sp_helpsubscription 显示有特定出版物等有关的订阅物信息
sp_helpsubscription_properties 检索安全性信息
sp_helptrigger 显示触发器的类型
sp_helpuser 显示当前数据库中的用户、Windows NT用户和组、角色等信息
sp_indexoption 为用户定义的索引设置选项
sp_link_publication 设置立即修改订阅服务器的同步化触发器使用的配置和安全性信息
sp_linkedservers 返回在本地服务器上定义的链接服务器的列表
sp_makewebtask 创建一个执行html文档的任务
sp_manage_jobs_by_login 删除或者重新指定属于login的作业
sp_mergemmyupdate 制作用于合并复制的修改备份
sp_mergesubscription_cleanup 删除元数据
sp_monitor 显示系统的统计信息
sp_msx_defect 从多个服务器操作中删除当前服务器
sp_msx_enlist 增加当前服务器到可用的目标服务器列表中
sp_pkeys 返回某个表的主键信息
sp_post_msx_operation 插入一些目标服务器可以执行的信息
sp_primarykeys 返回主键列的信息
sp_processmail 使用扩展存储过程修改邮件信息
sp_procoption 设置或者显示过程选项
sp_publication_validation 初始化文章校验请求
sp_purge_jobhistory 删除作业的历史记录
sp_recompile 使存储过程和触发器在下一次运行时重新编译
sp_refreshsubscriptions 在拉回出版物中增加订阅物到文章中
sp_refreshview 刷新指定视图的元数据
sp_reinitmergepullsubscription 标记一个合并拉回订阅
sp_reiniteergesubscription 标记一个合并订阅
sp_reinitpullsubscription 标记一个事务订阅或者匿名订阅
sp_reinitsubscription 重新初始化订阅
sp_remoteoption 显示或者修改远程登录帐户的选项
sp_remove_job_from_targets 从给定的目标服务器中删除指定的作业
sp_removedbreplication 从数据库中删除所有的复制对象
sp_replcounters 返回复制的统计信息
sp_repldone 修改服务器做的分布事务的统计信息
sp_replflush 处理文章的高速缓冲存储区
sp_replication_agent_checkup 检查每一个分布数据库
sp_replicationdboption 在当前数据库中设置复制数据库的选项
sp_replsetoriginator 用于在事务复制中检测循环登录
sp_replshowcmds 返回标记复制的事务命令
sp_repltrans 返回在出版数据库事务日志中的所有事务的结果集
sp_resetstatus 重新设置异常数据库的形态
sp_resync_targetserver 重新同步所有的多服务器作业
sp_revoke_publication_access 从出版数据库的访问列表中删除login帐户
sp_revokedbaccess 从当前数据库中删除安全性帐户
sp_revokelogin 删除系统的login帐户
sp_script_synctran_commands 生成一个可以用于立即修改订阅物的脚本
*/
㈣ 简述一下SQL Server 数据库的物理结构
数据库设计的过程(六个阶段)
1.需求分析阶段
准确了解与分析用户需求(包括数据与处理)
是整个设计过程的基础,是最困难、最耗费时间的一步
2.概念结构设计阶段
是整个数据库设计的关键
通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型
3.逻辑结构设计阶段
将概念结构转换为某个DBMS所支持的数据模型
对其进行优化
4.数据库物理设计阶段
为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)
5.数据库实施阶段
运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果
建立数据库,编制与调试应用程序,组织数据入库,并进行试运行
6.数据库运行和维护阶段
数据库应用系统经过试运行后即可投入正式运行。
在数据库系统运行过程中必须不断地对其进行评价、调整与修改
设计特点:
在设计过程中把数据库的设计和对数据库中数据处理的设计紧密结合起来将这两个方面的需求分析、抽象、设计、实现在各个阶段同时进行,相互参照,相互补充,以完善两方面的设计
㈤ 虚拟存储方式都有哪些
目前虚拟存储的发展尚无统一标准,从虚拟化存储的拓扑结构来讲主要有两种方式:即对称式与非对称式。对称式虚拟存储技术是指虚拟存储控制设备与存储软件系统、交换设备集成为一个整体,内嵌在网络数据传输路径中;非对称式虚拟存储技术是指虚拟存储控制设备独立于数据传输路径之外。从虚拟化存储的实现原理来讲也有两种方式;即数据块虚拟与虚拟文件系统。具体如下: 图1对称式虚拟存储解决方案的示意图
在图1所示的对称式虚拟存储结构图中,存储控制设备 High Speed Traffic Directors(HSTD)与存储池子系统Storage Pool集成在一起,组成SAN Appliance。可以看到在该方案中存储控制设备HSTD在主机与存储池数据交换的过程中起到核心作用。该方案的虚拟存储过程是这样的:由HSTD内嵌的存储管理系统将存储池中的物理硬盘虚拟为逻辑存储单元(LUN),并进行端口映射(指定某一个LUN能被哪些端口所见),主机端将各可见的存储单元映射为操作系统可识别的盘符。当主机向SAN Appliance写入数据时,用户只需要将数据写入位置指定为自己映射的盘符(LUN),数据经过HSTD的高速并行端口,先写入高速缓存,HSTD中的存储管理系统自动完成目标位置由LUN到物理硬盘的转换,在此过程中用户见到的只是虚拟逻辑单元,而不关心每个LUN的具体物理组织结构。该方案具有以下主要特点:
(1)采用大容量高速缓存,显着提高数据传输速度。
缓存是存储系统中广泛采用的位于主机与存储设备之间的I/O路径上的中间介质。当主机从存储设备中读取数据时,会把与当前数据存储位置相连的数据读到缓存中,并把多次调用的数据保留在缓存中;当主机读数据时,在很大几率上能够从缓存中找到所需要的数据。直接从缓存上读出。而从缓存读取数据时的速度只受到电信号传播速度的影响(等于光速),因此大大高于从硬盘读数据时盘片机械转动的速度。当主机向存储设备写入数据时,先把数据写入缓存中,待主机端写入动作停止,再从缓存中将数据写入硬盘,同样高于直接写入硬盘的速度
(2)多端口并行技术,消除了I/O瓶颈。
传统的FC存储设备中控制端口与逻辑盘之间是固定关系,访问一块硬盘只能通过控制它的控制器端口。在对称式虚拟存储设备中,SAN Appliance的存储端口与LUN的关系是虚拟的,也就是说多台主机可以通过多个存储端口(最多8个)并发访问同一个L
㈥ 具体的数据库设计与实现过程
大致的讲主要是根据用户的需求,然后设计数据库的E-R模型,然后将E-R模型图转换为各种表,并对其进行数据库设计范式(范式因不同书籍有不同)的审核,然后进行数据库的实施,然后运行维护。
一句话来讲就是将用户的需求变成带有各种关系的表,以及其它的数据库结构,然后供编程使用
具体如下:
按照规范设计的方法,考虑数据库及其应用系统开发全过程,将数据库设计分为以下六个阶段
(1)需求分析。
(2)概念设计。
(3)逻辑设计。
(4)物理设计。
(5)数据库实施。
(6)数据库运行和维护。
5.1.1 需求分析阶段
进行数据库设计首先必须准确了解与分析用户需求,包括数据与处理需求。需求分析是整个设计过程的基础,是最困难、最耗时的一步。作为“地基”的需求分析是否做得充分与准确,决定了在其上构建“数据库大厦”的速度与质量。需求分析做得不好,可能会导致整个数据库重新设计,因此,务必引起高度重视。
5.1.2 概念模型设计阶段
在概念设计阶段,设计人员仅从用户角度看待数据及其处理要求和约束,产生一个反映用户观点的概念模式,也称为“组织模式”。概念模式能充分反映现实世界中实体间的联系,又是各种基本数据模型的共同基础,易于向关系模型转换。这样做有以下好处:
(1)数据库设计各阶段的任务相对单一化,设计复杂程度得到降低,便于组织管理。
(2)概念模式不受特定DBMS的限制,也独立于存储安排,因而比逻辑设计得到的模式更为稳定。
(3)概念模式不含具体的DBMS所附加的技术细节,更容易为用户所理解,因而能准确地反映用户的信息需求。
概念模型设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。如采用基于E-R模型的数据库设计方法,该阶段即将所设计的对象抽象出E-R模型;如采用用户视图法,则应设计出不同的用户视图。
5.1.3 逻辑模型设计阶段
逻辑模型设计阶段的任务是将概念模型设计阶段得到的基本E-R图,转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。如采用基于E-R模型的数据库设计方法,该阶段就是将所设计的E-R模型转换为某个DBMS所支持的数据模型;如采用用户视图法,则应进行表的规范化,列出所有的关键字以及用数据结构图描述表集合中的约束与联系,汇总各用户视图的设计结果,将所有的用户视图合成一个复杂的数据库系统。
5.1.4 数据库物理设计阶段
数据库的物理结构主要指数据库的存储记录格式、存储记录安排和存取方法。显然,数据库的物理设计完全依赖于给定的硬件环境和数据库产品。在关系模型系统中,物理设计比较简单一些,因为文件形式是单记录类型文件,仅包含索引机制、空间大小、块的大小等内容。
物理设计可分五步完成,前三步涉及到物理结构设计,后两步涉及到约束和具体的程序设计:
(1)存储记录结构设计:包括记录的组成、数据项的类型、长度,以及逻辑记录到存储记录的映射。
(2) 确定数据存放位置:可以把经常同时被访问的数据组合在一起,“记录聚簇(cluster)”技术能满足这个要求。
(3)存取方法的设计:存取路径分为主存取路径及辅存取路径,前者用于主键检索,后者用于辅助键检索。
(4)完整性和安全性考虑:设计者应在完整性、安全性、有效性和效率方面进行分析,作出权衡。
(5)程序设计:在逻辑数据库结构确定后,应用程序设计就应当随之开始。物理数据独立性的目的是消除由于物理结构的改变而引起对应用程序的修改。当物理独立性未得到保证时,可能会引发对程序的修改。
数据库物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构,包括存储结构和存取方法。
5.1.5 数据库实施阶段
根据逻辑设计和物理设计的结果,在计算机系统上建立起实际数据库结构、装入数据、测试和试运行的过程称为数据库的实施阶段。实施阶段主要有三项工作。
(1)建立实际数据库结构。对描述逻辑设计和物理设计结果的程序即“源模式”,经DBMS编译成目标模式并执行后,便建立了实际的数据库结构。
(2)装入试验数据对应用程序进行调试。试验数据可以是实际数据,也可由手工生成或用随机数发生器生成。应使测试数据尽可能覆盖现实世界的各种情况。
(3)装入实际数据,进入试运行状态。测量系统的性能指标,是否符合设计目标。如果不符,则返回到前面,修改数据库的物理模型设计甚至逻辑模型设计。
5.1.6 数据库运行和维护阶段
数据库系统正式运行,标志着数据库设计与应用开发工作的结束和维护阶段的开始。运行维护阶段的主要任务有四项:
(1)维护数据库的安全性与完整性:检查系统安全性是否受到侵犯,及时调整授权和密码,实施系统转储与备份,发生故障后及时恢复。
(2)监测并改善数据库运行性能:对数据库的存储空间状况及响应时间进行分析评价,结合用户反应确定改进措施。
(3)根据用户要求对数据库现有功能进行扩充。
(4)及时改正运行中发现的系统错误。
㈦ 数据库的物理结构设计指的是什么
Log File物理结构
log block结构分为日志头段、日志记录、日志尾部
Block Header,占用12字节
Data部分
Block tailer,占用4字节
Block Header
这个部分是每个Block的头部,主要记录的块的信息
Block Number,表示这是第几个block,占用4字节,是通过LSN计算得来的,占用4字节
Block data len,表示该block中有多少字节已经被使用了,占用2字节
First Rec offet,表示该block中作为第一个新的mtr开始的偏移量,占用2字节
Checkpoint number,表示该log block最后被写入时的检查点的值,占用4字节
㈧ 数据库设计的基本步骤
数据库设计的基本步骤如下:
1、安装并打开MySQL WorkBench软件以后,在软件的左侧边栏有三个选项,分别是对应“连接数据库”、“设计数据库”、“迁移数据库”的功能。这类选择第二项,设计数据库,点击右边的“+”号,创建models。