Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

The Node role Transformation of oracle 12c flex cluster

2025-01-27 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Database >

Share

Shulou(Shulou.com)06/01 Report--

Zhou Tianpeng of Waldorf Technology

In my last translation, the author mentioned when introducing Leaf Node.

* * although leaf node does not require direct access to shared storage, it is best to connect to shared storage, because it is uncertain when the leaf node will be converted to hub node in the future. **

In fact, this statement is not accurate enough, in 12cR1, it is not possible to run a read-only database instance on leaf node, so not connecting to shared storage does not affect its use at all. 12cR2's leaf node can run read-only database instances, and once there is a database on leaf node, leaf node (exactly leaf node should be called reader node) must connect to shared storage.

This time, I'll show you how to convert the roles of nodes between hub node and leaf node. Since the author already has a leaf node in the experimental environment, we start from leaf node to hub node.

Initial state:

`

[root@rac1 ~] # crsctl get cluster mode status

Cluster is running in "flex" mode

[root@rac1 ~] # srvctl status srvpool-detail

Server pool name: Free

Active servers count: 0

Active server names:

Server pool name: Generic

Active servers count: 0

Active server names:

Server pool name: RF1POOL

Active servers count: 1

Active server names: rac3

NAME=rac3 STATE=ONLINE

Server pool name: ztp_pool

Active servers count: 2

Active server names: rac1,rac2

NAME=rac1 STATE=ONLINE

NAME=rac2 STATE=ONLINE

[root@rac1 ~] # crsctl get node role config-all

Node 'rac1' configured role is' hub'

Node 'rac2' configured role is' hub'

Node 'rac3' configured role is' leaf'

[root@rac1 ~] # crsctl get node role status-all

Node 'rac1' active role is' hub'

Node 'rac2' active role is' hub'

Node 'rac3' active role is' leaf'

`

# leaf to hub

There is a database called orcl running on the cluster. Observe the status of the orcl library before changing roles.

`

Ora.orcl.db

1 ONLINE ONLINE rac3 Open,Readonly,HOME=/

U01/app/oracle/produ

Ct/12.2.0/dbhome_1,S

TABLE

2 ONLINE ONLINE rac2 Open,HOME=/u01/app/o

Racle/product/12.2.0

/ dbhome_1,STABLE

3 ONLINE ONLINE rac1 Open,HOME=/u01/app/o

Racle/product/12.2.0

/ dbhome_1,STABLE

`

Obviously, because rac3 is now leaf node, the database instance on rac3 can only be opened as read-only.

You can change the role of rac3 from leaf node to hub node by doing the following

* * crsctl set node role {hub | leaf} * *

`

[root@rac3 ~] # crsctl set node role hub

CRS-4408: Node 'rac3' configured role successfully changed; restart Oracle High Availability Services for new role to take effect.

`

View the role information of each node

`

[root@rac1 ~] # crsctl get node role config-all

Node 'rac1' configured role is' hub'

Node 'rac2' configured role is' hub'

Node 'rac3' configured role is' hub', but active role is' leaf'.

Restart Oracle High Availability Services for the new role to take effect.

[root@rac1 ~] # crsctl get node role status-all

Node 'rac1' active role is' hub'

Node 'rac2' active role is' hub'

Node 'rac3' active role is' leaf', but configured role is' hub'.

Restart Oracle High Availability Services for the new role to take effect.

`

According to the command output information, the crs of this node needs to be restarted before the configuration takes effect, that is, * * role conversion cannot be carried out online. **

Turn off the crs service for rac3

`

[root@rac3 ~] # crsctl stop crs

CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'rac3'

CRS-2673: Attempting to stop 'ora.crsd' on' rac3'

CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on server 'rac3'

CRS-2673: Attempting to stop 'ora.orcl.db' on' rac3'

CRS-2677: Stop of 'ora.orcl.db' on' rac3' succeeded

CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on' rac3'

CRS-2673: Attempting to stop 'ora.LISTENER_LEAF.lsnr' on' rac3'

CRS-2677: Stop of 'ora.LISTENER_LEAF.lsnr' on' rac3' succeeded

CRS-2677: Stop of 'ora.LISTENER.lsnr' on' rac3' succeeded

CRS-2673: Attempting to stop 'ora.rac3.vip' on' rac3'

CRS-2677: Stop of 'ora.rac3.vip' on' rac3' succeeded

CRS-2672: Attempting to start 'ora.rac3.vip' on' rac2'

CRS-2676: Start of 'ora.rac3.vip' on' rac2' succeeded

CRS-2673: Attempting to stop 'ora.net1.network' on' rac3'

CRS-2677: Stop of 'ora.net1.network' on' rac3' succeeded

CRS-2792: Shutdown of Cluster Ready Services-managed resources on 'rac3' has completed

CRS-2677: Stop of 'ora.crsd' on' rac3' succeeded

CRS-2673: Attempting to stop 'ora.cluster_interconnect.haip' on' rac3'

CRS-2673: Attempting to stop 'ora.crf' on' rac3'

CRS-2673: Attempting to stop 'ora.gpnpd' on' rac3'

CRS-2673: Attempting to stop 'ora.mdnsd' on' rac3'

CRS-2677: Stop of 'ora.cluster_interconnect.haip' on' rac3' succeeded

CRS-2677: Stop of 'ora.gpnpd' on' rac3' succeeded

CRS-2673: Attempting to stop 'ora.ctssd' on' rac3'

CRS-2673: Attempting to stop 'ora.evmd' on' rac3'

CRS-2677: Stop of 'ora.mdnsd' on' rac3' succeeded

CRS-2677: Stop of 'ora.evmd' on' rac3' succeeded

CRS-2677: Stop of 'ora.crf' on' rac3' succeeded

CRS-2677: Stop of 'ora.ctssd' on' rac3' succeeded

CRS-2673: Attempting to stop 'ora.cssd' on' rac3'

CRS-2677: Stop of 'ora.cssd' on' rac3' succeeded

CRS-2673: Attempting to stop 'ora.driver.afd' on' rac3'

CRS-2673: Attempting to stop 'ora.gipcd' on' rac3'

CRS-2677: Stop of 'ora.driver.afd' on' rac3' succeeded

CRS-2677: Stop of 'ora.gipcd' on' rac3' succeeded

CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'rac3' has completed

CRS-4133: Oracle High Availability Services has been stopped.

`

View the role information of each node

`

[root@rac1 ~] # crsctl get node role config-all

Node 'rac1' configured role is' hub'

Node 'rac2' configured role is' hub'

[root@rac1 ~] # crsctl get node role status-all

Node 'rac1' active role is' hub'

Node 'rac2' active role is' hub'

`

Start the crs service for rac3

`

[root@rac3 ~] # crsctl start crs-wait

CRS-4123: Starting Oracle High Availability Services-managed resources

CRS-2672: Attempting to start 'ora.evmd' on' rac3'

CRS-2672: Attempting to start 'ora.mdnsd' on' rac3'

CRS-2676: Start of 'ora.mdnsd' on' rac3' succeeded

CRS-2676: Start of 'ora.evmd' on' rac3' succeeded

CRS-2672: Attempting to start 'ora.gpnpd' on' rac3'

CRS-2676: Start of 'ora.gpnpd' on' rac3' succeeded

CRS-2672: Attempting to start 'ora.gipcd' on' rac3'

CRS-2676: Start of 'ora.gipcd' on' rac3' succeeded

CRS-2672: Attempting to start 'ora.cssdmonitor' on' rac3'

CRS-2676: Start of 'ora.cssdmonitor' on' rac3' succeeded

CRS-2672: Attempting to start 'ora.cssd' on' rac3'

CRS-2672: Attempting to start 'ora.diskmon' on' rac3'

CRS-2676: Start of 'ora.diskmon' on' rac3' succeeded

CRS-2676: Start of 'ora.cssd' on' rac3' succeeded

CRS-2672: Attempting to start 'ora.cluster_interconnect.haip' on' rac3'

CRS-2672: Attempting to start 'ora.ctssd' on' rac3'

CRS-2676: Start of 'ora.ctssd' on' rac3' succeeded

CRS-2672: Attempting to start 'ora.crf' on' rac3'

CRS-2676: Start of 'ora.crf' on' rac3' succeeded

CRS-2672: Attempting to start 'ora.crsd' on' rac3'

CRS-2676: Start of 'ora.crsd' on' rac3' succeeded

CRS-2676: Start of 'ora.cluster_interconnect.haip' on' rac3' succeeded

CRS-2672: Attempting to start 'ora.drivers.acfs' on' rac3'

CRS-2676: Start of 'ora.drivers.acfs' on' rac3' succeeded

CRS-2672: Attempting to start 'ora.asm' on' rac3'

CRS-2676: Start of 'ora.asm' on' rac3' succeeded

CRS-6017: Processing resource auto-start for servers: rac3

CRS-2672: Attempting to start 'ora.ASMNET1LSNR_ASM.lsnr' on' rac3'

CRS-2673: Attempting to stop 'ora.rac3.vip' on' rac2'

CRS-2673: Attempting to stop 'ora.LISTENER_SCAN2.lsnr' on' rac2'

CRS-2672: Attempting to start 'ora.ons' on' rac3'

CRS-2677: Stop of 'ora.rac3.vip' on' rac2' succeeded

CRS-2672: Attempting to start 'ora.rac3.vip' on' rac3'

CRS-2677: Stop of 'ora.LISTENER_SCAN2.lsnr' on' rac2' succeeded

CRS-2673: Attempting to stop 'ora.scan2.vip' on' rac2'

CRS-2677: Stop of 'ora.scan2.vip' on' rac2' succeeded

CRS-2672: Attempting to start 'ora.scan2.vip' on' rac3'

CRS-2676: Start of 'ora.ASMNET1LSNR_ASM.lsnr' on' rac3' succeeded

CRS-2676: Start of 'ora.rac3.vip' on' rac3' succeeded

CRS-2672: Attempting to start 'ora.LISTENER.lsnr' on' rac3'

CRS-2676: Start of 'ora.ons' on' rac3' succeeded

CRS-2676: Start of 'ora.scan2.vip' on' rac3' succeeded

CRS-2672: Attempting to start 'ora.LISTENER_SCAN2.lsnr' on' rac3'

CRS-2676: Start of 'ora.LISTENER.lsnr' on' rac3' succeeded

CRS-2679: Attempting to clean 'ora.asm' on' rac3'

CRS-2676: Start of 'ora.LISTENER_SCAN2.lsnr' on' rac3' succeeded

CRS-2681: Clean of 'ora.asm' on' rac3' succeeded

CRS-2672: Attempting to start 'ora.asm' on' rac3'

CRS-2676: Start of 'ora.asm' on' rac3' succeeded

CRS-2672: Attempting to start 'ora.DATA.dg' on' rac3'

CRS-2672: Attempting to start 'ora.FLEXDG.dg' on' rac3'

CRS-2676: Start of 'ora.FLEXDG.dg' on' rac3' succeeded

CRS-2676: Start of 'ora.DATA.dg' on' rac3' succeeded

CRS-2672: Attempting to start 'ora.orcl.db' on' rac3'

CRS-2672: Attempting to start 'ora.prod1.db' on' rac3'

CRS-2676: Start of 'ora.orcl.db' on' rac3' succeeded

CRS-2676: Start of 'ora.prod1.db' on' rac3' succeeded

CRS-6016: Resource auto-start has completed for server rac3

CRS-6024: Completed start of Oracle Cluster Ready Services-managed resources

CRS-4123: Oracle High Availability Services has been started.

`

View the role information of each node after startup is completed

`

[root@rac1 ~] # crsctl get node role config-all

Node 'rac1' configured role is' hub'

Node 'rac2' configured role is' hub'

Node 'rac3' configured role is' hub'

[root@rac1 ~] # crsctl get node role status-all

Node 'rac1' active role is' hub'

Node 'rac2' active role is' hub'

Node 'rac3' active role is' hub'

`

At this point, observe the status of the whole cluster.

`

[root@rac1 ~] # crsctl status res-t

Name Target State Server State details

Local Resources

Ora.ASMNET1LSNR_ASM.lsnr

ONLINE ONLINE rac1 STABLE

ONLINE ONLINE rac2 STABLE

ONLINE ONLINE rac3 STABLE

Ora.DATA.dg

ONLINE ONLINE rac1 STABLE

ONLINE ONLINE rac2 STABLE

ONLINE ONLINE rac3 STABLE

Ora.FLEXDG.dg

ONLINE ONLINE rac1 STABLE

ONLINE ONLINE rac2 STABLE

ONLINE ONLINE rac3 STABLE

Ora.LISTENER.lsnr

ONLINE ONLINE rac1 STABLE

ONLINE ONLINE rac2 STABLE

ONLINE ONLINE rac3 STABLE

Ora.OCR.dg

ONLINE ONLINE rac1 STABLE

ONLINE ONLINE rac2 STABLE

ONLINE ONLINE rac3 STABLE

Ora.net1.network

ONLINE ONLINE rac1 STABLE

ONLINE ONLINE rac2 STABLE

ONLINE ONLINE rac3 STABLE

Ora.ons

ONLINE ONLINE rac1 STABLE

ONLINE ONLINE rac2 STABLE

ONLINE ONLINE rac3 STABLE

Ora.proxy_advm

OFFLINE OFFLINE rac1 STABLE

OFFLINE OFFLINE rac2 STABLE

OFFLINE OFFLINE rac3 STABLE

Cluster Resources

Ora.LISTENER_SCAN1.lsnr

1 ONLINE ONLINE rac1 STABLE

Ora.LISTENER_SCAN2.lsnr

1 ONLINE ONLINE rac3 STABLE

Ora.LISTENER_SCAN3.lsnr

1 ONLINE ONLINE rac2 STABLE

Ora.MGMTLSNR

1 OFFLINE OFFLINE STABLE

Ora.asm

1 ONLINE ONLINE rac1 Started,STABLE

2 ONLINE ONLINE rac2 Started,STABLE

3 ONLINE ONLINE rac3 Started,STABLE

Ora.cvu

1 ONLINE ONLINE rac2 STABLE

Ora.gns

1 ONLINE ONLINE rac1 STABLE

Ora.gns.vip

1 ONLINE ONLINE rac1 STABLE

Ora.orcl.db

1 ONLINE ONLINE rac3 Open,HOME=/u01/app/o

Racle/product/12.2.0

/ dbhome_1,STABLE

2 ONLINE ONLINE rac2 Open,HOME=/u01/app/o

Racle/product/12.2.0

/ dbhome_1,STABLE

3 ONLINE ONLINE rac1 Open,HOME=/u01/app/o

Racle/product/12.2.0

/ dbhome_1,STABLE

Ora.prod1.db

1 ONLINE ONLINE rac1 Open,HOME=/u01/app/o

Racle/product/12.2.0

/ dbhome_1,STABLE

2 ONLINE ONLINE rac2 Open,HOME=/u01/app/o

Racle/product/12.2.0

/ dbhome_1,STABLE

3 ONLINE ONLINE rac3 Open,HOME=/u01/app/o

Racle/product/12.2.0

/ dbhome_1,STABLE

Ora.qosmserver

1 OFFLINE OFFLINE STABLE

Ora.rac1.vip

1 ONLINE ONLINE rac1 STABLE

Ora.rac2.vip

1 ONLINE ONLINE rac2 STABLE

Ora.rac3.vip

1 ONLINE ONLINE rac3 STABLE

Ora.scan1.vip

1 ONLINE ONLINE rac1 STABLE

Ora.scan2.vip

1 ONLINE ONLINE rac3 STABLE

Ora.scan3.vip

1 ONLINE ONLINE rac2 STABLE

`

At this point, the instance of the orcl library on rac3 has become open instead of the previous Open,Readonly

# hub to leaf

* * in 12cR2, if you want to set the role of a node to leaf node, the scan parsing method of the cluster must be GNS. **

Through the status information of the whole cluster above, we can also see that the experimental environment of the author is configured with GNS. If not configured, an error will be reported when executing the crsctl set node role leaf command.

`

[root@rac3 ~] # crsctl set node role leaf

CRS-4408: Node 'rac3' configured role successfully changed; restart Oracle High Availability Services for new role to take effect.

`

As above, rac3 still needs to restart crs for the configuration to take effect.

Process outline

The role information of each node after restart is as follows:

`

[root@rac1 ~] # crsctl get node role status-all

Node 'rac1' active role is' hub'

Node 'rac2' active role is' hub'

Node 'rac3' active role is' leaf'

[root@rac1 ~] # crsctl get node role config-all

Node 'rac1' configured role is' hub'

Node 'rac2' configured role is' hub'

Node 'rac3' configured role is' leaf'

`

At this point, the status of the entire cluster is as follows:

`

[root@rac1 ~] # crsctl status res-t

Name Target State Server State details

Local Resources

Ora.ASMNET1LSNR_ASM.lsnr

ONLINE ONLINE rac1 STABLE

ONLINE ONLINE rac2 STABLE

Ora.DATA.dg

ONLINE ONLINE rac1 STABLE

ONLINE ONLINE rac2 STABLE

Ora.FLEXDG.dg

ONLINE ONLINE rac1 STABLE

ONLINE ONLINE rac2 STABLE

Ora.LISTENER.lsnr

ONLINE ONLINE rac1 STABLE

ONLINE ONLINE rac2 STABLE

ONLINE ONLINE rac3 STABLE

Ora.LISTENER_LEAF.lsnr

OFFLINE OFFLINE rac3 STABLE

Ora.OCR.dg

ONLINE ONLINE rac1 STABLE

ONLINE ONLINE rac2 STABLE

Ora.net1.network

ONLINE ONLINE rac1 STABLE

ONLINE ONLINE rac2 STABLE

ONLINE ONLINE rac3 STABLE

Ora.ons

ONLINE ONLINE rac1 STABLE

ONLINE ONLINE rac2 STABLE

Ora.proxy_advm

OFFLINE OFFLINE rac1 STABLE

OFFLINE OFFLINE rac2 STABLE

Cluster Resources

Ora.LISTENER_SCAN1.lsnr

1 ONLINE ONLINE rac1 STABLE

Ora.LISTENER_SCAN2.lsnr

1 ONLINE ONLINE rac1 STABLE

Ora.LISTENER_SCAN3.lsnr

1 ONLINE ONLINE rac2 STABLE

Ora.MGMTLSNR

1 OFFLINE OFFLINE STABLE

Ora.asm

1 ONLINE ONLINE rac1 Started,STABLE

2 ONLINE ONLINE rac2 Started,STABLE

3 ONLINE OFFLINE Instance Shutdown,ST

ABLE

Ora.cvu

1 ONLINE ONLINE rac2 STABLE

Ora.gns

1 ONLINE ONLINE rac1 STABLE

Ora.gns.vip

1 ONLINE ONLINE rac1 STABLE

Ora.orcl.db

1 ONLINE ONLINE rac3 Open,Readonly,HOME=/

U01/app/oracle/produ

Ct/12.2.0/dbhome_1,S

TABLE

2 ONLINE ONLINE rac2 Open,HOME=/u01/app/o

Racle/product/12.2.0

/ dbhome_1,STABLE

3 ONLINE ONLINE rac1 Open,HOME=/u01/app/o

Racle/product/12.2.0

/ dbhome_1,STABLE

Ora.prod1.db

1 ONLINE ONLINE rac1 Open,HOME=/u01/app/o

Racle/product/12.2.0

/ dbhome_1,STABLE

2 ONLINE ONLINE rac2 Open,HOME=/u01/app/o

Racle/product/12.2.0

/ dbhome_1,STABLE

3 ONLINE OFFLINE Instance Shutdown,ST

ABLE

Ora.qosmserver

1 OFFLINE OFFLINE STABLE

Ora.rac1.vip

1 ONLINE ONLINE rac1 STABLE

Ora.rac2.vip

1 ONLINE ONLINE rac2 STABLE

Ora.rac3.vip

1 ONLINE ONLINE rac3 STABLE

Ora.scan1.vip

1 ONLINE ONLINE rac1 STABLE

Ora.scan2.vip

1 ONLINE ONLINE rac1 STABLE

Ora.scan3.vip

1 ONLINE ONLINE rac2 STABLE

`

You can find that after switching from rac3 to leaf node, the resource ora.LISTENER_LEAF.lsnr has been added.

Moreover, the asm instance on rac3 is not started, and the db instance is opened in readonly mode.

It is important to note that the read-only db instance on leaf node registers the service with LISTENER_LEAF instead of LISTENER.

So the output of lsnrctl status never shows any registered services.

`

[root@rac3 ~] # srvctl start listener-listener LISTENER_LEAF

[grid@rac3 ~] $lsnrctl status

LSNRCTL for Linux: Version 12.2.0.1.0-Production on 27-JUL-2017 16:46:01

Copyright (c) 1991, 2016, Oracle. All rights reserved.

Connecting to (DESCRIPTION= (ADDRESS= (PROTOCOL=IPC) (KEY=LISTENER)

STATUS of the LISTENER

-

Alias LISTENER

Version TNSLSNR for Linux: Version 12.2.0.1.0-Production

Start Date 27-JUL-2017 16:24:27

Uptime 0 days 0 hr. 21 min. 34 sec

Trace Level off

Security ON: Local OS Authentication

SNMP OFF

Listener Parameter File / u01/app/12.2.0/grid/network/admin/listener.ora

Listener Log File / u01/app/grid/diag/tnslsnr/rac3/listener/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION= (ADDRESS= (PROTOCOL=ipc) (KEY=LISTENER)

(DESCRIPTION= (ADDRESS= (PROTOCOL=tcp) (HOST=10.10.70.103) (PORT=1521))

(DESCRIPTION= (ADDRESS= (PROTOCOL=tcp) (HOST=10.10.70.186) (PORT=1521))

The listener supports no services

The command completed successfully

[grid@rac3 ~] $lsnrctl status listener_leaf

LSNRCTL for Linux: Version 12.2.0.1.0-Production on 27-JUL-2017 16:46:02

Copyright (c) 1991, 2016, Oracle. All rights reserved.

Connecting to (DESCRIPTION= (ADDRESS= (PROTOCOL=IPC) (KEY=LISTENER_LEAF)

STATUS of the LISTENER

-

Alias LISTENER_LEAF

Version TNSLSNR for Linux: Version 12.2.0.1.0-Production

Start Date 27-JUL-2017 16:44:31

Uptime 0 days 0 hr. 1 min. 31 sec

Trace Level off

Security ON: Local OS Authentication

SNMP OFF

Listener Parameter File / u01/app/12.2.0/grid/network/admin/listener.ora

Listener Log File / u01/app/grid/diag/tnslsnr/rac3/listener_leaf/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION= (ADDRESS= (PROTOCOL=ipc) (KEY=LISTENER_LEAF)

(DESCRIPTION= (ADDRESS= (PROTOCOL=tcp) (HOST=10.10.70.103) (PORT=1525))

Services Summary...

Service "5491bed1838610f0e05366460a0a5736" has 1 instance (s).

Instance "orcl_1", status READY, has 1 handler (s) for this service...

Service "5507ca8c0abd4747e05365460a0a8d01" has 1 instance (s).

Instance "orcl_1", status READY, has 1 handler (s) for this service...

Service "orcl" has 1 instance (s).

Instance "orcl_1", status READY, has 1 handler (s) for this service...

Service "orclXDB" has 1 instance (s).

Instance "orcl_1", status READY, has 1 handler (s) for this service...

Service "orclpdb" has 1 instance (s).

Instance "orcl_1", status READY, has 1 handler (s) for this service...

Service "ztp" has 1 instance (s).

Instance "orcl_1", status READY, has 1 handler (s) for this service...

The command completed successfully

`

Finally, it should be noted that the default listening port on leaf node is 1525.

# conclusion

* changing the role of a node requires restarting the crs of the node

* GNS must be configured to convert a node to leaf node in 12cR2

* asm instances on leaf node will not be started, and db instances can only be started as read-only.

* manual updates are no longer needed in 12cR1, and role modification operations are greatly simplified in inventory,12cR2

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Database

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report