Oracle 12c 安装 Linuxx86_64

1)下载Oracle Database 12cRelease 1安装介质

官方的下载地址:

1:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

2:https://edelivery.oracle.com/EPD/Download/get_form?egroup_aru_number=16496132

URL地址2需要先注册,然后才能登陆下载,注册登陆界面https://edelivery.oracle.com

clip_image002

关于这两者有啥区别: 听一个同事说,用metalink 账号下载的安装文件完整一些。具体情况是不是如此,还不得而知。

地址1下载的文件为:

linuxamd64_12c_database_1of2.zip

linuxamd64_12c_database_2of2.zip

地址2下载的文件为:

V38500-01_1of2.zip

V38500-01_2of2.zip

2)检查硬件要求(Check Hardware Requirements)

2.1 Check CPU

[root@getoraclelnx01 tmp]#

[root@getoraclelnx01 tmp]# grep "model name" /proc/cpuinfo

model name      : Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz

model name      : Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz

model name      : Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz

model name      : Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz

model name      : Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz

model name      : Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz

model name      : Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz

model name      : Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz

[root@getoraclelnx01 tmp]# cat /proc/cpuinfo | grep "processor" | wc -l

8

[root@getoraclelnx01 tmp]#  cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l

4

[root@getoraclelnx01 tmp]#

clip_image004

2.2 Check Memory

[root@getoraclelnx01 tmp]# grep MemTotal /proc/meminfo

MemTotal:       24736752 kB

[root@getoraclelnx01 tmp]# grep SwapTotal /proc/meminfo

SwapTotal:      37748728 kB

[root@getoraclelnx01 tmp]# free -g

               total           used        free     shared    buffers     cached

Mem: 23 7 16 0 0 5

-/+ buffers/cache:      1             22

Swap:        35             0             35

[root@getoraclelnx01 tmp]#

clip_image006

Oracle 12c 对系统内存的最低要求为1G,推荐2G或更大的内存,从上面结果可以知道系统内存23G,完全满足要求。

Oracle对交换分区(Swap Space)的推荐设置如下,这里Swap Space为35G,不是16G,需要做一下调整。

clip_image008

2.3 Check Disk Capacity

clip_image010

Oracle 12c 企业版的需要6.4G大小的磁盘空间,标准版需要6.1G大小的磁盘空间。/tmp 需要至少1G的大小。从上面结果得知,磁盘空间完全满足。

3)检查软件要求(Checking the Software Requirements)

3.1 操作系统版本检测

     Oracle 12 c 只支持64位的Linux系统。不支持32Linux平台,这也许是以后的趋势了。Operating System Requirements for x86-64 Linux Platforms。 Oracle 的官方文档明确列出了支持下面三个Linux版本

  • Supported Oracle Linux 6 and Red Hat Enterprise Linux 6 Distributions for x86-64
  • Supported Oracle Linux 5 and Red Hat Enterprise Linux 5 Distributions for x86-64
  • Supported SUSE Distributions for x86-64

[root@getoraclelnx01 /]# uname -m

x86_64

[root@getoraclelnx01 /]# uname -r

2.6.32-200.13.1.el5uek

[root@getoraclelnx01 /]# more /etc/redhat-release

Red Hat Enterprise Linux Server release 5.7 (Tikanga)

[root@getoraclelnx01 ~]# uname -a

Linux getoraclelnx01.gfg1.esquel.com 2.6.32-200.13.1.el5uek #1 SMP Wed Jul 27 21:02:33 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux

[root@getoraclelnx01 Server]# lsb_release -id

Distributor ID: EnterpriseEnterpriseServer

Description: Enterprise Linux Enterprise Linux Server release 5.7 (Carthage)

[root@getoraclelnx01 Server]#

3.2 检查oracle 12c所需包

关于Oracle 12c所需包,从官方文档看,不同版本的操作系统似乎有所不同,Oracle Linux 5 and Red Hat Enterprise Linux 5需要安装下面一些包

binutils-2.17.50.0.6

compat-libstdc++-33-3.2.3

compat-libstdc++-33-3.2.3 (32 bit)

gcc-4.1.2

gcc-c++-4.1.2

glibc-2.5-58

glibc-2.5-58 (32 bit)

glibc-devel-2.5-58

glibc-devel-2.5-58 (32 bit)

ksh

libaio-0.3.106

libaio-0.3.106 (32 bit)

libaio-devel-0.3.106

libaio-devel-0.3.106 (32 bit)

libgcc-4.1.2

libgcc-4.1.2 (32 bit)

libstdc++-4.1.2

libstdc++-4.1.2 (32 bit)

libstdc++-devel 4.1.2

libXext-1.0.1

libXext-1.0.1 (32 bit)

libXtst-1.0.1

libXtst-1.0.1 (32 bit)

libX11-1.0.3

libX11-1.0.3 (32 bit)

libXau-1.0.1

libXau-1.0.1 (32 bit)

libXi-1.0.1

libXi-1.0.1 (32 bit)

make-3.81

sysstat-7.0.2

rpm -q binutils compat-libstdc++ gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXext libXtst libX11 libXau libXi make sysstat

clip_image012

如上所示,还需要安装包 compat-libstdc++和 libaio-devel相关包

clip_image014

[root@getoraclelnx01 Server]# rpm -ivh compat-libstdc++-33-3.2.3-61.i386.rpm

warning: compat-libstdc++-33-3.2.3-61.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159

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

package compat-libstdc++-33-3.2.3-61.i386 is already installed

[root@getoraclelnx01 Server]# rpm -ivh compat-libstdc++-33-3.2.3-61.x86_64.rpm

warning: compat-libstdc++-33-3.2.3-61.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159

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

package compat-libstdc++-33-3.2.3-61.x86_64 is already installed

[root@getoraclelnx01 Server]# ls *libaio-devel*

libaio-devel-0.3.106-5.i386.rpm libaio-devel-0.3.106-5.x86_64.rpm

[root@getoraclelnx01 Server]# rpm -ivh libaio-devel-0.3.106-5.i386.rpm

warning: libaio-devel-0.3.106-5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159

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

1:libaio-devel ########################################### [100%]

[root@getoraclelnx01 Server]# rpm -ivh libaio-devel-0.3.106-5.x86_64.rpm

warning: libaio-devel-0.3.106-5.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159

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

1:libaio-devel ########################################### [100%]

[root@getoraclelnx01 Server]#

如上所示,既可以用rpm安装,也可以用yum本地源进行安装,这个就看那个方便以及个人的喜好、习惯了。一般推荐用yum安装,不过需要进行配置。具体可以参见我的博客。

4)系统配置准备

4.1 创建Oracle用户和用户组

[root@getoraclelnx01 Server]# groupadd dba

[root@getoraclelnx01 Server]# groupadd oinstall

[root@getoraclelnx01 Server]# useradd -g oinstall -G dba oracle

[root@getoraclelnx01 Server]# id oracle

uid=502(oracle) gid=503(oinstall) groups=503(oinstall),502(dba)

[root@getoraclelnx01 Server]#

clip_image016

创建了oracle用户以及相关用户组后,需要设置oracle用户密码。

4.2 创建安装目录

[root@getoraclelnx01 Server]#

[root@getoraclelnx01 Server]# mkdir -p /u01/app/oracle

[root@getoraclelnx01 Server]# chown -R oracle:oinstall /u01/app/oracle

[root@getoraclelnx01 Server]# chmod -R 775 /u01/app/oracle

[root@getoraclelnx01 Server]#

clip_image018

4.3 Disable SELinux

[root@getoraclelnx01 ~]# /usr/sbin/sestatus

SELinux status: disabled

[root@getoraclelnx01 ~]# /usr/sbin/getenforce

Disabled

[root@getoraclelnx01 ~]#

clip_image020

从上面可以看出SELinux已经被禁用了,如果没有禁用,则可以通过下面命令禁用

getenforce (returns "Enforcing")

setenforce 0

getenforce (returns "Permissive")

End to restore it to enforcing

setenforce 1

getenforce (returns "Enforcing")

[root@getoraclelnx01  os]# /usr/sbin/sestatus

SELinux status:                 disabled

[root@getoraclelnx01  os]# /usr/sbin/getenforce

Disabled

[root@getoraclelnx01  os]#

Disable secure linux by editing the "/etc/selinux/config" file, making sure the SELINUX flag is set as follows.

SELINUX=disabled

4.4 修改系统内核参数

在修改系统内核参数前,你可以用命令先查看一下当前各类系统参数的值,亦或直接查看配置文件/etc/sysctl.conf

[root@getoraclelnx01 ~]# getconf PAGESIZE

4096

[root@getoraclelnx01 ~]# sysctl -a | grep sem

kernel.sem = 250 32000 32 128

[root@getoraclelnx01 ~]# sysctl -a | grep shm

kernel.shmmax = 68719476736

kernel.shmall = 4294967296

kernel.shmmni = 4096

vm.hugetlb_shm_group = 0

[root@getoraclelnx01 ~]# sysctl -a | grep file-max

fs.file-max = 2414060

[root@getoraclelnx01 ~]# sysctl -a | grep ip_local_port_range

net.ipv4.ip_local_port_range = 32768 61000

[root@getoraclelnx01 ~]#

clip_image022

关于内核参数的一些设置建议,可以参考下面资料:

kernel.shmmax关于内核参数kernel.shmmax,oracle 建议,kernel.shmmax的值不能少于物理内存的一半,而且要大于Oracle中sga-max-size的值,否则会造成oracle性能下降一般32bit操作系统,直接设置为系统支持的最大内存即可,64bit操作系统设置大于sga-max-size的值即可如:当前内存为2G 则kernel.shmmax = 2*1024*1024=2097152当前内存为8G则 kernel.shmmax = 7*1024*1024=7340032Kernel.shmallShmall指系统一次可以使用的共享内存段的最大数量,以页为单位。Oracle默认设置为 kernel.shmall = 2097152即最大8G(2097152*4/1024/1024),(在调整SGA时需要注意,SGA大小设置不可超过该值),根据系统内存大小和使用的不同可以参考如下:设置的一般规律kernel.shmall = 8G/4k=8388608k/4k=2097152    ---内存8Gkernel.shmall = 16G/4k=16777216k/4k=4194304    ---内存16Gkernel.shmall = 32G/4k=33554432k/4k=8388608    ---内存32G(RedHat linux系统中页大小为4096即4K,实际环境以getconf PAGE_SIZE结果为准)kernel.shmmnishmmni 指系统共享内存段的最大数量oracle设置默认值为4096,一般是足够用了,不需要调整文件句柄数的相关内核参数设置fs.file-maxfs.file-max指系统能够打开最大的文件句柄数oracle建议设置为65536,一般不用修改信号的相关内核参数设置kernel.semkernel.sem是指 semmsl,semmns,semopm,semmni这4个参数semmsl 指每个线号集的最大信号数,Oracle建议是设置为oracle的最大进程数+10semmni 指整个系统的信号集的最大数量semmns 指整个系统的信号总数,也就是semmni*semmsl的结果semopm 指每个semop系统调用可以执行的信号操作的最大数量oracle默认设置semmsl=250semmns=3200semopm=100semmni=128即kernel.sem= 250 3200 100 128例:在oracle  ora.init文件参数中设置PROCESSES参数为5000则semmsl=5010,semmni=128,semmns=semmsl* semmni=641280另外semopm建议设置等于semmsl值即5010那么kernel.sem=5010 641280 5010 128网络相关的内核参数设置net.core.rmem_defaultnet.core.rmem_default 指网络套接字的默认接收缓冲区的大小,oracle建议设置为265K即262144net.core.rmem_maxnet.core.rmem_max 指网络套接字的最大接收缓冲区的大小,oracle10g及以前版本建议设置为256k即262144 oracle11g建议设置为4M 即4194304net.core.wmem_defaultnet.core.wmem_default指网络套接字的默认发送缓冲区的大小,oracle建议设置为265K即262144net.core.wmem_maxnet.core.wmem_max  指网络套接字的最大发送缓冲区的大小,oracle10g及以前版本建议设置为256k即262144 oracle11g建议设置为1M即1048576net.ipv4.ip_local_port_rangenet.ipv4.ip_local_port_range ,指本地的允许打开随机端口范围oracle10g前建议端口范围为1024 65000,oracle11g建议端口范围为:9000 65500 并忽略oracle安装程序任何关于这个参数的警告Asynchronous I/O相关的内核参数设置fs.aio-max-nrfs.aio-max-nr 指系统允许的最大的异步IO请求大小oracle默认设置为1M即1048576,一般不用更改
View Code

修改前最后先备份一下/etc/sysctl.conf,以防万一。

[root@getoraclelnx01 ~]# cp /etc/sysctl.conf /etc/sysctl.conf.bak

[root@getoraclelnx01 ~]# vi /etc/sysctl.conf 添加或修改下面参数

kernel.shmmax = 68719476736

kernel.shmall = 6029312

kernel.shmmni = 4096

kernel.sem =250 32000 100 128

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 262144

net.ipv4.ip_local_port_range =9000 65500

fs.file-max=65536

fs.aio-max-nr=1048576

kernel.shmall =physical RAM size / pagesize (getconf PAGESIZE) -- If the defaults are greater then leave it.

kernel.shmall = 内存大小/4k=23G*1024*1024/4k = 6029312

kernel.shmmax = 20*1024*1024=20971520 而默认的为68719476736,那么使用默认值

修改完成后保存,然后运行sysctl -p 命令使之生效

clip_image024

4.5 设置用户限制

/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 10240

Add the following line to the "/etc/pam.d/login" file,

if it does not already exist.

session required /lib/security/pam_limits.so

session required pam_limits.so

Add the following to

/etc/profile if Oracle user will use the bash shell.

if [ $USER = "oracle" ]; then

ulimit -u 16384

ulimit -n 65536

fi

4.6 配置环境变量

首先切换到oracle账户 ,编辑修改主目录下 .bash_profile

clip_image026

TMP=/tmp; export TMP

TMPDIR=$TMP; export TMPDIR

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE

ORACLE_HOME=$ORACLE_BASE/product/12.1.0/db_1; export ORACLE_HOME

ORACLE_SID=epps; export ORACLE_SID

ORACLE_TERM=xterm; export ORACLE_TERM

PATH=/usr/sbin:$PATH; export PATH

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

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

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

if [ $USER = "oracle" ]; then

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

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

fi

使配置生效

[oracle@getoraclelnx01 ~]$ source .bash_profile

[oracle@getoraclelnx01 ~]$

解压安装镜像文件

[oracle@getoraclelnx01 tmp]$ unzip V38500-01_1of2.zip

[oracle@getoraclelnx01 tmp]$ unzip V38500-01_2of2.zip

安装步骤截图

clip_image028

clip_image030

clip_image032

clip_image034

clip_image036

clip_image038

clip_image040

clip_image042

clip_image044

clip_image046

在这一步时,无法继续,因为oracle账户无法创建oraInventory目录,所以必须先创建该用户并授权

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

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

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

clip_image048

clip_image050

clip_image052

clip_image054

clip_image056

clip_image058

clip_image060

clip_image062

clip_image064

clip_image066

验证参数时,fs.file-max设置为65536,但是ORACLE推荐使用68157744,net.core.wmem_max大小为262144,oracle 推荐使用1048576,修改内核参数,运行sysctl -p使之生效。然后重新验证通过

[root@getoraclelnx01 ~]# sysctl -p

net.ipv4.ip_forward = 0

net.ipv4.conf.default.rp_filter = 2

net.ipv4.conf.default.accept_source_route = 0

kernel.sysrq = 0

kernel.core_uses_pid = 1

net.ipv4.tcp_syncookies = 1

kernel.msgmnb = 65536

kernel.msgmax = 65536

kernel.shmmax = 68719476736

kernel.shmall = 6029312

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

net.ipv4.ip_local_port_range = 9000 65500

fs.file-max = 6815744

fs.aio-max-nr = 1048576

[root@getoraclelnx01 ~]#

clip_image068

clip_image070

clip_image072

运行过程会提示让你用root账户执行2个脚本,你将脚本的文件拿下来,在root账户下执行即可。

clip_image078

clip_image080

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/388038.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux入门实验

学习Linux要先做实验来熟悉操作系统本次先写点入门的操作。 关于Linux入门实验的操作如下: 【例1】显示当前使用的shell [rootcentos7 ~]# echo ${SHELL} /bin/bash 【例2】显示当前系统使用的所有shell [rootcentos7 ~]#cat /etc/shells /bin/sh /bin/bash /usr/bi…

flink 检查点_Flink检查点和恢复

flink 检查点Apache Flink is a popular real-time data processing framework. It’s gaining more and more popularity thanks to its low-latency processing at extremely high throughput in a fault-tolerant manner.Apache Flink是一种流行的实时数据处理框架。 它以容…

917. 仅仅反转字母

给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。 示例 1: 输入:"ab-cd" 输出:"dc-ba"示例 2: 输入:&q…

C# socket nat 映射 网络 代理 转发

using System;using System.Collections.Generic;using System.Net;using System.Net.Sockets;using System.Text;using System.Threading;namespace portmap_net{/// <summary>/// 映射器实例状态/// </summary>sealed internal class state{#region Fields (5)pu…

python初学者_初学者使用Python的完整介绍

python初学者A magical art of teaching a computer to perform a task is called computer programming. Programming is one of the most valuable skills to have in this competitive world of computers. We, as modern humans, are living with lots of gadgets such as …

c# nat udp转发

UdpClient myClient;Thread recvThread;//打开udp端口开始接收private void startRecv(int port){myClient new UdpClient(port);recvThread new Thread(new ThreadStart(receive));recvThread.Start();}//停止接收private void stopRecv(){recvThread.Abort();}private void…

【Code-Snippet】TextView

1. TextView文字过长&#xff0c;显示省略号 【参考】 必须要同时设置XML和JAVA&#xff0c;而且&#xff0c;java中设置文字必须是在最后。 android:ellipsize"start|end|middle" //省略号的位置 android:singleLine"true" android:lines"2"…

Object 的静态方法之 defineProperties 以及数据劫持效果

再提一下什么是静态方法&#xff1a; 静态方法&#xff1a;在类身上的方法&#xff0c;  动态方法:在实例身上的方法 Object.defineProperties(obj, props)obj&#xff1a;被添加属性的对象props&#xff1a;添加或更新的属性对象给对象定义属性&#xff0c;如果存在该属性&a…

Spring实现AOP的4种方式

Spring实现AOP的4种方式 先了解AOP的相关术语: 1.通知(Advice): 通知定义了切面是什么以及何时使用。描述了切面要完成的工作和何时需要执行这个工作。 2.连接点(Joinpoint): 程序能够应用通知的一个“时机”&#xff0c;这些“时机”就是连接点&#xff0c;例如方法被调用时、…

如何使用Plotly在Python中为任何DataFrame绘制地图的卫星视图

Chart-Studio和Mapbox简介 (Introduction to Chart-Studio and Mapbox) Folium and Geemap are arguably the best GIS libraries/tools to plot satellite-view maps or any other kinds out there, but at times they require an additional authorization to use the Google…

Java入门系列-26-JDBC

认识 JDBC JDBC (Java DataBase Connectivity) 是 Java 数据库连接技术的简称&#xff0c;用于连接常用数据库。 Sun 公司提供了 JDBC API &#xff0c;供程序员调用接口和类&#xff0c;集成在 java.sql 和 javax.sql 包中。 Sun 公司还提供了 DriverManager 类用来管理各种不…

3.19PMP试题每日一题

在房屋建造过程中&#xff0c;应该先完成卫生管道工程&#xff0c;才能进行电气工程施工&#xff0c;这是一个&#xff1a;A、强制性依赖关系B、选择性依赖关系C、外部依赖关系D、内部依赖关系 作者&#xff1a;Tracy19890201&#xff08;同微信号&#xff09;转载于:https://…

Can't find temporary directory:internal error

今天我机子上的SVN突然没有办法进行代码提交了&#xff0c;出现的错误提示信息为&#xff1a; Error&#xff1a;Cant find temporary directory:internal error 然后试了下其他的SVN源&#xff0c;发现均无法提交&#xff0c;并且update时也出现上面的错误信息。对比项目文件…

snowflake 数据库_Snowflake数据分析教程

snowflake 数据库目录 (Table of Contents) Introduction 介绍 Creating a Snowflake Datasource 创建雪花数据源 Querying Your Datasource 查询数据源 Analyzing Your Data and Adding Visualizations 分析数据并添加可视化 Using Drilldowns on Your Visualizations 在可视化…

jeesite缓存问题

jeesite&#xff0c;其框架主要为&#xff1a; 后端 核心框架&#xff1a;Spring Framework 4.0 安全框架&#xff1a;Apache Shiro 1.2 视图框架&#xff1a;Spring MVC 4.0 服务端验证&#xff1a;Hibernate Validator 5.1 布局框架&#xff1a;SiteMesh 2.4 工作流引擎…

高级Python:定义类时要应用的9种最佳做法

重点 (Top highlight)At its core, Python is an object-oriented programming (OOP) language. Being an OOP language, Python handles data and functionalities by supporting various features centered around objects. For instance, data structures are all objects, …

Java 注解 拦截器

场景描述&#xff1a;现在需要对部分Controller或者Controller里面的服务方法进行权限拦截。如果存在我们自定义的注解&#xff0c;通过自定义注解提取所需的权限值&#xff0c;然后对比session中的权限判断当前用户是否具有对该控制器或控制器方法的访问权限。如果没有相关权限…

医疗大数据处理流程_我们需要数据来大规模改善医疗流程

医疗大数据处理流程Note: the fictitious examples and diagrams are for illustrative purposes ONLY. They are mainly simplifications of real phenomena. Please consult with your physician if you have any questions.注意&#xff1a;虚拟示例和图表仅用于说明目的。 …

What's the difference between markForCheck() and detectChanges()

https://stackoverflow.com/questions/41364386/whats-the-difference-between-markforcheck-and-detectchanges转载于:https://www.cnblogs.com/chen8840/p/10573295.html

ASP.NET Core中使用GraphQL - 第七章 Mutation

ASP.NET Core中使用GraphQL - 目录 ASP.NET Core中使用GraphQL - 第一章 Hello WorldASP.NET Core中使用GraphQL - 第二章 中间件ASP.NET Core中使用GraphQL - 第三章 依赖注入ASP.NET Core中使用GraphQL - 第四章 GrahpiQLASP.NET Core中使用GraphQL - 第五章 字段, 参数, 变量…