您好,欢迎来到爱够旅游网。
搜索
您的当前位置:首页oracle11g安装配置手册

oracle11g安装配置手册

来源:爱够旅游网


oracle11g安装配置手册

V1.0版

目 录

1

安装Oracle前的系统预备工作 ............................................................................................. 2 1.1 检查需要的软件包 ....................................................................................................... 2 1.2 修改系统内核参数 ....................................................................................................... 2 1.3 创建oracle组和用户 ................................................................................................. 3 1.4 创建oracle安装名目 ................................................................................................. 3 1.5 设置oracle用户环境变量 ......................................................................................... 3 安装Oracle .............................................................................................................................. 4 2.1 解压缩安装文件 ........................................................................................................... 4 2.2 安装ORACLE .............................................................................................................. 4 创建数据库 ............................................................................................................................. 10 3.1 配置监听 ..................................................................................................................... 10 3.2 创建数据库实例 ......................................................................................................... 14 3.3 检查oracle实例是否安装成功 ................................................................................. 21 3.4 设置开机自启动数据库实例 ..................................................................................... 21 数据库配置 ............................................................................................................................. 22 4.1 数据库差不多信息 ..................................................................................................... 22 4.2 修改ORACLE核心参数 ........................................................................................... 22 4.3 建数据库表空间 ......................................................................................................... 23 4.4 建数据库用户 ............................................................................................................. 23 4.5 导入数据 ..................................................................................................................... 23 4.6 用PLSQL Developer工具编译失效对象 ................................................................. 23 4.7 修改用户密码 ............................................................................................................. 24 系统故障处理 ......................................................................................................................... 24 5.1 数据库文件损坏 ......................................................................................................... 24 5.2 Oracle逻辑结构故障的处理方法: ......................................................................... 32 5.3 数据库服务器硬件故障 ............................................................................................. 34

2

3

4

5

1 安装Oracle前的系统预备工作

1.1 检查需要的软件包

以root用户登录系统,使用rpm -q 软件包关键词命令进行检测

rpm -q --qf binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc glibc gcc-c++ glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc libstdc++-devel make sysstat unixODBC unixODBC-devel 1.2 修改系统内核参数

在/etc/sysctl.conf中添加以下行: vi /etc/sysctl.conf

fs.aio-max-nr = 1048576 fs.file-max = 6815744 #kernel.shmall = 2097152 #kernel.shmmax = 536870912 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 = 1048586

运行下面的命令应用以上OS参数: /sbin/sysctl –p

添加以下行到/etc/security/limits.conf文件中: vi /etc/security/limits.conf * soft nproc 2047 * hard nproc 16384 * soft nofile 1024 * hard nofile 65536

假如/etc/pam.d/login文件中没有以下行,那么添加以下内容: vi /etc/pam.d/login session required pam_limits.so

修改/etc/selinux/config文件来关闭linux防火墙,确保SELINUX设置如下:

vi /etc/selinux/config SELINUX=disabled

1.3 创建oracle组和用户

groupadd oinstall groupadd dba useradd -g oinstall -G dba oracle passwd oracle 1.4 创建oracle安装名目

mkdir /oracle chown -R oracle:oinstall /oracle chmod -R 775 /oracle

1.5 设置oracle用户环境变量

以oracle用户登陆系统,在.bash_profile文件尾添加以下行: vi /home/oracle/.bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs ORACLE_SID=amdb ORACLE_BASE=/oracle ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 export ORACLE_SID ORACLE_BASE ORACLE_HOME PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin 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

2 安装Oracle

2.1 解压缩安装文件

$ mkdir /oracle/soft

通过FTP上传安装包到/oracle/soft/名目下 使用命令unzip 文件名 解压安装包

unzip p10404530_112030_Linux-x86-_1of7.zip unzip p10404530_112030_Linux-x86-_2of7.zip 设置oracle帐户能够操作安装文件所在的名目 chown -R oracle:oinstall /oracle/soft chmod -R 755 /oracle/soft

2.2 安装ORACLE

用oracle帐户进入安装文件所在名目,执行如下命令即可看到安装界面 $ ./runInstaller

假如无法看到安装界面,请使用root帐户执行如下命令后再运行安装程序: # export DISPLAY=:0.0或者ip:0.0 # xhost +

$ ./runInstaller 或 ./runInstaller -ignoreSysPreReqs 〔跃过系统检查〕 假如显现界面乱码现象,执行以下命令: export LANG=en

显现安装界面后,依照界面提示进行相关的设置:

安装完成的最后步骤,操作如下: $ su - root

# /oracle/oralnventory/orainstRoot.sh #/oracle/product/11.2.0/dbhome_1/root.sh

3 创建数据库

3.1 配置监听

1、以oracle用户登录系统运行netca命令 $ netca

2、添加监听程序

3、输入监听程序名

4、使用默认端口1521

5、完成配置

6、启动监听

$ lsnrctl start

3.2 创建数据库实例

以oracle用户登录系统,运行dbca命令创建数据库实例

$ dbca

1、选择创建数据库

2、选择创建数据库模板,选 定制数据库

3、输入数据库全局名及SID: amdb

4、设定数据库账号密码

5、设置闪回区大小,那个地点选择默认值大小

6、设置数据库实例SGA、PGA大小,视操作系统内存大小,一样假如此系统只有ORACLE应用,建议分配给ORACLE实例80%的大小,假如数据库为OLTP应用的,那么其应用一样差不多上小的短的进程,所需要的pga也相应较少,因此该值通常为总共分配给Oracle实例的20%,另外的80%给SGA,假如是OLAP的应用,建议各占50%。而假如数据库是混合类型的,一样会先分配给pga 40%的初始值,然后随着应用不断监控和调整PGA。

7、设置数据库实例数据块大小及用户最大进程数

8、设置数据库实例字符集

9、检查参数文件及所有数据文件位置是否正确

10、点击 完成 开始创建数据库实例

3.3 检查oracle实例是否安装成功

$ sqlplus / as sysdba;

SQL*Plus: Release 11.2.0.3.0 Production on Wed Nov 21 15:11:28 2021

Copyright (c) 1982, 2020, Oracle. All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options

SQL> select * from v$version;

BANNER

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

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - bit Production PL/SQL Release 11.2.0.3.0 - Production CORE 11.2.0.3.0 Production

TNS for Linux: Version 11.2.0.3.0 - Production NLSRTL Version 11.2.0.3.0 - Production

SQL>

3.4 设置开机自启动数据库实例

root用户登录: # vi /oracle/oraclestart.sh # !/bin/sh su - oracle <# echo \"/app/oracle/oraclestart.sh\">>/etc/rc.loca

4 数据库配置

4.1 数据库差不多信息

➢ 数据库类型:Oracle ➢ 数据库版本:11.2.0.3.0 ➢ 数据库SID:amdb ➢ 数据库别名: amdb

➢ 语言:AMERICAN_AMERICA

➢ 数据库字符集(NLS_CHARACTERSET):UTF8

➢ 国家区域字符集(NLS_NCHAR_CHARACTERSET):UTF8

4.2 修改ORACLE核心参数

$ sqlplus / as sysdba; alter system set nls_length_semantics = CHAR scope=spfile; alter system set sessions=3000 scope=spfile; alter system set processes=2500 scope=spfile; alter system set open_cursors=3000 scope=both; alter system set db_files=500 scope=spfile ; alter system set job_queue_processes=30 scope=both; alter system set nls_date_format=YYYY-MM-DD scope=spfile; 修改后重启数据库生效 Sql>shutdown immediate; Sql>startup; 4.3 建数据库表空间

$ sqlplus / as sysdba;

4.4 建数据库用户

$ sqlplus / as sysdba;

4.5 导入数据

imp system/oracle@服务名 fromuser=(XXX) touser=(XXX) ignore=y recordlength=65535 buffer=1048576000 file=XXXX.dmp log=XXX.log 4.6 用PLSQL Developer工具编译失效对象

PLSQL打开----工具----编译无效对象

或者用命令 $ sqlplus / as sysdba;

Sql>@/oracle/product/11.2.0/dbhome_1/rdbms/admin/utlrp.sql

4.7 修改用户密码

$ sqlplus / as sysdba;

alter user 用户名 identified by 密码;

5 系统故障处理

5.1 数据库文件损坏

口令文件损坏处理方法:

重新生成口令文件即可,采纳orapwd命令进行生成相应的口令文件到指定的位置,然后重启数据库即可

单个操纵文件损坏处理方法:

1、 停止数据库,shutdown immediate;

2、 查看初始化文件/initpmdb.ora,确定所有操纵文件的路径,一样初始化参数文件路径

在$ORACLE_BASE/admin/pfile

3、 用操作系统命令将其它正确的操纵文件覆盖错误的操纵文件 4、 重启数据库,startup

5、 用适当的方法进行数据库全备份 全部操纵文件损坏处理方法:

1. 确保数据库差不多关闭,假如没有用下面的命令来关闭数据库:

>shutdown immediate;

2. 从相应的备份结果集中复原最近的操纵文件。关于没有采纳带库备份的点能够直截

了当从磁带上将最近的操纵文件备份复原到相应名目;关于采纳带库备份的点用相应的rman脚本来复原最近的操纵文件

3. 用下面的命令来创建产生数据库操纵文件的脚本:

>startup mount;

>alter database backup controlfile to trace noresetlogs;

4. 修改第三步产生的trace文件,将其中关于创建操纵文件的一部分语句拷贝出来并

做些修改,使得它能够表达最新的数据库结构。假设产生的sql文件名字为createcontrol.sql. 注意:

Trace文件的具体路径能够在执行完第3〕步操作后查看$ORACLE_BASE/admin/bdump/alert_ORCL.ora文件来确定 5. 用下面命令重新创建操纵文件:

>shutdown abort; >startup nomount; >@createcontrol.sql; 6. 用适当的方法进行数据库全备份 重做日志文件损坏处理方法:

〔1〕、确定损坏的重做日志的位置及其状态:

1. 假如数据库处于可用状态:

select * from v$logfile; select * from v$log;

2. 假如数据库处于差不多专门终止:

>startup mount; >select * from v$logfile; >select * from v$log;

其中,logfile的状态为INVALID表示这组日志文件显现差不多损坏;log状态为Inactive:表示重做日志文件处于非激活状态;Active: 表示重做日志文件处于激活状态;Current:表示是重做日志为当前正在使用的日志文件

〔2〕、损坏的日志文件处于非激活状态:

1. 删除相应的日志组:

>alter database drop logfile group group_number; 2. 重新创建相应的日志组:

>alter

database

add

log

file

group

group_number

〔’log_file_descritpion’,…〕 size log_file_size;

〔3〕、损坏的日志文件处于激活状态且为非当前日志:

1. 清除相应的日志组:

>alter database clear unarchived logfile group group_number; 损坏的日志文件为当前活动日志文件: 用命令清除相应的日志组:

>alter database clear unarchived logfile group group_number; 假如清除失败,那么只能做基于时刻点的不完全复原。 打开数据库同时用适当的方法进行数据库全备份: >alter database open;

非system表空间的数据文件损坏 : 1. 确定损坏的文件名字:

>select name from v$datafile where status=’INVALID’; 2. 将损坏的数据文件处于offline状态:

>alter database datafile ‘datafile_name’ offline;

3. 从相应的备份结果集中复原关于那个数据文件的最近的备份。关于没有采纳带库备份的点能够直截了当从磁带上复原;关于用带库备份的点用相应的rman脚本来复原。

4. 复原数据文件:

>alter database recover datafile ‘file_name’; 5. 使数据库文件online:

>alter database datafile ‘datafile_name’ online; 6. 用适当的方法进行数据库全备份。 system表空间的数据文件损坏: 1. 以mount方式启动数据库 >startup mount;

2. 从相应的备份结果集中复原关于那个数据文件的最近的备份。关于没有采纳带库备份的点能够直截了当从磁带上复原;关于用带库备份的点用相应的rman脚本来复原。

3. 复原system表空间:

>alter database recover datafile ‘datafile_name’; 4. 打开数据库: >alter database open;

5. 用适当的方法进行数据库全备份 非system表空间损坏:

1. 将损坏的表空间处于offline状态:

>alter tablespace ‘tablespace_name’ offline;

2. 从相应的备份结果集中复原关于那个表空间最近的备份。关于没有采纳带库备份的点能够直截了当从磁带上复原;关于用带库备份的点用相应的rman脚本来复原。

3. 复原表空间:

>alter database recover tablespace ‘tablespace_name’; 4. 使表空间online:

>alter tablespace ‘tablespace_name’ online; 5. 用适当的方法进行数据库全备份. system表空间损坏: 1. 以mount方式启动数据库 >startup mount;

2. 从相应的备份结果集中复原system表空间最近的备份。关于没有采纳带库备份的点能够直截了当从磁带上复原;关于用带库备份的点用相应的rman脚本来复原。

3. 复原system表空间:

>alter database recover tablespace system; 4. 打开数据库: >alter database open;

5. 用适当的方法进行数据库全备份。 整个数据库的所有文件损坏:

整个数据库所有文件的损坏一样是在共享磁盘阵列发生无法复原的灾难时才发生,这种情形下只能对数据库进行复原。假设数据库的归档名目也差不多丢失,那么数据库不可能做完全复原,会有用户数据的丢失。

没采纳带库备份的现场:

1. 将最近的备份从磁带上把各个文件解包到相应的名目下。 2. 以mount方式打开数据库: >startup mount; 3. 复原数据库:

>recover database until cancel; 4. 打开数据库:

>alter database open resetlogs; 5. 用适当的方法进行数据库全备份。 采纳带库备份的现场:

1. 以nomount方式打开数据库: >startup nomount;

2. 通过相应的rman脚本进行数据库软复原。 $rman cmdfile=hot_database_restore.rcv 3. 打开数据库:

>alter database open resetlogs; 4. 用适当的方法进行数据库全备份。

存在最近的数据库完整冷备份前提下的一些经典紧急情形的处理: 数据文件,归档重作日志和操纵文件同时丢失或损坏: 无新增archives 时的状况:

条件和假设:自上次镜像备份以来尚未生成新的archive log(s); Archivelog Mode; 有同步的datafile(s) 和control file(s) 的镜像〔冷〕拷贝

复原步骤:

1. 将镜像拷贝的datafile(s) 和control file(s) 抄送回原始地点: $ cp /backup/good_one.dbf /orig_loc/bad_one.dbf $ cp /backup/control1.ctl /disk1/control1.ctl 2. 以mount 选项启动数据库: $ sqlplus /nolog > connect / as sysdba > startup mount

3. 以旧的control file 来复原数据库:

> recover database using backup controlfile until cancel; *** 介质复原完成 〔必须赶忙cancel 〕

4. Reset the logfiles 〔对启动而言不可省略〕:

> alter database open resetlogs; 5. 关闭数据库并做一次全库冷备份。 新增archives 时的状况:

条件和假设:自上次镜像备份以来差不多生成新的archive log(s); Archivelog Mode; 有同步的datafile(s) 和control file(s) 的镜像〔冷〕拷贝;archive log(s) 可用。

复原步骤:

1. 假如数据库尚未关闭,那么第一把它关闭: $ sqlplus /nolog > connect /as sysdba > shutdown abort

2. 将备份文件抄送回原始地点: 所有Database Files

所有Control Files〔没有archive(s) 或redo(s) 的情形下,control files 的更新无任何意义〕

所有On-Line Redo Logs (Not archives) init.ora file〔选项〕 3. 启动数据库: $ sqlplus /nolog > connect /as sysdba > startup

数据文件, 重作日志和操纵文件同时丢失或损坏:

条件和假设:Archivelog Mode; 有同步的所有所失文件的镜像〔冷〕拷贝;archive log(s) 可用

复原步骤〔必须采纳不完全复原的手法〕: 1. 假如数据库尚未关闭,那么第一把它关闭: $ sqlplus /nolog > connect /as sysdba > shutdown abort

2. 将备份文件抄送回原始地点: 所有Database Files

所有Control Files

所有On-Line Redo Logs(Not archives) init.ora file〔选项〕

3. 启动数据库然而并不打开: >startup mount

4. 做不完全数据库复原,应用所有从上次镜像〔冷〕备份始积存起来的archives: > recover database until cancel using backup controlfile; ...... ...... cancel

5. Reset the logfiles 〔对启动而言不可省略〕: > alter database open resetlogs; 6. 关闭数据库并做一次全库冷备份。 数据文件和操纵文件同时丢失或损坏:

条件和假设:Archivelog Mode; 有同步的datafile(s) 和control file(s) 的冷拷贝;archive log(s) 可用 复原步骤:

1. 将冷拷贝的datafiles(s) 和control file(s) 抄送回原始地点: $ cp /backup/good_one.dbf /orig_loc/bad_one.dbf $ cp /backup/control1.ctl /disk1/control1.ctl 2. 以mount 选项启动数据库: $ sqlplus /nolog > connect /as sysdba > startup mount

3. 以旧的control file 来复原数据库:

> recover database until cancel using backup controlfile; *** 介质复原完成

〔须在应用完最后一个archive log 后cancel 〕 4. Reset the logfiles 〔对启动而言不可省略〕: > alter database open resetlogs;

重作日志和操纵文件同时丢失或损坏时:

条件和假设:Control Files 全部丢失或损坏;Archivelog Mode; 有Control Files 的镜像〔冷〕拷贝。 复原步骤:

1. 假如数据库尚未关闭,那么第一把它关闭: $ sqlplus /nolog > connect /as sysdba > shutdown abort >exit

2. 以Control File 的镜像〔冷〕拷贝覆盖损坏了的Control File: $ cp /backup/control1.ctl /disk1/control1.ctl 3. 启动数据库然而并不打开: $ sqlplus /nolog > connect /as sysdba > startup mount

4. Drop 坏掉的redo log 〔排除硬件故障〕: > alter database drop logfile group 2; 5. 重新创建redo log:

> alter database add logfile group 2 '/orig_loc/log2.dbf' size 10M; 6. 以旧的control file 来复原数据库:

> recover database until cancel using backup controlfile; 〔必须赶忙cancel 〕

7. Reset the logfiles 〔对启动而言不可省略〕: > alter database open resetlogs; 8. 关闭数据库并做一次全库冷备份 只发生归档重作日志丢失或损坏时: 依照不同环境和情形,选择下述手段之一:

a. 赶忙backup 全部datafiles 〔假如系统采纳一样热备份或RMAN 热备份〕 b. 赶忙正常关闭数据库并进行冷备份〔假如系统采纳冷备份〕

c. 冒险前进!不做备份而让数据库接着跑,直等到下一个备份周期再做备份。这是在赌数

据库在下一个备份周期到来之前可不能有需要复原的错误发生。

注意:冒险前进的选择:假如发生错误而需要数据库复原,那么最多只能复原到出问题archive log 之前的操作现场。从另一个角度讲,archive log(s) 显现问题时,数据库假设不需要复原那么其本身并没有任何问题。

5.2 Oracle逻辑结构故障的处理方法:

逻辑结构的故障一样指由于人为的误操作而导致重要数据丢失的情形。在这种情形下数据库物理结构是完整的也是一致的。关于这种情形采取对原先数据库的全复原是不合适的,我们一样采纳三种方法来复原用户数据。 采纳exp/imp工具来复原用户数据:

假如丢失的数据存在一个往常用exp命令的备份,那么能够才用这种方式。 1. 在数据库内创建一个临时用户:

>create user test_user identified by test; >grant connect,resource to test_user;

2. 从往常exp命令备份的文件中把丢失数据的表按照用户方式倒入测试用户:

$imp system/manager file=export_file_name tables=(lost_data_table_name…) fromuser=lost_data_table_owner touser=test_user constraint=n; 3. 用相应的DML语句将丢失的数据从测试用户复原到原用户。 4. 将测试用户删除:

>drop user test_user cascede; 采纳logminer来复原用户数据:

Logminer是oracle提供的一个日志分析工具。它能够依照数据字典对在线联机日志、归档日志进行分析,从而能够获得数据库的各种DML操作的历史记录以及各种DML操作的回退信息。依照这些用户就能够将由于误操作而丢失的数据重新加入数据库内。 1. 确认数据库的utl_file_dir参数差不多设置,假如没有那么需要把那个参数加入oracle的初始化参数文件,然后重新启动数据库。下面例子中假设utl_file_dir=’/opt/oracle/db01’;

2. 创建logminer所需要的数据字典信息,假设生成的数据字典文本文件为dict.ora: >execute

dbms_logmnr_d.build(dictionary_filename=>'dict.ora'

dictionary_location=>'/opt/oracle/db01’);

3. 确定所需要分析的日志或者归档日志的范畴。这能够依照用户误操作的时刻来确定大致的日志范畴。假设用户误操作时可能的日志文件为/opt/oracle/db02/oradata/ORCL/redo3.log志’/opt/oracle/arch/orcl/orclarc_1_113.ora’。

4. 创建要分析的日志文件列表,按日志文件的先后顺序依次加入: >execute

dbms_logmnr.add_logfile(logfilename=>’/opt/oracle/arch/orcl/orclarc_1_113.ora’,options=>dbms_logmnr.NEW);

> execute dbms_logmnr.add_logfile(logfilename=>’ /opt/oracle/db02/oradata/ORCL/redo3.log’,options=>dbms_logmnr.ADDFILE);

5. 开始日志分析,假设需要分析的时刻在’2020-06-28 12:00:00’和’2020-06-28 13:00:00’之间:

>execute dbms_logmnr.start_logmnr(dictfilename=>’ /opt/oracle/db01/dict.ora’,starttime=>to_date(’ 2020-06-28

12:00:00’,’YYYY-MM-DD HH:MI:SS’),endtime=>to_date(to_date(‘2020-06-28 13:00:00’,’YYYY-MM-DD HH:MI:SS’)); 6. 猎取分析结果:

>select operation,sql_redo,sql_undo from v$logmnr_contents; 7. 依照分析结果修复数据。 8.终止logmnr:

>dbms_logmnr.end_logmnr;

9. 用适当的方法对原数据库进行数据库全备份。利用备份复原用户数据:

采纳这种方法时并不是在原数据库进行复原,而是利用数据库备份在新的机器上重新建立一个新的数据库。通过备份复原在新机器上将数据库复原到用户误操作前,如此就能够获得丢失的数据将其复原到原数据库。 1. 在新的机器上安装数据库软件。

2. 关于采纳带库备份的现场,需要在新的数据库服务器上安装调试相应的备份管软件。 3. 依照用户误操作的时刻点进行基于时刻点的数据库复原操作。关于没有采纳带库备份的现场,能够选取用户误操作前最近的备份磁带进行复原;关于才用带库备份的点能够通过基

于时刻复原点复原的rman脚本来进行复原。 4.重新打开数据库:

>alter database open resetlogs;

5. 从新的数据库中猎取丢失的用户数据,通过DML操作将其复原到原数据库中。 6. 用适当的方法对原数据库进行数据库全备份

5.3 数据库服务器硬件故障

1.磁盘空间不足:

经常采纳df命令查看磁盘空间,发觉不足时,及时清理一些不必要的日志和扩展磁盘空间 2.内存监控:

采纳topas查看系统内存使用情形,然后采纳ps –ef |grep oracle查看相应的进程,找出内存使用,然后进行分析,专门是使用较多交换分区时,可能需要优化应用或者扩展内存 3.CPU监控:

采纳topas还能够查看CPU使用情形

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务