Centos7.9安装SQL Server 2019

准备工作
操作系统:Centos7.9 内存:4G 硬盘:40G CPU:2U
SQL Server版本:SQL Server 2019
软件安装包:下载地址

关闭SELinux

sed -i '/^SELINUX/s/enforcing/disabled/g' /etc/selinux/config && setenforce 0

添加软件源&保留原有网络源

curl https://packages.microsoft.com/config/rhel/7/prod.repo -o /etc/yum.repos.d/msprod.repo

安装依赖包

yum -y install mssql-tools unixODBC-devel bzip2 gdb libsss_nss_idmap cyrus-sasl cyrus-sasl-gssapi

安装SQL Server2019
下载文章上面提供的SQL Server2019,上传到服务器并安装

rpm -ivh mssql-server-15.0.4003.23-3.x86_64.rpm

运行初始化配制

/opt/mssql/bin/mssql-conf setup 
usermod: no changes
Choose an edition of SQL Server:
  1) Evaluation (free, no production use rights, 180-day limit)
  2) Developer (free, no production use rights)
  3) Express (free)
  4) Web (PAID)
  5) Standard (PAID)
  6) Enterprise (PAID) - CPU Core utilization restricted to 20 physical/40 hyperthreaded
  7) Enterprise Core (PAID) - CPU Core utilization up to Operating System Maximum
  8) I bought a license through a retail sales channel and have a product key to enter.

Details about editions can be found at
https://go.microsoft.com/fwlink/?LinkId=2109348&clcid=0x409

Use of PAID editions of this software requires separate licensing through a
Microsoft Volume Licensing program.
By choosing a PAID edition, you are verifying that you have the appropriate
number of licenses in place to install and run this software.

Enter your edition(1-8): 3      #这里选择了Express版本
The license terms for this product can be found in
/usr/share/doc/mssql-server or downloaded from:
https://go.microsoft.com/fwlink/?LinkId=2104294&clcid=0x409

The privacy statement can be viewed at:
https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x409

Do you accept the license terms? [Yes/No]:Yes   #输入Yes接受许可条目

Enter the SQL Server system administrator password:         #设置SA管理员密码
Confirm the SQL Server system administrator password: 
Configuring SQL Server...

The licensing PID was successfully processed. The new edition is [Express Edition].
ForceFlush is enabled for this instance. 
ForceFlush feature is enabled for log durability.
Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /usr/lib/systemd/system/mssql-server.service.
Setup has completed successfully. SQL Server is now starting.

添加环境变量

echo 'export PATH=$PATH:/opt/mssql-tools/bin' > /etc/profile.d/mssql.sh
source !$
source /etc/profile.d/mssql.sh

防火墙添加服务

firewall-cmd --permanent --add-service=mssql 
firewall-cmd --zone=public --add-port=1433/tcp --permanent
firewall-cmd --reload

命令行工具连接测试

sqlcmd -S localhost -U sa
Password:      #输入密码

ThinkSystem 服务器操作系统安装说明

下面是ThinkSystem服务器常见操作系统的安装说明,大家可以参考一下

序号 操作系统 链接 驱动
1 Windows Server 2016 and 2019 安装说明 Win驱动
2 Red Hat Enterprise Linux (RHEL 7 and RHEL 8) 安装说明 linux驱动
3 VMware ESXi 6.x 安装说明 vsphere驱动
4 VMware ESXi 7.x 安装说明 驱动
5 SUSE Linux Enterprise Server (SLES 12 and SLES 15) 安装说明 linux驱动
6 Canonical Ubuntu 18.04 安装说明 驱动

Centos7 创建NFS服务&客户端挂载

Centos7 创建NFS服务&客户端挂载


服务端操作:

1、安装NFS服务

yum -y install rpcbind nfs-utils

2、创建共享目录并赋予权限

mkdir /data/
chmod 777 -R /data

3、配置NFS文件目录&客户端IP

vi /etc/exports

/data 10.127.0.53(rw,no_root_squash,no_all_squash,sync)
/data 10.127.0.54(rw,no_root_squash,no_all_squash,sync)
/data 10.127.0.55(rw,no_root_squash,no_all_squash,sync)
/data 10.127.0.XXX(rw,no_root_squash,no_all_squash,sync)
  • rw 表示设置目录可读写。
  • sync 表示数据会同步写入到内存和硬盘中,相反 rsync 表示数据会先暂存于内存中,而非直接写入到硬盘中。
  • no_root_squash NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。
  • no_all_squash 不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都不会拥有匿名用户权限。

使配置立即生效

exportfs -r

4、设置防火墙

检查防火墙状态

systemctl status firewalld.service

如果是关闭状态则不需要做如下配置,否则需要打开这部分端口;

  1. NFS服务的端口配置文件 修改/etc/sysconfig/nfs文件,将下列内容的注释去掉,如果没有则添加
    vi /etc/sysconfig/nfs

    RQUOTAD_PORT=1001
    LOCKD_TCPPORT=30001
    LOCKD_UDPPORT=30002
    MOUNTD_PORT=1002
  2. 保存好后,将端口加入到防火墙允许策略中。执行:
    firewall-cmd --zone=public --add-port=111/tcp --add-port=111/udp --add-port=2049/tcp --add-port=2049/udp --add-port=1001/tcp --add-port=1001/udp --add-port=1002/tcp --add-port=1002/udp --add-port=30001/tcp --add-port=30002/udp --permanent

  3. 重新加载防火墙
    firewall-cmd --reload

5、启动服务

按顺序启动rpcbind和nfs服务

systemctl start rpcbind
systemctl start nfs

加入开机启动:

systemctl enable rpcbind
systemctl enable nfs


客户端操作:

1、安装NFS服务

yum -y install nfs-utils rpcbind

2、查看服务端已共享的目录

showmount -e 10.127.0.52 ##10.127.0.52为服务端IP

3、建立挂载目录,执行挂载命令:

mkdir /data
mount -t nfs4 10.127.0.52:/data /data

如果要解除挂载,可执行命令:
umount /data

4、开机自动挂载

vi /etc/fstab

10.127.0.52:/data /data nfs4 rw,tcp,intr 0 1

保存,通过mount&umount测试;最后重启测试

Oracle 11g RAC部署调优

一 系统网络资源
1.1网络分配:
主机名 公网(public) 专网(private) 虚拟网(vip)
Rac1 IP IP IP
Rac2 IP IP IP

1.2 硬件资源
Cpu :Intel(R) Xeon(TM) MP CPU 3.16GHz*2
内存:1G
硬盘: 20G
共享磁盘:6G
1.3 操作系统安装
1.3.1 操作系统版本:Red Hat Enterprise Linux AS release 4 (Nahant Update 4)
1.3.2 系统分区
分区信息 分区类型 分区大小
/boot ext3 100M
/ ext3 10240M
Swap swap 2048
/oracle ext3 10240M
/opt ext3 5120M
/tmp ext3 1024M
1.3.3 系统语言
简体中文,ENGLISH(USA)
1.3.4 安装模式
完全安装
二 数据安装资源
2.1 数据库安装包
2.1.1 ORACLE 11G软件包:
下载地址:www.oracle.com
Oracle Database 11g Release 1 (11.1.0.6.0) for Linux x86
Oracle Database 11g Release 1 Client (11.1.0.6.0) for Linux x86
Oracle Database 11g Examples (formerly Companion)
Oracle Clusterware Release 1 (11.1.0.6.0) for Linux x86
Oracle Database Gateways 11g Release 1 (11.1.0.6.0) for Linux x86
2.1.2 ORACLE 11G-ASMlib工具包:
下载地址:http://www.oracle.com/technology/software/tech/linux/asmlib/rhel4.html
oracleasm-2.6.9-42.ELsmp-2.0.3-1.i686.rpm
oracleasm-support-2.0.3-1.i386.rpm
oracleasmlib-2.0.2-1.i386.rpm

2.1.3 系统补丁的下载

下载地址:http://oss.oracle.com/projects/compat-oracle/files/RedHat/
compat-libcwait-2.1-1.i386.rpm
compat-oracle-rhel4-1.0-5.i386.rpm
三 系统安装配置
3.1 系统参数配置
3.1.1 关闭没必要的服务
chkconfig –level 35 autofs off
chkconfig –level 35 acpid off
chkconfig –level 35 sendmail off
chkconfig –level 35 cups-config-daemon off
chkconfig –level 35 cpus off
chkconfig –level 35 xfs off
chkconfig –level 35 lm_sensors off
chkconfig –level gpm off
chkconfig –level openibd off
chkconfig –level iiim off
chkconfig –level pcmcia off
chkconfig –level cpuspeed off
chkconfig –level nfslock off
chkconfig –level ip6tables off
chkconfig –level rpcidmapd off
chkconfig –level apmd off
chkconfig –level sendmail off
chkconfig –level arptables_jf off
chkconifg –level microcode_ctl off
chkconfig –level rpcgssd off

3.1.2设置主机表
vi /etc/hosts
127.0.0.1 localhost.localdomain localhost
IP rac1
IP racp1
IP racv1
IP rac2
IP racp2
IP racv2

3.1.3 修改内核参数
vi /etc/sysctl.conf
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 4194304
net.core.wmem_max = 4194304
kernel.panic = 60
3.1.4设置oracle登录使用资源数
vi /etc/security/limits.conf
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
vi /etc/pam.d/login –末行加入以下
session required pam_limits.so multiple open

3.1.5建立hangcheck模块加载
检测是否安装了hangcheck模块
[root@rac1]# find /lib/modules -name "hangcheck-timer.ko"
/lib/modules/2.6.9-42.ELsmp/kernel/drivers/char/hangcheck-timer.ko
设置模块为自动加载
su –
echo "options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180" >> /etc/modprobe.conf
或者
echo " /sbin/modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180" >> /etc/rc.local
检测模块是否运行
su –
modprobe hangcheck-timer
grep Hangcheck /var/log/messages | tail -2

3.1.6 禁用selinux
getsebool
getsebool: SELinux is disabled
vi /etc/selinux/config
SELINUX=disabled
3.1.7 添加oracle用户和用户组
mkdir –p /oracle/oracle
groupadd –g 502 dba
groupadd –g 501 oinstall
useradd –g 501 –G 502 –d /oracle/oracle oracle
passwd oracle
chown -R oracle.oinstall /oracle/oracle
3.1.8 修改主机名
vi /etc/sysconfig/network
HOSTNAME=rac1

hostname rac1

Rac 2 上同样执行
3.2 设置oracle用户
vi .bash_profile
umask 022
export ORACLE_BASE=/oracle/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db
export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs
export ORACLE_PATH=$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin

export ORACLE_SID=rac2

export ORACLE_SID=rac1
export NLS_LANG=AMERICAN_AMERICA.zhs16gbk
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_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 LD_ASSUME_KERNEL=2.4.19 # for RHEL AS 4
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

if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
3.3 配置ASM服务
3.3.1安装asm包
rpm -Uvh oracleasm-2.6.9-42.ELsmp-2.0.3-1.i686.rpm oracleasmlib-2.0.2-1.i386.rpm oracleasm-support-2.0.3-1.i386.rpm
安装asm包一定要和系统的内核相对应
3.3.2 配置asm服务
cd /etc/init.d/
[root@localhost init.d]# ./oracleasm configure
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver. The following questions will determine whether the driver is
loaded on boot and what permissions it will have. The current values
will be shown in brackets (‘[]’). Hitting without typing an
answer will keep that current value. Ctrl-C will abort.

Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
Start Oracle ASM library driver on boot (y/n) [n]: y
Fix permissions of Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: [ OK ]
Creating /dev/oracleasm mount point: [ OK ]
Loading module "oracleasm": [ OK ]
Mounting ASMlib driver filesystem: [ OK ]
Scanning system for ASM disks: [ OK ]
3.4 建立ssh等效性(在oracle用户操作)
3.4.1 建立相关目录生成密钥和公钥
su – oracle
mkdir -p ~/.ssh
chmod 755 ~/.ssh
[oracle@rac1 ~]$ /usr/bin/ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/oracle/oracle//.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /oracle/oracle//.ssh/id_rsa.
Your public key has been saved in /oracle/oracle//.ssh/id_rsa.pub.
The key fingerprint is:
16:2b:45:27:24:ee:97:46:5e:72:43:f1:9f:df:4b:dd oracle@rac1
[oracle@rac1 ~]$ /usr/bin/ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/oracle/oracle//.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /oracle/oracle//.ssh/id_dsa.
Your public key has been saved in /oracle/oracle//.ssh/id_dsa.pub.
The key fingerprint is:
0a:d5:e7:6a:a1:11:de:e4:72:74:fc:5f:b2:63:5b:6b oracle@rac1

同等在RAC2上建立公钥和私钥
3.4.2 建立等效密钥
在第一个主机上,以 oracle 用户身份登录
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
cp ~/.ssh/authorized_keys ~/.ssh/rac1.authorizedkeys
第二台主机上,以oracle用户登录
cat ~/.ssh/id
>> ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
cp ~/.ssh/authorized_keys ~/.ssh/rac2.authorized_keys

相互交换公钥
scp ~/.ssh/rac1.authorized_keys oracle@IP:
scp ~/.ssh/rac2.authorized_keys oracle@IP:

RAC2 上执行:
cat rac1.authorized_keys >> ~/.ssh/authorized_keys
RAC1上执行:
cat rac2.authorized_keys >> ~/.ssh/authorized_keys
建立等效性(每台机器都执行)
ssh rac1
ssh rac2
ssh racp1
ssh racp2
exec /usr/bin/ssh-agent $SHELL
/usr/bin/ssh-add

四 配置共享磁盘
4.1 建立ISCSI的共享磁盘
4.1.1 编译iscsi-target的源包
mkdir –p /usr/src/iscsi-target
wget http://www.cryptoforge.net/iscsi/RPMS/iscsitarget-0.4.12-6.src.rpm
rpmbuild –rebuild iscsitarget-0.4.12-6.src.rpm
rpm -Uvh iscsitarget-kernel-smp-0.4.12-6_2.6.9_42.EL.i386.rpm iscsitarget-0.4.12-6.i386.rpm
4.1.2 建立分区
fdisk /dev/sda
生成:/dev/sda8
fdisk /dev/sdb
生成:/dev/sdb1
4.1.3 配置共享盘
ISCSI服务端配置:
vi /etc/ietd.conf
注释掉所有的其他
Target iqn.2000-12.com.digicola:storage.lun1
IncomingUser gfs secretsecret
OutgoingUser
Lun 0 Path=/dev/sdb1,Type=fileio
Alias iDISK0

MaxConnections 6

Target iqn.2000-12.com.digicola:storage.lun2
IncomingUser gfs secretsecret
OutgoingUser
Lun 0 Path=/dev/sda8,Type=fileio
Alias iDISK1

MaxConnections 6

启动服务:service iscsi-target restart
加入开机启动:chkconfig –level 2345 iscsi-target on

Iscsi客户端配置:
vi /etc/iscsi.conf
DiscoveryAddress=192.168.1.156
OutgoingUserName=gfs
OutgoingPassword=secretsecret
LoginTimeout=15
DiscoveryAddress=192.168.1.15
启动服务:service iscis restart
加入开机启动:chkconfig –level 2345 iscsi on

检查:iscsi共享磁盘:
[root@rac1 ~]# iscsi-ls


SFNet iSCSI Driver Version …4:0.1.11-3(02-May-2006)


TARGET NAME : iqn.2000-12.com.digicola:storage.lun2
TARGET ALIAS :
HOST ID : 1
BUS ID : 0
TARGET ID : 0
TARGET ADDRESS : 192.168.1.156:3260,1
SESSION STATUS : ESTABLISHED AT Thu Oct 25 23:14:52 CST 2007
SESSION ID : ISID 00023d000001 TSIH 400
注:在从启系统时要注意iscsi-target服务和iscsi服务的启动顺序。先启动iscsi-target 在启动iscsi ,在/etc/rc3.d 下修改S后的数值,值约小启动级别越高
4.2 建立共享分区列表(一个节点操作即可)
分区信息 大小
/dev/sdc1 200M
/dev/sdc2 200M
/dev/sdc3 200M
/dev/sdc5 200M
/dev/sdc6 200M
/dev/sdc7 12000M

/dev/sdd1 2000M
/dev/sdd2 1000M
/dev/sdd3 1000M
/dev/sdd5 2600M
4.3 建立raw设备
vi /etc/sysconfig/rawdevices
/dev/raw/raw1 /dev/sdc1
/dev/raw/raw2 /dev/sdc2
/dev/raw/raw3 /dev/sdc3
/dev/raw/raw4 /dev/sdc5
/dev/raw/raw5 /dev/sdc6

启动服务:sevice rawdevices restart
开机启动:chkconfig –level 2345 rawdevices on
4.4 开机授权
vi /etc/rc.local
chown –R oracle.oinstall /dev/raw/raw
chmod +755 /dev/raw/raw

4.5建立asm磁盘卷组
4.5.1 建立asm卷组(单机执行)

service oracleasm createdisk FLASH /dev/sdd1
service oracleasm createdisk ARCH1 /dev/sdd2
service oracleasm createdisk ARCH2 /dev/sdd3
service oracleasm createdisk DATA /dev/sdd5

4.5.2 扫描asm卷组
service oracleasm scandisks

4.5.3 显示asm卷组
service oracleasm listdisks
五安装Cluster软件
注: 所有数据库软件都存放在/opt/oracle11g
5.1 cluster 硬件检测
./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -verbose
5.1.1 解压cluster 软件包
unzip linux_11gR1_clusterware.zip
安装补丁包
cd /opt/oracle11g/cluster/rpm
rpm -Uvh cvuqdisk-1.0.1-1.rpm
安装系统补丁包
rpm -Uvh compat-libcwait-2.1-1.i386.rpm compat-oracle-rhel4-1.0-5.i386.rpm

第一步运行 $ ./runInstaller
su – oracle
cd /opt/oracle11g/cluster
./runInstaller

 启动界面

指定crs主目录

检测系统资源

添加节点

设定网络使用(public、private)

指定OCR安装位置

指定Vo磁盘

指定安装内容开始安装

安装完毕
Root 在rac1、rac2 上依次运行
cd /oracle/oracle/
./orainstRoot.sh

cd /oracle/oracle/product/11.1.0.6.0/crs
./root.sh

安装完毕

六安装数据库软件
6.1 安装数据库的软件
Su – oracle
Cd /opt/oracle11g/database
./runInstaller

安装界面

选择安装内容

安装目录的选择

集群模式安装

选择安装组建

选择操作组(默认)

安装软件

是否需求oracle注册管理

安装软件确定

开始安装

安装完毕

6.2 配置监听
su – oracle
netca

配置监听名(不能变)

七 建立实例、安装数据库、配置asm
su – oracle
dbca

7.1建立asm磁盘组

7.2 建立数据库实例

选择密码

集群文件系统的选择

选择asm卷组

数据区的选择

选择安装组建

指定SGA、字符集、语言、进程数、连接模式

 开始建立数据实例

建立实例模板

建立实例

数据库建立完成指名emo位置