Saturday, September 26, 2026
  • About Us
  • Contact
DBAInsight
  • Guides
    • 23ai
    • RMAN
    • 26ai
    • Patch Update
    • RMAN
    • MySQL
    • Oracle GoldenGate
  • Cloud Technology
  • Case Studies
  • Troubleshooting
  • Training & Certification
NEWSLETTER
No Result
View All Result
DBAInsight
Home Patch Update

Oracle 19.31 Patch 39034528 Upgrade Guide: Complete Step-by-Step Oracle Database Release Update Installation

August 6, 2026
in Patch Update
2
Oracle 19.31 Patch 39034528 Upgrade Guide: Complete Step-by-Step Oracle Database Release Update Installation
0
SHARES
2.7k
VIEWS

Oracle Database 19c remains one of the most widely used enterprise database platforms, and keeping it updated with the latest Release Updates (RU) is essential for security, performance, and long-term stability. In this guide, we’ll walk through the complete Oracle 19.31 patching process, upgrading from Oracle 19.28 to Oracle 19.31 using Patch 39034528 in a real production environment.

Oracle Grid Infrastructure 19.32 Release Update (RU) Patching Guide – Patch 39467003

Table of Contents

Toggle
    • Related posts
    • When datapatch Won’t Finish: An ORA-04021 Lock on DBMS_AQADM_SYS During a 19c RU Apply
    • When “Invalid Objects” Isn’t What It Looks Like: A GSMADMIN_INTERNAL Detective Story
  • Why Upgrade to Oracle 19.31?
  • Pre-Patching Environment Check
  • Step 1: Upgrade OPatch Utility
    • Upgrade process:
  • Step 2: Extract Oracle 19.31 Patch
  • Step 3: Run Conflict Checks
  • Step 4: Shutdown Database
  • Step 5: Apply Oracle 19.31 Patch
  • Step 6: Verify Binary Patch Installation
  • Step 7: Run Datapatch Sanity Checks
    • Recommended performance optimization:
  • Step 8: Execute Datapatch
  • Verifying Patch Application
  • Key Lessons from Oracle 19.31 Upgrade
    • Best Practices:
    • Common Warnings:
  • Production Benefits of Oracle 19.31
  • Final Thoughts

Related posts

ORA-04021

When datapatch Won’t Finish: An ORA-04021 Lock on DBMS_AQADM_SYS During a 19c RU Apply

September 25, 2026
GSMADMIN_INTERNAL

When “Invalid Objects” Isn’t What It Looks Like: A GSMADMIN_INTERNAL Detective Story

September 24, 2026

Oracle Database 19.32 Release Update (RU) Patching Guide – Patch 39472050

Why Upgrade to Oracle 19.31?

Oracle 19.31 Release Update (RU) introduces important security fixes, bug resolutions, and performance improvements. Staying current with Oracle’s quarterly updates ensures:

  • Improved database security
  • Critical vulnerability fixes
  • Enhanced database stability
  • Better compatibility with enterprise workloads
  • Long-term Oracle support compliance

For DBAs managing mission-critical systems, Oracle 19.31 patching is not optional—it’s essential.


Pre-Patching Environment Check

Before starting, verify your current Oracle patch level:

$ opatch lspatches
37960098;Database Release Update : 19.28.0.0.250715
29585399;OCW RELEASE UPDATE 19.3.0.0.0

This confirms the database is running Oracle 19.28 before applying the 19.31 RU.


Step 1: Upgrade OPatch Utility

Oracle requires OPatch version 12.2.0.1.49 or later for this patch. In this case, the older OPatch was replaced with version 12.2.0.1.51.

For more informations: How To Download And Install The Latest OPatch

Upgrade process:

  • Backup old OPatch directory
  • Download latest OPatch patch (p6880880)
  • Unzip into Oracle Home
  • Verify installation
$ ./opatch version
OPatch Version: 12.2.0.1.51

Using the latest OPatch version minimizes compatibility issues during patching.

19.31

Step 2: Extract Oracle 19.31 Patch

Download and unzip patch:

p39034528_190000_Linux-x86-64.zip

This extracts the full Oracle 19.31 RU package into the patch directory.


Step 3: Run Conflict Checks

Always validate patch compatibility before applying:

$ opatch prereq CheckConflictAgainstOHWithDetail -ph ./

Output:

/u01/app/oracle/product/19.0.0/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
Oracle Interim Patch Installer version 12.2.0.1.51
Copyright (c) 2026, Oracle Corporation.  All rights reserved.

PREREQ session

Oracle Home       : /u01/app/oracle/product/19.0.0
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/19.0.0/oraInst.loc
OPatch version    : 12.2.0.1.51
OUI version       : 12.2.0.7.0
Log file location : /u01/app/oracle/product/19.0.0/cfgtoollogs/opatch/opatch2026-05-03_17-55-24PM_1.log

Invoking prereq "checkconflictagainstohwithdetail"

Prereq "checkConflictAgainstOHWithDetail" passed.

OPatch succeeded.

This ensures no conflicts exist with current Oracle Home binaries.


Step 4: Shutdown Database

For standalone environments:

SQL> shutdown immediate;

Ensure all Oracle services using that Oracle Home are fully stopped.


Step 5: Apply Oracle 19.31 Patch

Execute:

$ opatch apply

Oracle performs:

  • Oracle Home backup
  • Binary replacement
  • Component patching
  • JDK updates
  • SQL component preparation

Successful output:

/u01/app/oracle/product/19.0.0/OPatch/opatch apply
Oracle Interim Patch Installer version 12.2.0.1.51
Copyright (c) 2026, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/app/oracle/product/19.0.0
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/19.0.0/oraInst.loc
OPatch version    : 12.2.0.1.51
OUI version       : 12.2.0.7.0
Log file location : /u01/app/oracle/product/19.0.0/cfgtoollogs/opatch/opatch2026-05-03_17-57-52PM_1.log

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

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

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


Is the local system ready for patching? [y|n]
User Responded with: Y
Backing up files...
Applying interim patch '39034528' to OH '/u01/app/oracle/product/19.0.0'
ApplySession: Optional component(s) [ oracle.network.gsm, 19.0.0.0.0 ] , [ oracle.assistants.asm, 19.0.0.0.0 ] , [ oracle.datamining, 19.0.0.0.0 ] , [ oracle.java.sqlj.sqljruntime, 19.0.0.0.0 ] , [ oracle.crypto.rsf, 19.0.0.0.0 ] , [ oracle.oraolap.mgmt, 19.0.0.0.0 ] , [ oracle.pg4appc, 19.0.0.0.0 ] , [ oracle.pg4mq, 19.0.0.0.0 ] , [ oracle.precomp.companion, 19.0.0.0.0 ] , [ oracle.rdbms.ic, 19.0.0.0.0 ] , [ oracle.rdbms.tg4db2, 19.0.0.0.0 ] , [ oracle.sdo.companion, 19.0.0.0.0 ] , [ oracle.tfa, 19.0.0.0.0 ] , [ oracle.rdbms.tg4ifmx, 19.0.0.0.0 ] , [ oracle.oid.client, 19.0.0.0.0 ] , [ oracle.rdbms.tg4sybs, 19.0.0.0.0 ] , [ oracle.ldap.ztk, 19.0.0.0.0 ] , [ oracle.ons.eons.bwcompat, 19.0.0.0.0 ] , [ oracle.net.cman, 19.0.0.0.0 ] , [ oracle.ons.cclient, 19.0.0.0.0 ] , [ oracle.xdk.companion, 19.0.0.0.0 ] , [ oracle.options.olap, 19.0.0.0.0 ] , [ oracle.rdbms.tg4msql, 19.0.0.0.0 ] , [ oracle.rdbms.tg4tera, 19.0.0.0.0 ] , [ oracle.network.cman, 19.0.0.0.0 ] , [ oracle.options.olap.api, 19.0.0.0.0 ] , [ oracle.jdk, 1.8.0.191.0 ] , [ oracle.jdk, 1.8.0.391.11 ]  not present in the Oracle Home or a higher version is found.

Patching component oracle.rdbms.util, 19.0.0.0.0...

Patching component oracle.rdbms.rsf, 19.0.0.0.0...

Patching component oracle.rdbms, 19.0.0.0.0...

Patching component oracle.assistants.acf, 19.0.0.0.0...

Patching component oracle.assistants.deconfig, 19.0.0.0.0...

Patching component oracle.assistants.server, 19.0.0.0.0...

Patching component oracle.blaslapack, 19.0.0.0.0...

Patching component oracle.buildtools.rsf, 19.0.0.0.0...

Patching component oracle.wwg.plsql, 19.0.0.0.0...

Patching component oracle.ctx, 19.0.0.0.0...

Patching component oracle.dbdev, 19.0.0.0.0...

Patching component oracle.dbjava.ic, 19.0.0.0.0...

Patching component oracle.dbjava.jdbc, 19.0.0.0.0...

Patching component oracle.dbjava.ucp, 19.0.0.0.0...

Patching component oracle.duma, 19.0.0.0.0...

Patching component oracle.javavm.client, 19.0.0.0.0...

Patching component oracle.ldap.client, 19.0.0.0.0...

Patching component oracle.ldap.owm, 19.0.0.0.0...

Patching component oracle.ldap.rsf, 19.0.0.0.0...

Patching component oracle.ldap.security.osdt, 19.0.0.0.0...

Patching component oracle.marvel, 19.0.0.0.0...

Patching component oracle.network.rsf, 19.0.0.0.0...

Patching component oracle.nlsrtl.rsf, 19.0.0.0.0...

Patching component oracle.nlsrtl.rsf.core, 19.0.0.0.0...

Patching component oracle.nlsrtl.rsf.ic, 19.0.0.0.0...

Patching component oracle.odbc.ic, 19.0.0.0.0...

Patching component oracle.ons, 19.0.0.0.0...

Patching component oracle.ons.ic, 19.0.0.0.0...

Patching component oracle.oracore.rsf, 19.0.0.0.0...

Patching component oracle.perlint, 5.28.1.0.0...

Patching component oracle.precomp.common.core, 19.0.0.0.0...

Patching component oracle.precomp.rsf, 19.0.0.0.0...

Patching component oracle.rdbms.crs, 19.0.0.0.0...

Patching component oracle.rdbms.dbscripts, 19.0.0.0.0...

Patching component oracle.rdbms.deconfig, 19.0.0.0.0...

Patching component oracle.rdbms.install.common, 19.0.0.0.0...

Patching component oracle.rdbms.oci, 19.0.0.0.0...

Patching component oracle.rdbms.rsf.ic, 19.0.0.0.0...

Patching component oracle.rdbms.scheduler, 19.0.0.0.0...

Patching component oracle.rhp.db, 19.0.0.0.0...

Patching component oracle.rsf, 19.0.0.0.0...

Patching component oracle.sdo, 19.0.0.0.0...

Patching component oracle.sdo.locator.jrf, 19.0.0.0.0...

Patching component oracle.sqlj.sqljruntime, 19.0.0.0.0...

Patching component oracle.sqlplus, 19.0.0.0.0...

Patching component oracle.sqlplus.ic, 19.0.0.0.0...

Patching component oracle.tfa.db, 19.0.0.0.0...

Patching component oracle.wwg.plsql, 19.0.0.0.0...

Patching component oracle.xdk.rsf, 19.0.0.0.0...

Patching component oracle.rdbms.hs_common, 19.0.0.0.0...

Patching component oracle.javavm.server, 19.0.0.0.0...

Patching component oracle.rdbms.install.plugins, 19.0.0.0.0...

Patching component oracle.rdbms.locator, 19.0.0.0.0...

Patching component oracle.oraolap.api, 19.0.0.0.0...

Patching component oracle.rdbms.hsodbc, 19.0.0.0.0...

Patching component oracle.network.client, 19.0.0.0.0...

Patching component oracle.rdbms.drdaas, 19.0.0.0.0...

Patching component oracle.rdbms.dm, 19.0.0.0.0...

Patching component oracle.rdbms.rman, 19.0.0.0.0...

Patching component oracle.rdbms.rat, 19.0.0.0.0...

Patching component oracle.ovm, 19.0.0.0.0...

Patching component oracle.odbc, 19.0.0.0.0...

Patching component oracle.xdk.server, 19.0.0.0.0...

Patching component oracle.oraolap.dbscripts, 19.0.0.0.0...

Patching component oracle.xdk.xquery, 19.0.0.0.0...

Patching component oracle.network.listener, 19.0.0.0.0...

Patching component oracle.dbtoolslistener, 19.0.0.0.0...

Patching component oracle.ldap.rsf.ic, 19.0.0.0.0...

Patching component oracle.xdk.parser.java, 19.0.0.0.0...

Patching component oracle.sdo.locator, 19.0.0.0.0...

Patching component oracle.ctx.rsf, 19.0.0.0.0...

Patching component oracle.ldap.ssl, 19.0.0.0.0...

Patching component oracle.oraolap, 19.0.0.0.0...

Patching component oracle.mgw.common, 19.0.0.0.0...

Patching component oracle.install.deinstalltool, 19.0.0.0.0...

Patching component oracle.rdbms.dv, 19.0.0.0.0...

Patching component oracle.xdk, 19.0.0.0.0...

Patching component oracle.nlsrtl.rsf.lbuilder, 19.0.0.0.0...

Patching component oracle.ctx.atg, 19.0.0.0.0...

Patching component oracle.network.aso, 19.0.0.0.0...

Patching component oracle.rdbms.lbac, 19.0.0.0.0...

Patching component oracle.precomp.lang, 19.0.0.0.0...

Patching component oracle.precomp.common, 19.0.0.0.0...

Patching component oracle.jdk, 1.8.0.201.0...
Patch 39034528 successfully applied.
Sub-set patch [37960098] has become inactive due to the application of a super-set patch [39034528].
Please refer to Doc ID 2161861.1 for any possible further required actions.
Log file location: /u01/app/oracle/product/19.0.0/cfgtoollogs/opatch/opatch2026-05-03_17-57-52PM_1.log

OPatch succeeded.

Oracle automatically deactivates the previous 19.28 patch since 19.31 is a superseding RU.


Step 6: Verify Binary Patch Installation

Post-patch validation:

$ opatch lspatches
39034528;Database Release Update : 19.31.0.0.260421

This confirms Oracle Home binaries are successfully updated.


Step 7: Run Datapatch Sanity Checks

Datapatch validates SQL readiness:

$ datapatch -sanity_checks

Important observations:

  • Dictionary stats warning
  • Mounted PDB warning
  • No critical blockers

Recommended performance optimization:

./datapatch -sanity_checks
SQL Patching sanity checks version 19.31.0.0.0 on Sun 03 May 2026 06:11:54 PM +0530
Copyright (c) 2021, 2026, Oracle.  All rights reserved.

Log file for this invocation: /u01/app/oracle/cfgtoollogs/sqlpatch/sanity_checks_20260503_181154_23580/sanity_checks_20260503_181154_23580.log

Running checks
JSON report generated in /u01/app/oracle/cfgtoollogs/sqlpatch/sanity_checks_20260503_181154_23580/sqlpatch_sanity_checks_summary.json file
Checks completed. Printing report:

Check: Database component status - OK
Check: PDB Violations - OK
Check: Invalid System Objects - OK
Check: Tablespace Status - OK
Check: Backup jobs - OK
Check: Temp file exists - OK
Check: Temp file online - OK
Check: Data Pump running - OK
Check: Container status - WARNING
  Datapatch will only run in containers with READ WRITE, MIGRATE (upgrade) or READ ONLY mode.
  Specified containers are not READ WRITE, MIGRATE or READ ONLY mode. When not opened, containers will not be a part of patching.
  Open containers if they should take part of patching activities. Refer to the section "Modifying a PDB with the ALTER PLUGGABLE DATABASE Statement" in the Multitenant Administrator's Guide for details.
  CDB$ROOT:
    |  HOST_NAME   | NAME | OPEN_MODE |
    |--------------+------+-----------|
    | prod.mit.com | PDB  |  MOUNTED  |
    |--------------+------+-----------|
Check: Oracle Database Keystore - OK
Check: Dictionary statistics gathering - WARNING
  Patching the database without recent data dictionary statistics gathered may lead to performance issues.
  Data dictionary statistics are older than 7 days.
  Run the following queries to start gathering the dictionary statistics:
    EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;
    EXEC DBMS_SYSTEM.GATHER_FIXED_OBJECTS_STATS;
  Refer to MOS 457926.1 for more details.
  PDB$SEED:
    |     LATEST      |        OPERATION        |  STATUS   |
    |-----------------+-------------------------+-----------|
    | 14-OCT-25 11:46 | gather_dictionary_stats | COMPLETED |
    |-----------------+-------------------------+-----------|
Check: Scheduled Jobs - OK
Check: GoldenGate triggers - OK
Check: Logminer DDL triggers - OK
Check: Check sys public grants - OK
Check: Statistics gathering running - OK
Check: Optim dictionary upgrade parameter - OK
Check: Symlinks on oracle home path - OK
Check: Central Inventory - OK
Check: Java Virtual Machine Enable - OK
Check: Oracle Database Vault Enabled - OK
Check: Queryable Inventory database directories - OK
Check: Queryable Inventory locks - OK
Check: Queryable Inventory package - OK
Check: Queryable Inventory external table - OK
Check: Imperva processes - OK
Check: Guardium processes - OK
Check: Locale - OK

Refer to MOS Note 2975965.1 and debug log
/u01/app/oracle/cfgtoollogs/sqlpatch/sanity_checks_20260503_181154_23580/sanity_checks_debug_20260503_181154_23580.log

SQL Patching sanity checks completed on Sun 03 May 2026 06:12:00 PM +0530

This step helps maintain optimal post-patch database performance.


Step 8: Execute Datapatch

Apply SQL changes:

$ datapatch -verbose

Successful patching:

  • CDB$ROOT updated
  • PDB$SEED updated
  • SQL registry synchronized

Example result:

datapatch -verbose
SQL Patching tool version 19.31.0.0.0 Production on Sun May  3 18:12:26 2026
Copyright (c) 2012, 2026, Oracle.  All rights reserved.

Log file for this invocation: /u01/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_23846_2026_05_03_18_12_26/sqlpatch_invocation.log

Connecting to database...OK
Gathering database info...done

Note:  Datapatch will only apply or rollback SQL fixes for PDBs
       that are in an open state, no patches will be applied to closed PDBs.
       Please refer to Note: Datapatch: Database 12c Post Patch SQL Automation
       (Doc ID 1585822.1)

Warning: PDB PDB is in mode MOUNTED and will be skipped.
Bootstrapping registry and package to current versions...done
Determining current state...done

Current state of interim SQL patches:
  No interim patches found

Current state of release update SQL patches:
  Binary registry:
    19.31.0.0.0 Release_Update 260426152757: Installed
  PDB CDB$ROOT:
    Applied 19.28.0.0.0 Release_Update 250705030417 successfully on 14-OCT-25 11.22.01.917030 AM
  PDB PDB$SEED:
    Applied 19.28.0.0.0 Release_Update 250705030417 successfully on 14-OCT-25 11.48.20.897843 AM

Adding patches to installation queue and performing prereq checks...done
Installation queue:
  For the following PDBs: CDB$ROOT PDB$SEED
    No interim patches need to be rolled back
    Patch 39034528 (Database Release Update : 19.31.0.0.260421 (39034528)):
      Apply from 19.28.0.0.0 Release_Update 250705030417 to 19.31.0.0.0 Release_Update 260426152757
    No interim patches need to be applied

Installing patches...
Patch installation complete.  Total patches installed: 2

Validating logfiles...done
Patch 39034528 apply (pdb CDB$ROOT): SUCCESS
  logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/39034528/28700584/39034528_apply_CDB_CDBROOT_2026May03_18_14_53.log (no errors)
Patch 39034528 apply (pdb PDB$SEED): SUCCESS
  logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/39034528/28700584/39034528_apply_CDB_PDBSEED_2026May03_18_16_51.log (no errors)
SQL Patching tool complete on Sun May  3 18:18:37 2026
[oracle@prod OPatch]$

Verifying Patch Application

To confirm patch installation, query the DBA_REGISTRY_SQLPATCH view.

SQL> set lines 200
SQL> col action_time format a25
SQL> col status format a12
SQL> select action_time, action, status, source_version, target_version from dba_registry_sqlpatch;
ACTION_TIME                    ACTION          STATUS       SOURCE_VERSION  TARGET_VERSION
------------------------------ --------------- ------------ --------------- ---------------
14-OCT-25 01.14.37.206437 PM   APPLY           SUCCESS      19.1.0.0.0      19.28.0.0.0
03-MAY-26 04.45.06.946909 AM   APPLY           SUCCESS      19.28.0.0.0     19.31.0.0.0

Key Lessons from Oracle 19.31 Upgrade

Best Practices:

  • Always update OPatch first
  • Perform conflict checks
  • Validate Oracle Home before downtime
  • Run datapatch after binary patching
  • Review PDB open modes
  • Update dictionary statistics post-upgrade

Common Warnings:

  • Closed PDBs are skipped
  • Outdated dictionary stats may impact performance
  • Sanity checks should never be ignored

Production Benefits of Oracle 19.31

By upgrading to Oracle Database 19.31, organizations gain:

  • Enhanced security posture
  • Reduced software vulnerabilities
  • Better patch consistency
  • Improved operational reliability
  • Compliance with Oracle support recommendations

For production DBAs, this patch cycle demonstrates a reliable, low-risk quarterly maintenance strategy.


Final Thoughts

Oracle Database 19.31 Release Update deployment is a straightforward but critical maintenance process when executed correctly. Following structured patching procedures—from OPatch updates to datapatch validation—ensures enterprise-grade stability and security.

For database administrators managing Oracle 19c production systems, regular RU patching like Oracle 19.31 is one of the most important responsibilities for maintaining secure, optimized infrastructure.

Keeping your Oracle environment updated is not just maintenance—it’s proactive enterprise risk management.

Tags: Oracle 19.31Oracle 19c upgradeOracle database patchingOracle Release UpdatePatch 39034528
Previous Post

Oracle RMAN Fast Incremental Backups: Speed Up Your Backup Strategy

Next Post

How to Patch Oracle 19c Grid Infrastructure Restart Home to 19.31 (GI RU 39036936): Complete Step-by-Step Upgrade Guide

Next Post
How to Patch Oracle 19c Grid Infrastructure Restart Home to 19.31 (GI RU 39036936): Complete Step-by-Step Upgrade Guide

How to Patch Oracle 19c Grid Infrastructure Restart Home to 19.31 (GI RU 39036936): Complete Step-by-Step Upgrade Guide

Comments 2

  1. Pingback: Oracle Patch 38632161: Step-by-Step Guide to Upgrade Oracle 19c to Release Update 19.30
  2. Pingback: Fixing ORA-04021 on DBMS_AQADM_SYS During Oracle 19c datapatch RU Apply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

POPULAR NEWS

  • Oracle Patch 38632161: Step-by-Step Guide to Upgrade Oracle 19c to Release Update 19.30

    Oracle Patch 38632161: Step-by-Step Guide to Upgrade Oracle 19c to Release Update 19.30

    0 shares
    Share 0 Tweet 0
  • How To Download And Install The Latest OPatch

    0 shares
    Share 0 Tweet 0
  • How to Install Oracle 19c Database on Red Hat Enterprise Linux 9

    0 shares
    Share 0 Tweet 0
  • Oracle Database 19.32 Release Update (RU) Patching Guide – Patch 39472050

    0 shares
    Share 0 Tweet 0
  • Installing Oracle Database 26AI on Red Hat Enterprise Linux 9

    0 shares
    Share 0 Tweet 0
  • About Us
  • Contact

© 2026 DBAInsight - Smarter Databases. Sharper Insights. DBAInsight.

No Result
View All Result
  • Home
  • Cloud & Modern DBs
  • Guides
  • Cloud Technology
  • Case Studies
  • Troubleshooting
  • Training & Certification

© 2026 DBAInsight - Smarter Databases. Sharper Insights. DBAInsight.

Add as a preferred source on Google
Add as preferred source on Google