欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Oracle12.2RAConLinuxBestPracticeDocumentation

Oracle 12.2 RAC on RedHat 7.3 Best Practice Documentation

成都創(chuàng)新互聯(lián)專注于江孜網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供江孜營銷型網(wǎng)站建設(shè),江孜網(wǎng)站制作、江孜網(wǎng)頁設(shè)計、江孜網(wǎng)站官網(wǎng)定制、成都小程序開發(fā)服務(wù),打造江孜網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供江孜網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

# 項目需求建多套RAC,為減低管理成本,故建立一個統(tǒng)一的 12.2 RAC的模板。希望我的模板可以

# 幫助 Oracle 12.2 RAC on RedHat 7.3 這個應(yīng)用場景的同學,文檔已經(jīng)通過業(yè)務(wù)驗證,可放心使用。

# 但僅僅適合我司業(yè)務(wù),如您適用生產(chǎn)系統(tǒng)產(chǎn)生的任何風險概不負責,請謹慎。

# 12.2 RAC模板包含內(nèi)容如下:安裝RAC/升級Opatch并打補丁/安裝RAC后優(yōu)化

# 由于篇幅過長,附上目錄,便于同學們的學習。
目錄
Oracle 12cR2 RAC on Linux 最佳實踐文檔3
1.Oracle RAC安裝規(guī)劃3
a)RAC物理架構(gòu)圖3
b)軟件環(huán)境規(guī)劃3
c)用戶組與文件系統(tǒng)規(guī)劃3
d)網(wǎng)絡(luò)規(guī)劃4
e)存儲規(guī)劃4
2.Oracle RAC所有集群節(jié)點準備5
a)硬件檢驗5
1.操作系統(tǒng)基礎(chǔ)環(huán)境檢驗5
2.雙網(wǎng)卡綁定6
b)軟件檢驗7
c)操作系統(tǒng)配置與優(yōu)化8
1.操作系統(tǒng)rpm包需求8
2.操作系統(tǒng)創(chuàng)建軟件安裝組及用戶(oracle,grid)11
3.操作系統(tǒng)創(chuàng)建軟件安裝目錄12
4.操作系統(tǒng)內(nèi)核參數(shù)優(yōu)化14
5.操作系統(tǒng)內(nèi)存優(yōu)化16
6.操作系統(tǒng)共享內(nèi)存優(yōu)化17
7.操作系統(tǒng)軟件安裝用戶環(huán)境變量(oracle,grid)18
8.操作系統(tǒng)用戶(oracle,grid)硬性限制優(yōu)化22
9.操作系統(tǒng)關(guān)閉防火墻和selinux24
10.操作系統(tǒng)安裝軟件用戶(oracle,grid)互信配置25
11.操作系統(tǒng)使用/etc/hosts解析36
12.操作系統(tǒng)時間同步配置NTP38
3.Oracle RAC 共享存儲準備38
a)使用udev持久化磁盤權(quán)限38
b)powerpath多路徑軟件聚合LUN成一條路徑供系統(tǒng)使用40
c)設(shè)置Disk I/O Scheduler on Linux45
4.GI安裝46
a)cvuqdisk包需要所有節(jié)點均安裝46
b)GI軟件包直接解壓到GI的$ORACLE_HOME下46
c)升級Opatch57
d)GI補丁升級與GI圖形安裝47
5.RDBMS 軟件安裝66
a)DB軟件使用oracle用戶圖形安裝66
b)升級Opatch73
c)DB補丁升級74
6.ASMCA創(chuàng)建磁盤組75
7.DBCA創(chuàng)建數(shù)據(jù)庫79
8.RAC優(yōu)化90
a)安全90
1.用戶密碼策略優(yōu)化(可根據(jù)安全策略自行創(chuàng)建)90
2.優(yōu)化低端版本的客戶端無法登錄12c高版本數(shù)據(jù)庫問題(所有節(jié)點配置)90
b)實例優(yōu)化90
1.process進程數(shù)優(yōu)化90
2.實例本地進程并發(fā)優(yōu)化90
3.避免大量library cache lock導致用戶不能登錄的情況90
4.DBLINK使用insert優(yōu)化91
5.12.2 RAC 避免DataPump導入出現(xiàn)大量'Library Cache Lock' (Cycle)91
6.增加 db_files91
c)系統(tǒng)優(yōu)化91
1.大頁使用優(yōu)化91
9.附表93

1. Oracle RAC安裝規(guī)劃

a) RAC物理架構(gòu)圖

  Oracle 12.2 RAC on Linux Best Practice Documentation

b) 軟件環(huán)境規(guī)劃

軟件:

GI 軟件:linuxx64_12201_grid_home.zip

DB 軟件:linuxx64_12201_database.zip

GI 補丁:p29301687_122010_Linux-x86-64.zip

DB 補丁:p29314339_122010_Linux-x86-64.zip

Opatch 補丁:p6880880_122010_Linux-x86-64.zip

rpm包:compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm

數(shù)據(jù)庫版本:

12.2.0.1.19

操作系統(tǒng):

64bit Redhat 7.3

c) 用戶組與文件系統(tǒng)規(guī)劃

用戶組和文件系統(tǒng)配置

軟件 用戶 主組 輔助組 ORACLE_BASE ORACLE_HOME

GI grid oinstall dba,asmadmin,asmdba,asmoper,racdba /oracle/app/grid /oracle/app/12.2.0/grid

DB oracle oinstall dba,oper,asmdba, asmadmin,racdba,backupdba,dgdba,kmdba /oracle/app/oracle  $ORACLE_BASE/product/12.2.0/db_1

d) 網(wǎng)絡(luò)規(guī)劃

1. 優(yōu)先雙網(wǎng)卡綁定原則

2. 優(yōu)先私有網(wǎng)絡(luò)萬兆網(wǎng)卡原則

3. 避免使用169.254.*.* 地址原則

/etc/hosts列表如下

名稱 對應(yīng)網(wǎng)卡 IP 用途

bmcdb1 bond0 10.151.115.71 public

bmcdb1-vip 10.151.115.73 VIP

bmcdb1-priv bond1 192.155.1.171 private

bmcdb2 bond0 10.151.115.72 public

bmcdb2-vip 10.151.115.74 VIP

bmcdb2-priv bond1 192.155.1.172 private

scan-bmcdb 10.151.115.75 scan-ip

e) 存儲規(guī)劃

1. 設(shè)置disk I/O schedulers為Deadline

# echo deadline > /sys/block/${ASM_DISK}/queue/scheduler

2. 綁定存儲LUN屬性,保證系統(tǒng)重啟屬性不變

3. ASM規(guī)劃表

ASM規(guī)劃表

磁盤組名 分區(qū) 屬主 權(quán)限 單個LUN大小 冗余 總?cè)萘?/p>

OCR emcpowera grid:asmadmin 660 18G

emcpowerb grid:asmadmin 660 18G     Normal 54G

emcpowerc grid:asmadmin 660 18G

DATA emcpowere grid:asmadmin 660 200G External 200G

FRA emcpowerf grid:asmadmin 660 100G External 100G

OCR 磁盤組:保存CRS信息及Voting disk等信息

DATA磁盤組:保存數(shù)據(jù)文件、控制文件

FRA磁盤組:保存節(jié)點的歸檔文件

2. Oracle RAC所有集群節(jié)點準備

a) 硬件檢驗

1. 操作系統(tǒng)基礎(chǔ)環(huán)境檢驗

# 操作系統(tǒng)發(fā)行版

cat /etc/redhat-release 

# 內(nèi)核版本

uname -a

# Memory total

grep MemTotal /proc/meminfo

# SWAP Total

grep SwapTotal /proc/meminfo

# tmp目錄大小

df -h /tmp

# 當前內(nèi)存和swap使用狀態(tài)

free -g

# 共享內(nèi)存大小

df -h /dev/shm

# CPU 型號,物理個數(shù),核數(shù),邏輯個數(shù)

cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

cat /proc/cpuinfo| grep "cpu cores"| uniq

cat /proc/cpuinfo| grep "processor"| wc -l

# 節(jié)點信息收集省略

2. 雙網(wǎng)卡綁定 

# 雙網(wǎng)卡綁定采用主備模式,雙節(jié)點保持Bond模式一置,并持續(xù)ping,拔物理線進行測試

[oracle@bmcdb1 ~]$ cat /etc/sysconfig/network-scripts/ifcfg-bond0_slave_1

HWADDR=E4:43:4B:72:F7:0C

TYPE=Ethernet

NAME="bond0 slave 1"

UUID=53c72c58-f724-4d50-b27c-71cf218d24ec

DEVICE=em1

>

MASTER=bond0

SLAVE=yes

[oracle@bmcdb1 ~]$ cat /etc/sysconfig/network-scripts/ifcfg-bond0_slave_2

HWADDR=E4:43:4B:72:F7:0D

TYPE=Ethernet

NAME="bond0 slave 2"

UUID=af3db5d3-323c-411f-8070-f5083f8cffbc

DEVICE=em2

>

MASTER=bond0

SLAVE=yes

[oracle@bmcdb1 ~]$ cat /etc/sysconfig/network-scripts/ifcfg-Bond_connection_1 

DEVICE=bond0

BONDING_OPTS="miimon=1 updelay=0 downdelay=0 mode=active-backup"

TYPE=Bond

BONDING_MASTER=yes

BOOTPROTO=none

IPADDR=10.151.115.71

PREFIX=24

GATEWAY=10.151.115.1

DNS1=10.156.84.62

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_PEERDNS=yes

IPV6_PEERROUTES=yes

IPV6_FAILURE_FATAL=no

IPV6_PRIVACY=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME="Bond connection 1"

UUID=3d289bb5-e405-4674-a7b3-5abc21fea392

>

b) 軟件檢驗

GI 軟件:linuxx64_12201_grid_home.zip

DB 軟件:linuxx64_12201_database.zip

GI 補丁:p29301687_122010_Linux-x86-64.zip

DB 補丁:p29314339_122010_Linux-x86-64.zip

Opatch 補丁:p6880880_122010_Linux-x86-64.zip

EMC powerpath 軟件:EMCPower.LINUX-6.3.0.01.00-001.RHEL7.x86_64.rpm

操作系統(tǒng)RPM包:操作系統(tǒng)鏡像或光盤

c) 操作系統(tǒng)配置與優(yōu)化

1. 操作系統(tǒng)rpm包需求

# 操作系統(tǒng)最低要求

bc

binutils-2.23.52.0.1-12.el7 (x86_64)

compat-libcap1-1.10-3.el7 (x86_64)

compat-libstdc++-33-3.2.3-71.el7 (i686)

compat-libstdc++-33-3.2.3-71.el7 (x86_64)

glibc-2.17-36.el7 (i686)

glibc-2.17-36.el7 (x86_64)

glibc-devel-2.17-36.el7 (i686)

glibc-devel-2.17-36.el7 (x86_64)

ksh

libaio-0.3.109-9.el7 (i686)

libaio-0.3.109-9.el7 (x86_64)

libaio-devel-0.3.109-9.el7 (i686)

libaio-devel-0.3.109-9.el7 (x86_64) 

libgcc-4.8.2-3.el7 (i686)

libgcc-4.8.2-3.el7 (x86_64)

libstdc++-4.8.2-3.el7 (i686)

libstdc++-4.8.2-3.el7 (x86_64)

libstdc++-devel-4.8.2-3.el7 (i686)

libstdc++-devel-4.8.2-3.el7 (x86_64)

libxcb-1.9-5.el7 (i686)

libxcb-1.9-5.el7 (x86_64)

libX11-1.6.0-2.1.el7 (i686)

libX11-1.6.0-2.1.el7 (x86_64)

libXau-1.0.8-2.1.el7 (i686)

libXau-1.0.8-2.1.el7 (x86_64)

libXi-1.7.2-1.el7 (i686)

libXi-1.7.2-1.el7 (x86_64)

libXtst-1.2.2-1.el7 (i686)

libXtst-1.2.2-1.el7 (x86_64)

libXrender (i686)

libXrender (x86_64)

libXrender-devel (i686)

libXrender-devel (x86_64)

make-3.82-19.el7 (x86_64)

net-tools-2.0-0.17.20131004git.el7 (x86_64) (for Oracle RAC and Oracle Clusterware)

nfs-utils-1.3.0-0.21.el7.x86_64 (for Oracle ACFS)

smartmontools-6.2-4.el7 (x86_64)

sysstat-10.1.5-1.el7 (x86_64)

1.1 rpm包檢驗

# 檢驗系統(tǒng)缺少的rpm包并打印出來

for i in \

bc binutils compat-libcap1 compat-libstdc++-33 glibc glibc-devel ksh libaio libaio-devel \

libgcc libstdc++ libstdc++-devel libxcb libX11 libXau libXi libXtst libXrender libXrender-devel gcc-c++ \

make net-tools nfs-utils smartmontools sysstat

do

rpm -q $i &>/dev/null || F="$F $i"

done ;echo $F;unset F

1.2 yum批量安裝軟件包

# yum批量安裝rpm包,安裝具體過程省略

yum install bc binutils compat-libcap1 compat-libstdc++ glibc glibc-devel ksh libaio libaio-devel \

 libgcc gcc libstdc++ libstdc++-devel libxcb libX11 libXau libXi libXtst libXrender libXrender-devel \

make net-tools nfs-utils smartmontools sysstat gcc-c++

# yum配置

# 解壓tar包在當前目錄

tar -xvf media.tar

# 更名原有的repo

mv /etc/yum.repos.d/redhat.repo /etc/yum.repos.d/redhat.repo_bk

# 創(chuàng)建新本地的repo

vi  /etc/yum.repos.d/redhat7.repo

[redhat7.repo]

name=local

baseurl=file:///soft/media

gpgcheck=0

enabled=1

# 清除緩存,查看軟件庫,更新元數(shù)據(jù)緩存,查看yum的包

yum clean all #Remove cached data

yum repolist  #Display the configured software repositories

yum makecache #Generate the metadata cache

yum list #List a package or groups of packages

1.3 rpm包再次檢驗

# 還是使用上面的腳本,直到無軟件包輸出為止

2. 操作系統(tǒng)創(chuàng)建軟件安裝組及用戶(oracle,grid)

groupadd --gid 54321 oinstall

groupadd --gid 54322 dba

groupadd --gid 54323 asmdba

groupadd --gid 54324 asmoper

groupadd --gid 54325 asmadmin

groupadd --gid 54326 oper

groupadd --gid 54327 backupdba

groupadd --gid 54328 dgdba

groupadd --gid 54329 kmdba

groupadd --gid 54330 racdba

useradd --uid 54321 --gid oinstall --groups dba,oper,asmdba,asmadmin,racdba,backupdba,dgdba,kmdba oracle

passwd oracle

useradd --uid 54322 --gid oinstall --groups dba,asmadmin,asmdba,asmoper,racdba grid

passwd grid

3. 操作系統(tǒng)創(chuàng)建軟件安裝目錄

vi /etc/oraInst.loc

inventory_loc=/oracle/app/oraInventory

inst_group=oinstall

# Create the Oracle Inventory Directory

# To create the Oracle Inventory directory, enter the following commands as the root user:

mkdir -p /oracle/app/oraInventory

chown -R grid:oinstall /oracle/app/oraInventory

chmod -R 775 /oracle/app/oraInventory

# Creating the Grid Infrastructure Base Directory

mkdir -p /oracle/app/grid

chown -R grid:oinstall /oracle/app/grid

chmod -R 775 /oracle/app/grid

# Creating the Oracle Grid Infrastructure Home Directory

mkdir -p /oracle/app/12.2.0/grid

chown -R grid:oinstall /oracle/app/12.2.0/grid

chmod -R 775 /oracle/app/12.2.0/grid

# Creating the Oracle Base Directory

mkdir -p /oracle/app/oracle

mkdir -p /oracle/app/oracle/cfgtoollogs 

# needed to ensure that dbca is able to run after the rdbms installation.

chown -R oracle:oinstall /oracle/app/oracle

chmod -R 775 /oracle/app/oracle

# Creating the Oracle RDBMS Home Directory

mkdir -p /oracle/app/oracle/product/12.2.0/db_1

chown -R oracle:oinstall /oracle/app/oracle/product/12.2.0/db_1

chmod -R 775 /oracle/app/oracle/product/12.2.0/db_1

4. 操作系統(tǒng)內(nèi)核參數(shù)優(yōu)化

# 內(nèi)存為128G,設(shè)置kernel.shmmax=70G,SGA=50G and PGA=10G

# kernel.shmmni該參數(shù)是系統(tǒng)共享內(nèi)存段最大個數(shù)

# kernel.shmmax該參數(shù)是一個進程共享內(nèi)存段最大尺度 

# SHMMAX應(yīng)略大于SGA尺寸

# kernel.shmall該參數(shù)是共享內(nèi)存總量

# kernel.shmall大于shmmax/PAGE_SIZE

cat /etc/sysctl.conf 

kernel.shmmni = 4096

kernel.shmmax = 75161927680

kernel.shmall = 18350080

kernel.sem = 250 32000 100 128 

fs.file-max = 7553600

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

# 安裝數(shù)據(jù)庫實例后算出并添加此參數(shù)

vm.nr_hugepages = 25026

# 立即生效(root)

/sbin/sysctl -p

#NOTE: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/ tuning_and_optimizing_red_hat_enterprise_linux_for_oracle_9i_and_10g_databases/index

#NOTE: The latest information on kernel parameter settings for Linux can be found  in My Oracle Support ExtNote:169706.1.#

5. 操作系統(tǒng)內(nèi)存優(yōu)化

# Oracle一直建議關(guān)閉Transparent HugePages來優(yōu)化內(nèi)存的使用,

# 故關(guān)閉Transparent HugePages

grubby --default-kernel

grubby --args="transparent_hugepage=never" --update-kernel

grubby --info /boot/vmlinuz-3.10.0-514.el7.x86_64 >> /boot/grub2/grub.cfg

cat /sys/kernel/mm/transparent_hugepage/enabled

grep AnonHugePages /proc/meminfo

reboot

# 節(jié)點1執(zhí)行展示結(jié)果

[root@bmcdb1 ~]# grubby --default-kernel

/boot/vmlinuz-3.10.0-514.el7.x86_64

[root@bmcdb1 ~]# grubby --args="transparent_hugepage=never" --update-kernel /boot/vmlinuz-3.10.0-514.el7.x86_64

# grubby --info /boot/vmlinuz-3.10.0-514.el7.x86_64 >> /boot/grub2/grub.cfg

cat /boot/grub2/grub.cfg

index=0

kernel=/boot/vmlinuz-3.10.0-514.el7.x86_64

args="ro crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet.UTF-8 transparent_hugepage=never"

root=/dev/mapper/rhel-root

initrd=/boot/initramfs-3.10.0-514.el7.x86_64.img

title=Red Hat Enterprise Linux Server (3.10.0-514.el7.x86_64) 7.3 (Maipo)

# 確認已關(guān)閉 Transparent HugePages

[root@bmcdb1 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled

always madvise [never]

[root@bmcdb1 ~]# grep AnonHugePages /proc/meminfo

AnonHugePages:         0 kB

# reboot 展示結(jié)果忽略

6. 操作系統(tǒng)共享內(nèi)存優(yōu)化

# Redhat 7.2以后systemd-logind service引入了新的功能,用戶注銷時,刪除所有IPC對象

# 避免用戶中斷時系統(tǒng)刪除共享SGA內(nèi)存,

# 導致ASM和database instance down機,故設(shè)置RemoveIPC=no

echo "RemoveIPC=no" >> /etc/systemd/logind.conf

systemctl restart systemd-logind

# ALERT: Setting RemoveIPC=yes on Redhat 7.2 and higher Crashes ASM and Database Instances as Well as Any Application That Uses a Shared Memory Segment (SHM) or Semaphores (SEM) (文檔 ID 2081410.1)

# 節(jié)點1執(zhí)行展示結(jié)果

[root@bmcdb1 ~]# echo "RemoveIPC=no" >> /etc/systemd/logind.conf

[root@bmcdb1 ~]#  cat /etc/systemd/logind.conf

……中間展示忽略……

#RemoveIPC=no

RemoveIPC=no

# 設(shè)置共享內(nèi)存

# 通過/etc/fstab設(shè)置共享內(nèi)存

[root@bmcdb1 ~]# cat /etc/fstab 

#

# /etc/fstab

# Created by anaconda on Tue Jun 25 01:24:22 2019

#

# Accessible filesystems, by reference, are maintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

/dev/mapper/rhel-root   /                       xfs     defaults        0 0

UUID=1d01dfb8-026c-464f-9d8a-7bf9ee5079e5 /boot                   xfs     defaults        0 0

UUID=741B-866B          /boot/efi               vfat    umask=0077,shortname=winnt 0 0

/dev/mapper/rhel-swap   swap                    swap    defaults        0 0

shm /dev/shm tmpfs defaults,size=80G 0

[root@bmcdb2 home]# cat /etc/fstab 

#

# /etc/fstab

# Created by anaconda on Mon Jul  1 19:01:01 2019

#

# Accessible filesystems, by reference, are maintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

/dev/mapper/rhel-root   /                       xfs     defaults        0 0

UUID=39a4f14f-aab6-4e71-9424-c4fe0610c7fb /boot                   xfs     defaults        0 0

UUID=7E8A-CC6A          /boot/efi               vfat    umask=0077,shortname=winnt 0 0

/dev/mapper/rhel-swap   swap                    swap    defaults        0 0

shm /dev/shm tmpfs defaults,size=80G 0

7. 操作系統(tǒng)軟件安裝用戶環(huán)境變量(oracle,grid)

# grid

[grid@Bmcdb1 ~]$ vi .bash_profile

export PS1="[`whoami`@`hostname`:"'$PWD]$'

export JAVA_HOME=/usr/local/java; export JAVA_HOME

export ORACLE_BASE=/oracle/app/grid

export ORACLE_HOME=/oracle/app/12.2.0/grid

export ORACLE_SID=+ASM1 

export ORACLE_PATH=/oracle/app/oracle/common/oracle/sql;

export ORACLE_TERM=xterm; 

export NLS_DATE_FORMAT="DD-MON-YYYY HH24:MI:SS"; 

export NLS_LANG=american_america.ZHS16GBK ; 

export TNS_ADMIN=$ORACLE_HOME/network/admin; 

export ORA_NLS11=$ORACLE_HOME/nls/data;

export PATH=$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

export TEMP=/tmp

export TMPDIR=/tmp

umask=022

# oracle

[oracle@Bmcdb1 ~]$ vi .bash_profile

export PS1="[`whoami`@`hostname`:"'$PWD]$'

export JAVA_HOME=/usr/local/java;

export ORACLE_BASE=/oracle/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db_1

export ORACLE_SID=bmcdb1;

export ORACLE_UNQNAME=bmcdb;

export ORACLE_PATH=/oracle/app/common/oracle/sql;

export ORACLE_TERM=xterm; 

export NLS_DATE_FORMAT="DD-MON-YYYY HH24:MI:SS";

export NLS_LANG=american_america.ZHS16GBK ; 

export TNS_ADMIN=$ORACLE_HOME/network/admin;

export ORA_NLS11=$ORACLE_HOME/nls/data; 

export PATH=$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

export THREADS_FLAG=native;

export TEMP=/tmp

export TMPDIR=/tmp

umask=022

8. 操作系統(tǒng)用戶(oracle,grid)硬性限制優(yōu)化

# 提升用戶硬性限制(Oracle、grid用戶默認的硬性限制不滿足GI安裝和配置)

# limits.conf為PAM模板配置文件;所以應(yīng)先配置PAM,即配置如下:

echo "session required pam_limits.so" >> /etc/pam.d/login

# RAC未運行之前,無法實際測量vm.nr_hugepages大小。

# 原則:Number Hugepages * Hugepagesize = minimum Memlock < RAM 

cat /etc/security/limits.conf

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

oracle soft stack 10240

oracle hard stack 32768

oracle soft memlock 134144000

oracle hard memlock 134144000

grid soft nproc 2047

grid hard nproc 16384

grid soft nofile 1024

grid hard nofile 65536

grid soft stack 10240

grid hard stack 32768

#NOTE:What is Memlock and How to Calculate the Values for Memlock (文檔 ID 2511230.1)

# shell開始文件限制提升

cat /etc/profile 

if [ $USER = "oracle" ] || [ $USER = "grid" ]; then

if [ $SHELL = "/bin/ksh" ]; then

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

umask 022

fi

9. 操作系統(tǒng)關(guān)閉防火墻和selinux

# 關(guān)閉防火墻

systemctl status firewalld

systemctl start firewalld.service

systemctl stop firewalld.service

systemctl disable firewalld.service

systemctl status firewalld

# 永久關(guān)閉selinux

cat /etc/sysconfig/selinux

SELINUX=disabled

10. 操作系統(tǒng)安裝軟件用戶(oracle,grid)互信配置

# 在節(jié)點1配置ssh互信,步驟如下:

# 使用root將數(shù)據(jù)庫軟件拷貝至/home/oracle/下:

# 此腳本適合多節(jié)點安裝優(yōu)先使用

# chown oracle:oinstall linuxx64_12201_database.zip

# su - oracle

$ unzip linuxx64_12201_database.zip

$ cd database/sshsetup/

$ ./sshUserSetup.sh -user oracle -hosts "node1 node2" -advanced -noPromptPassphrase

$ ./sshUserSetup.sh -user grid -hosts "node1 node2" -advanced -noPromptPassphrase

# 檢驗互信

# 節(jié)點1, bmcdb1上執(zhí)行檢驗操作

$ ssh bmcdb1 date;ssh bmcdb2 date;ssh  bmcdb1priv  date;ssh  bmcdb2priv  date

# 節(jié)點2, bmcdb2上執(zhí)行檢驗操作

$ ssh bmcdb1 date;ssh bmcdb2 date;ssh  bmcdb1priv  date;ssh  bmcdb2priv  date

11. 操作系統(tǒng)使用/etc/hosts解析

# /etc/hosts解析地址如下

[oracle@bmcdb1 ~]$ cat /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

# PUBLIC-IP

10.151.115.61  bmcdb1

10.151.115.62  bmcdb2

# VIP-IP

10.151.115.63  bmcdb1vip

10.151.115.64  bmcdb2vip

# PRIVATE-IP

192.155.1.161  bmcdb1priv

192.155.1.162  bmcdb2priv

# SCAN-IP

10.151.115.65  scanbmcdb

# 優(yōu)先使用/etc/hosts,故files在dns前

[root@bmcdb1 ~]# cat  /etc/nsswitch.conf  | grep hosts

# hosts:     db files nisplus nis dns

hosts:      files dns myhostname

12. 操作系統(tǒng)時間同步配置NTP

# 每十分鐘同步一次時間服務(wù)器,使用crontab定時任務(wù)調(diào)用ntpdate命令同步

檢查系統(tǒng)時間

# date 

# 公司內(nèi)部時間服務(wù)器

[root@bmcdb1 soft]# crontab -l

*/10 * * * * /usr/sbin/ntpdate 10.151.113.73

[root@bmcdb2 ~]# crontab -l

*/10 * * * * /usr/sbin/ntpdate 10.151.113.73

3. Oracle RAC 共享存儲準備

a) powerpath多路徑軟件聚合LUN成一條路徑供系統(tǒng)使用

# powerpath安裝及存儲磁盤分配等工作請安排專業(yè)的存儲工程師完成

# 節(jié)點1執(zhí)行展示結(jié)果

[root@bmcdb1 ~]# powermt display dev=all

Pseudo name=emcpowera

VPLEX ID=CKM00182201323  

Logical device ID=6000144000000010F0127E4709356BC6 [device_Unity0004_New_BmcDB_ocr3_1_vol]

state=alive; policy=ADaptive; queued-IOs=0

==============================================================================

--------------- Host ---------------   - Stor -  -- I/O Path --   -- Stats ---

###  HW Path               I/O Paths    Interf.  Mode     State   Q-IOs Errors

==============================================================================

  16 lpfc                   sdaw       CL1-0B    active   alive      0      0

  16 lpfc                   sdaq       CL1-0A    active   alive      0      0

  16 lpfc                   sdak       CL1-08    active   alive      0      0

  16 lpfc                   sdae       CL1-09    active   alive      0      0

  15 lpfc                   sdy        CL1-0F    active   alive      0      0

  15 lpfc                   sds        CL1-0E    active   alive      0      0

  15 lpfc                   sdm        CL1-0D    active   alive      0      0

  15 lpfc                   sdg        CL1-0C    active   alive      0      0

Pseudo name=emcpowerb

VPLEX ID=CKM00182201323  

Logical device ID=6000144000000010F0127E4709356BC4 [device_Unity0004_New_BmcDB_ocr2_1_vol]

state=alive; policy=ADaptive; queued-IOs=0

==============================================================================

--------------- Host ---------------   - Stor -  -- I/O Path --   -- Stats ---

###  HW Path               I/O Paths    Interf.  Mode     State   Q-IOs Errors

==============================================================================

  16 lpfc                   sdav       CL1-0B    active   alive      0      0

  16 lpfc                   sdap       CL1-0A    active   alive      0      0

  16 lpfc                   sdaj       CL1-08    active   alive      0      0

  16 lpfc                   sdad       CL1-09    active   alive      0      0

  15 lpfc                   sdx        CL1-0F    active   alive      0      0

  15 lpfc                   sdr        CL1-0E    active   alive      0      0

  15 lpfc                   sdl        CL1-0D    active   alive      0      0

  15 lpfc                   sdf        CL1-0C    active   alive      0      0

Pseudo name=emcpowerc

VPLEX ID=CKM00182201323  

Logical device ID=6000144000000010F0127E4709356BC2 [device_Unity0004_New_BmcDB_ocr1_1_vol]

state=alive; policy=ADaptive; queued-IOs=0

==============================================================================

--------------- Host ---------------   - Stor -  -- I/O Path --   -- Stats ---

###  HW Path               I/O Paths    Interf.  Mode     State   Q-IOs Errors

==============================================================================

  16 lpfc                   sdau       CL1-0B    active   alive      0      0

  16 lpfc                   sdai       CL1-08    active   alive      0      0

  16 lpfc                   sdao       CL1-0A    active   alive      0      0

  16 lpfc                   sdac       CL1-09    active   alive      0      0

  15 lpfc                   sdw        CL1-0F    active   alive      0      0

  15 lpfc                   sdq        CL1-0E    active   alive      0      0

  15 lpfc                   sdk        CL1-0D    active   alive      0      0

  15 lpfc                   sde        CL1-0C    active   alive      0      0

Pseudo name=emcpowerd

VPLEX ID=CKM00182201323  

Logical device ID=6000144000000010F0127E4709356BC3 [device_Unity0004_New_BmcDB_dsg_1_vol]

state=alive; policy=ADaptive; queued-IOs=0

==============================================================================

--------------- Host ---------------   - Stor -  -- I/O Path --   -- Stats ---

###  HW Path               I/O Paths    Interf.  Mode     State   Q-IOs Errors

==============================================================================

  16 lpfc                   sdat       CL1-0B    active   alive      0      0

  16 lpfc                   sdan       CL1-0A    active   alive      0      0

  16 lpfc                   sdah       CL1-08    active   alive      0      0

  16 lpfc                   sdab       CL1-09    active   alive      0      0

  15 lpfc                   sdv        CL1-0F    active   alive      0      0

  15 lpfc                   sdp        CL1-0E    active   alive      0      0

  15 lpfc                   sdj        CL1-0D    active   alive      0      0

  15 lpfc                   sdd        CL1-0C    active   alive      0      0

Pseudo name=emcpowere

VPLEX ID=CKM00182201323  

Logical device ID=6000144000000010F0127E4709356BC7 [device_Unity0004_New_BmcDB_data1_1_vol]

state=alive; policy=ADaptive; queued-IOs=0

==============================================================================

--------------- Host ---------------   - Stor -  -- I/O Path --   -- Stats ---

###  HW Path               I/O Paths    Interf.  Mode     State   Q-IOs Errors

==============================================================================

  16 lpfc                   sdas       CL1-0B    active   alive      0      0

  16 lpfc                   sdam       CL1-0A    active   alive      0      0

  16 lpfc                   sdag       CL1-08    active   alive      0      0

  16 lpfc                   sdaa       CL1-09    active   alive      0      0

  15 lpfc                   sdu        CL1-0F    active   alive      0      0

  15 lpfc                   sdo        CL1-0E    active   alive      0      0

  15 lpfc                   sdi        CL1-0D    active   alive      0      0

  15 lpfc                   sdc        CL1-0C    active   alive      0      0

Pseudo name=emcpowerf

VPLEX ID=CKM00182201323  

Logical device ID=6000144000000010F0127E4709356BC5 [device_Unity0004_New_BmcDB_arch2_1_vol]

state=alive; policy=ADaptive; queued-IOs=0

==============================================================================

--------------- Host ---------------   - Stor -  -- I/O Path --   -- Stats ---

###  HW Path               I/O Paths    Interf.  Mode     State   Q-IOs Errors

==============================================================================

  16 lpfc                   sdaf       CL1-08    active   alive      0      0

  16 lpfc                   sdar       CL1-0B    active   alive      0      0

  16 lpfc                   sdal       CL1-0A    active   alive      0      0

  16 lpfc                   sdz        CL1-09    active   alive      0      0

  15 lpfc                   sdt        CL1-0F    active   alive      0      0

  15 lpfc                   sdn        CL1-0E    active   alive      0      0

  15 lpfc                   sdh        CL1-0D    active   alive      0      0

  15 lpfc                   sdb        CL1-0C    active   alive      0      0

b) 使用udev持久化磁盤權(quán)限

# NOTE:How To Set Device Name Using UDEV on OL 7.X (文檔 ID 2056427.1)

# 編輯rules規(guī)則文件

# 注意:rules文件中uuid區(qū)別大小寫,

# 故要注意scsi_id -g -u -d  $devnode 的輸出結(jié)果。

KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT=="36000144000000010f0127e4709356bc5", RUN+="/bin/sh -c 'mknod /dev/asmarchdisk1 b $major $minor; chown grid:asmadmin /dev/asmarchdisk1; chmod 0660 /dev/asmarchdisk1'"
KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT=="36000144000000010f0127e4709356bc7", RUN+="/bin/sh -c 'mknod /dev/asmdatadisk1 b $major $minor; chown grid:asmadmin /dev/asmdatadisk1; chmod 0660 /dev/asmdatadisk1'"
KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT=="36000144000000010f0127e4709356bc2", RUN+="/bin/sh -c 'mknod /dev/asmocrdisk1 b $major $minor; chown grid:asmadmin /dev/asmocrdisk1; chmod 0660 /dev/asmocrdisk1'"
KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT=="36000144000000010f0127e4709356bc4", RUN+="/bin/sh -c 'mknod /dev/asmocrdisk2 b $major $minor; chown grid:asmadmin /dev/asmocrdisk2; chmod 0660 /dev/asmocrdisk2'"
KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT=="36000144000000010f0127e4709356bc6", RUN+="/bin/sh -c 'mknod /dev/asmocrdisk3 b $major $minor; chown grid:asmadmin /dev/asmocrdisk3; chmod 0660 /dev/asmocrdisk3'"

# 啟動Udev 

/sbin/udevadm trigger --type=devices --action=change 

# 查看磁盤

[root@pcmdb1 rpm]# /sbin/udevadm trigger --type=devices --action=change

[root@pcmdb1 rpm]# ls -l /dev/asm*

brw-rw---- 1 grid asmadmin 8, 16 Nov 24 15:19 /dev/asmarchdisk

brw-rw---- 1 grid asmadmin 8, 32 Nov 24 15:19 /dev/asmdatadisk

brw-rw---- 1 grid asmadmin 8, 48 Nov 24 15:19 /dev/asmocrdisk1

brw-rw---- 1 grid asmadmin 8, 64 Nov 24 15:19 /dev/asmocrdisk2

brw-rw---- 1 grid asmadmin 8, 80 Nov 24 15:19 /dev/asmocrdisk3

c) 設(shè)置Disk I/O Scheduler on Linux

# 設(shè)置I/0 scheduler為[deadline]狀態(tài),共享使用

echo deadline > /sys/block/${ASM_DISK}/queue/scheduler

# 節(jié)點1執(zhí)行展示結(jié)果,查看當前scheduler狀態(tài)是否為[deadline]

[root@bmcdb1 ~]# cat /sys/block/emcpowera/queue/scheduler 

noop [deadline] cfq 

[root@bmcdb1 ~]# cat /sys/block/emcpowerb/queue/scheduler 

noop [deadline] cfq 

[root@bmcdb1 ~]# cat /sys/block/emcpowerc/queue/scheduler 

noop [deadline] cfq 

[root@bmcdb1 ~]# cat /sys/block/emcpowerd/queue/scheduler 

noop [deadline] cfq 

[root@bmcdb1 ~]# cat /sys/block/emcpowere/queue/scheduler 

noop [deadline] cfq 

[root@bmcdb1 ~]# cat /sys/block/emcpowerf/queue/scheduler 

noop [deadline] cfq

4. GI安裝

a) cvuqdisk包需要所有節(jié)點均安裝

[root@bmcdb1 rpm]# ls

cvuqdisk-1.0.10-1.rpm

[root@bmcdb1 rpm]# pwd

/home/oracle/database/rpm

[root@bmcdb1 rpm]# rpm -ivh cvuqdisk-1.0.10-1.rpm

Preparing...                          ################################# [100%]

Updating / installing...

   1:cvuqdisk-1.0.10-1                ################################# [100%]

[root@bmcdb1 rpm]# scp cvuqdisk-1.0.10-1.rpm root@bmcdb2:/home/oracle

The authenticity of host 'bmcdb2 (10.151.115.72)' can't be established.

ECDSA key fingerprint is e5:25:bb:51:c6:da:76:25:1d:4a:59:a8:e4:6d:92:ef.

Are you sure you want to continue connecting (yes/no) yes

Warning: Permanently added 'bmcdb2' (ECDSA) to the list of known hosts.

root@bmcdb2's password: 

cvuqdisk-1.0.10-1.rpm

[root@bmcdb2 rules.d]# cd /home/oracle

You have new mail in /var/spool/mail/root

[root@bmcdb2 oracle]# ls

cvuqdisk-1.0.10-1.rpm

[root@bmcdb2 oracle]# pwd

/home/oracle

[root@bmcdb2 oracle]# rpm -ivh cvuqdisk-1.0.10-1.rpm 

Preparing...                          ################################# [100%]

Updating / installing...

   1:cvuqdisk-1.0.10-1                ################################# [100%]

b) GI軟件包直接解壓到GI的$ORACLE_HOME下

su - grid

unzip -d $ORACLE_HOME /soft/linuxx64_12201_grid_home.zip

# 安裝過程省略

# runcluvfy.sh檢驗系統(tǒng)環(huán)境(先解壓GI包,后才有runcluvfy.sh腳本)

./runcluvfy.sh stage -pre crsinst -n bmcdb1,bmcdb2 -verbose

# 過程省略

c) 升級Opatch

# 用新的Opatch直接覆蓋原有舊的Opatch

# 修改執(zhí)行權(quán)限

[root@bmcdb1 soft]# chmod 775 p6880880_122010_Linux-x86-64.zip

[grid@bmcdb1:/home/grid]$unzip -d /oracle/app/12.2.0/grid/ /soft/p6880880_122010_Linux-x86-64.zip 

Archive:  /soft/p6880880_122010_Linux-x86-64.zip

  inflating: /oracle/app/12.2.0/grid/OPatch/emdpatch.pl  

replace /oracle/app/12.2.0/grid/OPatch/oplan/oplan [y]es, [n]o, [A]ll, [N]one, [r]ename: A

# 過程省略

d) GI補丁升級與GI圖形安裝

# 修改補丁執(zhí)行權(quán)限

[root@bmcdb1 12.2.0.1_grid_2019aprpatch]# chmod a+x p29301687_122010_Linux-x86-64.zip 

[root@bmcdb1 12.2.0.1_grid_2019aprpatch]# ls -l p29301687_122010_Linux-x86-64.zip 

-rwxr-xr-x 1 root root 1736326653 Jul 18 15:02 p29301687_122010_Linux-x86-64.zip

# 創(chuàng)建補丁安裝目錄

[grid@bmcdb1:/oracle/app/12.2.0/grid]$mkdir -p /oracle/app/12.2.0/grid/gridpsu

# 解壓補丁

[grid@bmcdb1:/oracle/app/12.2.0/grid]$unzip -d /oracle/app/12.2.0/grid/gridpsu  /soft/12.2.0.1_grid_2019aprpatch/p29301687_122010_Linux-x86-64.zip

# 應(yīng)用補丁并安裝GI

/usr/bin/xauth:  file /home/grid/.Xauthority does not exist

[grid@bmcdb1:/home/grid]$export DISPLAY=10.156.84.215:0.0

[grid@bmcdb1:/home/grid]$xclock

Warning: Missing charsets in String to FontSet conversion

# 使用grid用戶補丁和GI圖形安裝

[grid@bmcdb1:/oracle/app/12.2.0/grid]$./gridSetup.sh -applyPSU /oracle/app/12.2.0/grid/gridpsu/29301687

...圖形界面安裝省略...

root執(zhí)行root.sh腳本

 # 節(jié)點1執(zhí)行root.sh腳本記錄(共19步)

...雙節(jié)點需都執(zhí)行成功,具體步驟省略...

GI安裝成功

# GI安裝成功后,服務(wù)狀態(tài)如下:

[grid@bmcdb1:/home/grid]$crsctl stat res -t

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

Name           Target  State        Server                   State details       

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

Local Resources

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

ora.ASMNET1LSNR_ASM.lsnr

               ONLINE  ONLINE       bmcdb1               STABLE

               ONLINE  ONLINE       bmcdb2               STABLE

ora.OCR.dg

               ONLINE  ONLINE       bmcdb1               STABLE

               ONLINE  ONLINE       bmcdb2               STABLE

ora.LISTENER.lsnr

               ONLINE  ONLINE       bmcdb1               STABLE

               ONLINE  ONLINE       bmcdb2               STABLE

ora.net1.network

               ONLINE  ONLINE       bmcdb1               STABLE

               ONLINE  ONLINE       bmcdb2               STABLE

ora.ons

               ONLINE  ONLINE       bmcdb1               STABLE

               ONLINE  ONLINE       bmcdb2               STABLE

ora.proxy_advm

               OFFLINE OFFLINE      bmcdb1               STABLE

               OFFLINE OFFLINE      bmcdb2               STABLE

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

Cluster Resources

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

ora.LISTENER_SCAN1.lsnr

      1        ONLINE  ONLINE       bmcdb1               STABLE

ora.MGMTLSNR

      1        OFFLINE OFFLINE                               STABLE

ora.asm

      1        ONLINE  ONLINE       bmcdb1               Started,STABLE

      2        ONLINE  ONLINE       bmcdb2               Started,STABLE

      3        OFFLINE OFFLINE                               STABLE

ora.cvu

      1        ONLINE  ONLINE       bmcdb1               STABLE

ora.bmcdb1.vip

      1        ONLINE  ONLINE       bmcdb1               STABLE

ora.bmcdb2.vip

      1        ONLINE  ONLINE       bmcdb2               STABLE

ora.qosmserver

      1        ONLINE  ONLINE       bmcdb1               STABLE

ora.scan1.vip

      1        ONLINE  ONLINE       bmcdb1               STABLE

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

檢驗補丁情況

# 節(jié)點1執(zhí)行opatch檢驗補丁情況,節(jié)點2執(zhí)行結(jié)果忽略。雙節(jié)點結(jié)果相同

[grid@bmcdb1:/oracle/app/12.2.0/grid/OPatch]$./opatch lsinventory

Oracle Interim Patch Installer version 12.2.0.1.17

Copyright (c) 2019, Oracle Corporation.  All rights reserved.

Oracle Home       : /oracle/app/12.2.0/grid

Central Inventory : /oracle/app/oraInventory

   from           : /oracle/app/12.2.0/grid/oraInst.loc

OPatch version    : 12.2.0.1.17

OUI version       : 12.2.0.1.4

Log file location : /oracle/app/12.2.0/grid/cfgtoollogs/opatch/opatch3019-08-05_16-56-31PM_1.log

Lsinventory Output file location : /oracle/app/12.2.0/grid/cfgtoollogs/opatch/lsinv/lsinventory2019-08-05_16-56-31PM.txt

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

Local Machine Information::

Hostname: bmcdb1

ARU platform id: 226

ARU platform description:: Linux x86-64

Installed Top-level Products (1): 

Oracle Grid Infrastructure 12c                                       12.2.0.1.0

There are 1 products installed in this Oracle Home.

Interim patches (5) :

Patch  26839277     : applied on Mon Aug 05 13:48:23 CST 2019

Unique Patch ID:  21578760

Patch description:  "DBWLM RELEASE UPDATE 12.2.0.1.0(ID:170913) (26839277)"

   Created on 21 Sep 2017, 03:13:10 hrs PST8PDT

   Bugs fixed:

     26584906

Patch  29314339     : applied on Mon Aug 05 13:48:16 CST 2019

Unique Patch ID:  22821655

Patch description:  "Database Apr 2019 Release Update : 12.2.0.1.190416 (29314339)"

   Created on 24 Mar 2019, 03:28:52 hrs PST8PDT

   Bugs fixed:

     26362155, 28023399, 25741955, 25873336, 26966616, 27097854, 28617631

     ……中間省略修改的bug號……

     28951382, 28960211, 28987439, 28991884, 28993590, 29027694, 29189889

     29250230

Patch  28566910     : applied on Mon Aug 05 13:47:53 CST 2019

Unique Patch ID:  22413436

Patch description:  "TOMCAT RELEASE UPDATE 12.2.0.1.0(ID:180802.1448.S) (28566910)"

   Created on 28 Aug 2018, 23:01:25 hrs PST8PDT

  &nb

當前標題:Oracle12.2RAConLinuxBestPracticeDocumentation
網(wǎng)站地址:http://www.chinadenli.net/article2/giccoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站微信公眾號網(wǎng)站策劃定制網(wǎng)站網(wǎng)站改版網(wǎng)站導航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站