十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
通过RAC实现。只是共享存储。各台机器有自己的共享内存。并非每台机器的内存共享累加起来组成一个数据库的共享内存。 RAC的好处是所有机器组成一个集群。 ORACLE RAC工作原理 在一个应用环境当中,所有的服务器使用和管理同一个数据库,目的是为了分散每一台服务器的工作量,硬件上至少需要两台以上的服务器,而且还需要一个共享存储设备。同时还需要两类软件,一个是集群软件,另外一个就是Oracle数据库中的RAC组件。同时所有服务器上的OS都应该是同一类OS,根据负载均衡的配置策略,当一个客户端发送请求到某一台服务的listener后,这台服务器根据我们的负载均衡策略,会把请求发送给本机的RAC组件处理也可能会发送给另外一台服务器的RAC组件处理,处理完请求后,RAC会通过集群软件来访问我们的共享存储设备。 逻辑结构上看,每一个参加集群的节点有一个独立的instance,这些instance访问同一个数据库。节点之间通过集群软件的通讯层(communication layer)来进行通讯。同时为了减少IO的消耗,存在了一个全局缓存服务,因此每一个数据库的instance,都保留了一份相同的数据库cache。 RAC中的特点是:每一个节点的instance都有自己的SGA 每一个节点的instance都有自己的background process 每一个节点的instance都有自己的redo logs 每一个节点的instance都有自己的undo表空间所有节点都共享一份datafiles和controlfiles Oracle还提出了一个缓存融合的技术(Cache fusion) 目的有两个 1.保证缓存的一致性IXPUB技术博客 2.减少共享磁盘IO的消耗IXPUB技术博客因此在RAC环境中多个节点保留了同一份的DB CACHE 缓存融合(Cache fusion)工作原理: 1.其中一个节点会从共享数据库中读取一个block到db cache中 2.这个节点会在所有的节点进行交叉db block copy 3.当任何一个节点缓存被修改的时候,就会在节点之间进行缓存修改 4.为了达到存储的一致最终修改的结果也会写到磁盘上 ClusterWare组件 有四种Service Crsd - 集群资源服务 Cssd - 集群同步服务 Evmd - 事件管理服务 oprocd - 节点检测监控有三类Resource VIP - 虚拟IP地址(Virtual IP) OCR - Oracle Cluster Registry(集群注册文件),记录每个节点的相关信息 Voting Disk - Establishes quorum (表决磁盘),仲裁机制用于仲裁多个节点向共享节点同时写的行为,这样做是为了避免发生冲突。 RAC的组件 提供过了额外的进程,用来维护数据库 LMS - Gobal Cache Service Process 全局缓存服务进程 LMD - Global Enqueue Service Daemon 全局查询服务守护进程 LMON - Global Enqueue Service Monitor全局查询服务监视进程 LCK0 - Instance Enqueue Process 实例查询进程
成都网站建设公司更懂你!创新互联只做搜索引擎喜欢的网站!成都网站制作前台采用搜索引擎认可的DIV+CSS架构,全站HTML静态,H5页面制作+CSS3网站,提供:网站建设,微信开发,重庆小程序开发,成都商城网站开发,成都app开发,域名注册,服务器租售,网站代托管运营,微信公众号代托管运营。
1,非集群下 Windows环境下数据库
conn scott/123@127.0.0.1:1521/orcl
conn scott/123456@(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =
(PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))(CONNECT_DATA =
(SERVER = DEDICATED)(SERVICE_NAME = orcl)))
Linux环境下数据库
conn scott/123@(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST
= 127.0.0.1)(PORT = 1521)))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME =
orcl)))
2,集群下连接
conn scott/123@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE = yes)(FAILOVER = on)
(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(ADDRESS=
(PROTOCOL=TCP)(HOST=127.0.0.2)(PORT=1521)))(CONNECT_DATA=(SERVER=default)
(SERVICE_NAME=orcl)))
扩展资料
在命令行中登录oracle数据库:
sqlplus username/password 如:普通用户登录 sqlplus scott/tiger
sqlplus username/password as sysdba 如:sqlplus sys/admin as sysdba
sqlplus username/password@net_service_name 如: sqlplus scott/tiger@orcl
sqlplus username/password@//host:port/sid
参考资料:百度百科 - Oracle数据库
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL
=TCP)(HOST=ipadd)(PORT=port))(ADDRESS=(PROTOCOL=TCP)(HOST=ipadd)(PORT=port))(FAILOVER=on)(LOAD_BALANCE=on)(CONNECT_DATA=(SERVICE_NAME=ORADB)))
$oraUser="nihao";//数据库账号
$oraPass="123456"; //密码
$oraDB="(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))(CONNECT_DATA=(SID=orcl)))"; //SID要和连接的数据库对应上
$conn = ociLOGOn($oraUser,$oraPass,$oraDB) ;//连接
$rs_search=OCIParse($conn, $sql_search); //执行SQL语句
OCIExecute($rs_search);
//$rs_search这个是结果集可以用
$row=oci_fetch_array($rs_search);//把数据拿出来 这是一条数据写法 多条循环
有不明白的HI我