yangtingkun
===========================================================
Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二)
===========================================================

下面继续介绍Oracle RAC软件的安装和建库的相关步骤。

Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(一):http://yangtingkun.itpub.net/post/468/213417

Redhat AS4上安装64Oracle9204http://yangtingkun.itpub.net/post/468/211768


上一篇文章说明了安装的前期准备工作,下面开始正式安装。首先需要安装的是Oracle Cluster Manager软件,PUBLIC NODE 12分别填入两个服务器的主机名GPOLNXGPOLNX2,在PRIVATE NODE 12分别填入inter-gpo1inter-gpo2,在QUORUM DISK的地方填入已经配置好的裸设备:/dev/datavg/quorum

安装完成以后,需要在每个节点配置hangtimer-check模块:REDHAT AS4 FOR X86_64中已经包含了这个模块,检查hangtimer-check是否被加载,如果没有需要将其加载:

# lsmod
Module Size Used by
hangcheck_timer 5337 0

.

.

.

如果在Module模块中没有看到,需要使用下面的方法将其加载:

# modprobe hangcheck-timer

并修改/etc/rc.local文件添加上述的命令,确保重启后也可以加载该模块

修改每个节点的$ORACLE_HOME/oracm/admin/cmcfg.ora文件,包含内容类似于:

ClusterName=Oracle Cluster Manager, version 9i

MissCount=210

PrivateNodeNames=inter-gpo1 inter-gpo2

PublicNodeNames=GPOLNX GPOLNX2

ServicePort=9998

CmDiskFile=/dev/rac/quorum

HostName=GPOLNX

KernelModuleName=hangcheck-timer

其中大部分内容在ORACM安装的过程中已经配置好了,主要修改的地方包括添加KernelModuleName模块和修改MissCount的值。

然后进入$ORACLE_HOME/oracm/bin目录,并切换为root权限执行:

$ su root

# ./ocmstart.sh

注意,是su root而不是su – root

启动oracm之后,可以通过ps –ef|grep oracm来检查启动是否成功。注意,多检查几次,很可能oracm启动后几秒中内发现错误并退出。如果发现oracm退出,可以检查$ORACLE_HOME/oracm/log/cm.log文件。里面会有详细的日志。

启动好ORACM后,就可以安装ORACLE RAC软件了,整个安装过程除了比9I的安装多了一个选择CLUSTER NODE的界面,其他几乎完全一致。

安装显示WELCOME界面,点击NEXT,就会出现节点选择界面,如果这个节点选择界面没有出现的话,说明前面的配置出现了问题。这时可以使用lsnodes命令进行检查。

RAC的安装和9i的安装一样,也会出现LD_ASSUME_KERNEL设置过高导致文件拷贝时没有响应,以及isqlplusrdbms的编译出错问题。其解决方法在Redhat AS4上安装64Oracle9204这篇文章中,这里不在重复描述了,需要注意的是,对于最后的修改gccg++以及重新make失败的对象等操作,必须在两个节点上都执行。

安装完成之后,需要在两个节点上全都启动gsd,命令如下:

% gsdctl start

通过图形化界面的netca配置好监听和服务名,并在两个节点上分别检查,listener是否已经启动,如果没有启动,手工将其启动。然后就开始利用dbca来建立数据库。

如果前面初始化shell中的DBCA_RAW_CONFIGSRVM_SHARED_CONFIG 设置正确,且mapfile文件的内容也正确,那么dbca建库不会有多大的问题,Oracle会自动为每个相应的文件指定裸设备。

总结一下在安装过程中碰到的几个问题:

第一个碰到的问题是oracm无法启动,在cm.log中发现下列的错误:

>ERROR: OemInit2: Attempting to open the CMDiskFile for a multi-node RAC on a non-NFS, non-OCFS, or non-raw device cluster, tid = main:1120480 file = oem.c, line = 494 {Wed Jul 27 15:59:55 2005 }
>ERROR: OemInit2: If the CMDiskFile is supposed to be an NFS or OCFS file, please make sure that the relevant shared file system is mounted properly, tid = main:1120480 file = oem.c, line = 495 {Wed Jul 27 15:59:55 2005 }
>ERROR: OemInit2: If the CMDiskFile is supposed to be a raw device, please make sure that it has been created properly, tid = main:1120480 file = oem.c, line = 496 {Wed Jul 27 15:59:55 20 05 }

这是由于CMDiskFile参数设置的文件格式有问题。开始的时候,只建立了逻辑卷,没有绑定到裸设备,因此Oracle在检测文件类型时报错。

第二个碰到的问题是hangcheck-timer无法启动的问题:

根据Oracle文档给出的方法:

# /sbin/insmod hangcheck-timer hangcheck_tick=30 hangcheck_margin=180

得到下面的错误信息:

insmod: can't read 'hangcheck-timer': No such file or directory

必须通过modprobe hangcheck-timer方式才能加载成功。

第三个问题是在第二个节点上启动gsdctl start时碰到的。

出现的错误信息为:

PRKC-1021 : Problem in the clusterware Failed to get list of active nodes from clusterware

metalink相关的信息都看了一遍,没有发现和当前现象比较一致的。但是其中有一个文档建议用lsnodes检查节点的状态。

在节点一上执行lsnodes结果如下:

$ lsnodes
GPOLNX
GPOLNX2

而节点二上执行lsnodes则报错:

lsnodes.bin: cannot initialize cluster interface

又在metalink上查询了半天的相关错误,但是发现都不对症,结果最后发现问题居然是oracm没有启动。

这个问题前面也提到了,当时启动了oracm后,还通过ps –ef|grep oracm检查了一下,没想到,oracm的检查状态需要一些时间,在检查的时候进程还存在,随后就退出了。导致我在检查gsdlsnodes上花费了大量的时间。

cm.log中发现错误的信息是:

>TRACE: CheckDskInfo(): node(0) mode(3) ALIVE, tid = PollingThread:81926 file = oem.c, line = 1160 {Tue Sep 26 09:39:06 2006 }
>ERROR: DoSyncUpdate(): OEM check signaled shutdown, tid = PollingThread:81926 file = nmmember.c, line = 1559 {Tue Sep 26 09:39:06 2006 }

而现象就比较奇怪了。不管节点是NODE1还是NODE2,只要这个节点先启动oracm进程,那么另一个节点在启动进程的时候就会报错。

在网上搜索了很久,也尝试了里面给出的一些解决方案,比如:关闭iptables服务等,但是并没有什么效果。

最后还是biti帮我指出了问题,在最开始配置的时候,我想取巧,没有为两个节点设置单独的内网地址和名称,在PUBLIC NODEPRIVATE NODE的地方填入的都是GPOLNXGPOLNX2

按照第一篇文章中给出的配置进行修改后,问题解决。

第四个问题是在DBCA时碰到的PRKR-1064 error in a RAC environment错误

Metalink上有一篇文章专门介绍这个错误的解决方法:Doc ID: Note:178435.1。安装里面的步骤一步步的检查,结果发现/var/opt/oracle/srvConfig.loc文件和$ORACLE_HOME/srvm/config/srvConfig.loc文件中srvconfig_loc的设置有问题,应该设置为srvconfig_loc=/dev/rac/srvcfg

将文件修改正确后,执行gsdctl stop命令,然后使用命令srvconfig -init –f重新初始化SRVM文件。

使用gsdctl start命令启动GSD,然后重新建库,问题解决。

另外在建立数据库之前,如果没有保证节点二上的listener启动的话,Oracle会报错,说明node2上的监听没有启动。并且,一些最后的修改可能无法在instance2上进行,比如修改sys用户的密码的操作。

最后总结一下这次安装的几点心得:

1.Oracleotn上的官方文档基本上没有多大的作用,尤其是针对LINUX平台的安装。如果想要找参考资料,一定要在metalink上去找对应平台的安装手册。

对于一个没有装过RAC的新手,只参考otn上的安装文档,估计这辈子也安装不上。

2.操作系统的知识很重要。

操作系统相关的知识一直是我的弱项,而安装过程可以说是和操作系统打交道最多的过程,我在安装过程中碰到的很多的棘手问题对于一个操作系统熟悉的人来说并不算是问题。这也是一些对操作系统很熟但对Oracle并不很了解的系统管理员可以轻松的完成Oracle RAC的安装的原因。

3.无论干什么不要轻易放弃,碰到挫折就放弃是不会有提高的。

前面提到了,我有几次都打算放弃,其实我说的放弃是有原因的。目前测试的设备我只能使用两天,两天之后就要拿走挪做它用。而且我手里还有比较重要的事情的工作必须在短期内完成。如果没有在两天之内完成RAC的安装测试,那么这个测试就意义不大了,而且这两天的时间还是从其他工作中挤出来的。所以有几次碰到了一些难以解决的问题时,我不止一次的想要放弃。不过,所幸最终坚持了下来,并且安装测试也成功了。什么事情不到最后关头都不要轻易放弃。

4.资源很重要

无论是网络上的资源,还是你的同行朋友。有时候一个有经验的人的一句话可以解决你困扰已久的问题。

当然,这里的意思并不是说,碰到不会的问题就去问。其实,要不是时间紧迫,我也不会去轻易请教别人,起码不会那么快就去请教别人。有经验的人告诉你的方法固然管用。但是如果你是通过无数次的碰壁,想尽一切办法而最终解决了问题,那么收获可能不仅仅是知道了一个方法而已,而是加深了对这个问题的总的理解。

yangtingkun 发表于:2006.09.27 15:24 ::分类: ( ORACLE ) ::阅读:(10057次) :: 评论 (33)
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

使系统一启动就加载这个模块,需要在/etc/rc.local文件最后加入一行:
/sbin/insmod hangcheck-timer hangcheck_tick=30 hangcheck_margin=180

不知道你当时是怎么做的

2

最后还是biti帮我指出了问题,在最开始配置的时候,我想取巧,没有为两个节点设置单独的内网地址和名称,在PUBLIC NODE和PRIVATE NODE的地方填入的都是GPOLNX和GPOLNX2

我不记得在RAC的安装过程中有这个一步,你能说说吗?

LD 评论于: 2006.10.08 21:33
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

上面我已经提到了,使用/sbin/insmod hangcheck-timer hangcheck_tick=30 hangcheck_margin=180这种方法会报错的。
在redhat as4上需要使用这种方法:modprobe hangcheck-timer

2
配置cmcfg.ora文件的时候需要给出PUBLIC NODE和PRIVATE NODE

yangtingkun 评论于: 2006.10.08 22:17
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

1 我是AS 3.0上装的,在AS 4.0上没有装过9204
2 
    cmcfg.ora file:
HeartBeat=15000
KernelModuleName=hangcheck-timer
ClusterName=Oracle Cluster Manager, version 9i
PollInterval=1000
MissCount=210
PrivateNodeNames=int-rac1 int-rac2
PublicNodeNames=rac1 rac2
ServicePort=9998
# WatchdogSafetyMargin=5000
# WatchdogTimerMargin=60000
CmDiskFile=/u01/rac/srvConfigFile
HostName=rac1

你所说的PUBLIC NODE和PRIVATE NODE就是这里的PrivateNodeNames=int-rac1 int-rac2
PublicNodeNames=rac1 rac2

当然每个人取的名字不一样 :)

LIDI 评论于: 2006.10.09 09:19
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

你可能没有看明白我的意思,我吧PRIVATE和PUBLIC的名称设置为一样的了。
比如以你的例子
PublicNodeNames=rac1 rac2
PrivateNodeNames=rac1 rac2
如果这样设置,是不行的。

yangtingkun 评论于: 2006.10.09 14:14
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

我现在做2个节点的rac。
节点1上面有raw device,节点2上面也要做raw device吗?
我没有在节点2上面做raw device,那启动ocmstart的时候,节点2就启动不了了。
我是新手,请指教。
谢谢

feelfall 评论于: 2007.01.28 21:02
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

第二个节点必要可以访问第一个节点的裸设备

yangtingkun 评论于: 2007.01.28 21:10
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

请问第二个节点的CmDiskFile=node1:/RawDevicePath ?

feelfall 评论于: 2007.01.28 21:31
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

同一个裸设备在不同节点的访问名称应该是一致的。

yangtingkun 评论于: 2007.01.29 01:54
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

在node2上/usr/bin/raw /dev/raw/raw2 /dev/racvg/quorum的时候出错,找不到文件。
node2上面没有racvg(node1上的volumn group),vgscan也找不到,没有/etc/lvmtab生成(rsh配置好了,可以用oracle,root用户执行操作,登录)。
vgscan 没有参数-m -y

feelfall 评论于: 2007.01.29 11:25
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

应该是共享存储设置有问题,节点二是不是看不到共享存储设备啊。
建议你去论坛开个帖子,对于操作系统和存储等硬件级的东西我也不是很熟

yangtingkun 评论于: 2007.01.29 15:24
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

fdisk -l和sfdisk -s都看不到,都三天了,我咳嗽的都有血了crying.gif

feelfall 评论于: 2007.01.29 16:08
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

问一下,你的shared raw device 是个单独的设备还是一个节点的一个磁盘分区?

feelfall 评论于: 2007.01.29 17:11
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

上面的例子是用一台emc的CX300存储设备作为共享存储。

yangtingkun 评论于: 2007.01.29 20:47
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

crying.gifcrying.gifcrying.gifcrying.gif
谢谢

feelfall 评论于: 2007.01.29 21:29
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

运行gsdctl start和lsnodes报错没有这个命令,想删除oracle9i也出错退出,怎么办?

无人 评论于: 2007.03.07 23:49
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

检查目录是否正确。
有可能你安装没有成功,实在不行利用操作系统命令直接删除吧

yangtingkun 评论于: 2007.03.08 08:28
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

我的系统AS4up4,安装oracle9i,有两个地方不明白:
1、etc/xinetd.d/下的telnet、ftp、shell、login和rsh等服务,但我的系统xinetd.d里只有telnet、rsh,其他是kelogin、kshell、rlogin、gssftp、tftp、klogin、krb5-telnet,为什么没有ftp、shell、login?除了这几个服务具体其他还需要那些?
2、我用的是SAN盘柜划ocfs2分区,仲裁磁盘怎么设?racle用户的环境变量里export DBCA_RAW_CONFIG=/home/oracle/mapfile
export SRVM_SHARED_CONFIG=/dev/rac/srvcfg
怎么设?
很着急,请速解答,谢谢了

无人 评论于: 2007.03.08 21:20
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

1.kshell、rlogin、gssftp不就是控制shell、login和ftp的文件吗?

2.这两个环境变量的设置在上一篇文章中,就是这篇文档开头给出的链接文章中

yangtingkun 评论于: 2007.03.09 10:03
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

两个问题啊:
1、oracle9i安装界面中文字符乱码,根据网上找的其他版本的资料修改还是不行
2、安装好OCM后未运行ocmstart,用ps -df|grep oracm查看两个节点均为root 6206 6103 0 18:16 pts/1 00:00:00 grep oracm或oracle 6206 6103 0 18:16 pts/1 00:00:00 grep oracm,这是怎么回事呢?

MJY 评论于: 2007.03.09 18:26
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

你所说的第一个碰到的问题,我已经作了绑定:
/usr/bin/raw /dev/raw/raw1 /dev/datavg/srvcfg
/usr/bin/raw /dev/raw/raw2 /dev/datavg/quorum
/usr/bin/raw /dev/raw/raw3 /dev/datavg/testrac_raw_system_4g
/usr/bin/raw /dev/raw/raw4 /dev/datavg/testrac_raw_undotbs1_4g
...
可故障依旧,怎么回事?
这种绑定需要写到某个文件里吗?

LIKING 评论于: 2007.03.09 20:41
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

to mjy
应该是ocmstart没有启动,检查一下log信息吧

yangtingkun 评论于: 2007.03.09 23:13
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

to LIKING
ocfs2分区我没有用过。
确认你的裸设备以及建立成功。
建立裸设备,授权,然后在环境变量中设置就可以了。

yangtingkun 评论于: 2007.03.09 23:18
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

建立链接的/dev/rac目录通过mkdir已建立.可是重启后就不见了,怎么回事呢?

LIKING 评论于: 2007.03.09 23:42
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

重起之后目录不见了?

yangtingkun 评论于: 2007.03.10 02:39
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

是的,系统重启后rac目录就不见了,怎么回事呢?我是用root帐户建立的啊.

LIKING 评论于: 2007.03.10 03:21
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

我的裸设备已经建立成功。
建立裸设备,授权,然后在环境变量中设置都做了,可是启动ocmstart时候还是报错,log文件里故障同示例一样怎么回事呢?

LIKING 评论于: 2007.03.10 14:32
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

去论坛发个帖子吧,这里说不清楚了。发帖子记得把详细的错误信息贴出来。

不过目录丢失确实比较奇怪,没有碰到过这种情况。

yangtingkun 评论于: 2007.03.10 15:23
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

安装结束又出现三个问题,请高手解答:
1、运行ocmstart.sh后查看cm.log,内容如下:
oracm, version[ 9.2.0.2.0.47 ] started {Sat Mar 10 23:33:24 2007 }
KernelModuleName is hangcheck-timer {Sat Mar 10 23:33:24 2007 }
OemNodeConfig(): Network Address of node0: 192.168.0.21 (port 9998)
{Sat Mar 10 23:33:24 2007 }
OemNodeConfig(): Network Address of node1: 192.168.0.22 (port 9998)
{Sat Mar 10 23:33:24 2007 }
>WARNING: OemInit2: Opened file(/dev/raw/raw1 8), tid = main:16384 file = oem.c, line = 491 {Sat Mar 10 23:33:24 2007 }
InitializeCM: ModuleName = hangcheck-timer {Sat Mar 10 23:33:24 2007 }
>ERROR: InitializeCM: query_module() failed, tid = main:16384 file = cmstartup.c, line = 327 {Sat Mar 10 23:33:24 2007 }
Debug Hang : ClusterListener (PID=5557) Registered withwatchdog daemon. {Sat Mar 10 23:33:24 2007 }
Debug Hang : CmConnectListener (PID=5558):Registered with watchdog daemon. {Sat Mar 10 23:33:24 2007 }
Debug Hang :StartNMMon (PID=5552) Registered with watchdog daemon. {Sat Mar 10 23:33:24 2007 }
CreateLocalEndpoint(): Network Address: 192.168.0.22
{Sat Mar 10 23:33:24 2007 }
Debug Hang :PollingThread (PID=135159169): Registered with {Sat Mar 10 23:33:24 2007 }
Debug Hang : DiskPingThread (PID=135159169): Registered with {Sat Mar 10 23:33:24 2007 }
Debug Hang :SendingThread (PID=135159169): Registered with {Sat Mar 10 23:33:24 2007 }
UpdateNodeState(): node(1) added udpated {Sat Mar 10 23:33:26 2007 }
HandleUpdate(): SYNC(3) from node(0) completed {Sat Mar 10 23:33:26 2007 }
HandleUpdate(): NODE(0) IS ACTIVE MEMBER OF CLUSTER, INCARNATION(2) {Sat Mar 10 23:33:26 2007 }
HandleUpdate(): NODE(1) IS ACTIVE MEMBER OF CLUSTER, INCARNATION(4) {Sat Mar 10 23:33:26 2007 }
NMEVENT_RECONFIG [00][00][00][00][00][00][00][03] {Sat Mar 10 23:33:26 2007 }
Debug Hang : CMNodeListener(PID=5566) Registered with watchdog daemon. {Sat Mar 10 23:33:27 2007 }
Successful reconfiguration, 2 active node(s) node 0 is the master, my node num is 1 (reconfig 4) {Sat Mar 10 23:33:27 2007 }
那句ERROR错误是怎么回事呢?

2、启动netca配置监听程序时出现错误,提示为:
分发文件到其他节点时出现问题:permission denied.:failed 是否重试?
重试了还是不行。

3、已把dbca最后一句开头路径改为java,运行dbca出来中文为方块。

LIKING 评论于: 2007.03.11 00:01
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

1这个错误说明hangcheck-timer模块加载有问题。
2检查oracle对远端站点执行rcp是否需要输入密码。
3尝试环境变量中加入export LANG=c

yangtingkun 评论于: 2007.03.11 00:29
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

1、这个错误说明hangcheck-timer模块加载有问题。
该怎么去检查、排除这个问题呢?
麻烦可以解释详细些吗?

LIKING 评论于: 2007.03.11 12:03
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

用root帐户lsmod可看到hangcheck_timer,我明明加载的是hangcheck-timer啊?
用oracle帐户或者oracle帐户su root后,运行lsmod提示没有这个命令,是不是缺少环境变量路径?怎么改?

LIKING 评论于: 2007.03.11 12:14
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

刚接触redhat,不熟悉,请问
一、为何用oracle登录后运行lsnodes出错:
lsnodes: error while loading shared libraries: libcmdll.so: cannot open shared object file: No such file or directory
而用root登录后再切换为oracle运行lsnodes正常
二、为何我的/dev/raw/下的raw文件每次重启系统后都要重新用root帐户给oracle 帐户授权?

LIKING 评论于: 2007.03.11 15:08
re: Redhat AS4 for x86_64上安装Oracle 9204 RAC概述(二) [回复]

hangcheck-timer用root加载上就可以了。
切换的时候如果不加"-"表示继续使用切换前用户的环境变量,只是用户权限发生了变化。
如果每次需要重新授权的话,你可以在启动脚本中把授权的语句加上。

我对操作系统相关的内容也是了解的有限,对RAC的安装的经验也不是很多。
我还是建议你去ITPUB发个帖子,在这里讨论简单问题还可以,像这种比较复杂的问题很难说清楚。
而且可以有更多的高手帮你解决问题

yangtingkun 评论于: 2007.03.11 15:22

发表评论
标题

在此添加评论
表情符号: smile laughing tongue angry crying sad wassat wink

称呼

邮箱地址(可选)

个人主页(可选)

 authimage


切换风格
新闻聚合
博客日历
文章归档...
最新发表...
最新评论...
最多阅读文章...
最多评论文章...
博客统计...
Blog信息
网站链接...