一、前期准备工作

1.1 为方便操作,装完系统后我们先安装Vmware Tools:

1.1.1、安装工具

在VMware的菜单栏上选择"虚拟机/安装虚拟机工具(VM/Install VMware Tools...)"

1.1.2、挂载光盘

# mkdir /mnt/cdrom

# mount /dev/cdrom /mnt/cdrom

1.1.3、进入挂载目录,将压缩文件复制至/tmp目录下

# cp VMwareTools-9.4.0-1280544.tar.gz /tmp

1.1.4、解压并安装

#cd /tmp

#tar -xzvf VMwareTools-9.4.0-1280544.tar.gz

#cd vmware-tools-distrib

#./vmware-install.pl

#安装过程所有问题一律Enter,安装完成后重启

1.2 设置本地时间:

#配置ntpd服务

[root@rac1 ~]# vim /etc/sysconfig/ntpd

OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid -g"

#关闭iptables

[root@rac1 ~]# chkconfig iptables off

[root@rac1 ~]# service iptables stop

iptables: Flushing firewall rules: [ OK ]

iptables: Setting chains to policy ACCEPT: filter [ OK ]

iptables: Unloading modules: [ OK ]

[root@rac1 ~]# rm -rf /etc/localtime

[root@rac1 ~]# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

[root@rac1 ~]# ntpdate time.nist.gov

29 Nov 11:22:03 ntpdate[2689]: the NTP socket is in use, exiting

[root@rac1 ~]# clock -w

[root@rac1 ~]# hwclock --systohc #将系统时间写入硬件时钟

[root@rac1 ~]# hwclock;date

Tue 29 Nov 2016 11:23:06 AM CST -1.052091 seconds

Tue Nov 29 11:23:06 CST 2016

1.3 IP和hosts配置:

1.3.1、需求:

IP

主机名

public

192.168.2.206

rac1

192.168.2.207

rac2

private

192.168.10.206

rac1-priv

192.168.10.207

rac2-priv

vip

192.168.2.208

rac1-vip

192.168.2.209

rac2-vip

SCAN

192.168.2.10

rac-cluster

1.3.2、修改IP和host配置文件:

查看VPN:nmcli con

列举系统中的网络接口:nmcli dev list

参考文档:<http://www.linuxidc.com/Linux/2013-08/88809.htm>

[root@rac1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE="eth0"

NM_CONTROLLED="yes"

ONBOOT=yes

HWADDR=00:0C:29:96:F1:81

TYPE=Ethernet

BOOTPROTO=static

IPADDR=192.168.2.206

NETMASK=255.255.255.0

GATEWAY=192.168.2.1

DNS1=192.168.2.1

NAME="System eth0"

UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03

[root@rac1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE="eth1"

NM_CONTROLLED="yes"

ONBOOT=yes

HWADDR=00:0C:29:96:F1:8B

TYPE=Ethernet

BOOTPROTO=static

IPADDR=192.168.3.206

NETMASK=255.255.255.0

#GATEWAY=192.168.10.1

DNS1=192.168.10.1

NAME="System eth1"

UUID=47b8c9f9-98ef-422c-8dca-ca18d5c0c203

1.3.3、hosts配置:

[root@rac1 ~]# vim /etc/hosts

127.0.0.1 localhost.localdomain localhost

::1 localhost6.localdomain6 localhost6

#eth0 public ip

192.168.2.206 rac1 rac1.localdomain

192.168.2.207 rac2 rac2.localdomain

#eth1 private ip

192.168.10.206 rac1-priv rac1-priv.localdomain

192.168.10.207 rac2-priv rac2-priv.localdomain

#virtual ip

192.168.2.208 rac1-vip rac1-vip.localdomain

192.168.2.209 rac2-vip rac2-vip.localdomain

#scan ip

192.168.2.210 rac-cluster rac-cluster-scan

这里存在一个NetworkManager的bug:

Bug 668830 - NetworkManager adds hostname to /etc/hosts pointing to localhost

该问题在NetworkManager-0.8.1-9.el6.x86_64.rpm中被解决

参考文档: <http://www.dnzg.cn/sql/201603_51971.html>

检查本机NetworkManager版本号:

[root@rac1 ~]# rpm -qa|grep Network

NetworkManager-0.8.1-5.el6.x86_64

NetworkManager-gnome-0.8.1-5.el6.x86_64

NetworkManager-glib-0.8.1-5.el6.x86_64

在网上下载0.8.1-9版本以上的相关rpm离线包并安装:

[root@rac1 home]# rpm -Uvh NetworkManager-0.8.1-107.el6.x86_64.rpm NetworkManager-glib-0.8.1-107.el6.x86_64.rpm NetworkManager-gnome-0.8.1-107.el6.x86_64.rpm --nodeps

[root@rac1 home]# rpm -qa|grep Network

NetworkManager-0.8.1-107.el6.x86_64

NetworkManager-glib-0.8.1-107.el6.x86_64

NetworkManager-gnome-0.8.1-107.el6.x86_64

[root@rac1 home]# cd --

[root@rac1 ~]# service NetworkManager restart

Stopping NetworkManager daemon: [ OK ]

Setting network parameters... [ OK ]

Starting NetworkManager daemon: [ OK ]

[root@rac1 ~]# chkconfig NetworkManager on

[root@rac1 ~]# service network restart

1.4 依赖软件包安装:

1.4.1、配置本地yum源

1、删除本地yum源

[root@rac1 ~]# # rpm -aq | grep yum|xargs rpm -e --nodeps

2、下载新的yum安装包,上传至/home目录下

yum-3.2.27-14.el6.noarch.rpm

python-iniparse-0.3.1-2.1.el6.noarch.rpm

yum-metadata-parser-1.1.2-16.el6.x86_64.rpm

yum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm

3、安装yum软件包

[root@rac1 home]# rpm -ivh python-iniparse-0.3.1-2.1.el6.noarch.rpm --force

[root@rac1 home]# rpm -ivh yum-metadata-parser-1.1.2-16.el6.x86_64.rpm --force

[root@rac1 home]# rpm -ivh yum-3.2.27-14.el6.noarch.rpm yum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm

--force 即使覆盖属于其它包的文件也强迫安装

--nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。

参考文档: <http://blog.csdn.net/samxx8/article/details/46739005>

4、 更改yum源

[root@rac1 home]# cd /etc/yum.repos.d/

[root@rac1 yum.repos.d]# wget http://mirrors.163.com/.help/CentOS6-Base-163.repo

[root@rac1 yum.repos.d]# vi CentOS6-Base-163.repo

编辑文件,把文件里面的$releasever全部替换为版本号,即6 最后保存!

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-6 - Base - 163.com
baseurl=http://mirrors.163.com/centos/6/os/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=os
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#released updates
[updates]
name=CentOS-6 - Updates - 163.com
baseurl=http://mirrors.163.com/centos/6/updates/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=updates
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful
[extras]
name=CentOS-6 - Extras - 163.com
baseurl=http://mirrors.163.com/centos/6/extras/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=extras
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-6 - Plus - 163.com
baseurl=http://mirrors.163.com/centos/6/centosplus/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=centosplus
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#contrib - packages by Centos Users
[contrib]
name=CentOS-6 - Contrib - 163.com
baseurl=http://mirrors.163.com/centos/6/contrib/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=contrib
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

参考文档: <http://down.chinaz.com/server/201111/1321_1.htm>

5、清理yum缓存

[root@rac1 yum.repos.d]# yum clean all

[root@rac1 yum.repos.d]# yum makecache

6、安装软件依赖包

[root@rac1 ~]# yum install binutils-2.*

[root@rac1 ~]# yum install compat-libstdc++-33*

[root@rac1 ~]# yum install elfutils-libelf-0.*

[root@rac1 ~]# yum install elfutils-libelf-devel-*

[root@rac1 ~]# yum install libaio-0.*

[root@rac1 ~]# yum install libaio-devel-0.*

[root@rac1 ~]# yum install sysstat-9.*

[root@rac1 ~]# yum install glibc-2.*

[root@rac1 ~]# yum install glibc-common-2.*

[root@rac1 ~]# yum install glibc-devel-2.* glibc-headers-2.*

[root@rac1 ~]# yum install ksh-2* #官方要求安装pdksh-5* 包,需要手动下载离线包进行安装

[root@rac1 ~]# yum install make-3.*

[root@rac1 ~]# yum install libgcc-4.*

[root@rac1 ~]# yum install libstdc++-4.*

[root@rac1 ~]# yum install libstdc++-4.*.i686*

[root@rac1 ~]# yum install libstdc++-devel-4.*

[root@rac1 ~]# yum install gcc-4.*x86_64*

[root@rac1 ~]# yum install gcc-c++-4.*x86_64*

[root@rac1 ~]# yum install libtool-ltdl*i686*

[root@rac1 ~]# yum install ncurses*i686*

[root@rac1 ~]# yum install readline*i686*

[root@rac1 ~]# yum install unixODBC*

[root@rac1 ~]# yum install libXp

1.5 建立用户及组

#组

[root@rac1 ~]# groupadd -g 1300 dba

[root@rac1 ~]# groupadd -g 1301 oper

[root@rac1 ~]# groupadd -g 1000 oinstall

[root@rac1 ~]# groupadd -g 1200 asmadmin

[root@rac1 ~]# groupadd -g 1201 asmdba

[root@rac1 ~]# groupadd -g 1202 asmoper

#用户

[root@rac1 ~]# useradd -m -u 1100 -g oinstall -G asmadmin,asmdba,asmoper,dba -s /bin/bash grid

[root@rac1 ~]# useradd -m -u 1101 -g oinstall -G dba,oper,asmdba -s /bin/bash oracle

#设置密码

[root@rac1 ~]# passwd oracle

Changing password for user oracle.

New password:

Retype new password:

passwd: all authentication tokens updated successfully.

[root@rac1 ~]# passwd grid

Changing password for user grid.

New password:

Retype new password:

passwd: all authentication tokens updated successfully.

1.6 创建grid和oracle用户目录结构

#这个目录存放oracle安装或升级信息

[root@rac1 ~]# mkdir -p /u01/app/oraInventory

[root@rac1 ~]# chown -R grid:oinstall /u01/app/oraInventory

[root@rac1 ~]# chmod -R 775 /u01/app/oraInventory

#这个目录存放asm实例信息

[root@rac1 ~]# mkdir -p /u01/app/grid

[root@rac1 ~]# chmod -R 775 /u01/app/grid

[root@rac1 ~]# chown -R grid:oinstall /u01/app/grid

#这个目录主要存放grid软件信息

[root@rac1 ~]# mkdir -p /u01/app/11.2.0/grid

[root@rac1 ~]# chown -R grid:oinstall /u01/app/11.2.0/grid

[root@rac1 ~]# chmod -R 775 /u01/app/11.2.0/grid

#oracle用户目录

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

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

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

[root@rac1 ~]# chmod -R 775 /u01/app/oracle

[root@rac1 ~]# mkdir -p /u01/app/oracle/product/11.2.0/db_1

[root@rac1 ~]# chown -R oracle:oinstall /u01/app/oracle/product/11.2.0/db_1

[root@rac1 ~]# chmod -R 775 /u01/app/oracle/product/11.2.0/db_1

1.7 修改系统参数

[root@rac1 ~]# vi /etc/security/limits.conf

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

grid soft nproc 2047

grid hard nproc 16384

grid soft nofile 1024

grid hard nofile 65536

[root@rac1 ~]# vi /etc/pam.d/login

session required pam_limits.so

[root@rac1 ~]# vi /etc/sysctl.conf

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

kernel.shmall = 2097152

kernel.shmmax = 4294967295

[root@rac1 ~]# sysctl -p

1.8 用户环境变量设置

#grid 用户

[root@rac1 ~]# su - grid

[grid@rac1 ~]$ vim /home/grid/.bash_profile

export ORACLE_BASE=/u01/app/grid

export ORACLE_HOME=/u01/app/11.2.0/grid

export PATH=$ORACLE_HOME/bin:$PATH

export ORACLE_SID=+ASM1

[grid@rac1 ~]$ source /home/grid/.bash_profile

#oracle用户

[grid@rac1 ~]$ su - oracle

Password:

[oracle@rac1 ~]$ vim /home/oracle/.bash_profile

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export PATH=$ORACLE_HOME/bin:$PATH

export ORACLE_SID=rac1

[oracle@rac1 ~]$ source /home/oracle/.bash_profile

二、单节点环境扩展

2.1、建立节点2 rac2

关闭虚拟机rac1,复制并命名为rac2。修改节点2的IP地址和hosts文件,主要参考/etc/udev/rules.d/70-persistent-net.rules文件,根据此文件内容,如下图:

删除从节点1复制过来的网卡信息,修改eth2、eth3为eth0、eth1:

根据前面的ip需求,配置节点2的IP和hosts文件,修改

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

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

/etc/sysconfig/network

/etc/hosts

修改oracle和grid用户的.bash_profile文件

2.3、
添加ASM共享磁盘--通过udev创建ASM DISK

2.4、将安装包上传至节点1中并解压

[root@rac1 tmp]# unzip p13390677_112040_Linux-x86-64_1of7.zip

[root@rac1 tmp]# unzip p13390677_112040_Linux-x86-64_2of7.zip

[root@rac1 tmp]# unzip p13390677_112040_Linux-x86-64_3of7.zip

三、Grid安装

3.1、以grid用户去执行解压文件中grid目录下的runInstaller文件

3.2、图形界面安装配置

忽略软件更新

对整个集群安装和配置Grid结构

选择自定义安装

默认英文

Cluster Name可自定义,SCAN Name需与hosts配置文件中Scan IP 的主机名一致

点击Add添加节点信息,选择setup建立SSH互信,点击Test测试互信

选择对应网卡接口

选择ASM存储

输入asm磁盘路径

选择常规冗余

#如果之前安装过,重装时会无法选取磁盘,这时可执行以下命令:

[root@rac1 ~]# dd if=/dev/zero of=/dev/asm_disk1 count=512

设置ASM管理密码,选择Yes

选择不配置IPM

选择相对应正确的组

选择安装目录,要与之前设置的环境变量一致

检查安装先决条件,根据警告信息逐个排查解决

据说ksh与pdksh功能相同,这里为了保险还是替换成pdksh包

pdksh在CenOs yum源中没有,下载离线包并上传,在两个节点上直接安装

[root@rac1 rpm]# scp /home/pdksh-5.2.14-37.el5_8.1.x86_64.rpm grid@rac2:/tmp/

grid@rac2's password:

pdksh-5.2.14-37.el5_8.1.x86_64.rpm 100% 206KB 205.9KB/s 00:00

cvuqdisk-1.0.9-1.rpm这个包在解压好的grid目录下,找到并安装即可

删除ntp配置文件

[root@rac1 ~]# rm -rf /etc/ntp

[root@rac1 ~]# rm -rf /etc/ntp.conf

[root@rac2 ~]# rm -rf /etc/ntp

[root@rac2 ~]# rm -rf /etc/ntp.conf

忽略这个问题

以root身份依次在两个节点上执行脚本

[root@rac1 ~]# /u01/app/oraInventory/orainstRoot.sh

[root@rac2 ~]# /u01/app/oraInventory/orainstRoot.sh

[root@rac1 ~]# /u01/app/11.2.0/grid/root.sh

报错提示信息:

这是因为库版本的原因:

解决办法就是建立软连接(/lib64 目录中执行):

[root@rac1 lib64]# ln -s libcap.so.2.16 libcap.so.1

[root@rac2 lib64]# ln -s libcap.so.2.16 libcap.so.1

再次在节点1中执行 /u01/app/11.2.0/grid/root.sh

脚本成功执行完成后在节点2中执行 /u01/app/11.2.0/grid/root.sh

以上四个脚本依次执行成功后,回到图形安装界面,点击窗口上的Ok,Grid继续进行安装;

这里出现一个错误信息:

参考这篇文档:http://blog.itpub.net/27099995/viewspace-2055156/

忽略这个问题

完成Grid安装

四、 Oracle数据库安装

4.1、
在节点1上使用oracle用户,在解压后的文件中找到database目录下的runInstaller文件并执行

4.2、
图形界面安装配置

忽略软件更新

选择仅安装Oracle数据库,数据库实例后面再单独安装

选择Oracle集群数据库的安装;Setup建立互信,Test检测互信

默认英文版

选择企业版

选择安装目录,要与之前设置的用户环境变量一致

没有DNS服务器的情况下,忽略这个问题

开始安装

在节点1上以root身份执行 [root@rac1 lib64]# /u01/app/oracle/product/11.2.0/db_1/root.sh

在节点2上以root身份执行[root@rac2 lib64]# /u01/app/oracle/product/11.2.0/db_1/root.sh

完成后回到图形安装界面,点击窗口上的Ok,继续执行安装

完成安装

五、
安装Oracle数据库实例

以oracle用户执行dbca命令,开始创建Oracle数据库实例

选择RAC database

选择创建数据库实例

选择常规模板

填写数据库名并选择在所有节点上安装

填写数据库管理密码,选择Yes继续

这里需要重新创建一个磁盘组来存放数据库相关数据文件和其他共享文件;

在节点1上,另开一个终端,以grid用户执行asmca命令,弹出下面窗口:

点击Create创建新的磁盘组

输入磁盘组名,选择常规冗余,勾选磁盘,点击OK开始创建

创建成功,点击OK回到主界面

点击右下角Exit,选择Yes退出这个界面,回到dbca界面,选择刚才创建的磁盘组

点击Next,并选择开启归档

由于是测试环境,选择安装较少的组件

选择utf-8

点击Next,继续下一步安装

可以选择性的勾选是否生成数据库创建脚本,点击Finish

点击OK

等待安装,这个过程会有几十分钟

至此,RAC环境搭建完成

六、
检查RAC环境组件是否正常工作

6.1、
检查crs是否正常工作

使用命令 crsctl check crs

6.2、
检查其他组件是否正常工作

使用命令 crsctl stat res -t

6.3、
查看监听状态

#可编辑TNS文件,cd /u01/app/oracle/product/11.2.0/db_1/network/admin/

6.4、
查看CTSS时间同步服务状态

6.5、
检查Oracle集群注册表(OCR)

6.6、
检查表决磁盘

6.7、
11g R2 RAC启动关闭步骤

vSphere在RedHat6.0上搭建Oracle 11g R2 RAC环境的更多相关文章

  1. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:4.安装Oracle RAC FAQ-4.7.Oracle 11G R2 RAC修改public网络IP

    问题:Linuxrac2节点的public网IP被占用,导致集群节点2无法访问 1.禁止相关CRS资源的启动,停止这些资源(vip,listener,scan,scan_listener,databa ...

  2. Oracle 11G R2 RAC中的scan ip 的用途和基本原理【转】

    Oracle 11G R2 RAC增加了scan ip功能,在11.2之前,client链接数据库的时候要用vip,假如你的cluster有4个节点,那么客户端的tnsnames.ora中就对应有四个 ...

  3. oracle 11g r2 rac到单实例的dg

    oracle 11g r2 rac到单实例的dg 1 主备环境说明 rac环境--primary CentOS release 6.5 (Final)hostname rac1 rac2ip 10.* ...

  4. Oracle 11G R2 RAC中的scan ip 的用途和基本原理

    Oracle 11G R2 RAC增加了scan ip功能,在11.2之前,client链接数据库的时候要用vip,假如你的cluster有4个节点,那么客户端的tnsnames.ora中就对应有四个 ...

  5. [转]Oracle 11g R2 RAC高可用连接特性 – SCAN详解

    原文地址:http://czmmiao.iteye.com/blog/2124373   昨天帮朋友解决11g RAC SCAN问题,当时为这朋友简单解答了一些SCAN特性相关的问题,但我知道这仅仅是 ...

  6. Oracle 11g R2 RAC 高可用连接特性

    转自-阿里巴巴许春值 1.scan概念 什么叫 SCAN,SCAN (Single Client Access Name) 是 Oracle 从11g R2 开始推出的,客户端可以通过 SCAN 特性 ...

  7. Linux x64系统上安装 oracle 11g R2 x64

    1.首先到官网上下载oracle 11g x64位软件包 下载地址: http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2 ...

  8. ORACLE 11G R2 RAC classical install OGG12.1(LINUX) 经典抽取模式单项同步配置OGG12.1

    博文结构图如下: 一.环境描述以及注意事项 1.1 环境简介 IP 系统 Oracle版本 OGG版本 源端 172.16.10.16/36 RHEL6.5 oracle11204 12.1 目标端 ...

  9. Oracle 11g R2 RAC with ASM存储迁移--Rman copy&ASM Rebalance(一)

    ASM GROUP-Rman copy迁移 0x00--环境介绍 VMware版本:VMware12pro 主机操作系统:RHEL6.5_64 共享存储使用VMWARE创建共享磁盘文件 数据库版本:O ...

随机推荐

  1. 通过RMAN克隆11g数据库(基于active database)

    11g的RMAN duplicate 可以通过Active databaseduplicate和Backup-based duplicate两种方法实现.这里的测试使用的是Active databas ...

  2. GCD教程(一):基本概念

    在网上看到关于GCD的一个很不错的教程,这里做一下转载 原帖地址:http://www.dreamingwish.com/dream-2012/of-of-of-of-gcd-introduced-1 ...

  3. 简单java web应用程序搭建与部署

    1. 准备工作 工具:tomcat.editplus.jdk.windows操作系统 操作:在windows操作系统上安装jdk.tomcat.editplus,配置JAVA_HOME,Path,CL ...

  4. Hadoop学习笔记-008-CentOS_6.5_64_yum安装mysql

    ******************************卸载mysql***************************** 第一步,查看centos上是否已经安装了mysql数据库 # rp ...

  5. 列存储段消除(ColumnStore Segment Elimination)

    列存储索引是好的!对于数据仓库和报表工作量,它们是真正的性能加速器.与聚集列存储结合,你会在常规行存储索引(聚集索引,非聚集索引)上获得巨大的压缩好处.而且创建聚集列存储索引非常简单: CREATE ...

  6. wamp修改空密码以及设置虚拟站点

    近来重装了一下wamp,索性记录一下,wamp安装完后,我的常用配置.首先,肯定要修改默认的空密码:其次,便要配置虚拟站点,因为当项目多的时候,每个项目分配成一个站点,对于开发来说,很方便管理.其实网 ...

  7. 安卓UDP通信

    功能: 实现了单次一发一收: import java.net.*; import java.io.*; public class udpRecv { /* * 创建UDP传输的接收端 * 1.建立ud ...

  8. 重新认识一个强大的 Gson

    从一个 Bug 说起 不知道你们发现没有,你写完的程序无论当时怎么测试,过一段时间总会出 Bug .再说一个每天都在发生的例子:在你写完一篇博客后,立即检查的话,总是查不出自己写的错别字. 据说这些都 ...

  9. Unity中的万能对象池

    本文为博主原创文章,欢迎转载.请保留博主链接http://blog.csdn.net/andrewfan Unity编程标准导引-3.4 Unity中的万能对象池 本节通过一个简单的射击子弹的示例来介 ...

  10. 如何发布第一个WP8.1程序(VisualStudio2015)

    学习WP开发有一段时间了,近一个月开始着手开发程序,并在开发程序中不断地学习(有一定的基础后,边开发程序,边学习是很好的,能练习运用所学的知识,并能在遇到问题后上网上资料不断地学习,很有效果,因为老是 ...