过程:电脑将数据封装上一定的头部,转换成0,1等二进制信号在线路上传播给路由器,路由器根据路由表转发数据,直达目的主机,再拆去头部信息,将纯的数据交给应用程序。
c/s(客户机/服务器)有三个主要部件:数据库服务器、客户应用程序和网络。服务器负责有效地管理系统的资源,其任务集中于:
1数据库安全性的要求
2数据库访问并发性的控制
3数据库前端的客户应用程序的全局数据完整性规则
4数据库的备份与恢复
客户端应用程序的的主要任务是:
1提供用户与数据库交互的界面
2向数据库服务器提交用户请求并接收来自数据库服务器的信息
3利用客户应用程序对存在于客户端的数据执行应用逻辑要求
4网络通信软件的主要作用是,完成数据库服务器和客户应用程序之间的数据传输。
三层C/S结构是将应用功能分成表示层、功能层和数据层三部分。
解决方案是:对这三层进行明确分割,并在逻辑上使其独立。
在三层C/S中,表示层是应用的用户接口部分,它担负着用户与应用间的对话功能。它用于检查用户从键盘等输入的数据,显示应用输出的数据。为使用户能直观地进行 *** 作,一般要使用图形用户接口(GUI), *** 作简单、易学易用。在变更用户接口时,只需改写显示控制和数据检查程序,而不影响其他两层。检查的内容也只限于数据的形式和值的范围,不包括有关业务本身的处理逻辑。
功能层相当于应用的本体,它是将具体的业务处理逻辑地编入程序中。表示层和功能层之间的数据交往要尽可能简洁。
数据层就是DBMS,负责管理对数据库数据的读写。DBMS必须能迅速执行大量数据的更新和检索。现在的主流是关系数据库管理系统(RDBMS)。因此一般从功能层传送到数据层的要求大都使用SQL语言。
在三层或N层C/S结构中,中间件(Middleware)是最重要的部件。所谓中间件是一个用API定义的软件层,是具有强大通信能力和良好可扩展性的分布式软件管理框架。它的功能是在客户机和服务器或者服务器和服务器之间传送数据,实现客户机群和服务器群之间的通信。其工作流程是:在客户机里的应用程序需要驻留网络上某个服务器的数据或服务时,搜索此数据的C/S应用程序需访问中间件系统。该系统将查找数据源或服务,并在发送应用程序请求后重新打包响应,将其传送回应用程序。随着网络计算模式的发展,中间件日益成为软件领域的新的热点。中间件在整个分布式系统中起数据总线的作用,各种异构系统通过中间件有机地结合成一个整体。每个C/S环境,从最小的LAN环境到超级网络环境,都使用某种形式的中间件。无论客户机何时给服务器发送请求,也无论它何时应用存取数据库文件,都有某种形式的中间件传递C/S链路,用以消除通信协议、数据库查询语言、应用逻辑与 *** 作系统之间潜在的不兼容问题。
三层C/S结构的优势主要表现在以下几个方面:
1利用单一的访问点,可以在任何地方访问站点的数据库;
2对于各种信息源,不论是文本还是图形都采用相同的界面;
3所有的信息,不论其基于的平台,都可以用相同的界面访问;
4可跨平台 *** 作;
5减少整个系统的成本;
6维护升级十分方便;
7具有良好的开放性;
8系统的可扩充性良好;
9进行严密的安全管理;
10系统管理简单,可支持异种数据库,有很高的可用性。
具体方法如下:
1、使用putty或类似的SSH工具登录服务器(本地安装跳过);
2、安装Apacheyum install >
配置Apache
vi /etc/>
找到ServerName,设置为自己的域名,如果没有域名,可以设置为localhost:80
3、重启并测试Apache
service >
打开浏览器,输入>
4、安装MySQLyum install mysql mysql-server修改防火墙配置,打开3306端口vi /etc/sysconfig/iptables添加记录-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT 设置MySQL开机自动启动chkconfig mysqld on
设置root密码mysql_secure_installation回车后,输入y进行密码设置,设置完密码之后,一路回车,直到出现:Thanks for using MySQL! 重启MySQLservice mysqld restart
安装PHPyum install php 安装PHP组件yum install php-mysql php-gd libjpeg php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt
重启Apache和MySQL
创建infophp
vi /var/>
内容: <php phpinfo(); >
浏览器打开>
一 数据库链路的建立
数据库链路的建立语法一般是 CREATE DATABASE LINK [db_link_name] CONNECT TO[user_name] IDENTIFIED BY [password] USING [tns_name] ;
其中:
[DB_LINK_NAME] 是所要连接的数据库的服务名 也就是该数据库的真实名称(通常就是SID) [USRE_NAME] 是所要连接的用户名称 [PASSWORD] 是所要连接的用户的密码 [TNS_NAME] 是所要连接的数据库的服务命名 也就是在本机上建立的NET 服务命名
当使用当前用户做为连接者时 语法可以是 CREATE DATABASE LINK [db_link_name] CONNECT TO CURRENT_USER USING [tns_name] (某些情况下这种方法建立的数据库链路都未处于活动状态 不知道是不是语法有误 暂不推荐使用)
当使用已连接用户做为连接者时 语法可以是 CREATE DATABASE LINK [db_link_name]USING [tns_name]
要建立公共的数据库链路语法可以是 只要在CREATE后加PUBLIC关键字就可以了
假如你在init ora文件里的global_names = true只能用上面的方法 如果global_names =false [DB_LINK_NAME]不一定要是数据库的真实名称 可以是一个随意的名字 也就是说 当global_names = true时 数据库的每一个用户只能有一个数据库链路 而当global_names = false时 每一个用户都可以建立N多个链路 但一般情况下是没有意义的
二 数据库链路的使用
数据库链路的主要用途就是实现对远程数据库的访问 你可以通过数据库链路直接对远程数据库
的表进行读写 也可以在本地建立远程数据库的视图和同意词 另外在进行双机热备份时也要用到数据库链路
直接访问 SELECT FROM [user_name] [table_name]@[db_link_name];INSERT UPDATE DELETE等也同样适用
建立同义词 CREATE SYNONYM [user_name] [synonym_name] FOR [user_name] [table_name]@[db_link_name] ; 视图也是一个道理
由于双机热备是另一个复杂的问题 本文暂不赘述 如果想在两个数据库间实现几个表的同步 做一个双机太复杂 可以考虑用触发器来解决 在触发器中用以上方法引用远程表 对其进行插入 删除也可以做到同步
参考示例如下
数据库之间的链接建立在DATABASE LINK上 要创建一个DB LINK 必须先在每个数据库服务器上设置链接字符串
链接字符串即服务名 首先在本地配置一个服务名 地址指向远程的数据库地址 服务名取为将来你要使用的数据库链名
创建数据库链接
进入系统管理员SQL> *** 作符下 运行命令
SQL>create public database link beijing connect to scott identified by tiger using tobeijing ;
则创建了一个以scott用户和北京数据库的链接beijing 我们可以查询北京的scott数据:
SQL>select from emp@beijing;
这样就可以把深圳和北京scott用户的数据做成一个整体来处理
建立同义词 为了使有关分布式 *** 作更透明 ORACLE数据库里有同义词的对象synonymSQL>create synonym bjscottemp for emp@beijing;
于是就可以用bjscottemp来替代带@符号的分布式链接 *** 作emp@beijing
lishixinzhi/Article/program/SQL/201311/16235
很多组织机构慢慢的在不同的服务器和地点部署SQLServer数据库——为各种应用和目的——开始考虑通过SQLServer集群的方式来合并。
将SQLServer实例和数据库合并到一个中心的地点可以减低成本,尤其是维护和软硬件许可证。此外,在合并之后,可以减低所需机器的数量,这些机器就可以用于备用。
当寻找一个备用,比如高可用性的环境,企业常常决定部署Microsoft的集群架构。我常常被问到小的集群(由较少的节点组成)SQLServer实例和作为中心解决方案的大的集群哪一种更好。在我们比较了这两个集群架构之后,我让你们自己做决定。
什么是Microsoft集群服务器
MSCS是一个WindowsServer企业版中的内建功能。这个软件支持两个或者更多服务器节点连接起来形成一个“集群”,来获得更高的可用性和对数据和应用更简便的管理。MSCS可以自动的检查到服务器或者应用的失效,并从中恢复。你也可以使用它来(手动)移动服务器之间的负载来平衡利用率以及无需停机时间来调度计划中的维护任务。
这种集群设计使用软件“心跳”来检测应用或者服务器的失效。在服务器失效的事件中,它会自动将资源(比如磁盘和IP地址)的所有权从失效的服务器转移到活动的服务器。注意还有方法可以保持心跳连接的更高的可用性,比如站点全面失效的情况下。
MSCS不要求在客户计算机上安装任何特殊软件,因此用户在灾难恢复的经历依赖于客户-服务器应用中客户一方的本质。客户的重新连接常常是透明的,因为MSCS在相同的IP地址上重启应用、文件共享等等。进一步,为了灾难恢复,集群的节点可以处于分离的、遥远的地点。
在集群服务器上的SQLServer
SQLServer2000可以配置为最多4个节点的集群,而SQLServer2005可以配置为最多8个节点的集群。当一个SQLServer实例被配置为集群之后,它的磁盘资源、IP地址和服务就形成了集群组来实现灾难恢复。
SQLServer2000允许在一个集群上安装16个实例。根据在线帮助,“SQLServer2005在一个服务器或者处理器上可以支持最多50个SQLServer实例,”但是,“只能使用25个硬盘驱动器符,因此如果你需要更多的实例,那么需要预先规划。”
注意SQLServer实例的灾难恢复阶段是指SQLServer服务开始所需要的时间,这可能从几秒钟到几分钟。如果你需要更高的可用性,考虑使用其他的方法,比如logshipping和数据库镜像。
单个的大的SQLServer集群还是小的集群
下面是大的、由更多的节点组成的集群的优点:
◆更高的可用新(更多的节点来灾难恢复)。
◆更多的负载均衡选择(更多的节点)。
◆更低廉的维护成本。
◆增长的敏捷性。多达4个或者8个节点,依赖于SQL版本。
◆增强的管理性和简化环境(需要管理的少了)。
◆更少的停机时间(灾难恢复更多的选择)。
◆灾难恢复性能不受集群中的节点数目影响。
下面是单个大的集群的缺点:
◆集群节点数目有限(如果需要第9个节点怎么办)。
◆在集群中SQL实例数目有限。
◆没有对失效的防护——如果磁盘阵列失效了,就不会发生灾难恢复。
◆使用灾难恢复集群,无法在数据库级别或者数据库对象级别,比如表,创建灾难恢复集群。
虚拟化和集群
虚拟机也可以参与到集群中,虚拟和物理机器可以集群在一起,不会发生问题。SQLServer实例可以在虚拟机上,但是性能可能会受用影响,这依赖于实例所消耗的资源。在虚拟机上安装SQLServer实例之前,你需要进行压力测试来验证它是否可以承受必要的负载。
在这种灵活的架构中,如果虚拟机和物理机器集群在一起,你可以在虚拟机和物理机器之间对SQLServer进行负载均衡。比如,使用虚拟机上的SQLServer实例开发应用。然后在你需要对开发实例进行压力测试的时候,将它灾难恢复到集群中更强的物理机器上。
集群服务器可以用于SQLServer的高可用性、灾难恢复、可扩展性和负载均衡。单个更大的、由更多的节点组成的集群往往比小的、只有少数节点的集群更好。大个集群允许更灵活环境,为了负载均衡和维护,实例可以从一个节点移动到另外的节点。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)