暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

Centos-7.5安装Oracle-19.3.0.0.0 64位数据库

IT那活儿 2021-11-17
1120

点击上方“IT那活儿”,关注后了解更多精彩内容!!!

服务器配置安装


01

Oracle数据库运行环境检查列表

02

系统环境信息

  • 操作系统版本:CentOS Linux release 7.5.1804 (Core)
  • oracle软件版本:19.3.0.0.0
  • 内存:2G
  • 磁盘:40G

03

关闭防火墙和Selinux

[root@testoracle /]# systemctl status firewalld #查看防火墙状态[root@localhost /]# systemctl stop firewalld #关闭防火墙[root@localhost /]# systemctl disable firewalld #开机不启动[root@testoracle ~]# vi /etc/selinux/config #设置selinux为disabledSELINUX=disabled #此处修改为disabled
复制
需要重启后才能生效。

04

修改主机名和网络相关

[root@testoracle ~]# vi /etc/hosts #前两行不要动 前面是IP 主机名[root@testoracle ~]# vi /etc/sysconfig/network #加下面两行NETWORKING=yesHOSTNAME=youhostname
复制

05

数据库配置信息

5.1 安装Oracle19c安装的依赖包

yum install -y binutils-2.23* compat-libcap1-1.10* gcc-4.8* gcc-c++-4.8* glibc-2.17* glibc-devel-2.17* ksh libaio-0.3* libaio-devel-0.3* libgcc-4.8* libstdc++-4.8* libstdc++-devel-4.8* libXi-1.7* libXtst-1.2* make-3.82* sysstat-10.1* libXp libXp.i686 compat-libstdc++-33* elfutils-libelf-devel-0* pdksh-5*
复制
yum -y install compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm 需要下载

5.2 修改内核参数

[root@localhost /]# vi /etc/sysctl.conffs.file-max = 6815744                 #设置最大打开文件数fs.aio-max-nr = 1048576kernel.shmall = 2097152kernel.shmmax = 2147483648kernel.shmmni = 4096                 #整个系统共享内存端的最大数kernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500               #可使用的IPv4端口范围net.core.rmem_default = 262144net.core.rmem_max= 4194304net.core.wmem_default= 262144net.core.wmem_max= 1048576-------------------------------------------------------------------------------------------------------kernel.shmall——#共享内存的总量,8G内存设置:2097152*4k/1024/1024kernel.shmmax ——#共享内存段的最大值kernel.shmall=当前操作系统内存*1024*1024*1024/4096(4k)kernel.shmmax=当前操作系统内存四分之三*1024*1024*1024-1 (SGA)sysctl -p生效参数
复制

5.3 设置Oracle软件安装用户的资源限制

[root@localhost /]# vi /etc/security/limits.conforacle soft nofile 1024oracle hard nofile 65536oracle soft nproc 2047oracle hard nproc 16384oracle soft stack 10240oracle hard stack 32768oracle soft memlock (使用HugePage:90%Mem,单位KB.不使用HuagePages:3145728 (3G))oracle hard memlock (使用HugePage:90%Mem,单位KB.不使用HuagePages:3145728 (3G))
复制

5.4 创建运行oracle数据库的用户和用户组,家目录和安装目录

  • 建立用户及组
[root@testoracle /]# groupadd oinstall[root@testoracle /]# groupadd dba添加一个名字叫 oracle 的用户,使该用户的初始组为 oinstall, 附加组 dba[root@testoracle /]# useradd -g oinstall -G dba -m oracle[root@testoracle /]# passwd oracle
复制
  • 建立oracle家目录和安装目录并授权
[root@testoracle /]# mkdir -p /u01/app/oracle/{oraInventory,product/19.3.0/db} [root@testoracle /]# chown -R oracle:oinstall /u01
复制

5.5 配置用户的环境变量

[oracle@localhost /]# vi /home/oracle/.bash_profileexport ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbexport ORACLE_SID=nameexport PATH=$ORACLE_HOME/bin:$PATH
复制


静默数据库软件截图过程


01

安装数据库软件

此文件为自带模板文件:

/u01/app/oracle/product/19.3.0/db/install/response/ db_install.rsp
根据需要配置对应的参数。
1.1 执行:

/u01/app/oracle/product/19.3.0/db/runInstaller -silent -force -noconfig -ignorePrereq \oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0 \oracle.install.option=INSTALL_DB_SWONLY \UNIX_GROUP_NAME=oinstall \INVENTORY_LOCATION=/u01/app/oracle/product/19.3.0/db/inventory \ORACLE_HOME=/u01/app/oracle/product/19.3.0/db \ORACLE_BASE=/u01/app/oracle \oracle.install.db.InstallEdition=EE \oracle.install.db.OSDBA_GROUP=dba \oracle.install.db.OSOPER_GROUP=dba \oracle.install.db.OSBACKUPDBA_GROUP=dba \oracle.install.db.OSDGDBA_GROUP=dba \oracle.install.db.OSKMDBA_GROUP=dba \oracle.install.db.OSRACDBA_GROUP=dba \oracle.install.db.rootconfig.executeRootScript=true \oracle.install.db.rootconfig.configMethod=root

复制
1.2 数据库软件安装完成

02

配置监听

该文件为系统自带模板:
/u01/app/oracle/product/19.3.0/db/assistants/netca/ netca.rsp
可以根据需要修改名称或者端口号等
执行命令:

netca -silent -responseFile /u01/app/oracle/product/19.3.0/db/assistants/netca/netca.rsp

复制

03

创建数据库实例

3.1 设置数据库sid

export ORACLE_SID=test

3.2 编辑参数文件,创建对应路径

vi $ORACLE_HOME/dbs/inittest.ora
添加如下内容:

db_name='test'memory_target=400437056processes = 150audit_file_dest='/u01/app/oracle/admin/test/adump'audit_trail = 'db'db_block_size=8192db_domain=''db_create_file_dest='/u01/app/oracle/oradata'diagnostic_dest='/u01/app/oracle/'dispatchers='(PROTOCOL=TCP) (SERVICE=testXDB)'open_cursors=300remote_login_passwordfile='EXCLUSIVE'undo_tablespace='UNDOTBS1'control_files='/u01/app/oracle/oradata/control01.ctl'compatible='19.3.0'mkdir -p /u01/app/oracle/admin/test/adumpmkdir -/u01/app/oracle/oradata

复制
3.3 生成密码文件
orapwd file=$ORACLE_HOME/dbs/orapwltest password=oracle force=y
复制

3.4 创建spfile,启动数据库到nomount

create spfile from pfile;startup nomount;
复制

3.5 通过create database创建数据库实例

  • 非CDB模式

CREATE DATABASE testUSER SYS IDENTIFIED BY oracleUSER SYSTEM IDENTIFIED BY oracleLOGFILE GROUP 1 ('/u01/app/oracle/oradata/test/redo01.log') SIZE 100M BLOCKSIZE 512,GROUP 2 ('/u01/app/oracle/oradata/test/redo02.log') SIZE 100M BLOCKSIZE 512,GROUP 3 ('/u01/app/oracle/oradata/test/redo03.log') SIZE 100M BLOCKSIZE 512MAXLOGFILES 5MAXLOGMEMBERS 5MAXLOGHISTORY 1MAXDATAFILES 100CHARACTER SET AL32UTF8NATIONAL CHARACTER SET AL16UTF16EXTENT MANAGEMENT LOCALDATAFILE '/u01/app/oracle/oradata/test/system01.dbf' SIZE 325M REUSESYSAUX DATAFILE '/u01/app/oracle/oradata/test/sysaux01.dbf' SIZE 325M REUSEDEFAULT TABLESPACE usersDATAFILE '/u01/app/oracle/oradata/test/users01.dbf'SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITEDDEFAULT TEMPORARY TABLESPACE tempts1TEMPFILE '/u01/app/oracle/oradata/test/temp01.dbf'SIZE 20M REUSEUNDO TABLESPACE UNDOTBS1DATAFILE '/u01/app/oracle/oradata/test/undotbs01.dbf'SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

复制
  • CDB模式

CREATE DATABASE test2USER SYS IDENTIFIED BY oracleUSER SYSTEM IDENTIFIED BY oracleLOGFILE GROUP 1 ('/u01/app/oracle/oradata/test2/redo01.log') SIZE 100M BLOCKSIZE 512,GROUP 2 ('/u01/app/oracle/oradata/test2/redo02.log') SIZE 100M BLOCKSIZE 512,GROUP 3 ('/u01/app/oracle/oradata/test2/redo03.log') SIZE 100M BLOCKSIZE 512MAXLOGFILES 5MAXLOGMEMBERS 5MAXLOGHISTORY 1MAXDATAFILES 100CHARACTER SET AL32UTF8NATIONAL CHARACTER SET AL16UTF16EXTENT MANAGEMENT LOCALDATAFILE '/u01/app/oracle/oradata/test2/system01.dbf' SIZE 325M REUSESYSAUX DATAFILE '/u01/app/oracle/oradata/test2/sysaux01.dbf' SIZE 325M REUSEDEFAULT TABLESPACE usersDATAFILE '/u01/app/oracle/oradata/test2/users01.dbf'SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITEDDEFAULT TEMPORARY TABLESPACE tempts1TEMPFILE '/u01/app/oracle/oradata/test2/temp01.dbf'SIZE 20M REUSEUNDO TABLESPACE UNDOTBS1DATAFILE '/u01/app/oracle/oradata/test2/undotbs01.dbf'SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITEDENABLE PLUGGABLE DATABASESEEDFILE_NAME_CONVERT = ('/u01/app/oracle/oradata/test2/','/u01/app/oracle/oradata/pdbseed/')SYSTEM DATAFILES SIZE 125M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITEDSYSAUX DATAFILES SIZE 100MUSER_DATA TABLESPACE usertbsDATAFILE '/u01/app/oracle/oradata/pdbseed/usertbs01.dbf' SIZE 200M;

复制
  • 运行完成后执行如下SQL:

  1. @?/rdbms/admin/catalog.sql   --数据库字典,动态视图创建等
  2. @?/rdbms/admin/catproc.sql   --PL/SQL存过过程相关代码
  3. @?/rdbms/admin/utlrp.sql     --编译

04

数据库安装完成后的组件安装

4.1 --- 安装JVM
  • @?/javavm/install/initjvm.sql;
  • @?/xdk/admin/initxml.sql;
  • @?/xdk/admin/xmlja.sql;
  • @?/rdbms/admin/catjava.sql;
4.2 -- 安装XMLDB
  • @?/rdbms/admin/catqm.sql oracle SYSAUX TEMP YES

  • @?/rdbms/admin/catxdbj.sql;


附录


01

runInstaller参数说明

1.1 runInstaller  [-options]
[(<CommandLineVariable=Value>)*]
其中选项包括:
  • clusterware oracle.crs,<crs version>
已安装的集群就绪服务的版本。
  • crsLocation <Path>
仅用于安装集群, 可指定 CRS 主目录位置的路径。指定此路径将覆盖从主产品清单中获取的 CRS 信息。
  • invPtrLoc <full path of oraInst.loc>
仅适用于 Unix。指向其他产品清单位置。orainst.loc 文件中包含:
inventory_loc=<location of central inventory>
inst_group=<>
  • jreLoc <location>
Java 运行时环境的安装路径。没有该路径, OUI 就无法运行。
  • logLevel <level>
过滤优先级别低于 <level> 的日志消息。有效的选项包括: severe, warning, info, config, fine, finer, finest, basic, general, detailed 和 trace。建议不要使用 basic, general, detailed 和 trace。
  • paramFile <location of file>
指定 OUI 要使用的 oraparam.ini 文件的位置。
  • responseFile <Path>
指定要使用的响应文件和路径。
  • attachHome
将主目录附加到 OUI 产品清单。
  • cfs
表明指定的 Oracle 主目录位于集群文件系统 (已共享) 中。如果指定 '-local', 则必须同时指定此选项, 这样 Oracle Universal Installer 才能相应地在产品清单中注册该主目录。
  • clone
使 Oracle 主目录副本与当前环境匹配。
  • debug
从 OUI 获取调试信息。
  • detachHome
用于将主目录与 OUI 产品清单分离, 而不删除 Oracle 主目录内的产品清单目录。
  • enableRollingUpgrade
在集群环境中使用, 用于允许在 (安装了该产品的) 节点子集上对产品进行升级。
  • executeSysPrereqs
执行系统先决条件检查并退出。
  • force
允许在非空目录中进行无提示模式的安装。
  • help
显示上述用法。
  • ignoreSysPrereqs
忽略系统先决条件检查的结果。
  • local
无论是否指定集群节点, 均在本地节点上执行操作。
  • printdiskusage
记录有关磁盘使用情况的调试信息。
  • printmemory
记录有关内存使用情况的调试信息。
  • printtime
记录有关时间使用情况的调试信息。
  • relink
对 Oracle 主目录执行重新链接操作
用法: -relink -maketargetsxml <location of maketargetsxml> [-makedepsxml <location of makedepsxml>] [name=value]
  • silent
对于无提示模式下的操作, 输入内容可以是一个响应文件, 也可以是命令行变量值对的列表。
  • waitforcompletion
安装程序将等待完成, 而不是衍生 Java 引擎并退出。
  • suppressPreCopyScript
禁止执行预复制脚本。
  • acceptUntrustedCertificates
接受来自安全站点的不受信任的证书。
  • suppressPostCopyScript
禁止执行复制后脚本。
  • noconfig
不执行配置工具。
  • noconsole
禁止在控制台中显示消息。不分配控制台。
  • formCluster
安装 Oracle Clusterware 以构成集群。
  • remotecp <Path>
Unix 特定选项。仅用于安装集群, 可指定本地集群节点上远程复制程序的路径。
  • remoteshell <Path>
Unix 特定选项。仅用于安装集群, 可指定本地集群节点上远程 shell 程序的路径。
  • executePrereqs
仅执行先决条件检查。
  • ignorePrereq
忽略运行先决条件检查。
  • ignoreInternalDriverError
忽略任何内部驱动程序错误。
  • downloadUpdates
只下载更新。
  • showProgress
用于在控制台上显示安装进度。仅在无提示安装下才支持此选项。
1.2 命令行变量用法
使用 <name=value> 指定命令行变量; 例如:
[ session: | compName: | compName:version: ]variableName=" valueOfVariable"]
1.3 使用以下语法指定会话/安装程序变量:
[session:]varName=value
示例 1: 
session:ORACLE_HOME_NAME="OraHome"
示例 2: 
ORACLE_HOME_NAME="OraHome"
查找顺序是先查找 session:varName, 然后查找 varName。会话前缀用于避免产生歧义。
1.4 使用以下语法指定组件变量:
[compInternalName:[Version:]]varName
示例 1: oracle.comp1:1.0.1:varName="VarValue"
示例 2: oracle.comp1:varName="VarValue"
查找顺序是先查找 
compInternalName:Version:varName, 
然后查找 compInternalName:varName, 
最后查找 varName。

02

dbca参数说明

dbca [-silent | -progressOnly | -customCreate] {<command> <options> } | { [<command> [options] ] -responseFile <response file > }[-continueOnNonFatalErrors <true | false>]

复制
有关详细信息, 请参阅手册。
2.1 可以输入以下命令之一:
  • 通过指定以下参数创建数据库:

-createDatabase-templateName <默认位置或完整模板路径中现有模板的名称>[-cloneTemplate]-gdbName <全局数据库名>[-sid <数据库系统标识符>][-sysPassword <SYS 用户口令>][-systemPassword <SYSTEM 用户口令>][-emConfiguration <CENTRAL|LOCAL|ALL|NONE>-dbsnmpPassword <DBSNMP 用户口令>-sysmanPassword <SYSMAN 用户口令>[-hostUserName <EM 备份作业的主机用户名>-hostUserPassword <EM 备份作业的主机用户口令>-backupSchedule <使用 hh:mm 格式的每日备份计划>][-centralAgent <Enterprise Manager 中央代理主目录>]][-disableSecurityConfiguration <ALL|AUDIT|PASSWORD_PROFILE|NONE>[-datafileDestination <所有数据库文件的目标目录> | -datafileNames <含有诸如控制文件, 表空间, 重做日志文件数据库对象以及按 name=value 格式与这些对象相对应的裸设备文件名映射的 spfile 的文本文件。>][-redoLogFileSize <每个重做日志文件的大小 (MB)>][-recoveryAreaDestination <所有恢复文件的目标目录>][-datafileJarLocation <数据文件 jar 的位置, 只用于克隆数据库的创建>][-storageType < FS | ASM >[-asmsnmpPassword <用于 ASM 监视的 ASMSNMP 口令>]-diskGroupName <数据库区磁盘组名>-recoveryGroupName <恢复区磁盘组名>[-characterSet <数据库的字符集>][-nationalCharacterSet <数据库的国家字符集>][-registerWithDirService <true | false>-dirServiceUserName <目录服务的用户名>-dirServicePassword <目录服务的口令>-walletPassword <数据库 Wallet 的口令>][-listeners <监听程序列表, 该列表用于配置具有如下对象的数据库>][-variablesFile <用于模板中成对变量和值的文件名>]][-variables <以逗号分隔的 name=value 对列表>][-initParams <以逗号分隔的 name=value 对列表>][-sampleSchema <true | false> ][-memoryPercentage <用于 Oracle 的物理内存百分比>][-automaticMemoryManagement ][-totalMemory < Oracle 分配的内存 (MB)>][-databaseType <MULTIPURPOSE|DATA_WAREHOUSING|OLTP>]]

复制
  • 通过指定以下参数来配置数据库:
-configureDatabase-sourceDB <源数据库 sid>[-sysDBAUserName <用户名 (具有 SYSDBA 权限)>-sysDBAPassword <sysDBAUserName 用户名的口令>][-registerWithDirService|-unregisterWithDirService|-regenerateDBPassword <true | false>-dirServiceUserName <目录服务的用户名>-dirServicePassword <目录服务的口令>-walletPassword <数据库 Wallet 的口令>][-disableSecurityConfiguration <ALL|AUDIT|PASSWORD_PROFILE|NONE>[-enableSecurityConfiguration <true|false>[-emConfiguration <CENTRAL|LOCAL|ALL|NONE>-dbsnmpPassword <DBSNMP 用户口令>-sysmanPassword <SYSMAN 用户口令>[-hostUserName <EM 备份作业的主机用户名>-hostUserPassword <EM 备份作业的主机用户口令>-backupSchedule <使用 hh:mm 格式的每日备份计划>][-centralAgent <Enterprise Manager 中央代理主目录>]]
复制
  • 通过指定以下参数使用现有数据库创建模板:
-createTemplateFromDB-sourceDB <服务采用 <host>:<port>:<sid> 格式>"dbca.txt" 94L, 4648C 1,1          顶端
复制
有关详细信息, 请参阅手册。
2.2 可以输入以下命令之一:
  • 通过指定以下参数创建数据库:

-createDatabase-templateName <默认位置或完整模板路径中现有模板的名称>[-cloneTemplate]-gdbName <全局数据库名>[-sid <数据库系统标识符>][-sysPassword <SYS 用户口令>][-systemPassword <SYSTEM 用户口令>][-emConfiguration <CENTRAL|LOCAL|ALL|NONE>-dbsnmpPassword <DBSNMP 用户口令>-sysmanPassword <SYSMAN 用户口令>[-hostUserName <EM 备份作业的主机用户名>-hostUserPassword <EM 备份作业的主机用户口令>-backupSchedule <使用 hh:mm 格式的每日备份计划>][-centralAgent <Enterprise Manager 中央代理主目录>]][-disableSecurityConfiguration <ALL|AUDIT|PASSWORD_PROFILE|NONE>[-redoLogFileSize <每个重做日志文件的大小 (MB)>][-recoveryAreaDestination <所有恢复文件的目标目录>][-datafileJarLocation <数据文件 jar 的位置, 只用于克隆数据库的创建>][-storageType < FS | ASM >[-asmsnmpPassword <用于 ASM 监视的 ASMSNMP 口令>]-diskGroupName <数据库区磁盘组名>-recoveryGroupName <恢复区磁盘组名>[-characterSet <数据库的字符集>][-nationalCharacterSet <数据库的国家字符集>][-registerWithDirService <true | false>-dirServiceUserName <目录服务的用户名>-dirServicePassword <目录服务的口令>-walletPassword <数据库 Wallet 的口令>][-listeners <监听程序列表, 该列表用于配置具有如下对象的数据库>][-variablesFile <用于模板中成对变量和值的文件名>]][-variables <以逗号分隔的 name=value 对列表>][-initParams <以逗号分隔的 name=value 对列表>][-sampleSchema <true | false> ][-memoryPercentage <用于 Oracle 的物理内存百分比>][-automaticMemoryManagement ][-totalMemory < Oracle 分配的内存 (MB)>][-databaseType <MULTIPURPOSE|DATA_WAREHOUSING|OLTP>]]

复制
  • 通过指定以下参数来配置数据库:

-configureDatabase-sourceDB <源数据库 sid>[-sysDBAUserName <用户名 (具有 SYSDBA 权限)>-sysDBAPassword <sysDBAUserName 用户名的口令>][-registerWithDirService|-unregisterWithDirService|-regenerateDBPassword <true | false>-dirServiceUserName <目录服务的用户名>-dirServicePassword <目录服务的口令>-walletPassword <数据库 Wallet 的口令>][-disableSecurityConfiguration <ALL|AUDIT|PASSWORD_PROFILE|NONE>[-enableSecurityConfiguration <true|false>[-emConfiguration <CENTRAL|LOCAL|ALL|NONE>-dbsnmpPassword <DBSNMP 用户口令>-sysmanPassword <SYSMAN 用户口令>[-hostUserName <EM 备份作业的主机用户名>-hostUserPassword <EM 备份作业的主机用户口令>-backupSchedule <使用 hh:mm 格式的每日备份计划>][-centralAgent <Enterprise Manager 中央代理主目录>]]

复制
  • 通过指定以下参数使用现有数据库创建模板:
-createTemplateFromDB-sourceDB <服务采用 <host>:<port>:<sid> 格式>-templateName <新的模板名>-sysDBAUserName <用户名 (具有 SYSDBA 权限)>-sysDBAPassword <sysDBAUserName 用户名的口令>[-maintainFileLocations <true | false>]
复制
  • 通过指定以下参数使用现有数据库创建克隆模板:
-createCloneTemplate-sourceSID <源数据库 sid>-templateName <新的模板名>[-sysDBAUserName <用户名 (具有 SYSDBA 权限)>-sysDBAPassword <sysDBAUserName 用户名的口令>][-maintainFileLocations <true | false>][-datafileJarLocation <存放压缩格式数据文件的目录>]
复制
  • 通过指定以下参数生成脚本以创建数据库:
-generateScripts-templateName <默认位置或完整模板路径中现有模板的名称>-gdbName <全局数据库名>[-scriptDest <所有脚本文件的目标位置>]
复制
  • 通过指定以下参数删除数据库:
-deleteDatabase-sourceDB <源数据库 sid>[-sysDBAUserName <用户名 (具有 SYSDBA 权限)>-sysDBAPassword <sysDBAUserName 用户名的口令>]
复制
  • 通过指定以下选项来查询帮助: -h | -help

03

netca参数说明

Usage: netca [-silent] {<command> <options>}Perform network configuration by specifying the following arguments:[-silent]-responsefile <Response file name>][-local {Perform configuration on only local node}]-instype <typical|custom>[-listener <Listener name (only for custom install)>][-lisport <TCP/IP port number>][-lps <Starting TCP/IP port number (only for typical install)>][-lpe <Ending TCP/IP port number (only for typical install)>][-netnum <Network resource number (only for RAC)>][-nostartlsnr {Do not start listener}][-crsupgrade {Upgrade default listener from lower version database home to Grid Infrastructure home (only for RAC)}][-inscomp <Comma separated list of installed components>][-insprtcl <Comma separated list of installed protocols>][-orahome <Oracle home>][-orahnam <Oracle home name>][-log <Log file name>][-h|-help {Print usage
复制

04

手动建库中常用脚本的解释

END

更多精彩干货分享

点击下方名片关注

IT那活儿

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论