Oracle ASM 详解

来源:互联网 发布:如何优化百度推广排名 编辑:程序博客网 时间:2024/05/16 17:04




ASM:Automatic Storage Management, 是Oracle 主推的一种面向Oracle的存储解决方案, ASM 和 RDBMS 非常相似,ASM 也是由实例和文件组成, 也可以通过sqlplus 工具来维护。 

 

 

ASM 实例的创建和删除也可以用DBCA 这个命令来操作。在dbca 的第一个界面选择配置自动存储管理就可以了。 ASM 实例需要CSS 进程, 如果是非RAC 环境, 在启动ASM 实例之前会提示用脚本 

$ORACLE_HOME/bin/localconfig add 启动CSS。 

 

 

 

1. ASM 实例由SGA 和后台进程组成。

 

1.1 SGA 组成:

ASM 实例的SGA包括Buffer Cache, Share Pool, Large Pool等。 需要注意的是Share Pool, 因为Extent Map 要放在这部分的内存中,需要更具数据量来估计Extent Map 的大小做相应的调整。 

Extent Map 的大小可以根据所有文件大小的和来估算,使用下面的语句来计算所有文件和:

 

Select sum(bytes)/(1024*1024*1024) from v$datafile;

Select sum(bytes)/(1024*1024*1024) from v$logfile a, v$log b where a.Group#=b.Group#;

Select sum(bytes)/(1024*1024*1024) from v$tempfile where status='ONLINE';

 

这3个sum 的总和对应着数据库存放ASM中所有文件大小总和, 对于使用External Redundancy 的磁盘组, 每100G 需要1MB 的Extent Map, 根据这个比例计算Extent Map 所需要的空间,在加上额外的2MB就可以了。 在实际工作中一般不需要考虑ASM SGA的配置, 使用Oracle 提供的缺省值就可以了。

 

1.2 后台进程

 

ASM 实例比RDBMS 实例多2个进程: RBAL 和 ABRn。

RBAL: 这个进程也叫Rebalancer进程, 负责规划ASM 磁盘组的Reblance活动。

ABRn:是RBAL进程的子进程,这个进程在数量上可以有多个, n从1~9, 这组进程负责真正完成Reblance活动。

 

使用ASM 作为存储的RDBMS 实例也会多出2个进程: RBAL 和 ASMB

RBAL: 这个进程的主要功能是打开每个磁盘的所有磁盘和数据的Rebalance。

ASMB: 这个进程作为ASM 实例和数据库实例之间的信息通道。 这个进程负责与ASM 实例的通信, 它先利用Diskgroup Name 从CSS 获得管理该Diskgroup 的ASM 实例的连接串, 然后建立到ASM 的持久连接, 两个实例之间通过这条连接定期交换信息,同时也是一种心跳机制。

 

RDBMS 实例要想使用ASM 作为存储, RDBMS 实例必须在启动时从ASM 实例获得Extent Map, 以后发生磁盘组的维护操作, ASM 实例还要把Extent Map的更新信息通知给RDBMS 实例, 这2个实例间的信息交换就是他你哦刚过ASMB 进程完成的。 这也就为什么: ASM 实例必须要先于数据库实例启动,和数据库实例同步运行,迟于数据库实例关闭。

 

 

注意: ASM 实例和数据库实例的关系可以是1:1, 也可以是1:n。如果是1:n, 最好为ASM 安装单独的ASM_HOME。

 

2. ASM 配置

 

ASM 可以使用裸设备 或者ASMLib 方式, 因为裸设别的维护比较复杂,在此只讲解ASMLib 方式。 

 

对应不同的操作系统, 需要不同的包,下载的时候一定要和操作系统内核一致。 我的操作系统是 Red hat 4 update 7. 内核版本是2.6.9-78.ELSMP。

 

oracleasmlib-2.0.4-1.el4.i386.rpm

oracleasm-support-2.1.3-1.el4.i386.rpm

oracleasm-2.6.9-78.EL-2.0.5-1.el4.i686.rpm

 

http://www.oracle.com/technology/tech/linux/asmlib/index.html

该页面有下载地址,注意选择CPU 类型。 asmlib 和 support,在同一个页面下载。

 

安装包:

#rpm -ivh *.rpm

 

安装完之后进行配置:

#/etc/init.d/oracleasm configure

会有相应的提示, 回答 oracle , dba, y, y 就可以了 

分别对应默认用户, 默认组,随系统自启动, 启动时设置权限。

 

/etc/init.d/oracleasm createdisk VOL1 /dev/sdc1 

/etc/init.d/oracleasm scandisks 

/etc/init.d/oracleasm listdisks  

 

关于oracleasm 的更多用法参考help:

[root@node1 ~]# /etc/init.d/oracleasm --help

Usage: /etc/init.d/oracleasm {start|stop|restart|enable|disable|configure

             |createdisk|deletedisk|querydisk|listdisks|scandisks|status}

 

 

3. ASM 实例配置

 

3.1 初始化参数

[oracle@node1 bin]$ export ORACLE_SID=+ASM1

[oracle@node1 bin]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Sun Feb 21 19:10:51 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, Real Application Clusters, OLAP and Data Mining options

SQL> create pfile from spfile;

File created.

SQL> show parameter asm

NAME                                 TYPE        VALUE

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

asm_diskgroups                       string      FLASH_RECOVERY_AREA, DATA

asm_diskstring                       string

asm_power_limit                      integer     1

 

[oracle@node2 dbs]$ pwd

/u01/app/oracle/product/10.2.0/db_1/dbs

[oracle@node2 dbs]$ ls

ab_+ASM2.dat  hc_rac2.dat    initrac2.ora  orapwrac2

hc_+ASM2.dat  init+ASM2.ora  orapw+ASM2

[oracle@node2 dbs]$ more init+ASM1.ora

+ASM2.asm_diskgroups='FLASH_RECOVERY_AREA'#Manual Dismount

+ASM1.asm_diskgroups='FLASH_RECOVERY_AREA','DATA'#Manual Mount

*.asm_diskgroups='FLASH_RECOVERY_AREA','DATA'

*.background_dump_dest='/u01/app/oracle/admin/+ASM/bdump'

*.cluster_database=true

*.core_dump_dest='/u01/app/oracle/admin/+ASM/cdump'

+ASM2.instance_number=2

+ASM1.instance_number=1

*.instance_type='asm'

*.large_pool_size=12M

*.remote_login_passwordfile='exclusive'

*.user_dump_dest='/u01/app/oracle/admin/+ASM/udump'

 

相关说明:

ASM 实例的SGA 需要的内存很小, 一般默认值即可, 无需修改。 ASM SGA的默认值如下:

SHARED_POOL_SIZE = 48M

LARGE_POOL_SIZE = 12M

SHARED_POOL_RESERVED_SIZE = 24M

SGA_MAX_SIZE = 88M

  这些默认值可以在sqlplus 中通过show parameter 查看。

 

Instance_type: 对于ASM 实例, 这个应该设置成ASM, 如果是数据库实例,则是RDBMS.

DB_UNIQUE_NAME: 这个参数使用缺省值+ASM即可

 

 

SQL> show parameter asm_power_limit

NAME            TYPE   VALUE

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

asm_power_limit   integer    1

ASM_POWER_LIMIT: 当在磁盘组中添加删除磁盘时,磁盘组会自动对数据在新旧磁盘间重新分配, 从而实现分散IO, 这个过程就叫再平衡(Rebalance);

 

这个动作会在磁盘间移动数据,因此虽然是联机操作,仍然会影响部分性能,所以要在系统空闲的时候进行。  该参数控制Rebalance速度, 取值范围0-11. 最小值0 代表不做Rebalance, 最大值11 代表最快的速度,也意味着严重影响性能, 1 代表最慢的速度和最小的性能影响。 除了在初始化参数中定义该参数, 也可以在操作时指定。 

 

比如:

SQL> alter diskgroup DATA rebalance power 5;

Disk groups can be rebalanced manually using the REBALANCE clause of the ALTER DISKGROUP statement. If the POWER clause is omitted the ASM_POWER_LIMIT parameter value is used. Rebalancing is only needed when the speed of the automatic rebalancing is not appropriate.

 

ASM_DISKSTRING: 定义哪些磁盘可以被ASM 使用, ASM 实例启动时就根据这个参数值扫描发现ASM磁盘,配置了这个参数以后,还必须确认ORACLE 用户对这些磁盘有操作的权限

1. 如果使用裸设备, 用逗号分隔每个设备名:

  Asm_diskstring='/dev/raw/raw1','/dev/raw/raw2','/dev/raw/raw3'

     2. 如果使用ASMLib时,就需要使用"ORCL:磁盘名"

Asm_diskstring='ORCL:VOL1'

     3. 使用ASMLib 时, 也可以使用通配符

Asm_diskstring='ORCL:VOL*'

 

ASM_DISKGROUPS: 这个参数用于定义ASM 实例启动后自动挂载的磁盘组, 如果不自动挂载, 也可以使用命令挂载。

 

注意: ASM 实例启动即可以通过pfile, 也可以通过spfile,如果使用spfile启动,那么如果创建新的磁盘组, 这个参数会被自动修改, 下次启动时会自动挂载这个新建的磁盘组,如果是使用pfile, 这个参数不会自动更新, 需要手工的更新。

 

3.2 CSS 进程

无论是否在RAC 环境下, ASM 实例都是需要CSS 进程的, 所以,如果是非RAC 环境, 在启动ASM 实例之前用脚本 

$ORACLE_HOME/bin/localconfig add 启动CSS, 否则ASM 实例启动时会报ORA-29701: unable to connect to Cluster Manager, 并提示执行该脚本

 

 

3.3 ASM 实例的相关操作

 

ASM 管理 登录启动关闭:

[oracle@node2 dbs]$ export ORACLE_SID=+ASM2

[oracle@node2 dbs]$ sqlplus / as sysdba

SQL> startup

SQL> shutdown immediate;

 

检查disk group信息的SQL:

SQL> col state format a10

SQL> col name format a15

SQL> col failgroup format a20  

SQL> set line 200

SQL> select  STATE,REDUNDANCY,TOTAL_MB,FREE_MB,NAME,FAILGROUP

 from v$asm_disk;

SQL>select  GROUP_NUMBER,NAME,STATE,TYPE,TOTAL_MB,FREE_MB,

UNBALANCED  from v$asm_diskgroup;

 

创建新的diskgroup

SQL> create diskgroup dgtest normal redundancy

  2  failgroup DATA1 disk '/dev/oracleasm/VOL5' name DATA1

  3  failgroup DATA2 disk '/dev/oracleasm/VOL6' name DATA2;

 

删除diskgroup

SQL> drop diskgroup DATA including contents;

 

-- 对于多结点的diskgroup, 只能有在一个asm实例上挂载之后才能被dorp, 其他结点必须dismount。

 

手动mount命令

ALTER DISKGROUP ALL DISMOUNT;

ALTER DISKGROUP ALL MOUNT;

ALTER DISKGROUP DATA DISMOUNT;

ALTER DISKGROUP DATA MOUNT;

 

为diskgroup增加disk

SQL> alter diskgroup DATA add disk '/dev/oracleasm/VOL5' name

VOL5,'/dev/oracleasm/VOL6' name VOL6;

 

从diskgroup删除disk

SQL> alter diskgroup DATA drop disk VOL5;

 

取消删除disk的命令,只能在上述命令没执行完成的时候有效

ALTER DISKGROUP DATA UNDROP DISKS;

 

The UNDROP DISKS clause of the ALTER DISKGROUP statement allows pending disk drops to be undone. It will not revert drops that have completed, or disk drops associated with the

dropping of a disk group.

 

 

数据文件的管理

Aliases allow you to reference ASM files using user-friendly names, rather than the fully

qualified ASM filenames.

 

-- Create an alias using the fully qualified filename.

ALTER DISKGROUP disk_group_1 ADD ALIAS '+disk_group_1/my_dir/my_file.dbf'

  FOR '+disk_group_1/mydb/datafile/my_ts.342.3';

 

-- Create an alias using the numeric form filename.

ALTER DISKGROUP disk_group_1 ADD ALIAS '+disk_group_1/my_dir/my_file.dbf'

  FOR '+disk_group_1.342.3';

 

-- Rename an alias.

ALTER DISKGROUP disk_group_1 RENAME ALIAS '+disk_group_1/my_dir/my_file.dbf'

  TO '+disk_group_1/my_dir/my_file2.dbf';

 

-- Delete an alias.

ALTER DISKGROUP disk_group_1 DELETE ALIAS '+disk_group_1/my_dir/my_file.dbf';

 

-- Drop file using an alias.

ALTER DISKGROUP disk_group_1 DROP FILE '+disk_group_1/my_dir/my_file.dbf';

 

-- Drop file using a numeric form filename.

ALTER DISKGROUP disk_group_1 DROP FILE '+disk_group_1.342.3';

 

-- Drop file using a fully qualified filename.

ALTER DISKGROUP disk_group_1 DROP FILE '+disk_group_1/mydb/datafile/my_ts.342.3';

 

-- create datafile

SQL> create tablespace users2 datafile '+TESTDB_DATA1' size 100m;

 

注意事项: 

1. ASM 实例在配置好并且创建了ASM磁盘组之后,还必须保证已经注册到Listener中后才能在数据库实例中使用,否则就需要手工注册ASM 实例:

SQL>alter system register;

2. 一旦数据库实例使用ASM 作为存储, 那么在数据库实例运行时是无法关闭ASM实例的。 否则会报 ORA-15097:cannot SHUTDOWN ASM instance with connected RDBMS instance. 错误。

 

4. Oracle 中删除 ASM 实例

删除自动存储管理实例+ASM实例+ASM的删除是在数据库被卸载之后完成的,并删除/ORACLE_HOME/dbs目录下的所有文件(除了与ASM相关的)。因此必须完成下列步骤:

4.1在命令提示符中,设置oracle_sid环境变量为+ASM实例:
# export oracle_sid=+ASM

4.2启动SQL*Plus并以sys用户连接到自动存储管理+ASM实例:
# sqlplus / as sysdba

4.3使用下列命令来确定是否有数据库实例正在使用自动存储管理实例+ASM:
SQL>select instance_name from v$asm_client;
该命令结果列出所有正在运行并使用+ASM实例的数据库实例。只要+ASM包含正在支持的数据库实例,就不能删除该+ASM实例。(其实可以先shutdown对应的数据库实例,然后从asmcmd进入磁盘组所在目录,删掉对应的数据库目录和文件就可以了)。

4.4 如果没有与+ASM相关联的数据库实例,则删除与该实例相关联的磁盘组。
首先,识别与+ASM相关联的磁盘组:
SQL>select name from v$asm_diskgroup;
其次,用下列命令删除每个要删除的磁盘组:
SQL>drop diskgroup<disk_group_name>including contents;

4.5 关闭+ASM实例并退出SQL*Plus:
SQL>shutdown
SQL>exit

4.6 在命令提示符中输入下列命令,删除+ASM服务(我没找到这个命令,所以没有运行):
oradim -delete -asmsid +ASM

 

 

 

5.  ASMCMD 工具

ASM 实例的管理除了sqlplus, Oracle 还提供了asmcmd 命令, 具体参考help。

 

[oracle@node1 bin]$ which asmcmd

/u01/app/oracle/product/10.2.0/db_1/bin/asmcmd

[oracle@node1 bin]$ cd /u01/app/oracle/product/10.2.0/db_1/bin/

[oracle@node1 bin]$ ./asmcmd

ASMCMD> ls

DATA/

FLASH_RECOVERY_AREA/

ASMCMD> help

        asmcmd [-p] [command]

 

        The environment variables ORACLE_HOME and ORACLE_SID determine the

        instance to which the program connects, and ASMCMD establishes a

        bequeath connection to it, in the same manner as a SQLPLUS / AS

        SYSDBA.  The user must be a member of the SYSDBA group.

 

        Specifying the -p option allows the current directory to be displayed

        in the command prompt, like so:

 

        ASMCMD [+DATAFILE/ORCL/CONTROLFILE] >

 

        [command] specifies one of the following commands, along with its

        parameters.

 

        Type "help [command]" to get help on a specific ASMCMD command.

 

        commands:

        --------

        cd

        du

        find

        help

        ls

        lsct

        lsdg

        mkalias

        mkdir

        pwd

        rm

        rmalias

ASMCMD>

 

 

----- 2010年9月23日补充--------

里面有删除别名的语法, 现在已经不支持了。 之前没有测试,写文章不严禁。 在google上搜这个问题的时候,发现有人转载了我的文章,但是这个错误还是没有发现。

 

刚查阅了一下Oracle 的联机文档, 删除别名用的也是drop。

Example 7-5 Dropping an alias name for an Oracle ASM filename

ALTER DISKGROUP data DROP ALIAS '+data/payroll/compensation.dbf';

 

地址:

http://download.oracle.com/docs/cd/E11882_01/server.112/e16102/asmfiles.htm#CHDDHIGG

 

 

这里面有对ASM 有详细的说明。 可以参考。

 

 

顺便补充一点知识:

 

C:/Users/Administrator.DavidDai>sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 星期四 9月

Copyright (c) 1982, 2010, Oracle.  All rights reserved

SQL> conn sys/oracle@rac2 as sysdba;

已连接。

SQL> select file_name from dba_data_files;

FILE_NAME

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

+DATA/orcl/datafile/users.279.730181053

+DATA/orcl/datafile/sysaux.277.730181053

+DATA/orcl/datafile/undotbs1.278.730181053

+DATA/orcl/datafile/system.276.730181051

+DATA/orcl/datafile/undotbs2.284.730181347

 

 

ASM文件名字的格式是固定的:+group/dbname/file type/tag.file.incarnation

 

在创建db时系统自动创建的几个表空间(system,undotbs,sysaux,users)对应的都是真实的数据文件,即ASM 文件默认的命名格式。而且这个信息都写到了控制文件里。 如果我们使用别名的话,会方便很多。 对于这些创建数据库时自动创建的表空间,我们要他们使用别名,除了手工创建对应别名外,还需要重建控制文件,并且在重建时,datafile 里写别名的信息。 这样数据库也就使用别名了。

 



http://blog.csdn.net/tianlesoftware/article/details/5314541


Initializing the Oracle ASMLib driver: [FAILED]

上一篇 /下一篇  2010-05-12 15:59:16 / 个人分类:Oracle

查看( 1189 ) /评论( 2 ) /评分(5 / 0 )

Initializing the Oracle ASMLib driver: [FAILED]

[root@node1 init.d]# uname -a
)mD]8{'{&AR{Z0Linux node1 2.6.18-53.el5xen #1 SMP Wed Oct 10 17:06:12 EDT 2007 i686 i686 i386 GNU/Linux
Q p;h"p8`I"HQw0[root@node1 init.d]# cat /etc/issue
V S"JLa8X1_q0
Red Hat Enterprise LinuxServer release 5.1 (Tikanga)ITPUB个人空间J;f,p f:Ht!_
Kernel \r on an \m

安装ASMLib包:
w},]4A9`NE$K Q5k t N0oracleasm-2.6.18-53.el5-2.0.4-1.el5.i686.rpmITPUB个人空间 z? K(qUtp3_
oracleasmlib-2.0.4-1.el5.i386.rpm
'iG(p%sim2w0oracleasm-support-2.1.3-1.el5.i386.rpm


hh'I4jM] Z0[root@node1 init.d]# ./oracleasm configureITPUB个人空间"{6s|;r~H u2|?
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
+pN1a:n.r)f"[\#w0driver.  The following questions will determine whether the driver isITPUB个人空间$@%]DLS3k
loaded on boot and what permissions it will have.  The current values
e5Y vs6Y/U"N b0will be shown in brackets ('[]').  Hitting <ENTER> without typing an
&Z~ e;d4O[*T1SV8qY-C/v0answer will keep that current value.  Ctrl-C will abort.

Default user to own the driver interface [root]: oracle
9b:d7urp~!YB0Default group to own the driver interface [dba]: dbaITPUB个人空间"]V X(\7q f Y_N&C
Start Oracle ASM library driver on boot (y/n) [y]:ITPUB个人空间%j[cyG%^4~
Scan for Oracle ASM disks on boot (y/n) [y]:ITPUB个人空间 aRk0rn#]
Writing Oracle ASM library driver configuration: doneITPUB个人空间8a2a |wf1Fs(~;}%T
Initializing the Oracle ASMLib driver:                    [FAILED]


aaku3U d s"q0搜索网络报该错以下2个原因:

1.安装对应内核的oracleasm包,确定过了,安装包是正确的。

2.关闭SELINUX:ITPUB个人空间.Y$y(wv_;]K\Y
[root@node1 selinux]# cat configITPUB个人空间QM5X-IY/n+Q+vK
# This file controls the state of SELinux on the system.ITPUB个人空间Z5|4KM(A-v}
# SELINUX= can take one of these three values:
V!O;{-S:wZ1y L0#       enforcing - SELinux security policy is enforced.
Gidg8Z4S;g/S0#       permissive - SELinux prints warnings instead of enforcing.ITPUB个人空间(\,Q$_1gDN6`[Y7|
#       disabled - SELinux is fully disabled.ITPUB个人空间3|6{4F c;iR
SELINUX=disabledITPUB个人空间;Z5["] d+s2}G1K
# SELINUXTYPE= type of policy in use. Possible values are:
:tS'cGc2oq0#       targeted - Only targeted network daemons are protected.ITPUB个人空间,rF ]!M"Z)d#iV
#       strict - Full SELinux protection.
Z7L'U ehdpH/R0SELINUXTYPE=targeted

也是disabled


cz+zp8fF2T0查看var/log下的日志:
FA.D~bBx0cat /var/log/oracleasmITPUB个人空间)X-K n)aKHY#n2N$W
Creating /dev/oracleasm mount point: /dev/oracleasm
6G%nd ]QcL:f6zbn0Loading module "oracleasm": failedITPUB个人空间;JK vL+^
Unable to load module "oracleasm"
"N*M&n,| Q)L;`0Loading module "oracleasm": failedITPUB个人空间M)vX-L7q,[ ?V _#x
Unable to load module "oracleasm"
i?q M6w0Loading module "oracleasm": failed
c0a B#`Jgg(e2j!Q0Unable to load module "oracleasm"ITPUB个人空间 S,o}._GBo%[
Loading module "oracleasm": failedITPUB个人空间3Z4in&COV?
Unable to load module "oracleasm"
oV7IX/G8Mn0Loading module "oracleasm": failedITPUB个人空间M`[(PL*n-wDTX
Unable to load module "oracleasm"ITPUB个人空间'^;O&R!_.Te6b RZ
Loading module "oracleasm": failed
I$B1mk,R,o!}R)n0Unable to load module "oracleasm"ITPUB个人空间8u1d Mk6\
Loading module "oracleasm": failed

)F/sWM+Rg"`A0......

查看oracleasm模块:

ls /lib/modules
h6a2_({0nd6wr/{02.6.18-53.el5  2.6.18-53.el5xen

发现模块在/lib/modules/2.6.18-53.el5/kernel/drivers/addon/oracleasm/oracleasm.ko
2C sf+C'Q0G|0然后,2.6.18-53.el5xen下面没有oracleasm.ko模块,恰好linux运行在2.6.18-53.el5xen下。所以报找不到oracleasm模块。

于是网上再次到asmlib网站看了看,发现了包:ITPUB个人空间]p5E%\NiF0R_&o
oracleasm-2.6.18-53.el5xen-2.0.4-1.el5.i686.rpm

难道这个el5xen包就能将oracleasm module放到2.6.18-53.el5xen下。

[root@node1 asmlib]# rpm -ivh oracleasm-2.6.18-53.el5xen-2.0.4-1.el5.i686.rpm
7Sq1J9N$T8v/U0
Preparing...                ########################################### [100%]
3we'P g:Y;~` A0   1:oracleasm-2.6.18-53.el5########################################### [100%]
ITPUB个人空间E5z(~8SNK
[root@node1 asmlib]# cd /etc/ITPUB个人空间)I1n Ajr4GG%cZ
[root@node1 etc]# cd init.dITPUB个人空间o!D)O)N|/Ni*K"{
[root@node1 init.d]# ./oracleasm configureITPUB个人空间9C[S)x$WW
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
W`4];o3xn0driver.  The following questions will determine whether the driver is
\V;DJ4N3HvnQ0loaded on boot and what permissions it will have.  The current valuesITPUB个人空间}&_*~8j$Re;A%qP }
will be shown in brackets ('[]').  Hitting <ENTER> without typing an
8n_5HR!Y0answer will keep that current value.  Ctrl-C will abort.

Default user to own the driver interface [oracle]:ITPUB个人空间r#a Y TwO,F
Default group to own the driver interface [dba]:ITPUB个人空间.f},t7y+O%X@
Start Oracle ASM library driver on boot (y/n) [y]:ITPUB个人空间 Hp:~g.KAw;t v
Scan for Oracle ASM disks on boot (y/n) [y]:ITPUB个人空间5R8E{9d#L(f
Writing Oracle ASM library driver configuration: done
4zRO]G0Initializing the Oracle ASMLib driver:                     [  OK  ]ITPUB个人空间7\llg~T
Scanning the system for Oracle ASMLib disks:               [  OK  ]


AM&S"eC0搞定,以前一直都是安装的那3个包,还没注意到xen这个包。哈哈!









所有节点的时间必须同步,这通常是通过配置NTP服务器实现的。如果用户的网络中已经有一台时间服务器,那么可以所有节点都指向它,否则可以从集群中挑选一个节点作为时间服务器,让其他节点与它同步。下面分别演示这两种方法:

(1)如果公司网络中已经有一台时间服务器
如:192.168.11.10是一台ntp时间服务器
此时NTP服务器的配置文件是/etc/ntp.conf,在每个节点编辑这个文件。
[root@cc-svr-a ~]# vi /etc/ntp.conf
编辑后的内容如下,首选公司的时间服务器。
server 192.168.11.10 prefer
driftfile /var/lib/ntp/drift
broadcastdelay 0.008

(2)如果没有外部时间服务器
这时公司选择集群中某个节点作为时间服务器,NTP服务只需要很少的系统资源。假设选择主节点作为时间服务器,从节点向它同步,其配置方法如下。
编辑主节点的/etc/ntp.conf文件,编辑后的内容如下:

server 127.127.1.0
fudge 127.127.1.0 stratum 11
driftfile /var/lib/ntp/drift
broadcastdelay 0.008

编辑从节点的/etc/ntp.conf文件,编辑后的内容如下:

server 192.168.11.12 prefer #注意192.168.11.12为主节点的IP地址
driftfile /var/lib/ntp/drift
broadcastdelay 0.008

配置完成后,启动NTP服务。
[root@cc-svr-a ~]# /etc/init.d/ntpd start
[root@cc-svr-a ~]# chkconfig –level 345 ntpd on

(3)查看执行情况(主从)
[root@cc-svr-a ~]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*CC-Node-02 LOCAL(0) 12 u 58 64 17 0.226 -22.698 29.261


http://www.xifenfei.com/1300.html
http://hi.baidu.com/ouleiq/blog/item/1682c3b1e4faad5c0823022b.html
http://space.itpub.net/?uid-9252210-action-viewspace-itemid-660422

http://www.cnblogs.com/hunterzou/archive/2011/04/13/2014753.html
http://www.phpfans.net/ask/answer1/6085151096.html
http://man.chinaunix.net/linux/mandrake/cmuo/admin/camount3.html#fstab
http://www.webjx.com/server/linux/server_linux_2008_01_01_2727.html
http://os.51cto.com/art/201003/185786.htm
http://hi.baidu.com/zhujiawei/blog/item/22c5991656575153f2de32eb.html
http://www.webjx.com/server/linux/server_linux_2008_01_01_2727.html
http://www.yesky.com/404/1939904.shtml

创建ASM磁盘组时报错:

Marking disk "ASM1" as an ASM disk:                       [FAILED]


连着几次失败.不解.

http://xin23.blog.51cto.com/1827266/515388

http://oracle.chinaitlab.com/install/766590.html

后无意中查看参数

[root@RAC-1 /]# /etc/init.d/oracleasm status

Checking if ASM is loaded: no

Checking if /dev/oracleasm is mounted: no

[root@RAC-1 /]# /etc/init.d/oracleasm enable

Writing Oracle ASM library driver configuration: done

Initializing the Oracle ASMLib driver:                    [  OK  ]

Scanning the system for Oracle ASMLib disks:              [  OK  ]

[root@RAC-1 /]# /etc/init.d/oracleasm createdisk ASM1 /dev/sde1

Marking disk "ASM1" as an ASM disk:                       [  OK  ]

[root@RAC-1 /]# /etc/init.d/oracleasm createdisk ASM3 /dev/sde3

Marking disk "ASM3" as an ASM disk:                       [  OK  ]

[root@RAC-1 /]# 

遂成功.

Oracle CRS简介

从Oracle 10gR1 RAC 开始,Oracle推出了自身的集群软件,这个软件的名称叫做Oracle Cluster Ready Service(Oracle集群就绪服务),简称CRS。从Oracle 10gR2开始,包括最新的11g,Oracle将其更名为Clusterware(集群件),但通常意义上我们认为CRS = Clusterware = Oracle Cluster Ready Service = Oracle Cluster Software.

CRS一般用来搭建Oracle的并行数据库,即RAC,但除了与RAC的接口之外,CRS还提供了一组高可用性的应用程序接口(API),用来搭建一般应用程序的高可用集群,即一般我们常说的双机热备,比如使用CRS实现MySQL的双机热备。

Oracle10g New Feature:CRS(Cluster Ready Services)

作者:eygle |English Version 【转载时请以超链接形式标明文章出处和作者信息及本声明
链接:http://www.eygle.com/archives/2005/10/oracle10g_new_feature_crs.html

Oracle10g CRS(Cluster Ready Services)是Oracle10g RAC的一个新特性,用以提供标准的群集服务接口。
在以前的版本中,Oracle RAC必须借助第三方Cluster软件,但是从Oracle10g开始,我们有了新的选择。
CRS就是这样一个替代产品,用以提供RAC环境中的群集服务。

CRS是一个单独的产品,在构建RAC环境中,需要单独安装。

(在Oracle刚推出CRS时,Oracle还没发明ClusterWare这个词。
所以最初的CRS就是指现在的Clusterware,如果你注意过的话最初Oracle的安装盘上装Clusterware的时候,都说的是CRS。

所以提到Cluster Ready Services,大家都知道指的是Oracle的Clusterware而不是crs daemon.

只不过从10gR2开始,ClusterWare被引入,CRS这个词的含义被Oracle偷偷的缩小了。)

系统启动以后,CRS会自动启动,启动主要由/etc/init.d中的几个脚本完成:

[eygle@raclinux1 init.d]$ ll init*-r-xr-xr-x  1 root root  1951 Jun 27 13:27 init.crs-r-xr-xr-x  1 root root  4735 Jun 27 20:32 init.crsd-r-xr-xr-x  1 root root 35401 Jun 27 13:27 init.cssd-r-xr-xr-x  1 root root  3197 Jun 27 13:27 init.evmd


CRS启动的三个主要的后台进程为:
[oracle@raclinux1 bin]$ ps -ef|grep d.binroot      3140     1  0 23:13         00:00:00 /u01/app/oracle/product/10.2.0/crs/bin/crsd.binoracle    3884  3062  0 23:14         00:00:00 /u01/app/oracle/product/10.2.0/crs/bin/evmd.binoracle    4017  3983  0 23:14         00:00:00 /u01/app/oracle/product/10.2.0/crs/bin/ocssd.binoracle   21117 13799  0 23:29 pts/1   00:00:00 grep d.bin



这几个进程的主要作用如下:

 

CRSD:- Engine for HA operation - Manages 'application resources'- Starts, stops, and fails 'application resources' over- Spawns separate 'actions' to start/stop/check application resources- Maintains configuration profiles in the OCR (Oracle Configuration Repository)- Stores current known state in the OCR.- Runs as root- Is restarted automatically on failureOCSSD:- OCSSD is part of RAC and Single Instance with ASM- Provides access to node membership- Provides group services- Provides basic cluster locking- Integrates with existing vendor clusteware, when present- Can also runs without integration to vendor clustware- Runs as Oracle.- Failure exit causes machine reboot.  --- This is a feature to prevent data corruption in event of a split brain.

注意,ocssd进程在单实例ASM系统中也可以见到,以下是我的一个单实例ASM系统,ocssd进程同样存在:

bash-2.03# ps -ef|grep _+ASM  oracle  3264     1  0   Aug 25 ?        0:01 asm_lgwr_+ASM    root 12669  8167  0 11:58:56 pts/1    0:00 grep _+ASM  oracle  3270     1  0   Aug 25 ?        0:00 asm_rbal_+ASM  oracle  3266     1  0   Aug 25 ?        0:05 asm_ckpt_+ASM  oracle  3268     1  0   Aug 25 ?        0:00 asm_smon_+ASM  oracle  3262     1  0   Aug 25 ?        0:00 asm_dbw0_+ASM  oracle  3258     1  0   Aug 25 ?        0:00 asm_pmon_+ASM  oracle  3260     1  0   Aug 25 ?        0:00 asm_mman_+ASMbash-2.03# ps -ef|grep ocssd    root 12672  8167  0 11:59:01 pts/1    0:00 grep ocssd  oracle  5374     1  0   Apr 07 ?        0:01 /opt/oracle/product/10.1.0/bin/ocssd.binbash-2.03# 

ocssd进程非常重要,如果该进程异常中止,会导致系统crash。
在某些极端情况下,如果ocssd无法正常启动,会导致操作系统循环重启。这时候需要DBA介入进行一些特殊处理。(解决循环重启的问题是修改/etc/init.d/init.cssd文件,注释掉其中FAST_REBOOT语句)

 

EVMD:- Generates events when things happen- Spawns a permanent child evmlogger- Evmlogger, on demand, spawns children- Scans callout directory and invokes callouts.- Runs as Oracle.- Restarted automatically on failure



 

我们可以通过CRS工具来查看CRS状态:
[oracle@raclinux1 ~]$ cd $ORA_CRS_HOME/bin[oracle@raclinux1 bin]$ pwd/u01/app/oracle/product/10.2.0/crs/bin[oracle@raclinux1 bin]$ ./crs_statNAME=ora.RACDB.RACDB1.instTYPE=applicationTARGET=ONLINESTATE=ONLINE on raclinux1NAME=ora.RACDB.RACDB2.instTYPE=applicationTARGET=ONLINESTATE=ONLINE on raclinux1NAME=ora.RACDB.dbTYPE=applicationTARGET=ONLINESTATE=ONLINE on raclinux1NAME=ora.raclinux1.ASM1.asmTYPE=applicationTARGET=ONLINESTATE=ONLINE on raclinux1NAME=ora.raclinux1.LISTENER2_RACLINUX1.lsnrTYPE=applicationTARGET=ONLINESTATE=ONLINE on raclinux1NAME=ora.raclinux1.LISTENER_RACLINUX1.lsnrTYPE=applicationTARGET=ONLINESTATE=ONLINE on raclinux1NAME=ora.raclinux1.gsdTYPE=applicationTARGET=ONLINESTATE=ONLINE on raclinux1NAME=ora.raclinux1.onsTYPE=applicationTARGET=ONLINESTATE=ONLINE on raclinux1NAME=ora.raclinux1.vipTYPE=applicationTARGET=ONLINESTATE=ONLINE on raclinux1[oracle@raclinux1 bin]$
声明:并非所有转载的文章之全部内容都代表本人观点。如果本人转载文章侵犯了原作者的著作权,请及时与本人联系,本人将在第一时间从本人博客中删除  

2011-08-03 9:22

1) Linux:
To verify service as root user issue,
# /sbin/service ntpd status
ntpd (pid 4423) is running...

Check process is running or not by.
# ps -ef|grep ntp
ntp 4209 1 0 Mar10 ? 00:00:00 ntpd -u ntp:ntp -p /var/run/ntpd.pid -x

# grep OPTIONS /etc/sysconfig/ntpd
OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -x"

If NTP service is not started then to start the service issue,
To start the service issue,

# /sbin/service ntpd start

2) Solaris:
To verify the service issue,

# /usr/bin/svcs ntp
STATE STIME FMRI
online 3:29:11 svc:/network/ntp:default

# ps -ef|grep ntp
root 21223 1 0 Mar 10 ? 0:21 /usr/lib/inet/xntpd

# grep slewalways /etc/inet/ntp.conf
slewalways yes

To start the NTP service issue,

# /usr/sbin/svcadm enable ntp

3) HP-UX:

To verify the service issue,

# ps -ef|grep ntp
root 6022 1 0 14:23:42 ? 0:01 /usr/sbin/xntpd -x

# grep XNTPD_ARGS /etc/rc.config.d/netdaemons
export XNTPD_ARGS="-x"

To start the service issue,
# /sbin/init.d/xntpd start

4) AIX:

To verify the service issue,

# /usr/bin/lssrc -ls xntpd
xntpd tcpip 368754 active

# ps -ef|grep ntp
root 786614 151686 0 08:02:32 - 0:00 /usr/sbin/xntpd -x

# grep xntpd /etc/rc.tcpip
start /usr/sbin/xntpd "$src_running" -a "-x"

To start the service issue,

# /usr/bin/startsrc -s xntpd -a "-x"

http://hi.baidu.com/javenzhen/blog/item/48ef842edda797221e308938.htm


http://www.dbasky.net/archives/2009/01/linuxntp.html


 

Linux 时间同步配置

分类: Linux 3432人阅读 评论(3) 收藏 举报

使用ntpdate 命令

1.1 服务器可链接外网时    

# crontab -e    

加入一行:    

*/1 * * * * ntpdate 210.72.145.44     

210.72.145.44 为中国国家授时中心服务器地址,这样该机每隔1分重就可以与国家授时中心进行同步了。    

注意: 在使用ntpdate 命令时, ntpd 服务必须是关闭的, 否则会报the NTP socket is in use, exiting 错误。

关闭 ntpd 服务命令如下:

[root@node2 init.d]# /etc/init.d/ntpd stop

Shutting down ntpd:                                        [  OK  ]

1.2. 架设本地时间服务器

需要修改 /etc/ntp.conf文件里的几个配置就可以了,比如本地时间服务器IP 为 10.85.10.119, 配置如下:

server 210.72.145.44 prefer (中国国家授时中心服务器地址 prefer表示优先 注意把默认的server更改成这样)    

server 127.127.1.0 (本地时间)    

restrict 10.85.10.0 mask 255.255.255.0 nomodify (允许10..85.10.* IP 使用该时间服务器)    

restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap noquery notrust (屏蔽其他IP过来更新时间)    

其他的保持默认不动。   

 

使NTP服务可以在系统引导的时候自动启动,执行:     

# chkconfig ntpd on    

启动/关闭/重启NTP的命令:    

# /etc/init.d/ntpd start    

# /etc/init.d/ntpd stop    

# /etc/init.d/ntpd restart    

#service ntpd restart

将同步好的时间写到CMOS里    

vi /etc/sysconfig/ntpd    

SYNC_HWCLOCK=yes    

  

每次修改了配置文件后都需要重新启动服务来使配置生效。

可以使用下面的命令来检查NTP服务是否启动,你应该可以得到一个进程ID号:    

# pgrep ntpd    

使用下面的命令检查时间服务器同步的状态:    

# ntpq -p    

ntpstat 也可以查看一些同步状态,用netstat -ntlup查看端口使用情况!  

  

安装完毕客户端需过5-10分钟才能从服务器端更新时间!   

 

客户端设置:    

# crontab -e    

加入一行:    

*/1 * * * * ntpdate 10.85.10.119。   

相关配置参数说明
#  restrict权限控制语法为:
#  restrict IP mask netmask_IP parameter
#  其中 IP 可以是软件地址,也可以是 default default 就类似 0.0.0.0 咯!
#  至于 paramter 则有:
#   ignore :关闭所有的 NTP 联机服务
#   nomodify:表示 Client 端不能更改 Server 端的时间参数,不过,
#        Client 端仍然可以透过 Server 端来进行网络校时。
#   notrust :该 Client 除非通过认证,否则该 Client 来源将被视为不信任网域
#   noquery :不提供 Client 端的时间查询
#  如果 paramter 完全没有设定,那就表示该 IP (或网域『没有任何限制!』

 设定上层主机主要以 server这个参数来设定,语法为:
#  server [IP|FQDN] [prefer]
#  Server 后面接的就是我们上层 Time Server 啰!而如果 Server 参数
#  后面加上 perfer 的话,那表示我们的 NTP 主机主要以该部主机来作为
#  时间校正的对应。另外,为了解决更新时间封包的传送延迟动作,


二、使用rdate同步时间
如果要用vmware安装RAC,则各个几点间时间必须一致,可以以一个节点作为标准,其他节点与该节点进行时间同步。
假如有两个节点:
A: 10.85.10.119
B: 10.85.10.121

A作为时间标准,B节点用A节点时间进行同步。
1、在A节点开放37端口
最简单,但也最不安全的方法是关闭防火墙:iptables -F

2. A节点启动时间服务
#chkconfig time on     #在系统引导的时候自动启动


如果不启动该服务,则其他节点与该节点同步时间时会报错:Connect Refused

注意:要用root 用户

3、在B节点与A节点同步时间
rdate -s 10.85.10.119  

可以在crontab 中做执行计划, 每分钟执行一次,这样保证时间的同步。

[root@node2 ~]# crontab -l

*/1 * * * * rdate -s 10.85.10.119

[root@node2 ~]#

关于crontab 的介绍参考blog

Unix crontab 命令详解

http://blog.csdn.net/tianlesoftware/archive/2010/02/21/5315039.aspx

 

三. 使用 Network Time Protocol (NTP) 服务器

1. 假如公司网络里有一个时间服务器: 10.85.10.80, 此时只需要在每个结点上修改NTP 服务配置文件,让每个结点和时间服务器进行同步即可。 

# vi /etc/ntp.conf

Server 10.85.10.80 prefer

Driftfile /var/lib/ntp/drift

Broadcastdelay 0.008

修改完后在重启一下 ntp 服务

#/etc/init.d/ntpd restart

2. 如果没有时间服务,则可以用RAC 2个结点中一个做为服务器。另一个与此服务器同步即可。 

加入用node1 做服务器, 其IP 为: 10.85.10.119, 修改配置文件

#vi /etc/ntp.conf

Server 127.127.1.0  -- 本地时钟

Fudge 127.127.1.0 stratum 11

Broadcastdelay 0.008

Node2 node1 同步。 修改node2ntp 配置文件

# vi /etc/ntp.conf

Server 10.85.10.119 prefer

Driftfile /var/lib/ntp/drift

Broadcastdelay 0.008

修改完后在重启一下 ntp 服务

#/etc/init.d/ntpd restart

  

http://blog.csdn.net/tianlesoftware/article/details/5315587l

http://www.diybl.com/course/7_databases/oracle/oraclejs/20110923/560905.html

http://rocolex.blog.163.com/blog/static/68446410201082184625277/



所有节点的时间必须同步,这通常是通过配置NTP服务器实现的。如果用户的网络中已经有一台时间服务器,那么可以所有节点都指向它,否则可以从集群中挑选一个节点作为时间服务器,让其他节点与它同步。下面分别演示这两种方法:

(1)如果公司网络中已经有一台时间服务器
如:192.168.11.10是一台ntp时间服务器
此时NTP服务器的配置文件是/etc/ntp.conf,在每个节点编辑这个文件。
[root@cc-svr-a ~]# vi /etc/ntp.conf
编辑后的内容如下,首选公司的时间服务器。
server 192.168.11.10 prefer
driftfile /var/lib/ntp/drift
broadcastdelay 0.008

(2)如果没有外部时间服务器
这时公司选择集群中某个节点作为时间服务器,NTP服务只需要很少的系统资源。假设选择主节点作为时间服务器,从节点向它同步,其配置方法如下。
编辑主节点的/etc/ntp.conf文件,编辑后的内容如下:

server 127.127.1.0
fudge 127.127.1.0 stratum 11
driftfile /var/lib/ntp/drift
broadcastdelay 0.008

编辑从节点的/etc/ntp.conf文件,编辑后的内容如下:

server 192.168.11.12 prefer #注意192.168.11.12为主节点的IP地址
driftfile /var/lib/ntp/drift
broadcastdelay 0.008

配置完成后,启动NTP服务。
[root@cc-svr-a ~]# /etc/init.d/ntpd start
[root@cc-svr-a ~]# chkconfig –level 345 ntpd on

(3)查看执行情况(主从)
[root@cc-svr-a ~]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*CC-Node-02 LOCAL(0) 12 u 58 64 17 0.226 -22.698 29.261


http://www.xifenfei.com/1300.html
http://hi.baidu.com/ouleiq/blog/item/1682c3b1e4faad5c0823022b.html
http://space.itpub.net/?uid-9252210-action-viewspace-itemid-660422

http://www.cnblogs.com/hunterzou/archive/2011/04/13/2014753.html
http://www.phpfans.net/ask/answer1/6085151096.html
http://man.chinaunix.net/linux/mandrake/cmuo/admin/camount3.html#fstab
http://www.webjx.com/server/linux/server_linux_2008_01_01_2727.html
http://os.51cto.com/art/201003/185786.htm
http://hi.baidu.com/zhujiawei/blog/item/22c5991656575153f2de32eb.html
http://www.webjx.com/server/linux/server_linux_2008_01_01_2727.html
http://www.yesky.com/404/1939904.shtml

创建ASM磁盘组时报错:

Marking disk "ASM1" as an ASM disk:                       [FAILED]


连着几次失败.不解.

http://xin23.blog.51cto.com/1827266/515388

http://oracle.chinaitlab.com/install/766590.html

后无意中查看参数

[root@RAC-1 /]# /etc/init.d/oracleasm status

Checking if ASM is loaded: no

Checking if /dev/oracleasm is mounted: no

[root@RAC-1 /]# /etc/init.d/oracleasm enable

Writing Oracle ASM library driver configuration: done

Initializing the Oracle ASMLib driver:                    [  OK  ]

Scanning the system for Oracle ASMLib disks:              [  OK  ]

[root@RAC-1 /]# /etc/init.d/oracleasm createdisk ASM1 /dev/sde1

Marking disk "ASM1" as an ASM disk:                       [  OK  ]

[root@RAC-1 /]# /etc/init.d/oracleasm createdisk ASM3 /dev/sde3

Marking disk "ASM3" as an ASM disk:                       [  OK  ]

[root@RAC-1 /]# 

遂成功.

Oracle CRS简介

从Oracle 10gR1 RAC 开始,Oracle推出了自身的集群软件,这个软件的名称叫做Oracle Cluster Ready Service(Oracle集群就绪服务),简称CRS。从Oracle 10gR2开始,包括最新的11g,Oracle将其更名为Clusterware(集群件),但通常意义上我们认为CRS = Clusterware = Oracle Cluster Ready Service = Oracle Cluster Software.

CRS一般用来搭建Oracle的并行数据库,即RAC,但除了与RAC的接口之外,CRS还提供了一组高可用性的应用程序接口(API),用来搭建一般应用程序的高可用集群,即一般我们常说的双机热备,比如使用CRS实现MySQL的双机热备。

Oracle10g New Feature:CRS(Cluster Ready Services)

作者:eygle |English Version 【转载时请以超链接形式标明文章出处和作者信息及本声明
链接:http://www.eygle.com/archives/2005/10/oracle10g_new_feature_crs.html

Oracle10g CRS(Cluster Ready Services)是Oracle10g RAC的一个新特性,用以提供标准的群集服务接口。
在以前的版本中,Oracle RAC必须借助第三方Cluster软件,但是从Oracle10g开始,我们有了新的选择。
CRS就是这样一个替代产品,用以提供RAC环境中的群集服务。

CRS是一个单独的产品,在构建RAC环境中,需要单独安装。

(在Oracle刚推出CRS时,Oracle还没发明ClusterWare这个词。
所以最初的CRS就是指现在的Clusterware,如果你注意过的话最初Oracle的安装盘上装Clusterware的时候,都说的是CRS。

所以提到Cluster Ready Services,大家都知道指的是Oracle的Clusterware而不是crs daemon.

只不过从10gR2开始,ClusterWare被引入,CRS这个词的含义被Oracle偷偷的缩小了。)

系统启动以后,CRS会自动启动,启动主要由/etc/init.d中的几个脚本完成:

[eygle@raclinux1 init.d]$ ll init*-r-xr-xr-x  1 root root  1951 Jun 27 13:27 init.crs-r-xr-xr-x  1 root root  4735 Jun 27 20:32 init.crsd-r-xr-xr-x  1 root root 35401 Jun 27 13:27 init.cssd-r-xr-xr-x  1 root root  3197 Jun 27 13:27 init.evmd


CRS启动的三个主要的后台进程为:
[oracle@raclinux1 bin]$ ps -ef|grep d.binroot      3140     1  0 23:13         00:00:00 /u01/app/oracle/product/10.2.0/crs/bin/crsd.binoracle    3884  3062  0 23:14         00:00:00 /u01/app/oracle/product/10.2.0/crs/bin/evmd.binoracle    4017  3983  0 23:14         00:00:00 /u01/app/oracle/product/10.2.0/crs/bin/ocssd.binoracle   21117 13799  0 23:29 pts/1   00:00:00 grep d.bin



这几个进程的主要作用如下:

 

CRSD:- Engine for HA operation - Manages 'application resources'- Starts, stops, and fails 'application resources' over- Spawns separate 'actions' to start/stop/check application resources- Maintains configuration profiles in the OCR (Oracle Configuration Repository)- Stores current known state in the OCR.- Runs as root- Is restarted automatically on failureOCSSD:- OCSSD is part of RAC and Single Instance with ASM- Provides access to node membership- Provides group services- Provides basic cluster locking- Integrates with existing vendor clusteware, when present- Can also runs without integration to vendor clustware- Runs as Oracle.- Failure exit causes machine reboot.  --- This is a feature to prevent data corruption in event of a split brain.

注意,ocssd进程在单实例ASM系统中也可以见到,以下是我的一个单实例ASM系统,ocssd进程同样存在:

bash-2.03# ps -ef|grep _+ASM  oracle  3264     1  0   Aug 25 ?        0:01 asm_lgwr_+ASM    root 12669  8167  0 11:58:56 pts/1    0:00 grep _+ASM  oracle  3270     1  0   Aug 25 ?        0:00 asm_rbal_+ASM  oracle  3266     1  0   Aug 25 ?        0:05 asm_ckpt_+ASM  oracle  3268     1  0   Aug 25 ?        0:00 asm_smon_+ASM  oracle  3262     1  0   Aug 25 ?        0:00 asm_dbw0_+ASM  oracle  3258     1  0   Aug 25 ?        0:00 asm_pmon_+ASM  oracle  3260     1  0   Aug 25 ?        0:00 asm_mman_+ASMbash-2.03# ps -ef|grep ocssd    root 12672  8167  0 11:59:01 pts/1    0:00 grep ocssd  oracle  5374     1  0   Apr 07 ?        0:01 /opt/oracle/product/10.1.0/bin/ocssd.binbash-2.03# 

ocssd进程非常重要,如果该进程异常中止,会导致系统crash。
在某些极端情况下,如果ocssd无法正常启动,会导致操作系统循环重启。这时候需要DBA介入进行一些特殊处理。(解决循环重启的问题是修改/etc/init.d/init.cssd文件,注释掉其中FAST_REBOOT语句)

 

EVMD:- Generates events when things happen- Spawns a permanent child evmlogger- Evmlogger, on demand, spawns children- Scans callout directory and invokes callouts.- Runs as Oracle.- Restarted automatically on failure



 

我们可以通过CRS工具来查看CRS状态:
[oracle@raclinux1 ~]$ cd $ORA_CRS_HOME/bin[oracle@raclinux1 bin]$ pwd/u01/app/oracle/product/10.2.0/crs/bin[oracle@raclinux1 bin]$ ./crs_statNAME=ora.RACDB.RACDB1.instTYPE=applicationTARGET=ONLINESTATE=ONLINE on raclinux1NAME=ora.RACDB.RACDB2.instTYPE=applicationTARGET=ONLINESTATE=ONLINE on raclinux1NAME=ora.RACDB.dbTYPE=applicationTARGET=ONLINESTATE=ONLINE on raclinux1NAME=ora.raclinux1.ASM1.asmTYPE=applicationTARGET=ONLINESTATE=ONLINE on raclinux1NAME=ora.raclinux1.LISTENER2_RACLINUX1.lsnrTYPE=applicationTARGET=ONLINESTATE=ONLINE on raclinux1NAME=ora.raclinux1.LISTENER_RACLINUX1.lsnrTYPE=applicationTARGET=ONLINESTATE=ONLINE on raclinux1NAME=ora.raclinux1.gsdTYPE=applicationTARGET=ONLINESTATE=ONLINE on raclinux1NAME=ora.raclinux1.onsTYPE=applicationTARGET=ONLINESTATE=ONLINE on raclinux1NAME=ora.raclinux1.vipTYPE=applicationTARGET=ONLINESTATE=ONLINE on raclinux1[oracle@raclinux1 bin]$
声明:并非所有转载的文章之全部内容都代表本人观点。如果本人转载文章侵犯了原作者的著作权,请及时与本人联系,本人将在第一时间从本人博客中删除  

2011-08-03 9:22

1) Linux:
To verify service as root user issue,
# /sbin/service ntpd status
ntpd (pid 4423) is running...

Check process is running or not by.
# ps -ef|grep ntp
ntp 4209 1 0 Mar10 ? 00:00:00 ntpd -u ntp:ntp -p /var/run/ntpd.pid -x

# grep OPTIONS /etc/sysconfig/ntpd
OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -x"

If NTP service is not started then to start the service issue,
To start the service issue,

# /sbin/service ntpd start

2) Solaris:
To verify the service issue,

# /usr/bin/svcs ntp
STATE STIME FMRI
online 3:29:11 svc:/network/ntp:default

# ps -ef|grep ntp
root 21223 1 0 Mar 10 ? 0:21 /usr/lib/inet/xntpd

# grep slewalways /etc/inet/ntp.conf
slewalways yes

To start the NTP service issue,

# /usr/sbin/svcadm enable ntp

3) HP-UX:

To verify the service issue,

# ps -ef|grep ntp
root 6022 1 0 14:23:42 ? 0:01 /usr/sbin/xntpd -x

# grep XNTPD_ARGS /etc/rc.config.d/netdaemons
export XNTPD_ARGS="-x"

To start the service issue,
# /sbin/init.d/xntpd start

4) AIX:

To verify the service issue,

# /usr/bin/lssrc -ls xntpd
xntpd tcpip 368754 active

# ps -ef|grep ntp
root 786614 151686 0 08:02:32 - 0:00 /usr/sbin/xntpd -x

# grep xntpd /etc/rc.tcpip
start /usr/sbin/xntpd "$src_running" -a "-x"

To start the service issue,

# /usr/bin/startsrc -s xntpd -a "-x"

http://hi.baidu.com/javenzhen/blog/item/48ef842edda797221e308938.htm


http://www.dbasky.net/archives/2009/01/linuxntp.html


 

Linux 时间同步配置

分类: Linux 3432人阅读 评论(3) 收藏 举报

使用ntpdate 命令

1.1 服务器可链接外网时    

# crontab -e    

加入一行:    

*/1 * * * * ntpdate 210.72.145.44     

210.72.145.44 为中国国家授时中心服务器地址,这样该机每隔1分重就可以与国家授时中心进行同步了。    

注意: 在使用ntpdate 命令时, ntpd 服务必须是关闭的, 否则会报the NTP socket is in use, exiting 错误。

关闭 ntpd 服务命令如下:

[root@node2 init.d]# /etc/init.d/ntpd stop

Shutting down ntpd:                                        [  OK  ]

1.2. 架设本地时间服务器

需要修改 /etc/ntp.conf文件里的几个配置就可以了,比如本地时间服务器IP 为 10.85.10.119, 配置如下:

server 210.72.145.44 prefer (中国国家授时中心服务器地址 prefer表示优先 注意把默认的server更改成这样)    

server 127.127.1.0 (本地时间)    

restrict 10.85.10.0 mask 255.255.255.0 nomodify (允许10..85.10.* IP 使用该时间服务器)    

restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap noquery notrust (屏蔽其他IP过来更新时间)    

其他的保持默认不动。   

 

使NTP服务可以在系统引导的时候自动启动,执行:     

# chkconfig ntpd on    

启动/关闭/重启NTP的命令:    

# /etc/init.d/ntpd start    

# /etc/init.d/ntpd stop    

# /etc/init.d/ntpd restart    

#service ntpd restart

将同步好的时间写到CMOS里    

vi /etc/sysconfig/ntpd    

SYNC_HWCLOCK=yes    

  

每次修改了配置文件后都需要重新启动服务来使配置生效。

可以使用下面的命令来检查NTP服务是否启动,你应该可以得到一个进程ID号:    

# pgrep ntpd    

使用下面的命令检查时间服务器同步的状态:    

# ntpq -p    

ntpstat 也可以查看一些同步状态,用netstat -ntlup查看端口使用情况!  

  

安装完毕客户端需过5-10分钟才能从服务器端更新时间!   

 

客户端设置:    

# crontab -e    

加入一行:    

*/1 * * * * ntpdate 10.85.10.119。   

相关配置参数说明
#  restrict权限控制语法为:
#  restrict IP mask netmask_IP parameter
#  其中 IP 可以是软件地址,也可以是 default default 就类似 0.0.0.0 咯!
#  至于 paramter 则有:
#   ignore :关闭所有的 NTP 联机服务
#   nomodify:表示 Client 端不能更改 Server 端的时间参数,不过,
#        Client 端仍然可以透过 Server 端来进行网络校时。
#   notrust :该 Client 除非通过认证,否则该 Client 来源将被视为不信任网域
#   noquery :不提供 Client 端的时间查询
#  如果 paramter 完全没有设定,那就表示该 IP (或网域『没有任何限制!』

 设定上层主机主要以 server这个参数来设定,语法为:
#  server [IP|FQDN] [prefer]
#  Server 后面接的就是我们上层 Time Server 啰!而如果 Server 参数
#  后面加上 perfer 的话,那表示我们的 NTP 主机主要以该部主机来作为
#  时间校正的对应。另外,为了解决更新时间封包的传送延迟动作,


二、使用rdate同步时间
如果要用vmware安装RAC,则各个几点间时间必须一致,可以以一个节点作为标准,其他节点与该节点进行时间同步。
假如有两个节点:
A: 10.85.10.119
B: 10.85.10.121

A作为时间标准,B节点用A节点时间进行同步。
1、在A节点开放37端口
最简单,但也最不安全的方法是关闭防火墙:iptables -F

2. A节点启动时间服务
#chkconfig time on     #在系统引导的时候自动启动


如果不启动该服务,则其他节点与该节点同步时间时会报错:Connect Refused

注意:要用root 用户

3、在B节点与A节点同步时间
rdate -s 10.85.10.119  

可以在crontab 中做执行计划, 每分钟执行一次,这样保证时间的同步。

[root@node2 ~]# crontab -l

*/1 * * * * rdate -s 10.85.10.119

[root@node2 ~]#

关于crontab 的介绍参考blog

Unix crontab 命令详解

http://blog.csdn.net/tianlesoftware/archive/2010/02/21/5315039.aspx

 

三. 使用 Network Time Protocol (NTP) 服务器

1. 假如公司网络里有一个时间服务器: 10.85.10.80, 此时只需要在每个结点上修改NTP 服务配置文件,让每个结点和时间服务器进行同步即可。 

# vi /etc/ntp.conf

Server 10.85.10.80 prefer

Driftfile /var/lib/ntp/drift

Broadcastdelay 0.008

修改完后在重启一下 ntp 服务

#/etc/init.d/ntpd restart

2. 如果没有时间服务,则可以用RAC 2个结点中一个做为服务器。另一个与此服务器同步即可。 

加入用node1 做服务器, 其IP 为: 10.85.10.119, 修改配置文件

#vi /etc/ntp.conf

Server 127.127.1.0  -- 本地时钟

Fudge 127.127.1.0 stratum 11

Broadcastdelay 0.008

Node2 node1 同步。 修改node2ntp 配置文件

# vi /etc/ntp.conf

Server 10.85.10.119 prefer

Driftfile /var/lib/ntp/drift

Broadcastdelay 0.008

修改完后在重启一下 ntp 服务

#/etc/init.d/ntpd restart

  

http://blog.csdn.net/tianlesoftware/article/details/5315587l

http://www.diybl.com/course/7_databases/oracle/oraclejs/20110923/560905.html

http://rocolex.blog.163.com/blog/static/68446410201082184625277/










ntp时间服务器

Network Time Protocol(NTP,网络时间协议)用于同步它所有客户端时钟的服务。NTP服务器将本地系统的时钟与一个公共的NTP服务器同步然后作为时间主机提供服务,使本地网络的所有客户端能同步时钟。

    同步时钟最大的好处就是相关系统上日志文件中的数据,如果网络中使用中央日志主机集中管理日志,得到的日志结果就更能反映真实情况。在同步了时钟的网络中,集中式的性能监控、服务监控系统能实时的反应系统信息,系统管理员可以快速的检测和解决系统错误。

   安装配置NTP服务

    下面将介绍NTP服务器的简单配置

   第一步,安装NTP服务

    一般的Linux发行版都会带ntp软件包,如果你的系统中还没有安装,就使用rpm命令安装此包

,以下以centos系统为例配置一台时间服务器:

 查找当前系统是否已安装ntp
 [root@localhost ~]# rpm -qa | grep ntp
 chkfontpath-1.10.1-1.1
 ntp-4.2.2p1-8.el5.centos.1       (这个就是已经安装的RPM包)

 如果没有安装,可用下例命令安装:
 [root@localhost ~]# rpm -ivh ntp-4.2.2p1-8.el5.centos.1.rpm

   第二步,配置NTP服务器
 
   NTP服务器配置如下:

    编辑配置文件/etc/ntp.conf   

restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery

restrict 127.0.0.1
restrict -6 ::1


restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

server 192.168.146.225
server 0.centos.pool.ntp.org
server 1.centos.pool.ntp.org
server 2.centos.pool.ntp.org


server  127.127.1.0     # local clock
fudge   127.127.1.0 stratum 10

   配置文件说明如下:

    第一行restrict、default定义默认访问规则,nomodify禁止远程主机修改本地服务器配置,notrap拒绝特殊的ntpdq捕获消息,noquery拒绝btodq/ntpdc查询(这里的查询是服务器本身状态查询)。

    restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
    这句是手动增加的,意思是从192.168.1.1-192.168.1.254的服务器都可以使用我们的NTP服务器来同步时间。

    server 192.168.146.225
    这句也是手动增加的,指明局域网中作为NTP服务器的IP;

  配置文件的最后两行作用是当服务器与公用的时间服务器失去联系时以本地时间为客户端提供时间服务。


   端口
  ntp使用udp协议,记得开放其123端口。


  启动NTPD

    为了使NTP服务可以在系统引导的时候自动启动,执行:
    #chkconfig ntpd on
    启动ntpd:
  service ntpd start


   NTP客户端配置:

    在客户端手动执行“ntpdate 服务器IP”来同步时间;


    另可以使用crond来定时同步时间:

    以root身份运行周期性任务:
  [root@supersun root]# crontab -e

  添加以下内容,每15分钟更新一下时间:
  15 * * * * ntpdate 服务器IP

    此处的ntpdate命令包含在ntp软件包中,记得确认系统中是否已安装。


   第三步,检查时间服务器是否正确同步

    使用下面的命令检查时间服务器同步的状态:
    #ntpq -p
   
    一个可以证明同步有问题的证据是:所有远程服务器的jitter值是4000并且delay和reach的值是0。

可能的原因有:

    有防火墙阻断了与server之间的通讯,即123端口是否正常开放;

    此外每次重启NTP服务器之后大约要3-5分钟客户端才能与server建立正常的通讯连接,否则你在客户端执行“ntpdate 服务器ip”的时候将返回:
    27 Jun 10:20:17 ntpdate[21920]: no server suitable for synchronization found

 

 

 

NTP服务器的配置

2008-01-31 09:51:10

  本文介绍了时间服务器常用的二种协议:SNTP和TIME,并就局域网环境下各种系统(Linux、Windows98、2000、XP)时间服务的设置分别进行了说明,最终实现整个局域网环境下所有电脑时钟的同步与校准。
一、什么是网络时间服务
  网络时间服务Net Time Service与网络文件下载服务FTP、网络浏览服务WWW等一样,是一种网络服务,提供网络时间服务的电脑叫网络时间服务器。当然有些时间服务器是纯硬件结构的,通过GPS卫星信息来获取时间,其外观与一台交换机相似,不在文本介绍之列。本文主要介绍一台电脑如何通过网络获取上级时间服务器提供的标准时间,再服务于本单位的局域网,使一个单位的所有电脑都能与标准时间保持同步,时间误差一般小于0.5秒。
   TCP/IP协议中,用于同步时间的协议为NTP协议,它是由美国德拉瓦大学的David L. Mills教授于1985年提出,除了可以估算封包在网络上的往返延迟外,还可独立地估算计算机时钟偏差,从而实现在网络上的高精准度计算机校时,它是设计用来在Internet上使不同的机器能维持相同时间的一种通讯协议。时间服务器(time server)是利用NTP的一种服务器,通过它可以使网络中的电脑保持时间同步。
  NTP是一个跨越广域网或局域网的复杂的同步时间协议,它通常可获得毫秒级的精度。SNTP(Simple Network Time Protocol)是NTP的一个子集,目的是为了那些不需要NTP实现复杂性网络时间同步的主机。通常用于局域网上的若干台主机通过互联网与其他的 NTP主机同步时钟,接着再向局域网内其他客户端提供时间同步服务。SNTP一般使用UDP的123端号,Linux系统和Windows系统都支持它,是现在架设网络时间服务器的主流协议。
   Time Protocol (RFC-868)协议是一种较简单的协议。此协议提供了一个独立于站点的,机器可读的日期和时间信息。时间服务返回的是从1900年1月1日午夜到现在的秒数。该协议通过TCP或UDP的37端口提供服务。Linux下的TIME服务提供该服务,Windows系统中较少使用。
  现在网上的许多时间校准软件,有些支持SNTP协议、有些支持TIME协议,有些二者都支持,我们在选择时要特别注意。另外在Windows系统的对等网中,还有使用 “net time 机器名 /set /yes”命令使用netbios协议进行时间校准,由于这种方法不支持混合网络和跨网段网络,本文也不特别介绍。
二、时间服务器有何用
  也许有人认为电脑的时钟有点误差影响不大,其实这是非常错误的。电脑系统中的文件保存、文件传输、电子邮箱中的时间戳都是以电脑时钟为准的。如果今后我们想进行文件查找、日志查询,如果系统时钟不准,或同一网络中的电脑时间不同步,将给后续工作带有许多麻烦。现在许多备份软件、编译软件、FTP工具都是以文件保存时间为依据进行比较的,如果时间不统一,将使这些软件难以正常工作。
三、如何使局域网内的所有电脑时钟同步
  首先要在互联网上寻找一台或几台专门提供时间服务的电脑(以下称为主时间服务器)。现在有不少机构免费提供标准时钟服务,在http: //www.ntp.org中专门介绍有不少时间服务器地址。推荐大家在平时使用pool.ntp.org这个地址,因为这个域名在DNS解析时会从一组时钟服务器的IP中随机选取,非常合适一般用户使用。大家也可以在搜索引擎中以“public time server”为关键词搜索一下,找出离你较近的时间服务器。
  其次选择单位中能上网的一台电脑,让它与主时间服务器同步,这台电脑可以是Linux主机,也可以是win98、2000、XP主机。同时把这台电脑设为局域网内部的时间服务器(以下称为时间服务器),供局域网内部的所有电脑校对时间。
  再在单位内部的所有电脑上设置时间服务的客户端,如果客户机为win2000、XP或Linux系统,不需要安装任何软件。如客户机为win98系统时要根据时间服务器类型的不同而区别对待:如果时间服务器选用SNTP协议进行时钟同步,则win98机上需安装一个sntp客户端软件,如时间服务器由 windows电脑通过netbios协议提供,则win98上也不需要安装任何软件。
四、设置时间服务器
以下分Linux、Win98、Win2000XP三种情况分别介绍,而且只介绍sntp服务的架设,timeserver服务和netbios对时服务由于应用很少,不做介绍。
1、Linux主机做时间服务器(以RedHat9.0为例)
第一步:检查是否已经安装有ntp软件包。输入“rpm -qa|grep ntp”,如果已经安装应该显示“ntp-4.1.2-0.rc1”。
  第二步:安装ntp软件,从[url]ftp://ftp.redhat.com[/url]下载rpm包,输入“rpm -ivh ntp-xxx.rpm”执行安装。
  第三步:配置ntp服务。备份原/etc/ntp.conf文件后,输入以下内容
       server pool.ntp.org
server pool.ntp.org
server pool.ntp.org
driftfile /etc/ntp/drift
三行server都设pool.ntp.org是为了提供连接冗余,当第一个地址连接失败时,后面的地址提供时间服务,注意这里的pool.ntp.org对应一组IP地址,由DNS随机分配。
  第四步:启动ntp服务。输入“service ntp restart”。
  为了保证以后Linux机启动后ntp服务能自动启动,还要输入“chkconfig ntpd on”。Linux下的ntp软件不但能自动与互联网上的时钟保持同步,同时本身已经是一台SNTP服务器了,可以供局域网内的电脑校对时间。建议启动 NTP服务后,先用date命令手工校正一下时间,以后系统会自动与互联网上的主时间服务器保持同步。ntp服务还有一个好处,如果当前系统的时间与标准时间有所误差,它不是马上把时间校正,而是逐步缩小与标准时间的误差,以免系统内部出现时间突变。


2、Windows2000、XP做时间服务器
  第一步:指定主时间服务器。在DOS方式输入“net time /setsntp:pool.ntp.org”,这里我们指定pool.ntp.org是主时间服务器,也可以是其它地址。
  第二步:开始与主时间服务器同步。先关闭windows time服务,再开启该服务。可以在“管理工具”的“服务”界面下完成,也可以以DOS方式输入“net stop w32time”、“net start w32time”。
  第三步:设置电脑的Windows time服务的启动方式为自动。在“管理工具”的“服务”界面下完成。
  注意这台windows主机不能加入任何域,否则无法启动windows time服务。此时,这台windows电脑已经是互联上主时间服务器的客户了,以后每次电脑启动时,都会自动与主时间服务器校对时间。如果网络不通,电脑也会过45分钟后再次自动校对时间。需要注意的是电脑的时钟与标准时间误差不能超过12小时,否则不能自动校对,而要手动校正了。
  第四步:使这台电脑成为时间服务器,供局域网内部的电脑校对时间。用“regedit”打开注册表,把 “HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeParameters”中的 LocalNTP改为1即可。


3、Windows98做时间服务器
  一般不推荐Windows98系统做时间服务器,而且win98本身也不含时间服务器功能,需要安装第三方软件。本文后面介绍的nettime软件([url]http://nettime.sourceforge.net/[/url])是一个非常优秀的时间客户端软件,它可以工作在windows98、2000、XP 系统中,当选中“Allow other computers to sync to this computer”时,可以把这台电脑当做成时间服务器。

五、设置时间服务器的客户端
  客户端的主要任务是连接到局域网内的时间服务器,以保持电脑的时钟与服务器同步。同样分Linux、Windows98、2000、XP几种情况介绍
1、LINUX主机
  其实在上面介绍Linux系统中的ntp服务时,已经提到ntp时间服务时同时也是一个时间服务的客户端,只要把/etc/ntp.conf文件中的 “server pool.ntp.org”改为“server 内部时间服务器IP地址”即可。如不想使用ntp服务,也可使用ntp软件包中带来的ntpdate命令,只要手工执行“ntpdate 时间服务器IP地址”即可。如想每天自动对时,可以把这条命令放在cron中,注意在同一台电脑上ntp服务与ntpdate命令不能同时使用。
2、Windows2000主机
  执行设置时间服务器时的前三步即可


3、WindowsXP主机
  可以按Windows2000主机的方法设置,也可双击任务栏右下角的时钟图标,打开“日期时间属性”对话框,在“Internet时间”卡片上选中“自动与Internet时间服务器同步”,并在服务器上填入内部时间服务器的IP地址即可。


4、Windows98主机
  需要安装第三方软件,自由(free)软件nettime是个不错的软件,它支持SNTP(UDP123)、TIME(TCP37)、TIME- UDP(UDP37)三种方法进行时间同步。软件操作简单,只要在上图的“Hostname or IP Address”中输入局域网内时间服务器的IP地址,“Protocol”中选SNTP即可。
  当然在windows98电脑上执行“net time 机器名或IP地址 /set /yes”也可能与其它windows电脑同步时钟,前提是这些电脑在同一网段,并且安装有netbios协议。把该命令放在autoexec.bat 中,就可以做到开机自动对时了。

 

在 Windows Server 2003 中尝试与非 Windows NTP 服务器同步时,时间同步可能失败

http://support.microsoft.com/kb/875424/zh-cn

 

 

 

 

 

假定时钟服务器IP地址为:192.168.0.1
服务器端配置:
1:置/etc/ntp.conf文件内容为:
server 127.127.1.0 minpoll 4
fudge 127.127.1.0 stratum 1
restrict 127.0.0.1
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
driftfile /var/lib/ntp/drift

2: /etc/ntp/ntpservers应置空
3: /etc/ntp/step-tickers应配置为 127.127.1.0 
上诉修改完成后,以root用户身份重启ntpd服务:service ntpd restart即可
客户端配置:
1:置/etc/ntp.conf文件内容为:
server 192.168.0.1
fudge 127.127.1.0 stratum 2
restrict 127.0.0.1
driftfile /var/lib/ntp/drift
restrict 192.168.0.1 mask 255.255.255.255
2. /etc/ntp/ntpservers 文件内容置空
3. /etc/ntp/step-tickers文件内容置为时钟服务器IP地址 192.168.0.1
上诉修改完成后,以root用户身份重启ntpd服务:service ntpd restart即可
用户可用以下两个常用命令查看ntpd服务状态:
1 ntpq -p
2 ntpstat





linux下ntpd安装配置笔记
概述: ntp能与互联网上的时钟保持同步,而且本身也是一台NTP服务器,可以为局域网电脑提供校对时间服务
安装: redhat自带
配置文件: /etc/ntp.conf
附:我的配置文件
#restrict default ignore
restrict 127.0.0.1
restrict 192.168.3.20
restrict 192.168.0.0 mask 255.255.255.0
restrict 192.168.2.0 mask 255.255.255.0
restrict 192.168.4.0 mask 255.255.255.0
server 210.72.145.44 prefer       #National Time Service Center
server 195.13.1.153
server 194.137.39.67
server 127.127.1.0     # local clock
restrict 210.72.145.44
restrict 195.13.1.153
restrict 194.137.39.67
driftfile /var/lib/ntp/drift
附:相关配置参数说明
#  restrict权限控制语法为:
#  restrict IP mask netmask_IP parameter
#  其中 IP 可以是软件地址,也可以是 default ,default 就类似 0.0.0.0 咯!
#  至于 paramter 则有:
#   ignore :关闭所有的 NTP 联机服务
#   nomodify:表示 Client 端不能更改 Server 端的时间参数,不过,
#        Client 端仍然可以透过 Server 端来进行网络校时。
#   notrust :该 Client 除非通过认证,否则该 Client 来源将被视为不信任网域
#   noquery :不提供 Client 端的时间查询
#  如果 paramter 完全没有设定,那就表示该 IP (或网域) 『没有任何限制!』
#  设定上层主机主要以 server这个参数来设定,语法为:
#  server [IP|FQDN] [prefer]
#  Server 后面接的就是我们上层 Time Server 啰!而如果 Server 参数
#  后面加上 perfer 的话,那表示我们的 NTP 主机主要以该部主机来作为
#  时间校正的对应。另外,为了解决更新时间封包的传送延迟动作,




让FreeBSD使用ntpd同步时间

  我们知道ntpd是一种在后台运行可以使用远程时间服务器的进程,它可以让你的服务器时间准确而不会影响系统的正常。
  首先修改/etc/rc.conf添加ntpd_enable="YES"到最后一行。然后vi /etc/ntp.conf
添加:

server 210.72.145.44 prefer
server 159.226.154.47
server 127.127.1.0
fudge 127.127.0.1 stratum 5
restrict default ignore
restrict 127.0.0.0 mask 255.0.0.0
restrict 192.168.0.0 mask 255.255.255.0 noquery nopeer notrust
restrict 210.72.145.44 noquery
restrict 159.226.154.47 noquery
driftfile /var/db/ntpd.drift

  其中server 210.72.145.44 prefer、server 159.226.154.47、restrict 210.72.145.44 noquery、restrict 159.226.154.47 noquery可以改成其他离你最近或最准确的时间服务器。
  这样在服务器重启后ntpd进程就会自动在后台运行,帮助系统同步时间,和在192.168.0这个网段内做一台时间服务器。

 

两种办法
第一,可以从时间服务器time.nist.gov同步。
在crontab中加入:
00 0 1 * * root rdate -s time.nist.gov
第二,自己建个时间服务器
1). # rpm -ivh ntp-4.1.2-4.EL3.1.i386.rpm
2). # vi /etc/ntp.conf
注释一行
restrict default ignore
加入一行
restrict 192.168.10.0 mask 255.255.255.0 notrust nomodify notrap
3). # vi /etc/ntp/step-tickers
加入一行
pool.ntp.org
这样每次ntpd启动时,会自动连接该国际标准时间服务器;
4). # service ntpd start
5). # netstat -an |grep 123
确保该端口以udp方式开放
时间客户端配置(192.168.10.2)
1). # ntpdate 192.168.10.1
应该显示同步成功
2). # crond -e
加入
0-59/10 * * * * /usr/sbin/ntpdate 192.168.10.1
表示每隔10分钟同步一次时间
用组策略配置Windows时间客户端
http://blog.csdn.net/clliugw/article/details/5314215


http://huobumingbai.blog.51cto.com/1196746/439698
1.         简介
NTP(Network Time Protocol)服务器是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源做同步化,它可以提供高精准度的时间校正,在LAN上与标准间差小于1毫秒,WAN上几十毫秒,且通过加密确认的方式来防止恶毒的协议攻击。
2.         文件结构
1)         配置文件

目录名称
应用说明
/etc/ntp.conf
NTP服务的主要配置文件,不同的Linux版本文件所在的目录可能会不同
/usr/share/zoneinfo
规定了各主要时区的时间设定文件,例如中国大陆地区的时区设置文件是/usr/share/zoneinfo/Asia/Shanghai
/etc/sysconfig/clock
Linux的主要时区设定文件。每次启动后Linux操作系统会自动读取这个文件来设定系统预设要显示的时间。如这个文件内容为”ZONE=Asia/Shanghai”,则表示Linux操作系统的时间设定使用/usr/share/zoneinfo/Asia/Shanghai这个文件
/etc/localtime
本地系统的时间设定文件,如果clock文件中规定了使用的时间设定文件为/usr/share/zoneinfo/Asia/Shanghai,Linux操作系统就会将Shanghai那个文件复制一份为/etc/localtime,所以系统的时间显示就会以Shanghai那个时间设定文件为准

2)         有关的执行文件

命令名称
应用说明
/bin/date
Linux系统中的修改及输出日期与时间命令
/sbin/hwclock
主机的BIOS时间与Linux系统时间是分开的,所以使用date命令调整时间之后,只是调整了Linux的系统时间。还需要使用hwclock才能将修改过后的时间写入BIOS,这个命令必须root用户才能执行
/usr/sbin/ntpd
NTP服务的守护进程文件,需要启动它才能提供NTP服务
/usr/sbin/ntpdate
NTP客户端用来连接NTP服务器命令文件
/usr/sbin/ntpq
标准的网络计时协议(NTP)查询程序
/usr/sbin/_ntptrace
跟踪网络计时协议主机链到它们的控制时间源
/sbin/clock
调整电脑硬件时间RTC,执行这个命令可以显示现在时刻。调整硬件时钟的时间将系统时间设成与硬件时钟之时间一致,或是把系统时间回存到硬件时钟

说明:Linux时钟系统在分类和设置上与Windows不同的是它将时钟分为系统时钟(System Clock)和硬件时钟(Real Time Clock,RTC)两种,系统时间是指当前Linux Kernel中的时钟;硬件时钟则是主板上由电池供电的主板硬件时钟,这个时钟可以在BIOS中设置。当Linux启动时,硬件时钟会读取系统时钟的设置,然后系统时钟就会独立于硬件运行
3)         重要主配置文件详解

 

Ø 设定客户端同步规则
格式
restrict ip地址 mask子网掩码 参数
其中ip可以为ip地址或default,default指所有ip
参数解释(如果未设定参数表示对该IP或子网没有任何限制)
ignore:关闭所有的NTP联机服务
nomodify:客户端不能更改服务端的时间参数,但是可以通过服务端进行网络校时
notrust:客户端除非通过认证,否则其来源将被视为不信任子网
noquery:不提供客户端的时间查询
Ø 设定上级时间服务器
格式
Server IP地址或域名 [prefer]
参数解释
IP地址或域名为指定的上级时间服务器,如果在Server参数后加上prefer,表示NTP服务器主要以其主机时间校准
Ø 广播时间
格式
broadcast 网段
解释
ntpd在子网中的网络上定期广播NTP时间,如broadcast 192.168.255.255表示在192.168.0.0/16的网络上定期广播NTP时间
Ø 时间记录
格式
driftfile文件名
解释
与上级时间服务器联系时所花费的时间记录在driftfile参数后面的文件中,driftfile后面需要使用完整的路径文件名,不能是连接文件,并且文件的权限需要设定为ntpd守护进程且可以写入
Ø 时间级别
格式
fudge IP地址 stratum 级别
解释
fudge项用于为这个时钟设置级别。对待内部系统时钟的比较理想的情况是将时间源作为级别10来对待,这样访问真正NTP服务器的客户端将与这些服务器同步
3.         配置
1)         配置一,允许任何IP的客户机都可以进行时间同步
Ø 修改配置文件

 

在配置文件中将restrict default kod nomodify notrap nopeer noquery修改为restrict default nomodify
Ø 重启服务

Ø 测试
修改Linux系统时间
打开修改时间界面

在Linux系统右上角的时间处单击鼠标右键,选择Adjust Date & Time
修改时间


在Network Time Protocol选项卡中把Enable Network Time Protocol前面的勾去掉

将时间修改,这里把时间从21:55:38修改为1:55:0,单击OK
Windows同步时间(Windows NTP客户端的应用)
图形界面操作
打开修改时间界面

双击Windows右下角的时间
日期和时间

提示在获取最近一次同步状态时出错。RPC服务器不可用。其实是系统服务里的Windows Time服务没有启动
开启服务
 
 
如果启动该服务时提示:错误1058:无法启动服务,原因可能是已被禁用与其相关联的设备没有启动。原因是windows time服务失效,需要修复,开始à运行然后键入w32tm /register,单击确定

再次同步

 

同步成功
命令行下操作
停止服务

开启服务

设置同步

命令成功完成后需重启下服务
2)         配置二,只允许192.168.129.***网段的客户机进行时间同步
Ø 修改配置文件

 

将上面配置后的配置文件中的restrict default nomodify修改成restrict default kod nomodify notrap nopeer noquery并再添加一行restrict 192.168.129.0 mask 255.255.255.0 nomodify只允许192.168.129.0/24网段的IP进行同步
Ø 重启服务

Ø Linux同步时间(Linux NTP客户端的应用)
命令行

输入date显示当前时间为11:07:37,输入ntpdate 192.168.129.130与时间服务器同步时间,再次输入date,此时显示时间为2:19:09,同步成功
图形界面

鼠标在Linux系统的右下角时间处单击右键,选择Adjust Date & Time

勾选启动网络时间协议并输入NTP服务器的IP地址单击确定

同步到时间为2:23,同步成功
设置自动同步

 

写入上面的语句

重启服务,每天晚上9点进行同步
查看ip

可以看到此时系统使用的IP地址为192.168.129.100/24的地址
不同网段同步测试

本地连接所使用的IP地址是10.1.32.163/23的地址,按照刚才的配置,不可以同步时间

同步出错,时间例子被拒绝,测试成功
3)         自动启动服务
如果每次启动系统自动启动NTP服务,输入

4.         管理
1)         查看123端口

输入netstat –unl | grep 123 查看123端口
2)         查看NTP进程

输入ps -ef | grep ntp 查看NTP进程是否启动
3)         监控NTP服务器
ntpq用来监视ntpd操作,ntpq -p查询网络中的NTP服务器,同时显示客户端和每个服务器的关系

位置
标志
含义
remote之前
*
响应的NTP服务器和最精确的服务器
+
响应这个查询请求的NTP服务器
blank(空格)
没有响应的NTP服务器
列表上方
remote
响应这个请求的NTP服务器的名称
refid
NTP服务器使用的更高一级服务器的名称
st
正在响应请求的NTP服务器的级别
when
上一次成功请求之后到现在的秒数
poll
本地和远程服务器多少时间进行一次同步,单位秒, 在一开始运行NTP的时候这个poll值会比较小,服务器同步的频率大,可以尽快调整到正确的时间范围,之后poll值会逐渐增大,同步的频率也就会相应减小
reach
用来测试能否和服务器连接,是一个八进制值,每成功连接一次它的值就会增加
delay
从本地机发送同步要求到ntp服务器的往返时间
offset
主机通过NTP时钟同步与所同步时间源的时间偏移量,单位为毫秒,offset越接近于0,主机和ntp服务器的时间越接近
jitter
统计了在特定个连续的连接数里offset的分布情况。简单地说这个数值的绝对值越小,主机的时间就越精确





原创粉丝点击