• Redhat 5.4 Oracle 10g RAC 添加节点


    Oracle RAC 添加节点,操作也简单。 官网的操作说明如下:

    http://www.oracle.com/technology/global/cn/pub/articles/vallath-nodes.html

     

     

    假设已经有了2个节点的RAC,节点分别为rac1 rac2,其平台是raw + ASM + Oracle 10g +redhat 5.4 , 我们现在在这个集群上添加一个节点rac3.  步骤和2个节点的RAC 安装差不多。

     

    2个节点的RAC 安装,参考:

           Redhat 5.4 + ASM + RAW+ Oracle 10g RAC 安装文档

           http://blog.csdn.net/tianlesoftware/archive/2010/09/09/5872593.aspx

     

     

    Rac1 , rac2 rac3 节点的信息规划如下:

    服务器主机名

    rac1

    rac2

    rac3

    公共IP地址(eth0

    10.85.10.1

    10.85.10.2

    10.85.10.5

    虚拟IP地址(eth0

    10.85.10.3

    10.85.10.4

    10.85.10.6

    私有IP地址(eth1

    192.168.1.200

    192.168.1.201

    192.168.1.202

    ORACLE RAC SID

    rac1

    rac2

    Rac3

    集群实例名称

    Rac

    OCR(oracle集群注册表)

    /dev/raw/raw1   /dev/sdb1        200M

    /dev/raw/raw2   /dev/sdb2        200M

    表决磁盘(voting disk

    /dev/raw/raw3   /dev/sdc1       200M

    /dev/raw/raw4   /dev/sdc2       200M

    /dev/raw/raw5   /dev/sdc3       200M

    ASM

    /dev/sdd1     10G            VOL1 for Oracle Data

    /dev/sdd1      5G             VOL2 for flash_recovery_area

    数据库备份

    /dev/sde1    10G  mkfs -t ext3 /dev/sde1

     

     

    一. 安装前准备及OS安装配置

    2个节点的类似,装好虚拟操作系统,配置好硬盘,网关,IP地址,建立用户等效性,建立用户并创建相关目录,修改linux 参数等。

     

    1.1 安装好虚拟机,并在配置文件里添加如下信息:

    ethernet1.present = "TRUE"

    ethernet1.allowGuestConnectionControl = "FALSE"

    ethernet1.features = "1"

    ethernet1.wakeOnPcktRcv = "FALSE"

    ethernet1.networkName = "Bridged"

    ethernet1.addressType = "generated"

     

     

    scsi1.present = "TRUE"

    scsi1.virtualDev = "lsilogic"

    scsi1.sharedBus = "virtual"

     

    scsi1:1.present = "TRUE"

    scsi1:1.mode = "independent-persistent"

    scsi1:1.filename = "F:/VM/racshare/ocr.vmdk"

    scsi1:1.deviceType = "disk"

     

    scsi1:2.present = "TRUE"

    scsi1:2.mode = "independent-persistent"

    scsi1:2.filename = "F:/VM/racshare/votingdisk.vmdk"

    scsi1:2.deviceType = "disk"

     

    scsi1:3.present = "TRUE"

    scsi1:3.mode = "independent-persistent"

    scsi1:3.filename = "F:/VM/racshare/asm4data.vmdk"

    scsi1:3.deviceType = "disk"

     

    scsi1:4.present = "TRUE"

    scsi1:4.mode = "independent-persistent"

    scsi1:4.filename = "F:/VM/racshare/backup.vmdk"

    scsi1:4.deviceType = "disk"

     

    disk.locking = "false"

    diskLib.dataCacheMaxSize = "0"

    diskLib.dataCacheMaxReadAheadSize = "0"

    diskLib.DataCacheMinReadAheadSize = "0"

    diskLib.dataCachePageSize = "4096"

    diskLib.maxUnsyncedWrites = "0"

     

    1.2 配置raw32个网卡的固定IPhostname, gateway 也可以在安装系统时指定。

    /etc/sysconfig/network-scripts/ifcfg-eth0

    /etc/sysconfig/network-scripts/ifcfg-eth1

    /etc/sysconfig/network

     

    [root@rac3 network-scripts]# more /etc/sysconfig/network-scripts/ifcfg-eth0

    DEVICE=eth0

    BOOTPROTO=static

    IPADDR=10.85.10.5

    NETMASK=255.255.255.0

    NETWORK=10.85.10.253

    ONBOOT=yes

    TYPE=Ethernet

     

    [root@rac3 network-scripts]# more /etc/sysconfig/network-scripts/ifcfg-eth1

    DEVICE=eth1

    BOOTPROTO=static

    IPADDR=192.168.1.202

    NETMASK=255.255.255.0

    NETWORK=192.168.1.1

    ONBOOT=yes

    TYPE=Ethernet

     

    --修改主机名

    vi /etc/sysconfig/network

    NETWORKING=yes

    HOSTNAME=rac3

    注:需要重启才能生效

     

    修改完之后重启生效:

    /etc/rc.d/init.d/network restart 重新启动

     

    1.3 同步时间:

    rac3 上添加任务,每一分钟和rac1进行一次时间同步。

    [root@rac3~]# crontab -l

    */1 * * * * rdate -s 10.85.10.1

     

    rac 对节点间时间较敏感,如果不同步在安装clusterware 时后会报错,而且在安装vipca 的时候也会报错。 具体时间同步参考我的blog

    Linux 时间同步配置

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

     

    linux 下修改日期和时间

    http://blog.csdn.net/tianlesoftware/archive/2009/11/13/4808096.aspx

     

    1.4. 修改解析文件: /etc/hosts

    每个节点都要设置成如下模式:

    [root@rac3 network-scripts]# more /etc/hosts

    # Do not remove the following line, or various programs

    # that require network functionality will fail.

    127.0.0.1  localhost

    10.85.10.1 rac1

    10.85.10.2 rac2

    10.85.10.5 rac3

     

    192.168.1.200 rac1-priv

    192.168.1.201 rac2-priv

    192.168.1.202 rac3-priv

     

    10.85.10.3 rac1-vip

    10.85.10.4 rac2-vip

    10.85.10.6 rac3-vip

     

    1.5 建立用户及用户等效性

     

    -- 建立用户和相关组

    [root@rac3 ~]# groupadd oinstall

    [root@rac3 ~]# groupadd dba

    [root@rac3 ~]# useradd -g oinstall -G dba oracle

    [root@rac3 ~]# passwd oracle

     

    -- 建立用户等效性

    [root@rac3 /]# su - oracle

    [oracle@rac3 ~]$ mkdir ~/.ssh

    [oracle@rac3 ~]$ chmod 700 ~/.ssh

    [oracle@rac3 ~]$ ssh-keygen -t rsa

    [oracle@rac3 ~]$ ssh-keygen -t dsa

     

    -- rac1上将authorized_keys 文件copyraw3

    [oracle@rac3 ~]$ scp rac1:~/.ssh/authorized_keys ~/.ssh/authorized_keys

     

    -- rac3id_rsa.pub id_dsa.pub 写入authorized_keys

    [oracle@rac3 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

    [oracle@rac3 ~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

     

    -- rac3上最新的authorized_keys 文件copyrac1 rac2

    [oracle@rac3 ~]$ scp ~/.ssh/authorized_keys rac1:~/.ssh/authorized_keys

    [oracle@rac3 ~]$ scp ~/.ssh/authorized_keys rac2:~/.ssh/authorized_keys

     

    -- 在三个节点上用Oracle用户分别ssh 所有节点

    [oracle@rac3 ~]$ ssh rac1 date

    [oracle@rac3 ~]$ ssh rac1-priv date

    [oracle@rac3 ~]$ ssh rac2 date

    [oracle@rac3 ~]$ ssh rac2-priv date

    [oracle@rac3 ~]$ ssh rac3 date

    [oracle@rac3 ~]$ ssh rac3-priv date

     

    1.6 创建目录结构

    [root@rac3 ~]#  mkdir -p /u01/app/oracle

    [root@rac3 ~]# chown -R oracle:oinstall /u01

    [root@rac3 ~]# chmod -R 777 /u01

    1.7 修改linux 系统参数

    [root@rac3 ~]# more /etc/sysctl.conf

    net.ipv4.ip_forward = 0

    net.ipv4.conf.default.rp_filter = 1

    net.ipv4.conf.default.accept_source_route = 0

    kernel.sysrq = 0

    kernel.core_uses_pid = 1

    net.core.rmem_default=262144

    net.core.wmem_default=262144

    net.core.rmem_max=262144

    net.core.wmem_max=262144

    kernel.shmall = 78643200

    kernel.shmmax = 314572800

    kernel.shmmni = 4096

    kernel.sem = 250 32000 100 128

    fs.file-max = 65536

    net.ipv4.ip_local_port_range = 1024 65000

     

     # sysctl -p 立刻生效

     

    vi /etc/sysconfig/limits.conf

    --使用HugePage 内存技术,添加下面2

    Oracle soft memlock 5242880

    Oracle hard memlock 524280

    --进程句柄数量

    oracle soft nproc 2047

    oracle hard nproc 16384

    -- 文件句柄

    oracle soft nofile 65536

    oracle hard nofile 65536

     

    将下面一行添加到/etc/pam.d/login文件中:

    session required /lib/security/pam_limits.so

     

     

    1.8 配置 hangcheck-timer 模块

    --查看模块位置

    [root@rac3 ~]# find /lib/modules -name "hangcheck-timer.ko"

    /lib/modules/2.6.9-78.EL/kernel/drivers/char/hangcheck-timer.ko

    /lib/modules/2.6.9-78.ELsmp/kernel/drivers/char/hangcheck-timer.ko

     

    --配置系统启动时自动加载模块,在/etc/rc.d/rc.local 中添加如下内容

    [root@rac3 ~]# modprobe hangcheck-timer

    [root@rac3 ~]# more /etc/rc.d/rc.local

    touch /var/lock/subsys/local

    modprobe hangcheck-timer

     

    -- 配置hangcheck-timer参数, /etc/modprobe.conf 中添加如下内容:

    [root@rac3 ~]# more /etc/modprobe.conf

    options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180

     

    --确认模块加载成功:

    [root@rac3 ~]# grep Hangcheck /var/log/messages | tail -2

    Sep  9 02:09:08 rac3 kernel: Hangcheck: starting hangcheck timer 0.9.0 (tick is 180 seconds, margin is 60 seconds).

    Sep  9 02:09:08 rac3 kernel: Hangcheck: Using monotonic_clock().

     

    1.9 配置raw 设备

    因为是添加节点,所以这些设备都是已经分配好的,我们只需要把他们添加到参数中即可。操作系统是redhat 5.4,在raw 的配置和redhat 4有点区别。

     

    1)修改/etc/udev/rules.d/60-raw.rules 文件

    添加如下内容:

    ACTION=="add", KERNEL=="sdb1",RUN+="/bin/raw /dev/raw/raw1 %N"

    ACTION=="add", KERNEL=="sdb2",RUN+="/bin/raw /dev/raw/raw2 %N"

    ACTION=="add", KERNEL=="sdc1",RUN+="/bin/raw /dev/raw/raw3 %N"

    ACTION=="add", KERNEL=="sdc2",RUN+="/bin/raw /dev/raw/raw4 %N"

    ACTION=="add", KERNEL=="sdc3",RUN+="/bin/raw /dev/raw/raw5 %N"

    ACTION=="add",KERNEL=="raw[1-5]", OWNER="oracle", GROUP="oinstall", MODE="660"

     

    2)重启服务:

    [root@rac3 ~]# start_udev

    Starting udev:         [  OK  ]

     

    3 查看raw设备:

    [root@rac3 ~]# ls -lrt /dev/raw

    total 0

    crw-rw---- 1 oracle oinstall 162, 2 Sep  9 02:15 raw2

    crw-rw---- 1 oracle oinstall 162, 1 Sep  9 02:15 raw1

    crw-rw---- 1 oracle oinstall 162, 5 Sep  9 02:15 raw5

    crw-rw---- 1 oracle oinstall 162, 4 Sep  9 02:15 raw4

    crw-rw---- 1 oracle oinstall 162, 3 Sep  9 02:15 raw3

     

     

    1.10 安装ASM包,配置ASM,并搜索ASM

    --rac3上安装 ASMLibs, tools, support 三个rpm文件

    # rpm -ivh *.rpm --nodeps --force

     

    -- 运行 /etc/init.d/oracleasm configure

    回答 oracle , dba, y, y 就可以了

     

    -- linux 挂在windows 共享的盘

    1. 启动nfs服务:   service nfs start

    2. mount -o username=share,password=share //10.85.10.80/RAC /mnt

     

    -- 查看ASM 磁盘

    [root@rac3 asm]# /etc/init.d/oracleasm listdisks

    VOL1

    VOL2

     

    1.11 oracle 用户,修改ORACLE 参数文件 /home/oracle/.bash_profile, 添加以下内容:

     

    export ORACLE_BASE=/u01/app/oracle

    export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1

    export ORA_CRS_HOME=$ORACLE_BASE/product/crs

    export ORACLE_SID=rac3

    export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin

    export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

    export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin

    export ORACLE_TERM=xterm

    export TNS_ADMIN=$ORACLE_HOME/network/admin

    export ORA_NLS10=$ORACLE_HOME/nls/data

    export LD_LIBRARY_PATH=$ORACLE_HOME/lib

    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

    export CLASSPATH=$ORACLE_HOME/JRE

    export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

    export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

    export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

    export THREADS_FLAG=native

    export TEMP=/tmp

    export TMPDIR=/tmp

     

     

    二. 安装Clusterware

     

    Oracle 集群件已经安装在集群上;这里的任务是将新节点添加到集群配置中。要执行该任务,需要执行 Oracle 提供的名为 addnode 的实用程序,该工具位于 Clusterware 的主 oui/bin 目录中。Oracle 集群件有两个文件(Oracle 集群信息库 (OCR) Oracle 集群同步服务 (CSS) 表决磁盘),它们包含有关该集群以及由 Oracle 集群件管理的应用程序的信息。这些文件需要使用关于新节点的信息进行更新。集群件安装过程的第一步是验证新节点是否准备好进行安装。

     

    2.1  验证硬件和操作系统配置已经完成

    [oracle@rac1 bin]$ pwd

    /u01/app/oracle/product/crs/bin

    [oracle@rac1 bin]$ ./cluvfy stage -post hwos -n rac1,rac3

     

    2.2  在安装集群之前检查节点列表中的所有节点

    [oracle@rac1 bin]$ ./cluvfy stage -pre crsinst -n rac1,rac3

     

    这里会检查相关的包,如果有缺少的,到这个网站搜索,下载后打上即可:

    http://rpm.pbone.net/

     

     

    2.3  Xmanager 连接到rac1,用Oracle用户运行$ORA_CRS_HOME/oui/bin/addNode.sh 命令。 运行命令之前先指定export DISPLAY=10.85.10.80:0.0

     

    若在此处报错:

    Exception java.lang.NullPointerException occurred..
    java.lang.NullPointerException
            at oracle.sysman.oii.oiic.OiicAddNodeSession.initialize(OiicAddNodeSession.java:564)
            at oracle.sysman.oii.oiic.OiicAddNodeSession.<init>(OiicAddNodeSession.java:135)
            at oracle.sysman.oii.oiic.OiicSessionWrapper.createNewSession(OiicSessionWrapper.java:860)
            at oracle.sysman.oii.oiic.OiicSessionWrapper.<init>(OiicSessionWrapper.java:186)
            at oracle.sysman.oii.oiic.OiicInstaller.init(OiicInstaller.java:481)
            at oracle.sysman.oii.oiic.OiicInstaller.runInstaller(OiicInstaller.java:928)
            at oracle.sysman.oii.oiic.OiicInstaller.main(OiicInstaller.java:866)

    这个错误是由于/etc/oraInst.loc 的权限问题造成,切换root用户,给777权限即可:

    [root@rac2 oraInventory]# ls -al /etc/oraInst.loc

    -rwxr-x---  1 root root 63 Aug  5 19:34 /etc/oraInst.loc

    [root@rac2 oraInventory]# chmod 777 /etc/oraInst.loc

    [root@rac2 oraInventory]# ls -alrt /etc/oraInst.loc

    -rwxrwxrwx  1 root root 63 Aug  5 19:34 /etc/oraInst.loc

     

     2.4  在界面上下一步,会提示输入新节点的名称。 填写完之后进入安装。

     

     2.5 当需要的所有集群件组件从 orc1 复制到 orc3 之后,OUI 将提示用root用户在对应的节点上执行三个文件

     

    /u01/app/oracle/oraInventory/orainstRoot.sh  -- >rac3

    /u01/app/oracle/product/crs/install/rootaddnode.sh àrac1

    /u01/app/oracle/product/crs/root.sh à rac3


    在执行root.sh 脚本的时候,最后会调用vipca命令。 提示如下:

    Running vipca(silent) for configuring nodeapps

    IP address "rac2-vip" has already been used. Enter an unused IP address.

     

    产生错误rac2-vip’ has already been used”,因为 VIP 已经在所有节点(而非 rac3)上进行了配置。我们手动执行 VIPCA(虚拟 IP 配置助手)即可。用Xmanager 工具连到新节点,在root用户下执行vipca

     

    [root@rac3 ~]# cd /u01/app/oracle/product/crs/bin/

    [root@rac3 bin]# ./vipca

     

     

    完成 Oracle 集群件安装后,将在其各自目录中创建下列文件。

     

    集群件文件:

    [root@rac3 /]# ls -ltr /etc/init.d/init.*

    -r-xr-xr-x 1 root root  3190 Sep  9 03:52 /etc/init.d/init.evmd

    -r-xr-xr-x 1 root root 35394 Sep  9 03:52 /etc/init.d/init.cssd

    -r-xr-xr-x 1 root root  4714 Sep  9 03:52 /etc/init.d/init.crsd

    -r-xr-xr-x 1 root root  1951 Sep  9 03:52 /etc/init.d/init.crs

     

    使用以下条目更新了操作系统提供的 inittab 文件。

    [root@rac3 /]# tail -5 /etc/inittab

    # Run xdm in runlevel 5

    x:5:respawn:/etc/X11/prefdm -nodaemon

    h1:35:respawn:/etc/init.d/init.evmd run >/dev/null 2>&1 </dev/null

    h2:35:respawn:/etc/init.d/init.cssd fatal >/dev/null 2>&1 </dev/null

    h3:35:respawn:/etc/init.d/init.crsd run >/dev/null 2>&1 </dev/null

     

    使用 olsnodes 命令验证集群件是否注册了所有节点

    [oracle@rac3 bin]$ olsnodes

    rac2

    rac1

    rac3

     

    使用 crs_stat 命令验证是否启动了集群服务。

    [oracle@rac3 bin]$ crs_stat -t

    Name           Type           Target    State     Host

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

    ora.rac.db     application    ONLINE    ONLINE    rac1

    ora....oltp.cs application    ONLINE    ONLINE    rac2

    ora....ac1.srv application    ONLINE    ONLINE    rac2

    ora....ac2.srv application    ONLINE    ONLINE    rac1

    ora....c1.inst application    ONLINE    ONLINE    rac2

    ora....c2.inst application    ONLINE    ONLINE    rac1

    ora....SM2.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....SM1.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

    ora.rac3.gsd   application    ONLINE    ONLINE    rac3

    ora.rac3.ons   application    ONLINE    ONLINE    rac3

    ora.rac3.vip   application    ONLINE    ONLINE    rac3

     

     

    三. 安装Oracle 软件

    Oracle 已经提供了一个新的称为 addNode.sh 的可执行文件,它位于 $ORACLE_HOME/oui/bin 目录。 Oracle 用户执行该脚本。

     

    我们用x manager 连接上rac1,在运行这个脚本。运行脚本之前不要忘记指定DISPLAY 变量

    [oracle@rac1 bin]$ export DISPLAY=10.85.10.80:0.0

     

    在安装窗口上选中要安装的节点,然后安装即可。

     

    安装最后会提示执行如下脚本:

    /u01/app/oracle/product/10.2.0/db_1/root.sh  à  rac3

     

    执行后,确定,安装结束。

     

    四. netca 创建监听

     

    注:创建数据库过程应该遵循这个顺序: 先配置监听, 再配置ASM 实例, 最后创建数据库实例, 这样可以减少出错的概率。

     

    1. oracle rac3上运行 netca

    2 选择 Listener configuration, 只选择rac3 这个节点,创建监听

    3.添加一个LISTEN, 1521 port ,然后结束配置 ,监听配置成功后, 添加结点上的Listener Application Resource 注册到CRS中, 这样CRS 就可以监控Listener 的运行状态。 我们可以通过 crs_stat -t -v  查看Listener 状态。

     

     

    五. 创建ASM 实例

    1. Xmanager 连上rac1 或者 rac2上, 运行DBCA 命令

    2. 选择 configure Automatic Storage Management

    3. 选择rac1rac3结点,这里rac1是必选的,作为父节点,然后向rac3进行extend。在rac3上安装asm实例。

    4. 输入之前asm实例的密码。

    5. 创建完成。

     

    ASM 的相关信息参考blog

    Oracle ASM 详解

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

     

     

    . DBCA添加新实例

     

    rac1上,用Oracle 用户连接Xmanager 进入$ORACLE_HOME/bin目录,运行DBCA。记得指定DISPLAY 变量。

     

    Oracle Real Application Cluster database  à Instance Management  à Add an Instance –> 下一步,选择实例名。

     

    然后就是下一步, TAF Policy选择Basic 这个服务在RAC Failover中会用到,如果在这里没有配置,也可以通过dbca命令, 选择 Services Management 来进行配置。

       Oracle RAC Failover 详解

       http://blog.csdn.net/tianlesoftware/archive/2010/03/03/5340788.aspx

     

    然后开始创建数据库。

     

     

    七. 验证添加的节点

     

     [root@rac2 bin]# ./crs_stat -t

    Name           Type           Target    State     Host

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

    ora.rac.db     application    ONLINE    ONLINE    rac1

    ora....oltp.cs application    ONLINE    ONLINE    rac1

    ora....ac1.srv application    ONLINE    ONLINE    rac2

    ora....ac2.srv application    ONLINE    ONLINE    rac1

    ora....ac3.srv application    ONLINE    ONLINE    rac3

    ora....c1.inst application    ONLINE    ONLINE    rac2

    ora....c2.inst application    ONLINE    ONLINE    rac1

    ora....c3.inst application    ONLINE    ONLINE    rac3

    ora....SM2.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....SM1.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

    ora....SM3.asm application    ONLINE    ONLINE    rac3

    ora....C3.lsnr application    ONLINE    ONLINE    rac3

    ora.rac3.gsd   application    ONLINE    ONLINE    rac3

    ora.rac3.ons   application    ONLINE    ONLINE    rac3

    ora.rac3.vip   application    ONLINE    ONLINE    rac3

     

     

     

     

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

    Blog http://blog.csdn.net/tianlesoftware

    网上资源: http://tianlesoftware.download.csdn.net

    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx

    DBA1 群:62697716(); DBA2 群:62697977()

    DBA3 群:63306533;     聊天 群:40132017

    道森Oracle,国内最早、最大的网络语音培训机构,我们提供专业、优质的Oracle技术培训和服务! 我们的官方网站:http://www.daosenoracle.com 官方淘宝店:http://daosenpx.taobao.com/
  • 相关阅读:
    BZOJ3992 [SDOI2015]序列统计 【生成函数 + 多项式快速幂】
    BZOJ3993 [SDOI2015]星际战争 【二分 + 网络流】
    BZOJ3325 [Scoi2013]密码 【manacher】
    BZOJ3534 [Sdoi2014]重建 【矩阵树定理】
    BZOJ3507 [Cqoi2014]通配符匹配 【哈希 + 贪心】
    BZOJ2285 [SDOI2011]保密 【01分数规划 + 网络流】
    BZOJ4556 [Tjoi2016&Heoi2016]字符串 【后缀数组 + 主席树 + 二分 + ST表】
    BZOJ4817 [Sdoi2017]树点涂色 【LCT + 线段树】
    BZOJ1195 [HNOI2006]最短母串 【状压dp】
    malloc的使用、用malloc动态分配内存以适应用户的需求的源代码实例
  • 原文地址:https://www.cnblogs.com/tianlesoftware/p/3610007.html
Copyright © 2020-2023  润新知