Oracle11g RAC打补丁

Oracle11g RAC安装数据库补丁

一、RAC环境

OS Version DB Version Grid Version Gi Home Oracle Home
RHEL7.8 112.0.4 112.0.4 /u01/app/11.2.0/grid /u01/app/oracle/product/11.2.0/db_1

二、准备介质

2020年10月20 Patch版本: Oracle Grid Infrastructure Patch Set Update 11.2.0.4.201020

Opatch: p6880880_112000_Linux-x86-64.zip

DB:p31537677_112040_Linux-x86-64.zip

GI:  p31718723_112040_Linux-x86-64.zip

OJVM:  p31668908_112040_Linux-x86-64.zip

三、安装最新版Opatch

节点1和节点2都需要安装

1.备份OPatch

[root@racnode01 ~]# mv /u01/app/11.2.0/grid/OPatch /u01/app/11.2.0/grid/OPatch.20220107
[root@racnode01 ~]# mv /u01/app/oracle/product/11.2.0/db_1/OPatch /u01/app/oracle/product/11.2.0/db_1/OPatch.20220107

[root@racnode02 ~]# mv /u01/app/11.2.0/grid/OPatch /u01/app/11.2.0/grid/OPatch.20220107
[root@racnode02 ~]# mv /u01/app/oracle/product/11.2.0/db_1/OPatch /u01/app/oracle/product/11.2.0/db_1/OPatch.20220107

2.解压Opatch

节点1:

[root@racnode01 ~]# cd /opt/soft/patch/
[root@racnode01 patch]# unzip p6880880_112000_Linux-x86-64.zip

[root@racnode01 patch]# chown -R grid.oinstall OPatch
[root@racnode01 patch]# chmod -R 775 OPatch
[root@racnode01 patch]# mv OPatch /u01/app/11.2.0/grid/

[root@racnode01 patch]# unzip p6880880_112000_Linux-x86-64.zip
[root@racnode01 patch]# chown -R oracle.oinstall OPatch
[root@racnode01 patch]# chmod -R 775 OPatch
[root@racnode01 patch]# mv OPatch /u01/app/oracle/product/11.2.0/db_1/

[grid@racnode01 ~]$ cd $ORACLE_HOME/OPatch
[grid@racnode01 OPatch]$ ./opatch version
OPatch Version: 11.2.0.3.31

OPatch succeeded.

[oracle@racnode01 ~]$ cd $ORACLE_HOME/OPatch
[oracle@racnode01 OPatch]$ ./opatch version
OPatch Version: 11.2.0.3.31

OPatch succeeded.

节点2:

[root@racnode02 ~]# cd /opt/soft/patch/
[root@racnode02 patch]# unzip p6880880_112000_Linux-x86-64.zip
[root@racnode02 patch]# chown -R grid.oinstall OPatch
[root@racnode02 patch]# chmod -R 775 OPatch
[root@racnode02 patch]# mv OPatch /u01/app/11.2.0/grid/

[root@racnode02 patch]# unzip p6880880_112000_Linux-x86-64.zip
[root@racnode02 patch]# chown -R oracle.oinstall OPatch
[root@racnode02 patch]# chmod -R 775 OPatch
[root@racnode02 patch]# mv OPatch /u01/app/oracle/product/11.2.0/db_1/

3.验证

[grid@racnode01 ~]$ cd $ORACLE_HOME/OPatch

[grid@racnode01 OPatch]$ ./opatch version
OPatch Version: 11.2.0.3.31

OPatch succeeded.

[oracle@racnode01 ~]$ cd $ORACLE_HOME/OPatch
[oracle@racnode01 OPatch]$ ./opatch version
OPatch Version: 11.2.0.3.31

OPatch succeeded.

[grid@racnode02 ~]$ cd $ORACLE_HOME/OPatch

[grid@racnode02 OPatch]$ ./opatch version
OPatch Version: 11.2.0.3.31

OPatch succeeded.

[oracle@racnode02 ~]$ cd $ORACLE_HOME/OPatch
[oracle@racnode02 OPatch]$ ./opatch version
OPatch Version: 11.2.0.3.31

OPatch succeeded.
$ <ORACLE_HOME>/OPatch/opatch lsinventory -detail -oh <ORACLE_HOME>

[grid@racnode01 ~]$ /u01/app/11.2.0/grid/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME
[oracle@racnode01 ~]$ /u01/app/oracle/product/11.2.0/db_1/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME

四、安装GI补丁

节点1和节点2都需要执行,安装GI补丁会自动关闭数据库

1.备份Oracle Home

Doc ID 565017.1

1. (Suggested but not mandatory) Shutdown databases, listeners, or any other processes related to the ORACLE_HOME which you are taking backup.

2. cd to the directory where ORACLE_HOME is located for example:

cd /u01/app/oracle/product/11.2

3. backup the ORACLE_HOME for example:

tar -pcvf /u01/app/oracle/backup/oracle_home_bkup.tar db1

In the above example, ORACLE_HOME is /u01/app/oracle/product/11.2/db1 and backup the directory is /u01/app/oracle/backup/

Below is an example of restoring the ORACLE_HOME:

1. (This step would be mandatory in the case of restore) Shutdown databases, listeners, or any other processes related to the ORACLE_HOME which you are restoring.

2. Go to the directory where ORACLE_HOME is located for example:

cd /u01/app/oracle/product/11.2

3. Rename or move the current ORACLE_HOME for example:

mv db1 db1_bkup

4. Restore the ORACLE_HOME for example:

tar -pxvf /u01/app/oracle/backup/oracle_home_bkup.tar

Make sure that is enough enough free disk space before doing the backup.
[root@racnode01 ~]# mkdir -p /opt/backup
[root@racnode01 ~]# cd /u01/app/oracle/product/11.2.0
[root@racnode01 11.2.0]# tar -pcvf /opt/backup/oracle_home_bak.tar db_1

2.备份Grid Home

[root@racnode01 ~]# cd /u01/app/11.2.0
[root@racnode01 11.2.0]# tar -pcvf /opt/backup/grid_home_bak.tar grid

3.备份Central Inventory

The Central Inventory where the Oracle_Home is registered should also be part of the backup plan and taken at the same time as the ORACLE_HOME backup for consistency.

The Central Inventory contains information relating to the Oracle_Home's installed on a host.  Review the following note for more information:

<Note 564192.1> FAQs on Central Inventory and Oracle Home Inventory (Local Inventory) in Oracle RDBMS

To determine where the Central Inventory (oraInventory) is located review the following file depending upon the platform:

/var/opt/oracle/oraInst.loc

or

/etc/oraInst.loc

The contents of oraInst.loc file will look something like this for example:

inventory_loc=/oracle/product/oraInventory
inst_group=dba
[root@racnode01 ~]# more /etc/oraInst.loc
inventory_loc=/u01/app/oraInventory

[root@racnode01 ~]# cd /u01/app
tar -pcvf /opt/backup/oraInventory_bak.tar oraInventory

4.停止EM

$ORACLE_HOME/bin/emctl stop dbconsole

5.补丁冲突检查

[oracle@racnode01 ~]$ /u01/app/oracle/product/11.2.0/db_1/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./

See My Oracle Support Document 1061295.1 Patch Set Updates - One-off Patch Conflict Resolution to determine, for each conflicting patch, whether a conflict resolution patch is already available, and if you need to request a new conflict resolution patch or if the conflict may be ignored.

The fastest and easiest way to determine whether you have one-off patches in the Oracle home that conflict with the patch, and to get the necessary conflict resolution patches, is to use the Patch Recommendations and Patch Plans features on the Patches & Updates tab in My Oracle Support. These features work in conjunction with the My Oracle Support Configuration Manager. Recorded training sessions on these features can be found in Document 603505.2.

However, if you are not using My Oracle Support Patch Plans, the My Oracle Support Conflict Checker tool enables you to upload an OPatch inventory and check the patches that you want to apply to your environment for conflicts.

If no conflicts are found, you can download the patches. If conflicts are found, the tool finds an existing resolution to download. If no resolution is found, it will automatically request a resolution, which you can monitor in the Plans and Patch Requests region of the Patches & Updates tab.

For more information, see Knowledge Document 1091294.1, How to Use the My Oracle Support Conflict Checker Tool for Patches Installed with OPatch [Video].

Note:

When performing the conflict analysis on the database Oracle home inventory, use the database PSU patch instead of the Grid Infrastructure PSU patch.

6.安装

1.GI Patch Installation

[root@racnode01 patch]# unzip p31718723_112040_Linux-x86-64.zip
[root@racnode01 patch]# chown -R grid.oinstall 31718723
[root@racnode01 patch]# chmod -R 775 31718723

[root@racnode02 patch]# unzip p31718723_112040_Linux-x86-64.zip
[root@racnode02 patch]# chown -R grid.oinstall 31718723
[root@racnode02 patch]# chmod -R 775 31718723

As root user, execute the following command on each node of the cluster:

# opatch auto <UNZIPPED_PATCH_LOCATION>/31718723

[root@racnode01 ~]# /u01/app/11.2.0/grid/OPatch/opatch auto /opt/soft/patch/31718723
Executing /u01/app/11.2.0/grid/perl/bin/perl /u01/app/11.2.0/grid/OPatch/crs/patch11203.pl -patchdir /opt/soft/patch -patchn 31718723 -paramfile /u01/app/11.2.0/grid/crs/install/crsconfig_params

This is the main log file: /u01/app/11.2.0/grid/cfgtoollogs/opatchauto2022-01-09_15-25-28.log

This file will show your detected configuration and all the steps that opatchauto attempted to do on your system:
/u01/app/11.2.0/grid/cfgtoollogs/opatchauto2022-01-09_15-25-28.report.log

2022-01-09 15:25:28: Starting Clusterware Patch Setup
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params

Stopping RAC /u01/app/oracle/product/11.2.0/db_1 ...
Stopped RAC /u01/app/oracle/product/11.2.0/db_1 successfully

patch /opt/soft/patch/31718723/29938455/custom/server/29938455  apply successful for home  /u01/app/oracle/product/11.2.0/db_1
patch /opt/soft/patch/31718723/31537677  apply successful for home  /u01/app/oracle/product/11.2.0/db_1

Stopping CRS...
Stopped CRS successfully

patch /opt/soft/patch/31718723/29938455  apply successful for home  /u01/app/11.2.0/grid
patch /opt/soft/patch/31718723/31537677  apply successful for home  /u01/app/11.2.0/grid
patch /opt/soft/patch/31718723/29509309  apply failed  for home  /u01/app/11.2.0/grid

Starting CRS...
Installing Trace File Analyzer
CRS-4123: Oracle High Availability Services has been started.

Starting RAC /u01/app/oracle/product/11.2.0/db_1 ...
Started RAC /u01/app/oracle/product/11.2.0/db_1 successfully

opatch auto succeeded.

[root@racnode02 patch]# /u01/app/11.2.0/grid/OPatch/opatch auto /opt/soft/
18370031/                                    p18370031_112040_Linux-x86-64.zip            README.html
bundle.xml                                   p6880880_112000_Linux-x86-64.zip             README.txt
compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm  patch/                                       rlwrap-0.45.2.tar.gz
[root@racnode02 patch]# /u01/app/11.2.0/grid/OPatch/opatch auto /opt/soft/patch/
31718723/                          p31537677_112040_Linux-x86-64.zip  p31668908_112040_Linux-x86-64.zip  p31718723_112040_Linux-x86-64.zip  p6880880_112000_Linux-x86-64.zip
[root@racnode02 patch]# /u01/app/11.2.0/grid/OPatch/opatch auto /opt/soft/patch/31718723
Executing /u01/app/11.2.0/grid/perl/bin/perl /u01/app/11.2.0/grid/OPatch/crs/patch11203.pl -patchdir /opt/soft/patch -patchn 31718723 -paramfile /u01/app/11.2.0/grid/crs/install/crsconfig_params

This is the main log file: /u01/app/11.2.0/grid/cfgtoollogs/opatchauto2022-01-09_15-43-22.log

This file will show your detected configuration and all the steps that opatchauto attempted to do on your system:
/u01/app/11.2.0/grid/cfgtoollogs/opatchauto2022-01-09_15-43-22.report.log

2022-01-09 15:43:22: Starting Clusterware Patch Setup
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params

Stopping RAC /u01/app/oracle/product/11.2.0/db_1 ...
Stopped RAC /u01/app/oracle/product/11.2.0/db_1 successfully

patch /opt/soft/patch/31718723/29938455/custom/server/29938455  apply successful for home  /u01/app/oracle/product/11.2.0/db_1
patch /opt/soft/patch/31718723/31537677  apply successful for home  /u01/app/oracle/product/11.2.0/db_1

Stopping CRS...
Stopped CRS successfully

patch /opt/soft/patch/31718723/29938455  apply successful for home  /u01/app/11.2.0/grid
patch /opt/soft/patch/31718723/31537677  apply successful for home  /u01/app/11.2.0/grid
patch /opt/soft/patch/31718723/29509309  apply successful for home  /u01/app/11.2.0/grid

Starting CRS...
Installing Trace File Analyzer
CRS-4123: Oracle High Availability Services has been started.

Starting RAC /u01/app/oracle/product/11.2.0/db_1 ...
Started RAC /u01/app/oracle/product/11.2.0/db_1 successfully

opatch auto succeeded.

2.Loading Modified SQL Files into the Database

[oracle@racnode01 ~]$ cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP
SQL> @catbundle.sql psu apply
SQL> QUIT

五、安装DB补丁

节点1和节点2都需要安装

1.冲突检查

[root@racnode01 patch]# unzip p31537677_112040_Linux-x86-64.zip
[root@racnode01 patch]# chown -R oracle.oinstall 31537677
[root@racnode01 patch]# chmod -R 775 31537677

[root@racnode01 31537677]# su - oracle
[oracle@racnode01 ~]$ cd /opt/soft/patch/31537677
[oracle@racnode01 31537677]$ /u01/app/11.2.0/grid/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./

2.安装

If you are using a Data Guard Physical Standby database, you must install this patch on both the primary database and the physical standby database, as described by My Oracle Support Document 278641.1.

If this is an Oracle RAC environment, install the PSU patch using the OPatch rolling (no downtime) installation method as the PSU patch is rolling Oracle RAC installable. Refer to My Oracle Support Document 244241.1 Rolling Patch - OPatch Support for RAC.

If this is not a Oracle RAC environment, shut down all instances and listeners associated with the Oracle home that you are updating. For more information, see Oracle Database Administrator's Guide.

Rollback any patches found during the One-off Patch Conflict Detection.

Set your current directory to the directory where the patch is located and then run the OPatch utility by entering the following commands:

unzip p31537677 _112040_<platform>.zip
cd 31537677
opatch apply
1.DB Patch Installation

[oracle@racnode01 31537677]$ /u01/app/oracle/product/11.2.0/db_1/OPatch/opatch apply
Oracle Interim Patch Installer version 11.2.0.3.31
Copyright (c) 2022, Oracle Corporation.  All rights reserved.

Oracle Home       : /u01/app/oracle/product/11.2.0/db_1
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/11.2.0/db_1/oraInst.loc
OPatch version    : 11.2.0.3.31
OUI version       : 11.2.0.4.0
Log file location : /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2022-01-09_23-16-20PM_1.log

Verifying environment and performing prerequisite checks...
All of the sub-patch(es) of the composite patch are already installed in the Oracle Home. No need to apply this patch.
Log file location: /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2022-01-09_23-16-20PM_1.log

OPatch succeeded.

[oracle@racnode02 31537677]$ /u01/app/oracle/product/11.2.0/db_1/OPatch/opatch apply
Oracle Interim Patch Installer version 11.2.0.3.31
Copyright (c) 2022, Oracle Corporation.  All rights reserved.

Oracle Home       : /u01/app/oracle/product/11.2.0/db_1
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/11.2.0/db_1/oraInst.loc
OPatch version    : 11.2.0.3.31
OUI version       : 11.2.0.4.0
Log file location : /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2022-01-09_23-20-41PM_1.log

Verifying environment and performing prerequisite checks...
All of the sub-patch(es) of the composite patch are already installed in the Oracle Home. No need to apply this patch.
Log file location: /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2022-01-09_23-20-41PM_1.log

OPatch succeeded.

2.Loading Modified SQL Files into the Database:

[oracle@racnode01 ~]$ cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP
SQL> @catbundle.sql psu apply
SQL> QUIT

六、安装OJVM补丁

节点1和节点2都需要安装

1.冲突检查

[root@racnode01 patch]# unzip p31668908_112040_Linux-x86-64.zip
[root@racnode01 patch]# chown -R oracle.oinstall 31668908
[root@racnode01 patch]# chmod -R 775 31668908

[root@racnode01 patch]# su - oracle
[oracle@racnode01 ~]$ cd /opt/soft/patch/31668908
[oracle@racnode01 31668908]$ /u01/app/oracle/product/11.2.0/db_1/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./

2.安装

1.OJVM Patch Installation

[oracle@racnode01 31668908]$ /u01/app/oracle/product/11.2.0/db_1/OPatch/opatch apply
Oracle Interim Patch Installer version 11.2.0.3.31
Copyright (c) 2022, Oracle Corporation.  All rights reserved.

Oracle Home       : /u01/app/oracle/product/11.2.0/db_1
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/11.2.0/db_1/oraInst.loc
OPatch version    : 11.2.0.3.31
OUI version       : 11.2.0.4.0
Log file location : /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2022-01-09_23-43-44PM_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   31668908

Do you want to proceed? [y|n]
y
User Responded with: Y
All checks passed.

Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/u01/app/oracle/product/11.2.0/db_1')

Is the local system ready for patching? [y|n]
y
User Responded with: Y
Backing up files...
Applying interim patch '31668908' to OH '/u01/app/oracle/product/11.2.0/db_1'
ApplySession: Optional component(s) [ oracle.sqlj, 11.2.0.4.0 ] , [ oracle.sqlj.companion, 11.2.0.4.0 ]  not present in the Oracle Home or a higher version is found.

Patching component oracle.javavm.server, 11.2.0.4.0...

Patching component oracle.precomp.common, 11.2.0.4.0...

Patching component oracle.rdbms, 11.2.0.4.0...

Patching component oracle.rdbms.dbscripts, 11.2.0.4.0...

Patching component oracle.javavm.client, 11.2.0.4.0...

Patching component oracle.dbjava.jdbc, 11.2.0.4.0...

Patching component oracle.dbjava.ic, 11.2.0.4.0...
Patch 31668908 successfully applied.
Log file location: /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2022-01-09_23-43-44PM_1.log

OPatch succeeded.

[oracle@racnode02 31668908]$ /u01/app/oracle/product/11.2.0/db_1/OPatch/opatch apply
Oracle Interim Patch Installer version 11.2.0.3.31
Copyright (c) 2022, Oracle Corporation.  All rights reserved.

Oracle Home       : /u01/app/oracle/product/11.2.0/db_1
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/11.2.0/db_1/oraInst.loc
OPatch version    : 11.2.0.3.31
OUI version       : 11.2.0.4.0
Log file location : /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2022-01-09_23-46-42PM_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   31668908

Do you want to proceed? [y|n]
y
User Responded with: Y
All checks passed.

Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/u01/app/oracle/product/11.2.0/db_1')

Is the local system ready for patching? [y|n]
y
User Responded with: Y
Backing up files...
Applying interim patch '31668908' to OH '/u01/app/oracle/product/11.2.0/db_1'
ApplySession: Optional component(s) [ oracle.sqlj, 11.2.0.4.0 ] , [ oracle.sqlj.companion, 11.2.0.4.0 ]  not present in the Oracle Home or a higher version is found.

Patching component oracle.javavm.server, 11.2.0.4.0...

Patching component oracle.precomp.common, 11.2.0.4.0...

Patching component oracle.rdbms, 11.2.0.4.0...

Patching component oracle.rdbms.dbscripts, 11.2.0.4.0...

Patching component oracle.javavm.client, 11.2.0.4.0...

Patching component oracle.dbjava.jdbc, 11.2.0.4.0...

Patching component oracle.dbjava.ic, 11.2.0.4.0...
Patch 31668908 successfully applied.
Log file location: /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2022-01-09_23-46-42PM_1.log

OPatch succeeded.

2.Loading Modified SQL Files Into the Database
以下语句只在RAC一个节点执行,其它节点数据库需关闭:
For an Oracle RAC environment, reload the packages on one of the nodes using the following commands. Make sure no other instance of the database is up on the remote nodes.

[grid@racnode01 ~]$ srvctl stop instance -d mydb -i mydb2

[oracle@racnode01 ~]$ cd $ORACLE_HOME/sqlpatch/31668908
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP
SQL> alter system set cluster_database=false scope=spfile;
SQL> SHUTDOWN
SQL> STARTUP UPGRADE
SQL> @postinstall.sql
SQL> alter system set cluster_database=true scope=spfile;
SQL> SHUTDOWN
SQL> STARTUP

七、编译失效对象

[oracle@racnode01 ~]$ cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> @utlrp.sql

八、验证补丁

[oracle@racnode02 31668908]$ /u01/app/oracle/product/11.2.0/db_1/OPatch/opatch lsinventory

九、检查补丁脚本

set linesize 300
col action_time for a30
col version for a15
col action for a10
col namespace for a10
col COMMENTS for a20
col BUNDLE_SERIES for a15
select * from registry$history;

set line 150
set pagesize 99
col action_time for a15
col action for a30
col comments for a30
col object_name for a30
col object_type for a30
col comp_name for a50
col comp_id for a20
select COMP_ID,COMP_NAME,VERSION,STATUS from DBA_REGISTRY;

set line 150
set pagesize 99
col action_time for a15
col action for a30
col comments for a30
col object_name for a30
col object_type for a30
col comp_name for a50
col comp_id for a20
select ACTION_TIME, ACTION, COMMENTS from sys.DBA_REGISTRY_HISTORY;

---查看数据库失效对象
col object_name for a40
col object_type for a15
col owner for a10
set linesize 500
set pagesize 500
select object_name,object_type,owner,status from dba_objects where status<>'VALID' order by owner,object_name;
SQL> @?/rdbms/admin/utlrp.sql
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇