Oracle 12c RAC 安装文档

Wesley13
• 阅读 741

随笔- 91  文章- 0  评论- 11 

Oracle 12c RAC 安装文档

参考文档:

https://docs.oracle.com/en/database/oracle/oracle-database/12.2/cwlin/index.html

https://docs.oracle.com/en/database/oracle/oracle-database/12.2/ladbi/index.html

https://oracle-base.com/articles/linux/udev-scsi-rules-configuration-in-oracle-linux

https://oracle-base.com/articles/12c/oracle-db-12cr2-rac-installation-on-oracle-linux-7-using-virtualbox

建设背景:

建设本文档的目的在于详细梳理12c RAC图形化安装的流程,结合官方文档尽可能解释安装过程中的各种操作的原理,提供不同的存储配置方法和参数修改方法,最后形成一套完整的12c RAC图形化安装步骤以便于今后参考。

安装流程:

一、软件下载

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle12c-linux-12201-3608234.html

下载 linuxx64_12201_database.zip 和 linuxx64_12201_grid_home.zip 就可以了,然后上传至节点1的任意目录。

Oracle 12c RAC 安装文档

二、硬件和网络环境****

  • 检查内存(至少8GB)、Swap和硬盘大小等等,参考GRID官网安装文档的:Server Hardware Checklist for Oracle Database Installation。

需要说明的是12c RAC安装,OCR盘至少需要40GB大小,因为12c新增了MGMTDB实例进行集群管理,如果你不单独的为他创建一个磁盘组,这些信息就会进入OCR盘,导致OCR盘需要40GB的空间才够,其中OCR和votefiles大约需要2GB,MGMT占用38GB,如果RAC节点数大于2那么还需要再增加一些MGMT的空间,例如5节点大约需要再加5GB,当然这里的值都是在外部冗余的条件下计算的。

  • 检查操作系统版本,参考GRID官网安装文档的:Operating System Checklist for Oracle Database Installation on Linux。

本文的系统环境为Oracle Enterprise Linux 6.9。

  • tmpfs务必保证至少是最大内存的一半。

如果需要更大的SGA,那么至少要将将tmpfs设置为大于SGA的值,因为OEL系统下Oracle占用的共享内存不能大于tmpfs。

  • 检查网络环境。

7个IP是需要申请的,其中2个作为Public IP,2个作为VIP,1个Scan-IP,这5个IP应当是同一网段的,最后还需要2个不同网段的Private IP,虽然私网IP可以自定义,但是在不清楚私网是通过公网直连还是通过单独的交换机时(其实oracle要求private ip的interconnect使用单独的交换机且带宽需要至少是GB级别),最好申请独立的私网IP。网卡每个节点需要2个至少,Public IP占用一个,Private占用一个。

  • 以下为一个示例/etc/hosts文件:

1

2

3

4

5

6

7

8

9

10

11

12

13

vi /etc/hosts

#需要注意的是12c对主机名的要求比以前更加严格,不再允许出现下划线 '_' ,只能使用连接线 '-'

# Public IP

192.168.10.101 node1

192.168.10.102 node2

#Private IP

1.1.1.1 node1-priv

1.1.1.2 node2-priv

#VIP

192.168.10.103 node1-vip

192.168.10.104 node2-vip

#Scan-IP

192.168.10.105 scanip

三、系统环境设置

Oracle强烈推荐使用一个名为oracle-database-server-12cR2-preinstall的RPM包来做预原装的检测工作。

此RPM包安装完毕后会出现一个/usr/bin/oracle-database-server-12cR2-preinstall-verify的系统命令,此命令主要就是做一些RAC安装前的准备工作,如禁用透明大页,修改内核参数和修改用户limits等等,需要提示的是此脚本只修改Oracle用户的limits,对于grid用户你需要把Oracle的limits内容复制一遍就可以了,相关的文件位置为:

1

2

3

/etc/security/limits.d/oracle- database -server-12cR2-preinstall.conf

--需要说明的是:limits.d目录中的用户限制文件是在/etc/security/limits.conf文件生效之后生效的,因此会覆盖limits.conf文件中的重复部分。

--稳妥起见直接在/etc/security/limits.d/oracle-database-server-12cR2-preinstall.conf文件中定义好oracle和grid用户的ulimit限制。

Oracle提供了多种 oracle-database-server-12cR2-preinstall RPM包的下载方式,这里只选择我认为较简单的一种获取方式:

1

2

3

4

5

6

wget http://yum.oracle.com/ public -yum-ol6.repo -O /etc/yum.repos.d/ public -yum-ol6.repo

--执行以上下载命令前最好检查下你是否本来就有public-yum-ol6.repo,如果有先做个备份防止被覆盖。

yum -y install oracle- database -server-12cR2-preinstall

--如果无法联网,那么可以使用yum的--downloadonly选项在其他机器上下载此rpm包后上传到安装节点,然后使用rpm安装。

--无法联网时使用rpm安装oracle-database-server-12cR2-preinstall还需要先安装ksh依赖包。

--此外注意,如果没有yum makecache那么以上安装可能非常慢,因为这个repo库特别庞大,国内网络连Oracle的yum源的速度大家也懂得。

安装完毕后会出现一个oracle-database-server-12cR2-preinstall-verify的系统命令,执行此命令应该就可以进行预设置了,然而实测还发现这个命令在OEL6.5版本上不能用,因为需要/etc/sysctl.d文件夹,这个文件夹OEL6.9是有的6.5并没有,因此要么是需要低版本的oracle-database-server-12cR2-preinstall,要么是不支持OEL6.5,无论是哪种原因这里都懒得深究了。

那么假如不用oracle-database-server-12cR2-preinstall,我们自己大致需要做哪些预操作呢,主要有以下几部分:

  • 禁用透明大页

如果有大页需求,Oracle建议使用标准的大页提升性能,严禁使用透明大页。透明大页与标准大页的区别在于可以在系统运行时分配内存,而标准大页只能重启生效。

如果你要使用大页来提升性能,请务必搜索安装文档的所有HugePage关键词,根据文档作出修改,消除大页带来的隐患。

具体禁用透明大页的步骤,我就不复制粘贴了,有兴趣的参考12c GI安装文档的4.13部分--Disabling Transparent HugePages,百度也可以查到关闭方式,一般系统都是默认关闭的。

  • 基础包安装

oracle-database-server-12cR2-preinstall也不会帮你装好这些包,因此这一步是必须要手工做的。

1

2

3

yum -y install binutils.x86_64 compat-libcap1.x86_64 compat-libstdc* e2fsprogs.x86_64 libaio* libXau* libXi* libXtst* libstdc* glibc* libgcc* ksh gcc-c++*

--以上命令是我自己简化后的安装语句,一般来说执行完以上安装就足够了,不够也没事,装grid时如果有缺失的根据报错Detail再装就好了。

--不同Linux版本所需的包完整列表参考GI安装官方文档的4.7小节--Operating System Requirements for x86-64 LinuxPlatforms。

  • 内核参数修改(64GB内存 40GB tmpfs时的设置)

1

2

3

4

5

6

7

8

9

10

11

12

vi /etc/sysctl.conf

fs.aio- max -nr = 1048576

fs.file- max = 6815744

kernel.shmall = 10485760

kernel.shmmax = 42949672960

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

  • 时间同步设置

参考网上配置ntp相关的文档即可,手工设置时间也可以。

  • 禁用防火墙和selinux

由于内网的数据交互会使用大量UDP端口,因此官网要求为RAC关闭防火墙,所以:

1

2

3

4

5

service iptables stop

service ip6tables stop

chkconfig iptables off

chkconfig ip6tables off

--selinux的关闭自己上网搜。

其他的预安装要求个人认为不再需要了,如果有更高的性能需求可以查看官方文档来进行更详细的设置,但本着简单安装、简单管理的原则,就这样啦。

四、用户、组、以及目录

1

2

3

4

5

6

7

8

9

--两节点添加用户和组

groupadd -g 501 oinstall

groupadd -g 502 dba

groupadd -g 503 asmadmin

groupadd -g 504 asmdba

groupadd -g 505 asmoper

groupadd -g 506 oper

useradd -u 501 -g oinstall -G asmadmin,asmdba,asmoper,dba grid

useradd -u 502 -g oinstall -G dba,asmdba,oper oracle

1

2

3

4

5

6

7

8

9

10

--两节点创建目录并设置权限

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

mkdir -p /u01/app/grid

mkdir -p /u01/12.2.0/grid

mkdir -p /u01/app/oraInventory

chown -R oracle.oinstall /u01/app/oracle/

chown -R oracle.oinstall /u01/app/oracle/*

chown -R grid.oinstall /u01/app/grid/

chown -R grid.oinstall /u01/app/oraInventory/

chown -R grid.oinstall /u01/12.2.0/grid/

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

--修改用户安全限制:

--如果你不使用oracle-database-server-12cR2-preinstall,那么将以下内容复制到/etc/security/limits.conf文件中即可

--如果你使用了oracle-database-server-12cR2-preinstall,那么将以下内容复制到/etc/security/limits.d/oracle-database-server-12cR2-preinstall.conf中即可(将之前的内容清空)

oracle soft nofile 2048

oracle hard nofile 65536

oracle soft nproc 16384

oracle hard nproc 16384

oracle soft stack 10240

oracle hard stack 32768

oracle hard memlock 134217728

oracle soft memlock 134217728

grid soft nofile 2048

grid hard nofile 65536

grid soft nproc 16384

grid hard nproc 16384

grid soft stack 10240

grid hard stack 32768

grid hard memlock 134217728

grid soft memlock 134217728

--无论以上哪种用户安全限制方式,都是需要PAM模块来调用的,因此继续检查/etc/pam.d/login文件内容:

session   required    pam_limits.so

如果未发现以上行,那么加上。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

--两节点设置用户环境变量,向.bash_profile添加如下项:

su - grid

vi .bash_profile

export ORACLE_BASE=/u01/app/grid

export ORACLE_HOME=/u01/12.2.0/grid

export ORACLE_SID=+ASM1/+ASM2

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

su - oracle

vi .bash_profile

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db_1

export ORACLE_SID=orcl1/orcl2<br>export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

1

2

3

4

5

6

7

8

9

10

11

12

--在节点一配置ssh互信,步骤如下:

--使用root将数据库软件拷贝至/home/oracle/下:

# 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

--最后在节点1使用oracle和grid用户都执行以下两条命令验证互信:

$ ssh node2 date

$ ssh node2-priv date

--如果不需要输入密码则说明互信配置成功。

五、存储环境设置

存储的配置总结下只有2步:持久化配置 和 权限配置 。一般来说这两步是可以合在一起的,只是使用多路径软件时需要分开来讲(多路径软件多了一个多路径聚合的步骤)。

所谓持久化就是将磁盘通过UUID或者其他唯一标识符绑定为一个human friendly的磁盘名(可以是磁盘的软链接等),而权限配置就是为了可以使oracle可以正确使用这些磁盘,给他们赋予正确的用户和组以及权限(MODE)。

在Linux环境下能够实现设备持久化的系统服务就是udev,除此之外几乎别无他法(就算有也千万别用)。可以通过man udev来查看udev rules的配置规则。

我们分两种情况来描述存储配置的步骤。

  • 情况一:使用多路径软件时:

一般来说生产上的存储使用系统自带的多路径软件multipath即可完成多路径持久化配置(lvm device mapper),这里贴一个示例配置文件的一部分:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

# multipath.conf written by anaconda

......

multipaths {

multipath {

wwid "360080e50003279f000001a785a275fe8"

alias REDO_01

}

multipath {

wwid "360080e50003279f000001a775a275fba"

alias RAC_OCR

}

multipath {

wwid "360080e50003279f000001a795a27604e"

alias RAC_ARCHIVE

}

multipath {

wwid "360080e50003217cc00001c6d5a280dd8"

alias REDO_02

}

multipath {

wwid "360080e50003217cc00001c6e5a280e2b"

alias RAC_DATA

}

}

--不建议在这里加uid gid mode来设置属主和权限,因为不能设置附属group。

根据uuid进行了alias的绑定,之后重启multipathd即可,使用multipath -ll可以看到聚合后的盘。

然后使用multipath自带的udev规则文件12-dm-permissions.rules来完成聚合盘(/dev/dm-*)的udev配置,这样安装时直接查找/dev/mapper/*路径即可找到以alias名字显示的盘。

1

2

3

4

5

6

7

--设置步骤:

cp /usr/share/doc/device-mapper-1.02.117/12-dm-permissions.rules /etc/udev/rules.d/

vi /etc/udev/rules.d/12-dm-permissions.rules

--添加或注释如下一行:

ENV{DM_UUID}== "mpath-?*" , OWNER:= "grid" , GROUP := "asmadmin" , MODE:= "660"

--说白了就是设置下聚合盘的权限

start_udev

1

2

3

4

5

6

7

8

9

10

这里还有一些替代的方法,例如使用60-raw.rules来代替12-dm-permissions.rules的权限设置功能,例子如下:

# vi /etc/udev/rules.d/60-raw.rules

ACTION == "add" , KERNEL== "dm-0" , RUN+= "/bin/raw /dev/raw/raw1 %N"

ACTION == "add" , KERNEL== "dm-1" , RUN+= "/bin/raw /dev/raw/raw2 %N"

ACTION == "add" , KERNEL== "dm-2" , RUN+= "/bin/raw /dev/raw/raw3 %N"

ACTION == "add" , KERNEL== "dm-3" , RUN+= "/bin/raw /dev/raw/raw4 %N"

ACTION == "add" , KERNEL== "dm-4" , RUN+= "/bin/raw /dev/raw/raw5 %N"

KERNEL== "raw*" , OWNER= "grid" GROUP = "asmadmin" , MODE= "0660"

--其原理是:/dev/mapper/下的盘符其实是指向/dev/dm-*的,将这些聚合盘映射为裸设备,也可以同时改变权限,缺点在于没有alias容易混淆。

# start_udev

至此情况一的权限配置已经完成了。

  • 情况二:如果你未使用multipath(常见于使用虚拟机的测试环境)

那么直接使用99-oracle-asmdevices.rules(udev规则,名字随便定,第一个数字表示解析顺序)或者通过60-raw.rules绑定raw盘来完成持久化配置和权限配置,并绑定易于人眼识别的name。

这种直接使用udev规则的方式与上述多路径绑定的区别只是在于无需通过多路径lvm进行映射,使用udev直接完成了绑定工作+权限配置工作。

参考:https://oracle-base.com/articles/linux/udev-scsi-rules-configuration-in-oracle-linux

以及参考:官网文档附加的A部分中的Configuring Device Persistence Manually for Oracle ASM小节

基本步骤就是:

首先获取sd盘的uuid或ID_SERIAL(或其他可以唯一标识磁盘且在udev中定义了的标识符),然后将uuid/ID_SERIAL绑定至99-oracle-asmdevices.rules即可。

例如:

/usr/lib/udev/scsi_id -g -u -d /dev/sdb --获取到某个盘的scsi-id。

udevadm info --query=all --name=/dev/sdb | grep ID_SERIAL --获取到某个盘的ID_SERIAL

本文绑定UUID和ID_SERIAL的示例都来一个,以便新手可以清楚的认识udev是个什么东西:

绑定UUID示例(其实还可以大大简化):

1

2

3

4

[root[@node1](https://my.oschina.net/u/4273199) ~]# cat /etc/udev/rules.d/99-oracle-asmdevices.rules

KERNEL== "sd*" , ENV{DEVTYPE}== "disk" , SUBSYSTEM== "block" , PROGRAM== "/usr/lib/udev/scsi_id -g -u -d $devnode" , RESULT== "1ATA_VBOX_HARDDISK_VBc6580c49-d54cc0df" , RUN+= "/bin/sh -c 'mknod /dev/asmdisk01 b $major $minor; chown grid:asmadmin /dev/asmdisk01; chmod 0660 /dev/asmdisk01'"

KERNEL== "sd*" , ENV{DEVTYPE}== "disk" , SUBSYSTEM== "block" , PROGRAM== "/usr/lib/udev/scsi_id -g -u -d $devnode" , RESULT== "1ATA_VBOX_HARDDISK_VB41a7cba4-749c4aec" , RUN+= "/bin/sh -c 'mknod /dev/asmdisk02 b $major $minor; chown grid:asmadmin /dev/asmdisk02; chmod 0660 /dev/asmdisk02'"

KERNEL== "sd*" , ENV{DEVTYPE}== "disk" , SUBSYSTEM== "block" , PROGRAM== "/usr/lib/udev/scsi_id -g -u -d $devnode" , RESULT== "1ATA_VBOX_HARDDISK_VB6aaaf601-96dab065" , RUN+= "/bin/sh -c 'mknod /dev/asmdisk03 b $major $minor; chown grid:asmadmin /dev/asmdisk03; chmod 0660 /dev/asmdisk03'"

绑定ID_SERIAL示例:

1

2

3

KERNELS== "sd*" ,ENV{ID_SERIAL}== "VBOX_HARDDISK_VBc6580c49-d54cc0df" ,SYMLINK+= "asm-ocr" , OWNER= "grid" ,GROUP= "asmadmin" ,MODE= "0660"

KERNELS== "sd*" ,ENV{ID_SERIAL}== "VBOX_HARDDISK_VB41a7cba4-749c4aec" ,SYMLINK+= "asm-mgmt" ,OWNER= "grid" ,GROUP= "asmadmin" ,MODE= "0660"

KERNELS== "sd*" ,ENV{ID_SERIAL}== "VBOX_HARDDISK_VB6aaaf601-96dab065" ,SYMLINK+= "asm-data" ,OWNER= "grid" ,GROUP= "asmadmin" ,MODE= "0660"

 需要注意的是rules文件中的内容是不允许任何主动换行符的,例如\等。

然后执行如下命令使udev规则生效即可:

1

2

3

udevadm control --reload-rules

udevadm trigger --type=devices

//Linux 7之前应该只需要start_udev即可,7版本去除了start_udev的命令,使用udevadm替代。

至于udev的规则文件中KERNELS,ENV{}都是些什么东西,为何用KERNELS和KERNEL都可以,为何用不同的命名方式都行,直接man udev寻找答案。

在这里我还要提一句,udev在CentOS-7上有个坑,NAME关键字不再能表示devnode名了,只能表示网卡名,这坑实在是太深我也翻车了,仔细看了好几遍man udev才发现。

六、GRID安装

这里有个小坑,12c的GRID安装不再会按你设置的grid用户的$ORACLE_HOME变量来作为GI的家目录,而是直接将你GRID软件的解压目录作为家目录。

当然这个小坑还可能引发另一个大坑,多次尝试安装grid时你会发现绑定好的磁盘即便dd格式化掉在安装grid时也找不到了...此时只要删了解压的grid目录重新解压安装就好了...(MMP的12c,还有扯淡的屎一样PDB,谁让你从11g升12c直接上腿就完事了)

你需要将linuxx64_12201_grid_home.zip拷贝至grid用户的$ORACLE_HOME,本文中就是/u01/12.2.0/grid,然后:

1

2

3

4

# chown grid.oinstall linuxx64_12201_grid_home.zip

# su - grid

$ unzip linuxx64_12201_grid_home.zip

--这样在进行安装时就会将你设置的grid用户的$ORACLE_HOME作为GI家目录了。

--注意所有软件都只需在节点一解压,节点二无需操作,安装GI和DB软件的过程中安装程序会自动将软件传至远端节点。

1

2

3

4

5

--这里还需要先装下cvuqdisk包,这个包存在于解压后的/home/oracle/database/rpm/目录下:

cp /home/oracle/ database /rpm/cvuqdisk-1.0.10-1.rpm /root

--使用root rpm安装cvuqdisk

rpm -ivh cvuqdisk-1.0.10-1.rpm

--以上包的安装需要在2节点都执行,使用scp将cvuqdisk包传至节点二安装。

解压后使用grid用户进行GI安装:

1

2

cd /u01/12.2.0/grid/

./gridSetup.sh

接下来基本只要下一步下一步就完事了,我自己的安装步骤忘了截图,因此这里参考下如下网址的安装截图:

https://oracle-base.com/articles/12c/oracle-db-12cr2-rac-installation-on-oracle-linux-7-using-virtualbox

注意:别按他的预安装步骤做,他使用的是很古老的单用户RAC安装方式,现在推荐使用单独的grid用户来管理集群,与管理数据库的oracle用户分离开。

Oracle 12c RAC 安装文档 Oracle 12c RAC 安装文档

Oracle 12c RAC 安装文档

Oracle 12c RAC 安装文档

--这里需要特别说明下,如果你选了YES即为GIMR创建单独的MGMT磁盘组,那么OCR盘大小20GB左右就可以(当然你还需要为MGMT磁盘组准备存储,大概需要40G),如果你选择NO,那么请保证OCR盘至少40GB大小(准确数字忘了大概是38GB左右,不过40GB保险)。

Oracle 12c RAC 安装文档

Oracle 12c RAC 安装文档

根据提示依次在两节点执行以上脚本即可,出现下图所示文字是表示执行成功:

Oracle 12c RAC 安装文档

至此GRID已经安装完毕,使用如下命令查看集群状态:

1

2

su - grid

crsctl stat res -t

七、创建ASM磁盘组

使用grid用户执行asmca创建数据磁盘组DATA和存放REDO、归档的磁盘组,一般测试环境这几个磁盘组合在一起即可。

1

2

3

4

5

6

7

8

9

su - grid

sqlplus / as sysasm

set lines 200

col path for a40

select group_number,header_status,state, name ,path,redundancy from v$asm_disk;

select group_number, name ,state,COMPATIBILITY,DATABASE_COMPATIBILITY from v$asm_diskgroup;

create diskgroup DATA external redundancy disk '/dev/mapper/RAC_DATA' ATTRIBUTE 'compatible.asm' = '12.2' ;

create diskgroup ARCHIVE external redundancy disk '/dev/mapper/RAC_ARCHIVE' ATTRIBUTE 'compatible.asm' = '12.2' ;

create diskgroup REDO external redundancy disk '/dev/mapper/REDO_01' , '/dev/mapper/REDO_02' ATTRIBUTE 'compatible.asm' = '12.2' ;

八、DATABASE安装

1

2

cd /home/oracle/ database

./runInstaller

Oracle 12c RAC 安装文档

Oracle 12c RAC 安装文档

根据提示执行以上脚本即可。

九、创建数据库

使用oracle用户执行dbca建库:

--如无pdb需求,那么不选create as container database

Oracle 12c RAC 安装文档

--并不推荐以上建库方式,建议使用下边的高级配置,可以自己设置SGA,PGA和字符集等等。

建库完毕后使用如下命令查看整个集群和数据库的状态:

1

2

3

4

su - grid

crsctl stat res -t

srvctl config database -d orcl

lsnrctl status

十、最后的工作

1

2

3

4

5

6

7

8

9

10

ALTER SYSTEM SET AUDIT_TRAIL=NONE SCOPE=SPFILE SID= '*' ; --关闭审计

alter system set deferred_segment_creation= false SCOPE=BOTH SID= '*' ; --关闭段创建延迟

# ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON= FALSE SCOPE=SPFILE SID= '*' ; --关闭密码大小写验证,在12c版本中此参数已被弃用,如果手动改为FALSE,除非设置正确的SQLNET.ALLOWED_LOGON_VERSION_SERVER参数,否则所有用户都会无法登陆,因此不要这么改了。

ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED; --设置登录次数为无限

ALTER SYSTEM SET CONTROL_FILE_RECORD_KEEP_TIME=31 SCOPE=BOTH SID= '*' ; --控制文件内容保存时间

ALTER SYSTEM SET MAX_DUMP_FILE_SIZE= '2048M' SCOPE=BOTH SID= '*' ; --DUMP文件size的最大值

ALTER SYSTEM SET PROCESSES=2048 SCOPE=SPFILE SID= '*' ; --最大进程数

ALTER SYSTEM SET "_UNDO_AUTOTUNE" = FALSE SCOPE=BOTH SID= '*' ; --关闭UNDO自动调优的功能

ALTER SYSTEM SET "_USE_ADAPTIVE_LOG_FILE_SYNC" = FALSE SCOPE=BOTH SID= '*' ; --关闭自适应日志同步功能

alter database add supplemental log data; --打开附加日志,便于进行故障后数据找回

重启使以上部分设置生效:srvctl stop/start database -d orcl

最后,再设置下数据和归档的备份计划,根据业务压力调整下REDO大小和组数就可以了。

想建一个数据库技术和编程技术的交流群,用于磨炼提升技术能力,暂不限于数据库种类和编程语言(其实目前只会Python),群号:231338927,建群日期:2019.04.26,截止2020.04.10人数:195人 ...

分类: Oracle

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Opencv中Mat矩阵相乘——点乘、dot、mul运算详解
Opencv中Mat矩阵相乘——点乘、dot、mul运算详解2016年09月02日00:00:36 \牧野(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fme.csdn.net%2Fdcrmg) 阅读数:59593
Wesley13 Wesley13
3年前
Java获得今日零时零分零秒的时间(Date型)
publicDatezeroTime()throwsParseException{    DatetimenewDate();    SimpleDateFormatsimpnewSimpleDateFormat("yyyyMMdd00:00:00");    SimpleDateFormatsimp2newS
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这