Tuesday, July 23, 2013

Install 12c database 12.1.0.1.0 - Installation screenshots on win 7 (64-bit)

Install 12c database 12.1.0.1.0 - Installation screenshots on win 7 (64-bit)


Download the software from OTN after accepting the license agreement..

The new features guide can be found here..


This is an installation on windows, probably the most simple and straightforward installation compared to a database installation on Unix or a Grid Infrastructure installation.
I always keep an installation on my laptop(runs windows) .. it comes handy often to test things. Hence this installation and I’m grabbing screenshots in the process.



Download the zip files from the link above and unzip them.












What’s inside the zip files..



Launch Oracle Universal Installer by double clicking on setup.exe





















Check ‘I wish to receive security updates via My Oracle Support’ if you would like to do so.

















Skipping Software Updates for now..





































The database ‘cdborcl’ is created as container database. And, we supply the pluggable database name here - pdborcl











































DBCA gets launched for the database creation part..






























We get a nice GUI showing the alert log contents ..































Make a note of the URL to use Enterprise Manager..

































From EM Database Control to EM Database Express Login 12c..























Database Home Page..
























A look at the windows services that gets created..

























A look at the schemas and tablespaces that gets created..

C:\Users\SIsaac>C:\app\oracle\product\12.1.0\dbhome_1\bin\sqlplus

SQL*Plus: Release 12.1.0.1.0 Production on Fri Jul 19 15:32:19 2013

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

Enter user-name: sys as sysdba
Enter password:

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options



SQL> select username, account_status, default_tablespace from dba_users order by 1;

USERNAME                       ACCOUNT_STATUS                   DEFAULT_TABLESPACE
------------------------------ -------------------------------- ------------------------------
ANONYMOUS                      EXPIRED & LOCKED                 SYSAUX
APEX_040200                    EXPIRED & LOCKED                 SYSAUX
APEX_PUBLIC_USER               EXPIRED & LOCKED                 USERS
APPQOSSYS                      EXPIRED & LOCKED                 SYSAUX
AUDSYS                         EXPIRED & LOCKED                 USERS
CTXSYS                         EXPIRED & LOCKED                 SYSAUX
DBSNMP                         EXPIRED & LOCKED                 SYSAUX
DIP                            EXPIRED & LOCKED                 USERS
DVF                            EXPIRED & LOCKED                 SYSAUX
DVSYS                          EXPIRED & LOCKED                 SYSAUX
FLOWS_FILES                    EXPIRED & LOCKED                 SYSAUX

USERNAME                       ACCOUNT_STATUS                   DEFAULT_TABLESPACE
------------------------------ -------------------------------- ------------------------------
GSMADMIN_INTERNAL              EXPIRED & LOCKED                 SYSAUX
GSMCATUSER                     EXPIRED & LOCKED                 USERS
GSMUSER                        EXPIRED & LOCKED                 USERS
LBACSYS                        EXPIRED & LOCKED                 SYSTEM
MDDATA                         EXPIRED & LOCKED                 USERS
MDSYS                          EXPIRED & LOCKED                 SYSAUX
OJVMSYS                        EXPIRED & LOCKED                 USERS
OLAPSYS                        EXPIRED & LOCKED                 SYSAUX
ORACLE_OCM                     EXPIRED & LOCKED                 USERS
ORDDATA                        EXPIRED & LOCKED                 SYSAUX
ORDPLUGINS                     EXPIRED & LOCKED                 SYSAUX

USERNAME                       ACCOUNT_STATUS                   DEFAULT_TABLESPACE
------------------------------ -------------------------------- ------------------------------
ORDSYS                         EXPIRED & LOCKED                 SYSAUX
OUTLN                          EXPIRED & LOCKED                 SYSTEM
SI_INFORMTN_SCHEMA             EXPIRED & LOCKED                 SYSAUX
SPATIAL_CSW_ADMIN_USR          EXPIRED & LOCKED                 USERS
SPATIAL_WFS_ADMIN_USR          EXPIRED & LOCKED                 USERS
SYS                            OPEN                             SYSTEM
SYSBACKUP                      EXPIRED & LOCKED                 USERS
SYSDG                          EXPIRED & LOCKED                 USERS
SYSKM                          EXPIRED & LOCKED                 USERS
SYSTEM                         OPEN                             SYSTEM
WMSYS                          EXPIRED & LOCKED                 SYSAUX

USERNAME                       ACCOUNT_STATUS                   DEFAULT_TABLESPACE
------------------------------ -------------------------------- ------------------------------
XDB                            EXPIRED & LOCKED                 SYSAUX
XS$NULL                        EXPIRED & LOCKED                 USERS

35 rows selected.



SQL> col "MAX SIZE(MB)" format a20
SQL> col "ALLOCATED(MB)" format a20
SQL> col "USED(MB)" format a20
SQL> col TABLESPACE format a30
SQL> col FREE(MB) format a20
SQL> col PER_FREE format a20
SQL> set linesize 200
SQL>
SQL> SELECT F.TABLESPACE_NAME TABLESPACE,
  2         TO_CHAR (T.MAX_SPACE, '999,999,999') "MAX SIZE(MB)",
  3         TO_CHAR (T.ALLOCATED_SPACE, '999,999,999') "ALLOCATED(MB)",
  4         TO_CHAR ((T.ALLOCATED_SPACE - F.FREE_SPACE),'999,999,999') "USED(MB)",
  5         TO_CHAR (F.FREE_SPACE+(T.ALLOCATED_SPACE-T.ALLOCATED_SPACE), '999,999,999') "FREE(MB)",
  6         TO_CHAR ((ROUND ((F.FREE_SPACE/T.ALLOCATED_SPACE)*100)),'999,999')||' %' PER_FREE
  7  FROM   (
  8         SELECT TABLESPACE_NAME,SUM(BYTES/1024/1024) FREE_SPACE
  9         FROM DBA_FREE_SPACE
 10         GROUP BY TABLESPACE_NAME
 11         ) F,
 12         (
 13         SELECT      TABLESPACE_NAME,
 14             ROUND (SUM (BYTES/1048576)) ALLOCATED_SPACE,
 15             ROUND(SUM(nvl(nullif(MAXBYTES,0),bytes)/1048576)) MAX_SPACE
 16         FROM DBA_DATA_FILES
 17         GROUP BY TABLESPACE_NAME
 18         ) T
 19  WHERE F.TABLESPACE_NAME = T.TABLESPACE_NAME
 20  ORDER BY F.TABLESPACE_NAME;

TABLESPACE                     MAX SIZE(MB)         ALLOCATED(MB)        USED(MB)             FREE(MB)             PER_FREE
------------------------------ -------------------- -------------------- -------------------- -------------------- --------------------
SYSAUX                               32,768                  760                  721                39           5 %
SYSTEM                               32,768                  780                  770                10           1 %
UNDOTBS1                             32,768                  725                  707                18           3 %
USERS                                32,768                    5                    1                 4          73 %


SQL>


Steve Karam has compiled a list of articles from all the oracle experts out there. Now to start studying!






Wednesday, July 17, 2013

PLS-00201: identifier 'DBMS_PLUGTS.NEWDATAFILE' must be declared

PLS-00201: identifier 'DBMS_PLUGTS.NEWDATAFILE' must be declared

Error :

PLS-00201: identifier 'DBMS_PLUGTS.NEWDATAFILE' must be declared

Transport tablespace from one database to another and got the following error during import.

myoradb10 | DREP | /export/oracle
> imp transport_tablespace=y datafiles='/u10_DREP/oradata/REP_TEST/DREP_LOG_2011Q4/DREP_log_2011Q4_01.dbf','/u10_DREP/oradata/REP_TEST/DREP_LOG_2011Q4/DREP_log_2011Q4_02.dbf' file=DREP_LOG_2011Q4_dumpfile_exp.dmp log=DREP_LOG_2011Q4_dumpfile_exp.log

Import: Release 11.2.0.3.0 - Production on Fri Jul 12 14:49:59 2013

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

Username: /as sysdba

IMP-00004: invalid username or password
Username: system
Password:

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

Export file created by EXPORT:V11.02.00 via conventional path
About to import transportable tablespace(s) metadata...

Warning: the objects were exported by SYS, not by you

import done in AL32UTF8 character set and AL16UTF16 NCHAR character set
export client uses US7ASCII character set (possible charset conversion)
IMP-00003: ORACLE error 6550 encountered
ORA-06550: line 1, column 7:
PLS-00201: identifier 'DBMS_PLUGTS.NEWDATAFILE' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
IMP-00000: Import terminated unsuccessfully


Solution: Import as “sys as sysdba”


myoradb10 | DREP | /export/oracle
> imp transport_tablespace=y datafiles='/u10_DREP/oradata/REP_TEST/DREP_LOG_2011Q4/DREP_log_2011Q4_01.dbf','/u10_DREP/oradata/REP_TEST/DREP_LOG_2011Q4/DREP_log_2011Q4_02.dbf' file=DREP_LOG_2011Q4_dumpfile_exp.dmp log=DREP_LOG_2011Q4_dumpfile_exp.log

Import: Release 11.2.0.3.0 - Production on Fri Jul 12 14:53:14 2013

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

Username: sys as sysdba
Password:

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

Export file created by EXPORT:V11.02.00 via conventional path
About to import transportable tablespace(s) metadata...
import done in AL32UTF8 character set and AL16UTF16 NCHAR character set
export client uses US7ASCII character set (possible charset conversion)
. importing SYS's objects into SYS
. importing SYS's objects into SYS
. importing REPADM's objects into REPADM
. . importing table          "ARCH_REP_LOG_2011Q4"
. importing SYS's objects into SYS
Import terminated successfully without warnings.
myoradb10 | DREP | /export/oracle
> 



Installing Oracle Enterprise Manager Agent 12c (12.1.0.2) in silent method

Installing Oracle Enterprise Manager Agent 12c (12.1.0.2) in silent method

Environment:

Platform = Linux x86-64
Version = 12.1.0.2.0


To install a Management Agent, use the Add Host Targets Wizard that is accessible from within the Enterprise Manager Cloud Control console. Oracle recommends that you use this wizard for the mass-deployment of Management Agents. Refer Oracle documentation below for prerequisites :

Use the below method to perform a silent installation which is suitable when you want to install in few servers. Refer Oracle documentation below for prerequisites:

The below steps show how to do it using the agentDeploy Script


Obtain the software:

On the OMS server, use emcli to obtain the software..

mygcapp01 | OMS | /home/oracle
> emcli login -username=sysman -password=hehheh
Login successful


mygcapp01 | OMS | /home/oracle
> emcli sync
Synchronized successfully

mygcapp01 | OMS | /home/oracle
> emcli get_supported_platforms
Getting list of platforms ...
Check the logs at /u01/app/oracle/product/FMW/12.1.0.2/gc_inst/em/EMGC_OMS1/sysman/emcli/setup/.emcli/agent.log
About to access self-update code path to retrieve the platforms list..
Getting Platforms list  ...
-----------------------------------------------
Version = 12.1.0.2.0
 Platform = Linux x86-64
-----------------------------------------------
Platforms list displayed successfully.
mygcapp01 | OMS | /home/oracle

Download:

> emcli get_agentimage -destination=/tmp -platform="Linux x86-64" -version=12.1.0.2.0

Transfer the downloaded zip file to the destination/target and unzip

unzip /tmp/<software_zip_file> -d <software_extract_location>

Edit the response file in <software_extract_location>/agent.rsp


> cat /u05_INSTALL/patches/software/OEM/AGENT/agentImage12102/agent.rsp
####################################################################
## copyright (c) 1999, 2012 Oracle. All rights reserved.          ##
##                                                                ##
## Specify values for the variables listed below to customize     ##
## your installation.                                             ##
##                                                                ##
## Each variable is associated with a comment. The comment        ##
## identifies the variable type.                                  ##
##                                                                ##
## Please specify the values in the following format:             ##
##                                                                ##
##         Type         Example                                   ##
##         String       "Sample Value"                            ##
##         Boolean      True or False                             ##
##         Number       1000                                      ##
##         StringList   {"String value 1","String Value 2"}       ##
##                                                                ##
## The values that are given as <Value Required> need to be       ##
## specified for a silent installation to be successful.          ##
##                                                                ##
##                                                                ##
## This response file is generated by Oracle Software             ##
## Packager.                                                      ##
###################################################################

RESPONSEFILE_VERSION=2.2.1.0.0


#-------------------------------------------------------------------------------
#OMS_HOST:<String> OMS host info required to connect to OMS
#EM_UPLOAD_PORT:<String> OMS port info required to connect to OMS
#AGENT_REGISTRATION_PASSWORD:<String> Agent Registration Password needed to
#     establish a secure connection to the OMS.
#AGENT_INSTANCE_HOME:<String> Agent instance home is the location of agent state directory.
#AGENT_PORT:<String> Agent port on which the agent process should be started.
#b_startAgent:<boolean> Agent will not be started after configuration if the value specified is false.
#ORACLE_HOSTNAME:<String> Fully qualified domain name of host where is the agent is deployed.
#s_agentHomeName:<String>Customized Oracle home name for the agent home. Example: s_agentHomeName="agent12gR1"
#-------------------------------------------------------------------------------
OMS_HOST=mygcapp01.ihost.com
EM_UPLOAD_PORT=4889
AGENT_REGISTRATION_PASSWORD=hehheh
AGENT_INSTANCE_HOME="/u01/app/oracle/product/12.1.0.2/agent"
AGENT_PORT=3872
b_startAgent=true
ORACLE_HOSTNAME=myoradb01.ihost.com
s_agentHomeName=agent12cR2_Home
#-------------------------------------------------------------------------------
#s_agentServiceName:<String> Sets the agent Service Name and this variable can be
#      used to overrite the agent service name calculated by the install. This is
#      required for only Windows.
#      Example:
#      s_agentServiceName = "Oracleagent12gAgent"      ;  default value
#      s_agentServiceName = "GridAgent"                 ;  User specified value
#-------------------------------------------------------------------------------
#s_agentServiceName=""

####################################################################################
#Please Don't change the values of these variables
####################################################################################
#-------------------------------------------------------------------------------
#EM_INSTALL_TYPE:<STRING> install type
#-------------------------------------------------------------------------------
EM_INSTALL_TYPE="AGENT"


Install:

myoradb01 |  | /u05_INSTALL/patches/software/OEM/AGENT/agentImage12102
> ./agentDeploy.sh AGENT_BASE_DIR="/u01/app/oracle/product/12.1.0.2" RESPONSE_FILE="/u05_INSTALL/patches/software/OEM/AGENT/agentImage12102/agent.rsp"

Validating the OMS_HOST & EM_UPLOAD_PORT
Executing command : /u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0/jdk/bin/java -classpath /u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0/jlib/agentInstaller.jar:/u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0/oui/jlib/OraInstaller.jar oracle.sysman.agent.installer.AgentInstaller /u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0 /u05_INSTALL/patches/software/OEM/AGENT/agentImage12102 /u01/app/oracle/product/12.1.0.2 -prereq

Validating oms host & port with url: http://mygcapp01.ihost.com:4889/empbs/genwallet
Validating oms host & port with url: https://mygcapp01.ihost.com:4889/empbs/genwallet
Return status:0
Unzipping the agentcoreimage.zip to /u01/app/oracle/product/12.1.0.2 ....
12.1.0.2.0_PluginsOneoffs_226.zip
Executing command : /u05_INSTALL/patches/software/OEM/AGENT/agentImage12102/unzip -o /u05_INSTALL/patches/software/OEM/AGENT/agentImage12102/12.1.0.2.0_PluginsOneoffs_226.zip -d /u01/app/oracle/product/12.1.0.2
Executing command : /u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0/jdk/bin/java -classpath /u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0/oui/jlib/OraInstaller.jar:/u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0/oui/jlib/xmlparserv2.jar:/u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0/oui/jlib/srvm.jar:/u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0/oui/jlib/emCfg.jar:/u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0/jlib/agentInstaller.jar:/u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0/oui/jlib/share.jar oracle.sysman.agent.installer.AgentInstaller /u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0 /u05_INSTALL/patches/software/OEM/AGENT/agentImage12102 /u01/app/oracle/product/12.1.0.2 /u01/app/oracle/product/12.1.0.2/agent AGENT_BASE_DIR=/u01/app/oracle/product/12.1.0.2 AGENT_BASE_DIR=/u01/app/oracle/product/12.1.0.2 RESPONSE_FILE=/u05_INSTALL/patches/software/OEM/AGENT/agentImage12102/agent.rsp


Executing agent install prereqs...
Executing command: /u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0/oui/bin/runInstaller -ignoreSysPrereqs -prereqchecker -silent -ignoreSysPrereqs -waitForCompletion  -prereqlogloc /u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0/cfgtoollogs/agentDeploy -entryPoint oracle.sysman.top.agent_Complete -detailedExitCodes PREREQ_CONFIG_LOCATION=/u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0/prereqs  -J-DORACLE_HOSTNAME=myoradb01.ihost.com -J-DAGENT_PORT=3872 -J-DAGENT_BASE_DIR=/u01/app/oracle/product/12.1.0.2
Prereq Logs Location:/u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0/cfgtoollogs/agentDeploy/prereq<timestamp>.log
Agent install prereqs completed successfully

Cloning the agent home...
Executing command: /u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0/oui/bin/runInstaller -ignoreSysPrereqs -clone -forceClone -silent -waitForCompletion -nowait ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0 -responseFile /u05_INSTALL/patches/software/OEM/AGENT/agentImage12102/agent.rsp  AGENT_BASE_DIR=/u01/app/oracle/product/12.1.0.2 AGENT_BASE_DIR=/u01/app/oracle/product/12.1.0.2 RESPONSE_FILE=/u05_INSTALL/patches/software/OEM/AGENT/agentImage12102/agent.rsp -noconfig  ORACLE_HOME_NAME=agent12cR2_Home -force b_noUpgrade=true
Clone Action Logs Location:/u01/app/oraInventory/logs/cloneActions<timestamp>.log
Cloning of agent home completed successfully

Attaching sbin home...
Executing command: /u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0/oui/bin/runInstaller -ignoreSysPrereqs -attachHome -waitForCompletion -nowait ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/sbin ORACLE_HOME_NAME=sbin12c1 -force
Attach Home Logs Location:/u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0/cfgtoollogs/agentDeploy/AttachHome<timestamp>.log
Attach home for sbin home completed successfully.

Updating home dependencies...
Executing command: /u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0/oui/bin/runInstaller -ignoreSysPrereqs -updateHomeDeps -waitForCompletion HOME_DEPENDENCY_LIST={/u01/app/oracle/product/12.1.0.2/sbin:/u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0,} -invPtrLoc /u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0/oraInst.loc -force
Update Home Dependencies Location:/u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0/cfgtoollogs/agentDeploy/UpdateHomeDeps<timestamp>.log
Update home dependency completed successfully.

Performing the agent configuration...
Executing command: /u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0/oui/bin/runConfig.sh ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0 RESPONSE_FILE=/u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0/agent.rsp ACTION=configure MODE=perform COMPONENT_XML={oracle.sysman.top.agent.11_1_0_1_0.xml} RERUN=true
Configuration Log Location:/u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0/cfgtoollogs/cfgfw/CfmLogger<timestamp>.log
Agent Configuration completed successfully

The following configuration scripts need to be executed as the "root" user.
#!/bin/sh
#Root script to run
 /u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0/root.sh
To execute the configuration scripts:
1. Open a terminal window
2. Log in as "root"
3. Run the scripts
Agent Deployment Successful.
Agent deployment log location:
/u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0/cfgtoollogs/agentDeploy/agentDeploy_2013-07-17_13-52-04-PM.log
Agent deployment completed successfully.

root.sh:

myoradb01 |  | /u05_INSTALL/patches/software/OEM/AGENT/agentImage12102
> sudo su - root
root@myoradb01:~ #sh /u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0/root.sh
Finished product-specific root actions.
/etc exist

Creating /etc/oragchomelist file...
Finished product-specific root actions.
root@myoradb01:~ #
root@myoradb01:~ #exit
logout

oratab :

> cat /etc/oratab
DB11203:/u01/app/oracle/product/11.2.0.3:N
DB11202:/u01/app/oracle/product/11.2.0.2:N
DB10204:/u01/app/oracle/product/10.2.0.4:N
AGENT:/u01/app/oracle/product/12.1.0.2/agent:N


Verify :

myoradb01 | DB10204 | /home/oracle
> . oraenv
ORACLE_SID = [DB10204] ? AGENT
myoradb01 | AGENT | /home/oracle
> emctl status agent
Oracle Enterprise Manager Cloud Control 12c Release 2
Copyright (c) 1996, 2012 Oracle Corporation.  All rights reserved.
---------------------------------------------------------------
Agent Version     : 12.1.0.2.0
OMS Version       : 12.1.0.2.0
Protocol Version  : 12.1.0.1.0
Agent Home        : /u01/app/oracle/product/12.1.0.2/agent
Agent Binaries    : /u01/app/oracle/product/12.1.0.2/core/12.1.0.2.0
Agent Process ID  : 372
Parent Process ID : 32761
Agent URL         : https://myoradb01.ihost.com:3872/emd/main/
Repository URL    : https://mygcapp01.ihost.com:1159/empbs/upload
Started at        : 2013-07-17 13:55:12
Started by user   : oracle
Last Reload       : (none)
Last successful upload                       : 2013-07-17 18:07:19
Last attempted upload                        : 2013-07-17 18:07:19
Total Megabytes of XML files uploaded so far : 0.48
Number of XML files pending upload           : 0
Size of XML files pending upload(MB)         : 0
Available disk space on upload filesystem    : 89.92%
Collection Status                            : Collections enabled
Heartbeat Status                             : Ok
Last attempted heartbeat to OMS              : 2013-07-17 18:08:21
Last successful heartbeat to OMS             : 2013-07-17 18:08:21
Next scheduled heartbeat to OMS              : 2013-07-17 18:09:21

---------------------------------------------------------------
Agent is Running and Ready



This completes the EM agent installation in silent mode.