搜档网
当前位置:搜档网 › Oracle10g RAC集群基本命令

Oracle10g RAC集群基本命令

Oracle10g RAC集群基本命令
Oracle10g RAC集群基本命令

Oracle10g RAC集群基本命令

对于Oracle10g RAC的常用维护有以下方面:

1.检查集群所有服务的状态,是否都是online

2.停止/开启某一个节点的Oracle实例,

3.停止/开启所有节点的Oracle实例

4.注意Oracle环境变量

创建表空间和用户

备份:

exp buffer=20480000 log 3H

imp 7H

expdp 数据泵10g 新特性只能再服务器端进行执行。12-15min

Impdp 1.4小时

Dblink

===========================================================

作者: tolywang(https://www.sodocs.net/doc/053471202.html,)

发表于:2007.12.18 11:34

分类: Oracle10g RAC

出处:https://www.sodocs.net/doc/053471202.html,/post/48/442867

---------------------------------------------------------------

停止Oracle RAC 10g 环境

第一步是停止Oracle 实例。当此实例(和相关服务)关闭后,关闭ASM 实例。最后,关闭节点应用程序(虚拟IP、GSD、TNS 监听器和ONS)。

$ export ORACLE_SID=jmdb1

$ emctl stop dbconsole

$ srvctl stop instance -d jmdb -i jmdb1

$ srvctl stop asm -n jmrac1

$ srvctl stop nodeapps -n jmrac1

启动Oracle RAC 10g 环境

第一步是启动节点应用程序(虚拟IP、GSD、TNS 监听器和ONS)。当成功启动节点应用程序后,启动ASM 实例。最后,启动Oracle 实例(和相关服务)以及企业管理器数据库控制台。

$ export ORACLE_SID=jmdb2

$ srvctl start nodeapps -n jmrac1

$ srvctl start asm -n jmrac1

$ srvctl start instance -d jmdb -i jmdb1

$ emctl start dbconsole

使用SRVCTL 启动/停止所有实例

$ srvctl start database -d jmdb1

$ srvctl stop database -d jmdb1所有实例和服务的状态

$ srvctl status database -d racdb1单个实例的状态

$ srvctl status database -d racdb2单个实例的状态

$ srvctl status instance -d jmdb -i jmdb2在数据库全局命名服务的状态

$ srvctl status service -d jmdb -s jmdb特定节点上节点应用程序的状态

$ srvctl status nodeapps -n jmrac1ASM 实例的状态

$ srvctl status asm -n jmrac1列出配置的所有数据库

$ srvctl config database显示RAC 数据库的配置

$ srvctl config database -d jmdb显示指定集群数据库的所有服务

$ srvctl config service -d jmdb显示节点应用程序的配置-(VIP、GSD、ONS、监听器)$ srvctl config nodeapps -n jmrac1 -a -g -s -lVIP

exists.:/vip-jmrac1/192.168.1.200/255.255.255.0/eth0:eth1GSD exists.ONS daemon exists.Listener exists.显示ASM 实例的配置

$ srvctl config asm -n jmrac1+ASM1 /u01/app/oracle/product/10.1.0/db_1

oracle rac集群 crs常用命令

常用的crs命令如下:

$ORA_CRS_HOME/bin/crs_stat –t

此命令主要用来检查crs资源状态

例如

[oracle@rac2 css]$ $ORA_CRS_HOME/bin/crs_stat -t

Name Type Target State Host

------------------------------------------------------------

ora....CL1.srv application ONLINE ONLINE rac1

ora....CL2.srv application ONLINE ONLINE rac2

ora....TEST.cs application ONLINE ONLINE rac1

ora....L1.inst application ONLINE ONLINE rac1

ora....L2.inst application ONLINE ONLINE rac2

ora.ORCL.db application ONLINE ONLINE rac1

ora....SM1.asm application ONLINE ONLINE rac1

ora....C1.lsnr application ONLINE ONLINE rac1

ora.rac1.gsd application ONLINE ONLINE rac1

ora.rac1.ons application ONLINE ONLINE rac1

ora.rac1.vip application ONLINE ONLINE rac1

ora....SM2.asm application ONLINE ONLINE rac2

ora....C2.lsnr application ONLINE ONLINE rac2

ora.rac2.gsd application ONLINE ONLINE rac2

ora.rac2.ons application ONLINE ONLINE rac2

ora.rac2.vip application ONLINE ONLINE rac2

[oracle@rac2 css]$

$ORA_CRS_HOME/bin/crs_start –all

此命令用来启动所有的集群服务,但是启动的前提是资源状态State不能是UNKNOWN。$ORA_CRS_HOME/bin/crs_start 集群服务名(集群服务名可以通过$ORA_CRS_HOME/bin/crs_stat得到)

$ORA_CRS_HOME/bin/crs_stop -all

$ORA_CRS_HOME/bin/crs_stop 集群服务名(集群服务名可以通过$ORA_CRS_HOME/bin/crs_stat得到)

上面的一组crs命令是用来启动关闭crs服务的,下面通过一个真实的环境,具体讲解这些命令的使用。

举例如下:

Oracle RAC在安装完毕后,重启RAC,一些服务不能启动,手动启动也没用。

下面是系统自动启动以后的情况;

[oracle@rac1 ~]$ crs_stat -t

Name Type Target State Host

------------------------------------------------------------

ora....CL1.srv application ONLINE UNKNOWN rac1

ora....CL2.srv application ONLINE UNKNOWN rac2

ora....TEST.cs application ONLINE UNKNOWN rac2

ora....L1.inst application ONLINE OFFLINE

ora....L2.inst application ONLINE OFFLINE

ora.ORCL.db application ONLINE UNKNOWN rac1

ora....SM1.asm application ONLINE UNKNOWN rac1

ora....C1.lsnr application ONLINE UNKNOWN rac1

ora.rac1.gsd application ONLINE UNKNOWN rac1

ora.rac1.ons application ONLINE UNKNOWN rac1

ora.rac1.vip application ONLINE ONLINE rac1

ora....SM2.asm application ONLINE UNKNOWN rac2

ora....C2.lsnr application ONLINE UNKNOWN rac2

ora.rac2.gsd application ONLINE UNKNOWN rac2

ora.rac2.ons application ONLINE UNKNOWN rac2

ora.rac2.vip application ONLINE ONLINE rac2

[oracle@rac1 ~]$

可以看到,只有vip是能自动启动的!其它资源都处于UNKNOWN状态下。

手工用srvctl启动试试!

$ srvctl start nodeapps -n rac1

CRS-1028: Dependency analysis failed because of:

CRS-0223: Resource 'ora.rac1.gsd' has placement error.

CRS-1028: Dependency analysis failed because of:

CRS-0223: Resource 'ora.rac1.vip' has placement error.

CRS-1028: Dependency analysis failed because of:

CRS-0223: Resource 'ora.rac1.ons' has placement error.

CRS-1028: Dependency analysis failed because of:

CRS-0223: Resource 'ora.rac1.LISTENER_RAC1.lsnr' has placement error. 测试crs:

$crsctl check crs

CSS appears healthy

CRS appears healthy

EVM appears healthy

[oracle@rac1 bin]$ crsctl start resources

Starting resources.

Successfully started CRS resources

[oracle@rac1 bin]$ pwd

/oracle/app/oracle/oracle/product/10.2.0/crs/bin

[oracle@rac1 bin]$ gsdctl stop

[oracle@rac1 bin]$ gsdctl status

[oracle@rac1 bin]$ ./gsdctl status

[oracle@rac1 bin]$ gsdctl start

[oracle@rac1 bin]$ srvctl start nodeapps -n rac1

CRS-1028: Dependency analysis failed because of:

CRS-0223: Resource 'ora.rac1.gsd' has placement error.

CRS-1028: Dependency analysis failed because of:

CRS-0223: Resource 'ora.rac1.vip' has placement error.

CRS-1028: Dependency analysis failed because of:

CRS-0223: Resource 'ora.rac1.ons' has placement error.

CRS-1028: Dependency analysis failed because of:

CRS-0223: Resource 'ora.rac1.LISTENER_RAC1.lsnr' has placement error. [oracle@rac1 ~]$ crs_stat -t

Name Type Target State Host

------------------------------------------------------------

ora....CL1.srv application ONLINE UNKNOWN rac1

ora....CL2.srv application ONLINE UNKNOWN rac2

ora....TEST.cs application ONLINE UNKNOWN rac2

ora....L1.inst application ONLINE OFFLINE

ora....L2.inst application ONLINE OFFLINE

ora.ORCL.db application ONLINE UNKNOWN rac1

ora....SM1.asm application ONLINE UNKNOWN rac1

ora....C1.lsnr application ONLINE UNKNOWN rac1

ora.rac1.gsd application ONLINE UNKNOWN rac1

ora.rac1.ons application ONLINE UNKNOWN rac1

ora.rac1.vip application ONLINE ONLINE rac1

ora....SM2.asm application ONLINE UNKNOWN rac2

ora....C2.lsnr application ONLINE UNKNOWN rac2

ora.rac2.gsd application ONLINE UNKNOWN rac2

ora.rac2.ons application ONLINE UNKNOWN rac2

ora.rac2.vip application ONLINE ONLINE rac2

可以看到,仍然是启动后的原始状态。

从上面的显示可以知道,每个资源的State显示为UNKNOWN,应该是由于两个节点时间不同步,进而造成crs在启动的时候无法认到系统已经注册的资源造成的。

解决方法:

首先,保证两个节点时间保持同步,ORACLE 10g RAC两个节点之间有10几秒的时间误差,不会对应用造成影响。但是过分大的时间误差可能导致某个节点down机,或者节点不断重启。

然后执行如下操作:

[oracle@rac1 ~]$ $ORA_CRS_HOME/bin/crs_stop –all

Attempting to stop `ora.rac1.vip` on member `rac1`

Attempting to stop `ora.rac2.vip` on member `rac2`

Stop of `ora.rac2.vip` on member `rac2` succeeded.

Stop of `ora.rac1.vip` on member `rac1` succeeded.

[oracle@rac1 ~]$ $ORA_CRS_HOME/bin/crs_stat -t

Name Type Target State Host

------------------------------------------------------------

ora....CL1.srv application ONLINE UNKNOWN rac1

ora....CL2.srv application ONLINE UNKNOWN rac2

ora....TEST.cs application ONLINE UNKNOWN rac2

ora....L1.inst application OFFLINE OFFLINE

ora....L2.inst application OFFLINE OFFLINE

ora.ORCL.db application OFFLINE UNKNOWN rac1

ora....SM1.asm application OFFLINE UNKNOWN rac1

ora....C1.lsnr application OFFLINE UNKNOWN rac1

ora.rac1.gsd application ONLINE UNKNOWN rac1

ora.rac1.ons application ONLINE UNKNOWN rac1

ora.rac1.vip application OFFLINE OFFLINE

ora....SM2.asm application OFFLINE UNKNOWN rac2

ora....C2.lsnr application OFFLINE UNKNOWN rac2

ora.rac2.gsd application ONLINE UNKNOWN rac2

ora.rac2.ons application ONLINE UNKNOWN rac2

ora.rac2.vip application OFFLINE OFFLINE

[oracle@rac1 ~]$ $ORA_CRS_HOME/bin/crs_stat (此命令可以查看各个资源的完整服务名称)

NAME=ora.ORCL.ORA TEST.ORCL1.srv

TYPE=application

TARGET=OFFLINE

STA TE=OFFLINE

NAME=ora.ORCL.ORA TEST.ORCL2.srv

TARGET=OFFLINE

STA TE=OFFLINE

NAME=ora.ORCL.ORA TEST.cs TYPE=application

TARGET=ONLINE

STA TE=UNKNOWN on rac2

NAME=ora.ORCL.ORCL1.inst

TYPE=application

TARGET=OFFLINE

STA TE=OFFLINE

NAME=ora.ORCL.ORCL2.inst

TYPE=application

TARGET=OFFLINE

STA TE=OFFLINE

NAME=ora.ORCL.db

TYPE=application

TARGET=OFFLINE

STA TE=OFFLINE

NAME=ora.rac1.ASM1.asm

TYPE=application

TARGET=OFFLINE

STA TE=UNKNOWN on rac1

NAME=ora.rac1.LISTENER_RAC1.lsnr TYPE=application

TARGET=OFFLINE

STA TE=UNKNOWN on rac1

NAME=ora.rac1.gsd

TYPE=application

TARGET=ONLINE

STA TE=UNKNOWN on rac1

NAME=ora.rac1.ons

TYPE=application

TARGET=ONLINE

STA TE=UNKNOWN on rac1

NAME=ora.rac1.vip

TYPE=application

TARGET=ONLINE

STA TE=UNKNOWN on rac1

NAME=ora.rac2.ASM2.asm

TYPE=application

TARGET=OFFLINE

STA TE=OFFLINE

NAME=ora.rac2.LISTENER_RAC2.lsnr

TARGET=OFFLINE

STA TE=OFFLINE

NAME=ora.rac2.gsd

TYPE=application

TARGET=ONLINE

STA TE=UNKNOWN on rac2

NAME=ora.rac2.ons

TYPE=application

TARGET=ONLINE

STA TE=UNKNOWN on rac2

NAME=ora.rac2.vip

TYPE=application

TARGET=OFFLINE

STA TE=OFFLINE

$ORA_CRS_HOME/bin/crs_stop –all只能停掉State为ONLINE的服务,状态为UNKNOWN 的资源不能通过这个命令关闭,因此可以通过$ORA_CRS_HOME/bin/crs_stop 服务名的方式单独停止那些状态为UNKNOWN的资源。

下面是通过$ORA_CRS_HOME/bin/crs_stop命令依次停止资源状态State为UNKNOWN的服务。

[oracle@rac1 ~]$ $ORA_CRS_HOME/bin/crs_stop ora.ORCL.ORATEST.cs

Attempting to stop `ora.ORCL.ORATEST.cs` on member `rac2`

Stop of `ora.ORCL.ORATEST.cs` on member `rac2` succeeded.

[oracle@rac1 ~]$ $ORA_CRS_HOME/bin/crs_stop ora.rac1.ASM1.asm

Attempting to stop `ora.rac1.ASM1.asm` on member `rac1`

Stop of `ora.rac1.ASM1.asm` on member `rac1` succeeded.

[oracle@rac1 ~]$ $ORA_CRS_HOME/bin/crs_stop ora.rac1.LISTENER_RAC1.lsnr Attempting to stop `ora.rac1.LISTENER_RAC1.lsnr` on member `rac1`

Stop of `ora.rac1.LISTENER_RAC1.lsnr` on member `rac1` succeeded.

[oracle@rac1 ~]$ $ORA_CRS_HOME/bin/crs_stop ora.rac1.ons

Attempting to stop `ora.rac1.ons` on member `rac1`

Stop of `ora.rac1.ons` on member `rac1` succeeded.

[oracle@rac1 ~]$ $ORA_CRS_HOME/bin/crs_stop ora.rac1.vip

Attempting to stop `ora.rac1.vip` on member `rac1`

Stop of `ora.rac1.vip` on member `rac1` succeeded.

[oracle@rac1 ~]$ $ORA_CRS_HOME/bin/crs_stop ora.rac2.gsd

Attempting to stop `ora.rac2.gsd` on member `rac2`

Stop of `ora.rac2.gsd` on member `rac2` succeeded.

[oracle@rac1 ~]$ $ORA_CRS_HOME/bin/crs_stop ora.rac2.ons

Attempting to stop `ora.rac2.ons` on member `rac2`

Stop of `ora.rac2.ons` on member `rac2` succeeded.

[oracle@rac1 ~]$ $ORA_CRS_HOME/bin/crs_stop ora.rac1.gsd

Attempting to stop `ora.rac1.gsd` on member `rac1`

Stop of `ora.rac1.gsd` on member `rac1` succeeded.

………….

把所有状态为UNKNOWN的资源全部停止以后,再次查看资源状态:

[oracle@rac1 ~]$ $ORA_CRS_HOME/bin/crs_stat -t

Name Type Target State Host

------------------------------------------------------------

ora....CL1.srv application OFFLINE OFFLINE

ora....CL2.srv application OFFLINE OFFLINE

ora....TEST.cs application OFFLINE OFFLINE

ora....L1.inst application OFFLINE OFFLINE

ora....L2.inst application OFFLINE OFFLINE

ora.ORCL.db application OFFLINE OFFLINE

ora....SM1.asm application OFFLINE OFFLINE

ora....C1.lsnr application OFFLINE OFFLINE

ora.rac1.gsd application OFFLINE OFFLINE

ora.rac1.ons application OFFLINE OFFLINE

ora.rac1.vip application OFFLINE OFFLINE

ora....SM2.asm application OFFLINE OFFLINE

ora....C2.lsnr application OFFLINE OFFLINE

ora.rac2.gsd application OFFLINE OFFLINE

ora.rac2.ons application OFFLINE OFFLINE

ora.rac2.vip application OFFLINE OFFLINE

此时可以重启所有crs资源了

[oracle@rac1 ~]$ $ORA_CRS_HOME/bin/crs_start –all(注意,这里是在oracle用户下操作)Attempting to start `ora.rac1.vip` on member `rac1`

Attempting to start `ora.rac2.vip` on member `rac2`

Start of `ora.rac2.vip` on member `rac2` succeeded.

Attempting to start `ora.rac2.ASM2.asm` on member `rac2`

Start of `ora.rac1.vip` on member `rac1` succeeded.

Attempting to start `ora.rac1.ASM1.asm` on member `rac1`

Start of `ora.rac2.ASM2.asm` on member `rac2` succeeded.

Attempting to start `ora.ORCL.ORCL2.inst` on member `rac2`

Start of `ora.rac1.ASM1.asm` on member `rac1` succeeded.

Attempting to start `ora.ORCL.ORCL1.inst` on member `rac1`

Start of `ora.ORCL.ORCL2.inst` on member `rac2` succeeded.

Attempting to start `ora.rac2.LISTENER_RAC2.lsnr` on member `rac2`

Start of `ora.rac2.LISTENER_RAC2.lsnr` on member `rac2` succeeded.

Start of `ora.ORCL.ORCL1.inst` on member `rac1` succeeded.

Attempting to start `ora.rac1.LISTENER_RAC1.lsnr` on member `rac1`

Start of `ora.rac1.LISTENER_RAC1.lsnr` on member `rac1` succeeded.

Attempting to start `ora.ORCL.ORATEST.ORCL1.srv` on member `rac1`

CRS-1002: Resource 'ora.rac1.ons' is already running on member 'rac1'

CRS-1002: Resource 'ora.ORCL.db' is already running on member 'rac1'

CRS-1002: Resource 'ora.rac2.ons' is already running on member 'rac2'

Attempting to start `ora.ORCL.ORATEST.ORCL2.srv` on member `rac2`

Attempting to start `ora.ORCL.ORATEST.cs` on member `rac2` Attempting to start `ora.rac1.gsd` on member `rac1`

Attempting to start `ora.rac2.gsd` on member `rac2`

Start of `ora.ORCL.ORATEST.cs` on member `rac2` succeeded.

Start of `ora.rac2.gsd` on member `rac2` succeeded.

Start of `ora.ORCL.ORATEST.ORCL2.srv` on member `rac2` succeeded. Start of `ora.rac1.gsd` on member `rac1` succeeded.

Start of `ora.ORCL.ORATEST.ORCL1.srv` on member `rac1` succeeded. CRS-0223: Resource 'ora.ORCL.db' has placement error.

CRS-0223: Resource 'ora.rac1.ons' has placement error.

CRS-0223: Resource 'ora.rac2.ons' has placement error.

[oracle@rac1 ~]$ crs_stat -t

Name Type Target State Host

------------------------------------------------------------

ora....CL1.srv application ONLINE ONLINE rac1

ora....CL2.srv application ONLINE ONLINE rac2

ora....TEST.cs application ONLINE ONLINE rac2

ora....L1.inst application ONLINE ONLINE rac1

ora....L2.inst application ONLINE ONLINE rac2

ora.ORCL.db application ONLINE ONLINE rac1

ora....SM1.asm application ONLINE ONLINE rac1

ora....C1.lsnr application ONLINE ONLINE rac1

ora.rac1.gsd application ONLINE ONLINE rac1

ora.rac1.ons application ONLINE ONLINE rac1

ora.rac1.vip application ONLINE ONLINE rac1

ora....SM2.asm application ONLINE ONLINE rac2

ora....C2.lsnr application ONLINE ONLINE rac2

ora.rac2.gsd application ONLINE ONLINE rac2

ora.rac2.ons application ONLINE ONLINE rac2

ora.rac2.vip application ONLINE ONLINE rac2

此时,看到crs所有资源全部启动,问题解决。

其它一些常用命令:

$ORA_CRS_HOME/bin/crsctl check crs 用于检查后台进程状态$ORA_CRS_HOME/bin/crsctl start resources 启动crs资源

$ORA_CRS_HOME/bin/crsctl start crs 启动crs,需要超级用户操作。$ORA_CRS_HOME/bin/crsctl stop crs 关闭crs,需要超级用户操作。$ORA_CRS_HOME/bin/crs_unregister 取消注册crs

$ORA_CRS_HOME/bin/ocrcheck 检查ocr设置信息用ocrcheck $ORA_CRS_HOME/bin/crsctl query css votedisk 检查表决磁盘信息

举例:

[oracle@rac2 css]$ ocrcheck

Status of Oracle Cluster Registry is as follows :

Version : 2

Total space (kbytes) : 104344

Used space (kbytes) : 4568

Available space (kbytes) : 99776

ID : 328160432

Device/File Name : /dev/raw/raw4

Device/File integrity check succeeded

Device/File Name : /dev/raw/raw5

Device/File integrity check succeeded

Cluster registry integrity check succeeded

[oracle@rac2 css]$ $ORA_CRS_HOME/bin/ocrcheck

Status of Oracle Cluster Registry is as follows :

Version : 2

Total space (kbytes) : 104344

Used space (kbytes) : 4568

Available space (kbytes) : 99776

ID : 328160432

Device/File Name : /dev/raw/raw4

Device/File integrity check succeeded

Device/File Name : /dev/raw/raw5

Device/File integrity check succeeded

Cluster registry integrity check succeeded

[oracle@rac2 css]$ crsctl query css votedisk

0. 0 /dev/raw/raw6

1. 0 /dev/raw/raw7

2. 0 /dev/raw/raw8

located 3 votedisk(s).

注意:

执行crsctl命令的可以是root用户,也可以是oracle用户,如果是root用户要指定绝对路径,但是对于crsctl start crs和crsctl stop crs必须是root用户来执行。

crs主要进程

(1)crsd

负责管理ha操作

管理crs资源,如linstener,vip,ons,gsn等

由root用户管理、启动

(2)ocssd

管理各节点的关系,用于节点间通信

由oracle用户运行管理

(3)oprocd

集群进程管理—Process monitor for the cluster.

仅在没有使用vendor的集群软件状态下运行

(4)evmd

事件检测进程,由oracle用户运行管理

(5)主要log位置

$ORA_CRS_HOME/log/节点主机名/racg

$ORA_CRS_HOME/log/节点主机名/crsd

$ORA_CRS_HOME/crs/init

$ORA_CRS_HOME/css/log

$ORA_CRS_HOME/css/init

$ORA_CRS_HOME/evm/log

$ORA_CRS_HOME/evm/init

$ORA_CRS_HOME/srvm/log

Oracle 集群的体系结构

11月16, 2008

1、Oralce 集群的总体结构

Oracle集群实质上就是使多个服务器访问同一个Oracle数据库,这样一方面可以避免一个服务器宕机时数据库不能访问(即高可用性) ,同时也可以进行并行运算和负载均衡。

要安装Oracle的集群,硬件上至少需要两台以上的服务器,而且还需要一个共享存储设备。同时至少需要两个软件:Oracle数据库软件(集成了RAC组件)和Oracle ClusterWare。Oracle clusterware也可以使用经过了RAC认证的第三方集群软件来代替。同时所有服务器上的OS都应该是同一类OS。

从软件组件上来讲,一个Oracle集群由多台服务器组成,每台服务器有自己的监听器(Listener),用于监听自己的网络端口;每台服务有自己的Oracle RAC服务,用于数据库的集群访问;每台服务器有自己的集群就绪服务(clusterware) ,用于

集群管理;所有的服务器通过自己的操作系统访问一个共享的存储设备,共享存储设备的存储机制可以使用裸设备(Raw)、Oracle集群文件系统(OCFS)、自动存储管理(ASM)或网络附属存储(NAS)。当有客户端访问时,由上而下依次调用相应的软件。

从逻辑结构上来讲,集群中的每台服务器有一个实例,每台服务器上的实例都对应到同一个数据库。关于Oracle软件和本地存档日志,既可以存储在本地磁盘上(如下图),也可以存储在共享磁盘上,这取决于在安装时选择的存储机制。

下图显示了更详细的逻辑结构。客户端首先访问某个实例,让后再通过集群管理软件访问到数据库的数据;节点之间使用内部连接进行通讯。

2、Oracle Clusterware 体系结构

Oracle Clusterware是一个集群软件,使用它做集群的所有操作系统必须相同。使用Oracle Clusterware将多个装有相同操作系统的服务器捆绷着黑色塑胶绑到一起,当对这些集群的服务器进行访问时,就像访问一台服务器一样。

Oracle Clusterware要求两个集群组件:

(1)voting disk(表决磁盘):

用于记录集群节点的信息。虽然名字是磁盘,但是如果使用的是OCFS文件系统,它是以一个文件的方式存在。RAC 用它来确定哪些实例是集群实例。当网络发生故障时,还要用它存储的信息进行健康检查(例如检查成员服务器是否可用)和仲裁。表决磁盘必须存放在共享磁盘上。

(2)Oracle Cluster Registry(OCR,集群注册):

用于记录集群配置信息。集群注册也必须存放在共享磁盘上。

3、RAC体系结构与进程

可以选择一个RAC支持的存储机制来存储这些数据。Oracle10g推荐使用自动存储管理(ASM)来存储RAC数据库。可以使用下列存储机制来存储RAC数据库:

(1)自动存储管理(ASM)

(2)Oracle 集群文件系统(OCFS2),也可以使用通过RAC认证的第三方集群文件系统

(3)网络文件系统(NFS)

(4)裸设备(Raw devices)

在存储结构上,RAC 数据库与单实例数据库不同的地方是:

(1)每一个节点的instance都有自己的SGA

(2)每一个节点的instance都有自己的background process

(3)每一个节点的instance都有自己的redo logs

(4)每一个节点的instance都有自己的undo表空间

(5)所有节点都共享一份datafiles和controlfiles

当对Oracle数据库进行集群时,所有的集群节点必须连接到一个局域网(LAN) ,以便应用程序和用户访问RAC数据库。应用程序用该使用Oracle数据库服务功能连接到数据库,数据库服务允许定义规则和特性来控制用户和应用程序如何连接到数据库实例,特性包括:唯一名称(unique name)、负载均衡(load balance)和故障处理(failover) 。Oracle 网络服务(Net Services)允许对应用程序的连接进行负载均衡以使应用程序交叉连接到每个集群实例上。

每个RAC数据库有两个或多个实例,每个实例有自己的内存结构和后台进程。在RAC

环境中,每个实例的内存结构和后台进程都是相同的,它们看起来像单一系统的影像。每个实例的SGA内有一个缓冲区(buffer cache) ,使用缓存融合(Cache Fusion)技术,每个实例就像使用单一缓存一样使用集群实例的缓存来处理数据库。因此,RAC实例的SGA要比单一实例的SGA大。如下图所示,图中所示为使用缓存融合技术对数据进行处理的一个简单过程,图中标注中的序号为访问的步骤,共享缓存分布在所有节点上。

RAC使用两个进程来保证每个实例都包含一个查询或事务所需要的数据:Global Cache Service (GCS) 和the Global Enqueue Service (GES)。GCS 和GES 使用Global Resource Directory (GRD)来维护和记录每个数据文件的状态。GRD(全局资源目录)的内容分布在所有活动的实例上,这又无形中增加了RAC 实例的SGA 的容量。

RAC的特定进程与GRD结合, 使得RAC可以使用缓存融合, 下面是RAC的几个进程:

(1)LMS—Global Cache Service process(全局缓存服务进程)

(2)LMD—Global Enqueue Service Daemon (全局查询服务守护进程)

(3)LMON—Global Enqueue Service Monitor (全局查询服务监视进程)

(4)LCK0—Instance Enqueue Process (实例查询进程)

郑燃数据库现状

Gmmdb gmmdb

Oracle DataGuard数据备份方案详解

https://www.sodocs.net/doc/053471202.html, 2009-07-03 09:44 vfast_chenxy 追求我要评论(0)

?摘要:本文介绍如何使用RMAN备份创建备库(dataguard)。Oracle DataGuard是一种数据库级别的HA方案,最主要功能是冗灾、数据保护、故障恢复等。

?标签:Oracle DataGuard

?Oracle DataGuard是一种数据库级别的HA方案,最主要功能是冗灾、数据保护、故障恢复等。

在生产数据库的"事务一致性"时,使用生产库的物理全备份(或物理COPY)创建备库,备库会通过生产库传输过来的归档日志(或重做条目)自动维护备用数据库。将重做数据应用到备用库。本文介绍使用RMAN备份创建备库(dataguard).

一:Oracle DataGuard环境概述

1.软件环境

操作系统Red Linux Enterprise as 5

数据库版本Oracle 10g release 2

2.primary databae

IP:192.168.18.1

ORACLE_SID=db1

db_unique_name=db1

3.standby database

IP:192.168.18.2

ORACLE_SID=standby

db_unique_name=standby

二,主数据库(db1)做准备

1.设置主数据库为Force logging

1.SQL> alter database force logging;

2.创建密码文件

1.cd $ORACLE_HOME/dbs/

2.orapwdfile=orapwdb1password=123456force=y

3.修改主库的初始化参数

1.alter system set log_archive_config='dg_config=(db1,standby)' scope=

both;

2.alter system set log_archive_dest_1='location=/u01/db1/arch' scope=b

oth;

3.alter system set db_unique_name='db1' scope=both;

4.生成数据库备份

1.RMAN> connect target sys/123456

2.RMAN> backup database format='/oracle/rmanback/%d_%s.dbf' plus archi

velog;

3.[oracle@oracle rmanback]$ ls

4.DB1_1.dbfDB1_2.dbf

5.生成备库的control file

1.SQL>alter database create standby controlfile as '/oracle/rmanback/c

tontrl01.ctl

6.配置listener.ora 和tnsnames.ora文件

启动lintener.ora,

1.[oracle@oracle dbs]$ lsnrctl status

2.LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 14-JUN-2009 02

:54:29

3.Service "db1" has 1 instance(s).

4.Instance "db1", status READY, has 1 handler(s) for this service...

5.Service "db1_XPT" has 1 instance(s).

6.Instance "db1", status READY, has 1 handler(s) for this service...

7.The command completed successfully

配置rnsnames.ora

1.vi $ORACLE_HOME/network/admin/tnsnames.ora

2.db1 =

3. (DESCRIPTION =

4. (ADDRESS_LIST =

5. (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.18.1)(PORT = 1521))

6. )

7. (CONNECT_DATA =

8. (SERVICE_NAME = db1)

9.standby =

10. (DESCRIPTION =

11. (ADDRESS_LIST =

12. (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.18.2)(PORT = 1521))

13. )

14. (CONNECT_DATA =

15. (SERVICE_NAME = standby)

16. )

17. )

三.创建standby database

1.设置环境变量并安装oracle软件

1.#环境变量设成与主库一样

2.#只安装软件不安装库

3../runInstaller –silent –responseFile /tmp/installoracle.rsp

2.建立相关的目录

1.cd $ORACLE_HOME/dbs/

2.orapwdfile=orapwSID password=123456 force=y

3.#注要密码要与主库的一样, 否则会归档失败

3.建立密码文件

1.cd $ORACLE_HOME/dbs/

2.orapwd file=orapwSID password=123456 force=y

3.#注要密码要与主库的一样, 否则会归档失败

3.建立参数文件(pfile)

1.db_name = standby

2.shared_pool_size = 120M

3.undo_management = AUTO

4.undo_tablespace = undotbs

5.sga_max_size = 200M

6.sga_target = 160M

7.db_2k_cache_size = 4M

8.

9.standby_file_management=AUTO

10.fal_server='db1'

11.fal_client='standby'

12.log_archive_dest_1='location=/u01/app/oracle/product/10.2.0/dbs/arch

'

13.log_archive_dest_2='SERVICE=db1 REOPEN=300'

14.log_archive_dest_state_1='ENABLE'

15.log_archive_dest_state_2='ENABLE'

4.CP主数据库RMAN备份及控制文件到备库

注意:备份存放位置要与primary database RMAN备份文件的位置相同. 控制文件存放位置要与生成standby database controlfile的位置相同

1.scp /oracle/rmanback/*.dbf root@19

2.168.18.2:/oracle/rmanback/

2.scp /oracle/rmanback/*.ctl root@192.168.18.2:/oracle/oracle/oradata/

standby/

5.利用备用的控制文件,把备用数据库启到mount

1.SQL>connect / as sysdba

2.connnpcted to an idle instance.

3.SQL>startup nomount pfile=$ORACLE_HOME/dbs/initstandby.ora

4.SQL>alter database mount standby database

6. 配置listener.ora 和tnsnames.ora文件.

与主库相同启动listener,tnsnames.ora也与主库配置的一样,

当主备库的监听都启动后,进行测试,以例下面能顺利进行

1.tnsping db1

2.tnsping standby

3.SQL> sqlplus sys/123456@db1

4.SQL> sqlplus sys/123456@standby

7.转储数据库

1.RMAN>connect target /

2.connected to target database:TEST(DBID=788075692)

3.RMAN> restore database

8.恢复数据库。

1.SQL>recover managed standby database disconnect from session;

2.#如果有需要应用的日志并想手工应用,可以运行如下命令

3.SQL>recover automatic standby database;

9.检查standby database是否创建成功

a.在primary database 上切换日志

1.SQL> alter system switch logfile

b.在primary database上运行下面的语句

1.SQL> select max(sequence#) from v$archived_log;

2.MAX(SEQUENCE#)

3.--------------

4.17

c. 在standby database上运行下面的语句

1.SQL> select sequence# ,applied from v$archived_log order by sequence

#;

2. SEQUENCE# APP

3.--------------------- ---

4.15YES

5.16YES

6.17YES

若在上步中的max sequence#在的的app状态为YES说明standby database 成功创建.

10. 以spfile启动并设为只读

1.SQL> create spfile from pfile;

2.SQL> shutdown immedaite

3.SQL> startup mount

4.SQL> alter database recover managed standby database disconnect from

session;

5.SQL> alter database open read only;

OracleRAC体系结构与优势

Oracle 10g RAC应用分析 高性能服务器产品部徐斌 2008-12-12

目录 引言 (1) 一、什么是ORACLE RAC? (2) 二、Oracle RAC体系结构 (2) 1.Oracle集群件 (3) 2.硬件体系结构 (3) 3.文件系统和卷管理 (4) 4.虚拟互联网协议地址(VIP) (4) 5.集群验证实用程序 (5) 6.远距离集群RAC (5) 三、ORACLE RAC的优势 (6) 1.高可用性 (6) 2.可伸缩性 (7) 四、管理ORACLE真正应用集群数据库 (8) 1.Enterprise Manager 10g (8) 2.滚动补丁应用 (9) 3.滚动版本升级支持 (9) 五、使用真正应用集群进行负载管理 (10) 1.服务 (10) 2.连接负载均衡 (11) 3.快速应用程序通知(FAN) (11) 4.负载均衡顾问程序 (11) 六、Oracle RAC并行服务器与双机热备份的比较 (12) 七、总结 (14) 八、部分官方技术问答 (14) 1.为什么说Oracle Real Application Clusters 10g 要远远超过它的竞争对手? (14) 2.Oracle RAC的典型硬件配置是什么样的? (15) 3.SQL Server和IBM DB2都有active-active的故障切换方式,为什么我要采用Oracle Real Application Cluster 10g? (15) 4.我的分布式应用系统运行非常好,为什么我要把我的数据库进行集中? (16) 5.我们已经有了集群硬件环境,并且可以进行应用的切换,为什么我还需要Oracle Real Application Clusters 10g? (16) 6.我们使用Data Guard来实现故障切换,为什么我还需要Oracle Real Application Clusters 10g? (16) 7.为什么选择Linux?为什么选择Linux环境下的Oracle Real Application Clusters 10g? 17

Linux必学的60个命令二(文件处理命令)

Linux必学的60个命令-文件操作 Linux 系统信息存放在文件里,文件与普通的公务文件类似。每个文件都有自己的名字、内容、存放地址及其它一些管理信息,如文件的用户、文件的大小等。文件可以是一封信、一个通讯录,或者是程序的源语句、程序的数据,甚至可以包括可执行的程序和其它非正文内容。Linux文件系统具有良好的结构,系统提供了很多文件处理程序。这里主要介绍常用的文件处理命令。 file 1.作用件内容判断文件类型,使用权限是所有用户。 2.格式 file通过探测文 file [options] 文件名 3.[options]主要参数 -v:在标准输出后显示版本信息,并且退出。 -z:探测压缩过的文件类型。 -L:允许符合连接。 -f name:从文件namefile中读取要分析的文件名列表。 4.简单说明 使用file命令可以知道某个文件究竟是二进制(ELF格式)的可执行文件, 还是Shell Script 文件,或者是其它的什么格式。file能识别的文件类型有目录、Shell脚本、英文文本、二进制可执行文件、C语言源文件、文本文件、DOS的可执行文件。 5.应用实例 如果我们看到一个没有后缀的文件grap,可以使用下面命令: $ file grap grap:English text 此时系统显示这是一个英文文本文件。需要说明的是,file命令不能探测包括图形、音频、视频等多媒体文件类型。 mkdir 1.作用 mkdir命令的作用是建立名称为dirname的子目录,与MS DOS下的md命令类似,它的使用权限是所有用户。 2.格式 mkdir [options] 目录名 3.[options]主要参数 -m, --mode=模式:设定权限<模式>,与chmod类似。 -p, --parents:需要时创建上层目录;如果目录早已存在,则不当作错误。 -v, --verbose:每次创建新目录都显示信息。 --version:显示版本信息后离开。 4.应用实例 在进行目录创建时可以设置目录的权限,此时使用的参数是“-m”。假设要创建的目录名是“tsk”,让所有用户都有rwx(即读、写、执行的权限),那么可以使用以下命令: $ mkdir -m 777 tsk

ansys命令流----前后处理和求解常用命令之求解与后处理

ansys命令流----前后处理和求解常用命令之求解与后处理.txt都是一个山的狐狸,你跟我讲什么聊斋,站在离你最近的地方,眺望你对别人的微笑,即使心是百般的疼痛只为把你的一举一动尽收眼底.刺眼的白色,让我明白什么是纯粹的伤害。3 /solu u /solu 进入求解器 3.1 加边界条件 u D, node, lab, value, value2, nend, ninc, lab2, lab3, ……lab6 定义节点位移约束Node : 预加位移约束的节点号,如果为all,则所有选中节点全加约束,此时忽略nend和ninc. Lab: ux,uy,uz,rotx,roty,rotz,all Value,value2: 自由度的数值(缺省为0) Nend, ninc: 节点范围为:node-nend,编号间隔为ninc Lab2-lab6: 将lab2-lab6以同样数值施加给所选节点。 注意:在节点坐标系中讨论 3.2 设置求解选项 u antype, status, ldstep, substep, action antype: static or 1 静力分析 buckle or 2 屈曲分析 modal or 3 模态分析 trans or 4 瞬态分析 status: new 重新分析(缺省),以后各项将忽略 rest 再分析,仅对static,full transion 有效 ldstep: 指定从哪个荷载步开始继续分析,缺省为最大的,runn数(指分析点的最后一步)substep: 指定从哪个子步开始继续分析。缺省为本目录中,runn文件中最高的子步数action, continue: 继续分析指定的ldstep,substep 说明:继续以前的分析(因某种原因中断)有两种类型 singleframe restart: 从停止点继续 需要文件:jobname.db 必须在初始求解后马上存盘 jobname.emat 单元矩阵 jobname.esav 或 .osav : 如果.esav坏了,将.osav改为.esav results file: 不必要,但如果有,后继分析的结果也将很好地附加到它后面 注意:如果初始分析生成了.rdb, .ldhi, 或rnnn 文件。必须删除再做后继分析 步骤:(1)进入anasys 以同样工作名 (2)进入求解器,并恢复数据库 (3)antype, rest (4)指定附加的荷载 (5)指定是否使用现有的矩阵(jobname.trl)(缺省重新生成) kuse: 1 用现有矩阵 (6)求解 multiframe restart:从以有结果的任一步继续(用不着) u pred,sskey, --,lskey….. 在非线性分析中是否打开预测器 sskey: off 不作预测(当有旋转自由度时或使用solid65时缺省为off) on 第一个子步后作预测(除非有旋转自由度时或使用solid65时缺省为on) -- :未使用变量区

DOS批处理命令大全

写批处理 扩展名是bat(在nt/2000/xp/2003下也可以是cmd)的文件就是批处理文件。 ==== willsort 编注======================================= .bat是dos下的批处理文件 .cmd是nt内核命令行环境的另一种批处理文件 从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样是由专用解释器以行为单位解释执行,这种文本形式更通用的称谓是脚本语言。所以从某个程度分析,batch, unix shell, awk, basic, perl 等脚本语言都是一样的,只不过应用的范围和解释的平台各有不同而已。甚至有些应用程序仍然沿用批处理这一称呼,而其内容和扩展名与dos的批处理却又完全不同。 =================================== 首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS 提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。 ==== willsort 题注=================== 批处理文件中完全可以使用非dos命令,甚至可以使用不具有可执行特性的普通数据性文件,这缘于wind ows系统这个新型解释平台的涉入,使得批处理的应用越来越"边缘化"。所以我们讨论的批处理应该限定在dos环境或者命令行环境中,否则很多观念和设定都需要做比较大的变动。 ======================== 其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来是十分有限的,也是十分不规范的。批处理的程序语句就是一条条的DOS命令(包括内部命令和外部命令),而批处理的能力主要取决于你所使用的命令。 ==== willsort 编注================== 批处理文件(batch file)也可以称之为批处理程序(batch program),这一点与编译型语言有所不同,就c语言来说,扩展名为c或者cpp的文件可以称之为c语言文件或者c语言源代码,但只有编译连接后的exe 文件才可以称之为c语言程序。因为批处理文件本身既具有文本的可读性,又具有程序的可执行性,这些称谓的界限是比较模糊的。 =========================== 第三,每个编写好的批处理文件都相当于一个DOS的外部命令,你可以把它所在的目录放到你的DOS搜索路径(path)中来使得它可以在任意位置运行。一个良好的习惯是在硬盘上建立一个bat或者batch目录(例如C:\BATCH),然后将所有你编写的批处理文件放到该目录中,这样只要在path中设置上c:\batch,你就可以在任意位置运行所有你编写的批处理程序。 ==== willsort 编注===== 纯以dos系统而言,可执行程序大约可以细分为五类,依照执行优先级由高到低排列分别是:DOSKEY宏命令(预先驻留内存),https://www.sodocs.net/doc/053471202.html,中的内部命令(根据内存的环境随时进驻内存),以com为扩

ORACLE RAC日常管理和维护

ORACLE RAC日常管理 1、最常用、最重要的命令: 首先登陆的服务器然后执行su-oracle 关闭集群:$crs_stop–all ps–ef|grep ora 查看是否还有ora开头的进程,没有后方可关机。 启动集群:$crs_start-all 启动完集群后可以用如下命令检查集群状态,所有的服务都要是ONLINE才是正常的,如下[root@node1bin]$crs_stat-t Name Type Target State Host ------------------------------------------------------------ ora....w1.inst application ONLINE ONLINE node1 ora....w2.inst application ONLINE ONLINE node2 ora.cjw.db application ONLINE ONLINE node1 ora....SM1.asm application ONLINE ONLINE node1 ora....E1.lsnr application ONLINE ONLINE node1 ora.node1.gsd application ONLINE ONLINE node1 ora.node1.ons application ONLINE ONLINE node1 ora.node1.vip application ONLINE ONLINE node1 ora....SM2.asm application ONLINE ONLINE node2 ora....E2.lsnr application ONLINE ONLINE node2 ora.node2.gsd application ONLINE ONLINE node2 ora.node2.ons application ONLINE ONLINE node2 ora.node2.vip application ONLINE ONLINE node2 ps–ef|grep ora 下面是一些简介,了解一下就可以了,有时间可以深入研究。 一、Oracle RAC简介: Oracle RAC支持Oracle数据库在集群上运行真正的应用程序。此处的真正应用是指RAC能够支持所有类型的主流商业应用程序。这包括流行的封装产品,如SAP、PeopleSoft

Oracle_RAC知识汇总

一、Oracle 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.保证缓存的一致性 2.减少共享磁盘IO的消耗 因此在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(集群注册文件),记录每个节点的相关信息

批处理命令大全(合集命令)

1 echo 和@ 回显控制命令 @ #关闭单行回显 echo off #从下一行开始关闭回显 @echo off #从本行开始关闭回显。一般批处理第一行都是这个 echo on #从下一行开始打开回显 echo #显示当前是echo off 状态还是echo on 状态 echo. #输出一个"回车换行",一般就是指空白行 echo hello world #输出hello world "关闭回显"是指运行批处理文件时,不显示文件里的每条命令,只显示运行结果 批处理开始和结束时,系统都会自动打开回显 2 errorlevel 程序返回码 echo %errorlevel% 每个命令运行结束,可以用这个命令行格式查看返回码 用于判断刚才的命令是否执行成功 默认值为0,一般命令执行出错会设errorlevel 为1 3 dir 显示目录中的文件和子目录列表 dir #显示当前目录中的文件和子目录 dir /a #显示当前目录中的文件和子目录,包括隐藏文件和系统文件 dir c: /a:d #显示C 盘当前目录中的目录 dir c:\ /a:-d #显示C 盘根目录中的文件 dir d:\mp3 /b/p #逐屏显示d:\mp3 目录里的文件,只显示文件名,不显示时间和大小dir *.exe /s 显示当前目录和子目录里所有的.exe文件 其中* 是通配符,代表所有的文件名,还一个通配符? 代表一个任意字母或汉字 如c*.* 代表以 c 开头的所有文件 ?.exe 代表所有文件名是一个字母的.exe文件 如果指定的目录或文件不存在,将返回errorlevel 为1 每个文件夹的dir 输出都会有2个子目录. 和.. . 代表当前目录 .. 代表当前目录的上级目录 dir . #显示当前目录中的文件和子目录 dir .. #显示当前目录的上级目录中的文件和子目录 其它参数可参考dir /? 4 cd 更改当前目录 cd mp3 #进入当前目录中的mp3 目录 cd .. #进入当前目录中的上级目录 cd\ #进入根目录

批处理文件BAT、CMD命令大全

批处理文件BAT命令大全 一.简单批处理内部命令简介 1.Echo 命令 打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。 语法 echo [{on│off}] [message] Sample:@echo off / echo hello world 在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定格式的文件中.这将在以后的例子中体现出来。 2.@ 命令 表示不显示@ 后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。 Sample:@echo off @echo Now initializing the program,please wait a minite... @format X: /q/u/autoset (format 这个命令是不可以使用/y这个参数的,可喜的是微软留了个autoset这个参数给我们,效果和/y是一样的。) 3.Goto 命令 指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。 语法:goto label (label是参数,指定所要转向的批处理程序中的行。) Sample: if {%1}=={} goto noparms if {%2}=={} goto noparms(如果这里的if、%1、%2就是表示变量。) @Rem check parameters if null show usage :noparms echo Usage: monitor.bat ServerIP PortNumber goto end 标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来表示这个字母是标签,: 开头的字符行, 在批处理中都被视作标号, 而直接忽略其后的所有内容, 只是为了与正常的标号相区别, 建议使用goto 所无法识别的标号, 即在: 后紧跟一个非字母数字的一个特殊符号. goto 命令就是根据这个:来寻找下一步跳到到那里。最好有一些说明这样你别人看起来才会理解你的意图啊。 4.Rem 命令 注释命令,起一个注释的作用,便于别人阅读和你自己日后修改。 Rem Message Sample:@Rem Here is the description.

oracle-11g-rac方案

ORACLE 高可用性 (RAC) 技术方案

目录 一、基础知识介绍 (3) 1. RAC 是什么 (3) 2. RAC 的优势 (3) 3.Oracle RAC原理 (3) 二、RAC 系统结构设计 (4) 1.RAC 系统拓扑结构基本如下图所示: (4) 2.用户组规划 (4) 3.用户规划 (5) 4.磁盘规划 (6) 5.oracle rac网络规划 (7)

一、基础知识介绍 1. RAC 是什么 RAC,全称real application clusters,译为“实时应用集群”,是Oracle 新版数据库中采用的一项新技术,是高可用性的一种,也是Oracle 数据库支持网格计算环境的核心技术。 2. RAC 的优势 Oracle RAC 主要支持Oracle9i、10g、11g 版本,可以支持24 x 7 有效的数据库应用系统,在低成本服务器上构建高可用性数据库系统,并且自由部署应用,无需修改代码。在Oracle RAC 环境下,Oracle 集成提供了集群软件和存储管理软件,为用户降低了应用成本。当应用规模需要扩充时,用户可以按需扩展系统,以保证系统的性能。 ( 1)多节点负载均衡; (2)提供高可用:故障容错和无缝切换功能,将硬件和软件错误造成的影响 最小化; (3)通过并行执行技术提高事务响应时间----通常用于数据分析系统; (4)通过横向扩展提高每秒交易数和连接数----通常对于联机事务系统; (5)节约硬件成本,可以用多个廉价PC 服务器代替昂贵的小型机或大型机, 同时节约相应维护成本; (6)可扩展性好,可以方便添加删除节点,扩展硬件资源。 3.Oracle RAC原理 在一个应用环境当中,所有的服务器使用和管理同一个数据库,目的是为了分散每一台服务器的工作量,硬件上至少需要两台以上的服务器,而且还需要一个共享存储设备。同时所有服务器上的OS 都应该是同一类OS,根据负载均衡的配置策略,当一个客户端发送请求到某一台服务的listener 后,这台服务器根据我们的负载均衡策略,会把请求发送给本机的RAC 组件处理也可能会发送给另外一台服务器的RAC 组件处理,处理完请求后,RAC 会通过集群软件

Linux必学11个命令文件处理

Linux必学11个命令文件处理

Linux系统信息存放在文件里,文件与普通的公务文件类似。每个文件都有自己的名字、内容、存放地址及其它一些管理信息,如文件的用户、文件的大小等。文件可以是一封信、一个通讯录,或者是程序的源语句、程序的数据,甚至可以包括可执行的程序和其它非正文内容。Linux文件系统具有良好的结构,系统提供了很多文件处理程序。这里主要介绍常用的文件处理命令。 file 1.作用 file通过探测文件内容判断文件类型,使用权限是所有用户。 2.格式 file[options]文件名 3.[options]主要参数 -v:在标准输出后显示版本信息,并且退出。 -z:探测压缩过的文件类型。 -L:允许符合连接。 -f name:从文件namefile中读取要分析的文件名列表。 4.简单说明 使用file命令可以知道某个文件究竟是二进制(ELF格式)的可执行文件,还是Shell Script文件,或者是其它的什么格式。file能识别的文件类型有目录、Shell 脚本、英文文本、二进制可执行文件、C语言源文件、文本文件、DOS的可执行文件。 5.应用实例 如果我们看到一个没有后缀的文件grap,可以使用下面命令:

$file grap grap:English text 此时系统显示这是一个英文文本文件。需要说明的是,file命令不能探测包括图形、音频、视频等多媒体文件类型。 mkdir 1.作用 mkdir命令的作用是建立名称为dirname的子目录,与MS DOS下的md命令类似,它的使用权限是所有用户。 2.格式 mkdir[options]目录名 3.[options]主要参数 -m,--mode=模式:设定权限<模式>,与chmod类似。 -p,--parents:需要时创建上层目录;如果目录早已存在,则不当作错误。-v,--verbose:每次创建新目录都显示信息。 --version:显示版本信息后离开。 4.应用实例 在进行目录创建时可以设置目录的权限,此时使用的参数是“-m”。假设要创建的目录名是“tsk”,让所有用户都有rwx(即读、写、执行的权限),那么可以使用以下命令: $mkdir-m777tsk grep 1.作用

实施 Oracle RAC 项目汇总

实施 Oracle RAC 项目 Oracle真正应用集群 (RAC) 是 RDBMS 市场中的最佳数据库集群。Oracle RAC 的配置选项和特性为公司提供设计其高可用性解决方案的广泛的灵活性。但是,如何使用所有配置选项、特性和灵活性成功地实施? 本文是定义、设计和提供成功 Oracle RAC 项目的指南。它详细介绍了减少风险和增加成功实施机会的详细步骤。此外,它还突出了您在实施 Oracle RAC 项目过程中可能会犯的错误,并提供了避免这些错误的建议。 尽管这篇文章侧重于 Oracle RAC,但下列步骤对许多种 Oracle 实施项目均试用。 确定需求 成功实施 Oracle RAC 的第一个重要阶段是确定项目的真实目标。“确定需求”一步涉及识别和记录项目实施阶段要提供的特性和功能。 在实施 Oracle RAC 过程中,您还要经常核对这些需求。将需求记录成文将有助于实施 Oracle RAC 项目。否则,您将发现该项目难以管理,这是因为在项目实施过程中会不断出现意料不到的新问题。 避免错误的方法 1:确保关键业务和技术人员积极地参加项目需求的确定。明确地将所有需求传达给项目负责人,包括关键的管理人员、技术人员以及最终用户。 第 1 步—确定项目范围

“确定需求”阶段的第一步就是确定项目范围。项目范围是用于论证项目业务需求的一系列细项,它说明了项目的可交付成果。项目范围有时也称为“业务需求”。 要确定项目范围,请回答下列问题: ?项目的业务目标是什么? ?项目要完成什么工作? ?项目成功会带来哪些重要好处? 以下是一个详细说明一个 Oracle RAC 示例的高级目标的项目范围文档。 避免错误的方法 2:努力使项目目标量化。您将能重新核对这些目标,掌握整个项目的完成情况。量化目标的工作包括记录项目日程和成本限制。 第 2 步–确定项目团队 确定项目团队就要确定为项目制定交付目标的人和愿意完成项目方案中的任务的人。这些人可能来自组织的多个部门,如决策人员、业务分析人员和技术人员。 下表是典型 Oracle RAC 项目的人员组成,并列明了他们的职能和完成项目所采取的步骤。

OracleRAC技术概述及应用

并行查询选件结合,它还提供了节点间的并行性和节点内的并行性,以得到更高的性能。 多服务器的Cluster(集群)结构,因其具有高可靠性、大容量共享磁盘支持以及无断点的故障恢复,越来越受到业界的关注,越来越多的硬件厂商都相继推出自己的Cluster机种和机型,它已经成为硬件平台的一个新的发展方向。Oracle Real Application Clusters使得企业可以构建支持多个操作系统的服务器,并可提供出色的可用性和可伸缩性。在Oracle Real Application Clusters环境中,Oracle可在一个集群中运行于两个或更多个系统之上,并可以同时访问一个共享数据库。这使得一个数据库系统可以跨越多个硬件系统,同时对应用 程序而言仍是一个统一的数据库系统,从而为您的应用程序带来出色的可用性和可伸缩性优势。 Oracle Real Application Clusters支持企业网格。企业网格由大量标准化商业组件构成,包括:处理器、服务器、网络和存储设备。RAC是唯一一种可将这些组件整合成可供企业使用的技术。Oracle Real Application Clusters和网格能够动态降低运营成本,并可带来出色的灵活性,从而赋予系统更优异的适应性、前瞻性和灵活性。节点、存储设备、CPU和内存的动态供应使得企业可以在轻松高效地维持服务等级的同时,通过改进利用率进一步降低成本。此外,Oracle Real Application Clusters支持任意需要访问 RAC数据库的应用,使它们无需修改便可部署于 RAC 系统之上。 Oracle Real Application Clusters使得用户可以根据容量需求的增长为集群 Oracle RAC技术概述及应用 荣伟铭 苏州市吴中区劳动和社会保障局 笔者从事社保信息系统开发工作多年,社保信息系统建设离不开大型数据库,有人把SQL SEVER比作是“傻瓜相机”,那么ORACLE就是台“专业相机”,Oracle RAC如同是将多台“专业相机”联网使用,虚拟成一台性能更加出色的“高级相机”,要用好这台“高级相机”,用户必须充分理解其原理。目前有关ORACLE的参考资料很多,但是有关Oracle RAC的介绍往往一笔带过,以下笔者将多年的Oracle RAC实际应用经验整理了一下,供同行们参考。 一、Oracle RAC 技术概述 Real Application Cluster为大多数关键业务要求的数据库环境提供了极高的性能和完善的纠错功能,允许集群系统或大型并行系统中的多个节点共享同一物理数据库,可以自动进行负载平衡、故障修复和规划停机时间,以支持高可用性应用程序。它还显著地提高了大型数据仓库和决策支持系统的性能。通过与 添加节点,从而能够通过逐步扩充来节约成本,同时消除了使用大型集群来更换小型单一节点系统的需要。标准低成本组件和模块化磁盘阵列组成的网格池,与Oracle数据库的组合,使得这一解决方案更为强大。与使用新的更大型节点来更换现有系统与升级系统不同,该解决方案支持为集群添加一个或多个节点,从而使得容量升级流程更为方便快捷。Oracle Real Application Clusters中实施的高速缓存合并技术,与Oracle数据库中提供的InfiniBand支持,使您能够以近线性方式扩展系统,而无需对应用进行任何修改。 这一集群体系结构的另一个主要优势是多个节点内建的容错性能。由于物理节点单独运行,因此其中一个或多个节点的故障将不会影响到集群内其它节点。故障切换可在网格内任一节点上进行。即使在最恶劣的情况下,包括只有一个节点没有停止工作,Oracle RealApplication Clusters仍将能够提供数据库服务。这一体系结构允许将一组节点联网或与网络断开,以进行维护,而同时其它节点能够继续提供数据库服务。RAC借助Oracle应用服务器,为连接池故障切换提供了内置的集成特性。借助这一特性,应用可立即了解发生的故障,而无需等待数十分钟直到发生TCP超时故障。鉴于此,应用将可以立即采取相应的恢复措施;同时网格负载均衡将重新分配负载。 Oracle数据库中的Oracle RealApplication Clusters还提供一套完整的集群件集来管理集群。Oracle数据库集群件提供运行集群所需的全部特性,包括节点成员、消息发送服务和锁定等。同时由于它是一个带有通用事件和管理 API的

oracle rac和备份方案

ORACLE RAC及备份方案 ORACLE RAC 简介: ORACLE RAC集群是实现多机共享数据库,以保证应用的高可用性。同时可以自动实现并行处理及均分负载,还能实现数据库在故障时的容错和无断点恢复。 集群内部的所有服务器共享存储,所有服务器都接入公共网络,通过集群唯一的别名对外形成逻辑上单一的数据库提供服务,对内实现集群数据库的高可用性、节点间的负载均衡和Failover(失败切换)。 逻辑结构: 集群纵向看是由存储、数据库集群、应用集群三部分组成,横向来看,是由多台应用服务器、数据库服务器和存储设备组成。

物理结构: RAC物理结构图。 优势: 高可用性: RAC 为数据中心的高可用性奠定了基础。它也是 Oracle 最高可用性架构不可或缺的一部分,为实现数据中心的最高可用性提供了最佳实践。RAC 还为高可用性数据管理提供了以下至关重要的关键特性: 可靠性: Oracle 数据库以其可靠性而著称。RAC Clusters 消除了数据库服务器单点故障问题,从而使可靠性更上一层楼。如果一个实例发生故障,服务器池中的其余实例仍将保持运行状态。Oracle Clusterware 可监视所有 Oracle 进程,并能立即重启任何生故障的组件。

恢复能力: Oracle 数据库包含的许多特性有助于数据库轻松地从各类故障中恢复。如果Oracle RAC 数据库中的一个实例出现故障,服务器池中的另外一个实例将察觉到这一故障,随后自动进行故障恢复。利用快速应用程序通知 (FAN)、快速连接故障切换 (FCF) 和透明应用程序故障切换 (TAF) 这三个功能,应用程序可以轻松地掩藏组件故障,使用户无法察觉。 错误检测: Oracle Clusterware 可自动监视 Oracle RAC 数据库和其他 Oracle 进程(ASM、监听器等),并快速诊断环境中的问题。它还经常能在用户察觉之前自动完成故障恢复。利用快速应用程序通知 (FAN),应用程序即可在集群组件出现故障时立即得到通知,以便在故障显现之前重新发布事务。 持续运行: RAC Clusters 可在计划内和计划外停机期间提供持续的服务。如一台服务器(或一个实例)出现故障,数据库仍将保持运行状态,应用程序仍可访问数据。大多数数据库维护操作均可在不停机的情况下完成,并对用户保持透明。许多其他的维护任务都可以通过滚动方式完成,从而能最大限度地减少(甚至避免)应用程序停机。快速应用程序通知和快速连接故障切换可帮助应用程序满足对服务级别的要求。 可伸缩性: RAC Clusters 提供了独一无二的应用程序伸缩技术。过去,当数据库服务器容量不足时,我们会使用容量更大的新服务器取而代之。随着服务器容量的增加,其成本也日益攀升。但 Oracle RAC 为数据库提供了增加容量的其他方法。通过 OracleClusterware 和 Oracle RAC 向服务器池中添加服务器时并不需要停机,并且,一旦启用新的实例,应用程序就可立即享有新增的容量。服务器池中的所有服务器必须使用同一操作系统和相同版本的Oralce 软件,但不必具备相同的容量。如今,根据自己的需要选择服务器池的客户通常会选用特性不同(略有差别)的服务器。

命令处理程序

《命令处理程序实验报告》 二、实验内容及截图 杨进代码及截图: 1、运行结果截图及说明 type说明:在代码实现中打开content_type.txt的内容,再创建 content_type.txt,并向其中写入123,编译并运行type.c,可以将其内容显示出来 content_type.txt的内容:123

copy说明:创建content_first.txt文件和content_void文件,在 content_first.txt文件写入信息first,在content_void文件不写入信息,编译并运行copy.c,可以将内容first复制到content_void文件中 content_first.txt的内容:first content_void.txt的内容:(“空”) 2、源码 type源码: #include #include #include #define BSIZE 512 int main(int argc,char *argv[]){ int fp,n; char buf[BSIZE]; char ch='\n'; fp=open("content_type.txt",O_RDONLY);

if(fp==-1){ printf("open error!\n"); return -1; } while((n=read(fp,buf,BSIZE))>0) write(1,buf,n); write(1,&ch,1); close(fp); return 0; } copy源码 #include #include #include #define BSIZE 512 int main(int argc,char *argv[]){ int fp1,fp2,n; char buf[BSIZE]; fp1=open("content_first.txt",O_RDONLY); if(fp1==-1){ printf("open content_first.txt error!\n"); return -1; } fp2=open("content_void.txt",O_RDONLY); if(fp2==-1){ printf("open content_void.txt error!\n"); return -1; } printf("The initial content of void:\n"); while((n=read(fp2,buf,BSIZE))>0) write(1,buf,n); if(n==0) printf("Nothing have found!\n"); close(fp2); fp2=open("content_void.txt",O_WRONLY); if(fp2==-1){ printf("open content_void.txt error!\n"); return -1; } while((n=read(fp1,buf,BSIZE))>0) write(fp2,buf,n); close(fp2);

Oracle_RAC日常管理和维护

ORACLE RAC 日常管理 1、最常用、最重要的命令: 首先登陆的服务器然后执行su - oracle 关闭集群:$crs_stop –all ps –ef |grep ora 查看是否还有ora开头的进程,没有后方可关机。 启动集群:$crs_start -all 启动完集群后可以用如下命令检查集群状态,所有的服务都要是ONLINE才是正常的,如下[root@node1 bin]$crs_stat -t Name Type Target State Host ------------------------------------------------------------ ora....w1.inst application ONLINE ONLINE node1 ora....w2.inst application ONLINE ONLINE node2 ora.cjw.db application ONLINE ONLINE node1 ora....SM1.asm application ONLINE ONLINE node1 ora....E1.lsnr application ONLINE ONLINE node1 ora.node1.gsd application ONLINE ONLINE node1 ora.node1.ons application ONLINE ONLINE node1 ora.node1.vip application ONLINE ONLINE node1 ora....SM2.asm application ONLINE ONLINE node2 ora....E2.lsnr application ONLINE ONLINE node2 ora.node2.gsd application ONLINE ONLINE node2 ora.node2.ons application ONLINE ONLINE node2 ora.node2.vip application ONLINE ONLINE node2 ps –ef |grep ora 下面是一些简介,了解一下就可以了,有时间可以深入研究。 一、Oracle RAC简介: Oracle RAC 支持Oracle 数据库在集群上运行真正的应用程序。此处的真正应用是指RAC 能够支持所有类型的主流商业应用程序。这包括流行的封装产品,如SAP、PeopleSoft

Linux必学60个命令文件处理

Linux必学60个命令文件处理 Linux系统信息存放在文件里,文件与普通的公务文件类似。每个文件都有自己的名字、内容、存放地址及其它一些管理信息,如文件的用户、文件的大小等。文件可以是一封信、一个通讯录,或者是程序的源语句、程序的数据,甚至可以包括可执行的程序和其它非正文内容。Linux文件系统具有良好的结构,系统提供了很多文件处理程序。这里主要介绍常用的文件处理命令。 file 1.作用 file通过探测文件内容判断文件类型,使用权限是所有用户。 2.格式 file [options] 文件名 3.[options]主要参数 -v:在标准输出后显示版本信息,并且退出。 -z:探测压缩过的文件类型。 -L:允许符合连接。 -f name:从文件namefile中读取要分析的

文件名列表。 4.简单说明 使用file命令可以知道某个文件究竟是二进制(ELF格式)的可执行文件, 还是Shell Script文件,或者是其它的什么格式。file能识别的文件类型有目录、Shell脚本、英文文本、二进制可执行文件、C语言源文件、文本文件、DOS的可执行文件。 5.应用实例 如果我们看到一个没有后缀的文件grap,可以使用下面命令: $ file grap grap:English text 此时系统显示这是一个英文文本文件。需要说明的是,file命令不能探测包括图形、音频、视频等多媒体文件类型。 mkdir 1.作用 mkdir命令的作用是建立名称为dirname的子目录,与MS DOS下的md命令类似,它的使用权限是所有用户。 2.格式

mkdir [options] 目录名 3.[options]主要参数 -m, --mode=模式:设定权限<模式>,与chmod类似。 -p, --parents:需要时创建上层目录;如果目录早已存在,则不当作错误。 -v, --verbose:每次创建新目录都显示信息。 --version:显示版本信息后离开。 4.应用实例 在进行目录创建时可以设臵目录的权限,此时使用的参数是“-m”。假设要创建的目录名是“tsk”,让所有用户都有rwx(即读、写、执行的权限),那么可以使用以下命令:$ mkdir -m 777 tsk grep 1.作用 grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

相关主题